summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/build.yaml56
-rwxr-xr-x.gitignore1
-rw-r--r--autobuild.xml14
-rwxr-xr-xdoc/contributions.txt3
-rw-r--r--indra/CMakeLists.txt9
-rw-r--r--indra/cmake/Copy3rdPartyLibs.cmake3
-rw-r--r--indra/cmake/Python.cmake4
-rw-r--r--indra/llcommon/CMakeLists.txt8
-rw-r--r--indra/llcommon/always_return.h124
-rw-r--r--indra/llcommon/apply.cpp29
-rw-r--r--indra/llcommon/apply.h144
-rw-r--r--indra/llcommon/function_types.h49
-rw-r--r--indra/llcommon/lazyeventapi.cpp72
-rw-r--r--indra/llcommon/lazyeventapi.h205
-rw-r--r--indra/llcommon/llapr.cpp8
-rw-r--r--indra/llcommon/llcoros.cpp1
-rw-r--r--indra/llcommon/lleventapi.cpp8
-rw-r--r--indra/llcommon/lleventapi.h32
-rw-r--r--indra/llcommon/lleventdispatcher.cpp619
-rw-r--r--indra/llcommon/lleventdispatcher.h841
-rw-r--r--indra/llcommon/lleventfilter.h47
-rw-r--r--indra/llcommon/llevents.cpp71
-rw-r--r--indra/llcommon/llevents.h43
-rw-r--r--indra/llcommon/llleap.cpp27
-rw-r--r--indra/llcommon/llleaplistener.cpp70
-rw-r--r--indra/llcommon/llprocess.cpp19
-rw-r--r--indra/llcommon/llprocess.h1
-rw-r--r--indra/llcommon/llptrto.h88
-rw-r--r--indra/llcommon/llsdutil.cpp35
-rw-r--r--indra/llcommon/llsdutil.h150
-rw-r--r--indra/llcommon/tests/apply_test.cpp240
-rw-r--r--indra/llcommon/tests/lazyeventapi_test.cpp136
-rw-r--r--indra/llcommon/tests/lleventdispatcher_test.cpp569
-rw-r--r--indra/llcommon/tests/wrapllerrs.h5
-rw-r--r--indra/llplugin/slplugin/slplugin-objc.mm2
-rw-r--r--indra/llrender/llgltexture.cpp3
-rw-r--r--indra/llrender/llgltexture.h1
-rw-r--r--indra/llui/lllineeditor.cpp5
-rw-r--r--indra/llui/lllineeditor.h7
-rw-r--r--indra/llui/lltabcontainer.cpp17
-rw-r--r--indra/llui/lltextbase.cpp8
-rw-r--r--indra/llui/llurlentry.cpp121
-rw-r--r--indra/llui/llurlentry.h33
-rw-r--r--indra/llui/llurlregistry.cpp8
-rw-r--r--indra/llui/llurlregistry.h6
-rw-r--r--indra/llwindow/llkeyboard.cpp51
-rw-r--r--indra/llwindow/llkeyboard.h9
-rw-r--r--indra/newview/CMakeLists.txt2
-rw-r--r--indra/newview/VIEWER_VERSION.txt2
-rwxr-xr-xindra/newview/installers/darwin/release-dmg/Applications-alias.r6987
-rw-r--r--indra/newview/installers/darwin/release-dmg/_VolumeIcon.icnsbin98049 -> 2108870 bytes
-rw-r--r--indra/newview/installers/darwin/release-dmg/background.jpgbin75112 -> 62112 bytes
-rw-r--r--indra/newview/llagent.cpp12
-rw-r--r--indra/newview/llagentcamera.cpp187
-rw-r--r--indra/newview/llappearancemgr.cpp72
-rw-r--r--indra/newview/llappearancemgr.h2
-rw-r--r--indra/newview/llappviewer.cpp2
-rw-r--r--indra/newview/llavatariconctrl.cpp5
-rw-r--r--indra/newview/llavatarrenderinfoaccountant.cpp15
-rw-r--r--indra/newview/llconversationmodel.h2
-rw-r--r--indra/newview/lldrawable.cpp13
-rw-r--r--indra/newview/llfloaterimcontainer.cpp22
-rw-r--r--indra/newview/llfloaterimcontainer.h2
-rw-r--r--indra/newview/llfloaterpreference.cpp42
-rw-r--r--indra/newview/llfloaterurlentry.cpp16
-rwxr-xr-xindra/newview/llfloaterworldmap.cpp53
-rw-r--r--indra/newview/llfriendcard.cpp15
-rw-r--r--indra/newview/llgroupactions.cpp3
-rw-r--r--indra/newview/llinventorybridge.cpp4
-rw-r--r--indra/newview/llinventorygallery.cpp26
-rw-r--r--indra/newview/llinventorygallery.h4
-rw-r--r--indra/newview/llinventorymodelbackgroundfetch.cpp56
-rw-r--r--indra/newview/llinventorymodelbackgroundfetch.h7
-rw-r--r--indra/newview/llinventoryobserver.cpp93
-rw-r--r--indra/newview/llkeyconflict.cpp38
-rw-r--r--indra/newview/lllocationinputctrl.cpp4
-rw-r--r--indra/newview/llpanelgrouplandmoney.cpp4
-rw-r--r--indra/newview/llpanelprofile.cpp47
-rw-r--r--indra/newview/llpanelprofileclassifieds.cpp3
-rw-r--r--indra/newview/llpanelprofilepicks.cpp3
-rw-r--r--indra/newview/llspatialpartition.cpp38
-rw-r--r--indra/newview/llspatialpartition.h4
-rw-r--r--indra/newview/llstartup.cpp3
-rw-r--r--indra/newview/llthumbnailctrl.cpp84
-rw-r--r--indra/newview/llthumbnailctrl.h9
-rw-r--r--indra/newview/llviewerfloaterreg.cpp6
-rw-r--r--indra/newview/llviewerinput.cpp92
-rw-r--r--indra/newview/llviewerinput.h17
-rw-r--r--indra/newview/llviewerinventory.cpp51
-rw-r--r--indra/newview/llviewerobject.cpp6
-rw-r--r--indra/newview/llviewertexture.cpp79
-rw-r--r--indra/newview/llviewertexturelist.cpp13
-rw-r--r--indra/newview/llvoavatar.cpp3
-rw-r--r--indra/newview/llvoavatarself.cpp37
-rw-r--r--indra/newview/llvoavatarself.h2
-rw-r--r--indra/newview/skins/default/xui/da/panel_main_inventory.xml29
-rw-r--r--indra/newview/skins/default/xui/de/panel_main_inventory.xml43
-rw-r--r--indra/newview/skins/default/xui/en/menu_inventory.xml8
-rw-r--r--indra/newview/skins/default/xui/en/panel_main_inventory.xml6
-rw-r--r--indra/newview/skins/default/xui/en/panel_region_environment.xml20
-rw-r--r--indra/newview/skins/default/xui/en/strings.xml2
-rw-r--r--indra/newview/skins/default/xui/es/panel_main_inventory.xml43
-rw-r--r--indra/newview/skins/default/xui/fr/panel_main_inventory.xml43
-rw-r--r--indra/newview/skins/default/xui/it/panel_main_inventory.xml43
-rw-r--r--indra/newview/skins/default/xui/ja/panel_main_inventory.xml46
-rw-r--r--indra/newview/skins/default/xui/pl/panel_main_inventory.xml29
-rw-r--r--indra/newview/skins/default/xui/pt/panel_main_inventory.xml43
-rw-r--r--indra/newview/skins/default/xui/ru/panel_main_inventory.xml43
-rw-r--r--indra/newview/skins/default/xui/tr/panel_main_inventory.xml43
-rw-r--r--indra/newview/skins/default/xui/zh/panel_main_inventory.xml43
-rw-r--r--indra/test/CMakeLists.txt7
-rw-r--r--indra/test/test.cpp2
112 files changed, 4403 insertions, 8279 deletions
diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml
index 1cd0c2526f..849c10d62e 100644
--- a/.github/workflows/build.yaml
+++ b/.github/workflows/build.yaml
@@ -254,7 +254,7 @@ jobs:
runs-on: windows
steps:
- name: Sign and package Windows viewer
- uses: secondlife/viewer-build-util/sign-pkg-windows@main
+ uses: secondlife/viewer-build-util/sign-pkg-windows@v1
with:
vault_uri: "${{ secrets.AZURE_KEY_VAULT_URI }}"
cert_name: "${{ secrets.AZURE_CERT_NAME }}"
@@ -286,7 +286,7 @@ jobs:
[[ -n "$USERNAME" && -n "$PASSWORD" && -n "$TEAM_ID" ]]
- name: Sign and package Mac viewer
- uses: secondlife/viewer-build-util/sign-pkg-mac@main
+ uses: secondlife/viewer-build-util/sign-pkg-mac@v1
with:
channel: ${{ needs.build.outputs.viewer_channel }}
imagename: ${{ needs.build.outputs.imagename }}
@@ -302,7 +302,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Post Windows symbols
- uses: secondlife/viewer-build-util/post-bugsplat-windows@main
+ uses: secondlife/viewer-build-util/post-bugsplat-windows@v1
with:
username: ${{ secrets.BUGSPLAT_USER }}
password: ${{ secrets.BUGSPLAT_PASS }}
@@ -315,7 +315,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Post Mac symbols
- uses: secondlife/viewer-build-util/post-bugsplat-mac@main
+ uses: secondlife/viewer-build-util/post-bugsplat-mac@v1
with:
username: ${{ secrets.BUGSPLAT_USER }}
password: ${{ secrets.BUGSPLAT_PASS }}
@@ -330,29 +330,29 @@ jobs:
steps:
- uses: actions/download-artifact@v3
with:
- path: artifacts
+ name: Windows-installer
- - name: Reshuffle artifact files
- uses: secondlife/viewer-build-util/release-artifacts@main
+ - uses: actions/download-artifact@v3
+ with:
+ name: macOS-installer
+
+ - uses: actions/download-artifact@v3
with:
- input-path: artifacts
- output-path: assets
- # The *-app artifacts are for use only by the signing and
- # packaging steps. Once we've generated signed installers, we no
- # longer need them, and we CERTAINLY don't want to publish
- # thousands of individual files as separate URLs.
- exclude: |-
- Windows-app
- macOS-app
- # Use just "Windows" or "macOS" prefix because these are the only
- # artifacts in which we expect files from both platforms with
- # colliding names (e.g. autobuild-package.xml). release-artifacts
- # normally resolves collisions by prepending the artifact name, so
- # when we anticipate collisions, it's good to keep the prefix
- # short and sweet.
- prefix: |-
- Windows-metadata=Windows
- macOS-metadata=macOS
+ name: Windows-metadata
+
+ - name: Rename windows metadata
+ run: |
+ mv autobuild-package.xml Windows-autobuild-package.xml
+ mv newview/viewer_version.txt Windows-viewer_version.txt
+
+ - uses: actions/download-artifact@v3
+ with:
+ name: macOS-metadata
+
+ - name: Rename macOS metadata
+ run: |
+ mv autobuild-package.xml macOS-autobuild-package.xml
+ mv newview/viewer_version.txt macOS-viewer_version.txt
# forked from softprops/action-gh-release
- uses: secondlife-3p/action-gh-release@v1
@@ -364,4 +364,8 @@ jobs:
generate_release_notes: true
# the only reason we generate a GH release is to post build products
fail_on_unmatched_files: true
- files: "assets/*"
+ files: |
+ *.dmg
+ *.exe
+ *-autobuild-package.xml
+ *-viewer_version.txt
diff --git a/.gitignore b/.gitignore
index 11266fdeaa..3b3666af84 100755
--- a/.gitignore
+++ b/.gitignore
@@ -91,3 +91,4 @@ web/locale.*
web/secondlife.com.*
.env
+.vscode
diff --git a/autobuild.xml b/autobuild.xml
index 8d8ffe0084..effafa31d3 100644
--- a/autobuild.xml
+++ b/autobuild.xml
@@ -2731,11 +2731,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<key>archive</key>
<map>
<key>hash</key>
- <string>d8bc8720846cfa31e23e7e1008e32ba6ad4a8322</string>
+ <string>eb1316584188dafb591f80b46b357c737f90d1a7</string>
<key>hash_algorithm</key>
<string>sha1</string>
<key>url</key>
- <string>https://github.com/secondlife/viewer-manager/releases/download/v3.0.cc7ea1e/viewer_manager-3.0.cc7ea1e-darwin64-cc7ea1e.tar.zst</string>
+ <string>https://github.com/secondlife/viewer-manager/releases/download/v3.0-08bf5ee/viewer_manager-3.0-08bf5ee-darwin64-08bf5ee.tar.zst</string>
</map>
<key>name</key>
<string>darwin64</string>
@@ -2745,11 +2745,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<key>archive</key>
<map>
<key>hash</key>
- <string>228fae4ee0ce12b9d1d1b0a8ebb0bdf58ee521eb</string>
+ <string>f4677b0ebd9880f29c118af51ada50883dd0a1e4</string>
<key>hash_algorithm</key>
<string>sha1</string>
<key>url</key>
- <string>https://github.com/secondlife/viewer-manager/releases/download/v3.0.cc7ea1e/viewer_manager-3.0.cc7ea1e-linux64-cc7ea1e.tar.zst</string>
+ <string>https://github.com/secondlife/viewer-manager/releases/download/v3.0-08bf5ee/viewer_manager-3.0-08bf5ee-linux64-08bf5ee.tar.zst</string>
</map>
<key>name</key>
<string>linux64</string>
@@ -2759,11 +2759,11 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<key>archive</key>
<map>
<key>hash</key>
- <string>ca6999b64d96d45952fe872b381db9b2abc0248c</string>
+ <string>7426c5a1d7eb231b476625637a1f2daba0a6bc55</string>
<key>hash_algorithm</key>
<string>sha1</string>
<key>url</key>
- <string>https://github.com/secondlife/viewer-manager/releases/download/v3.0.cc7ea1e/viewer_manager-3.0.cc7ea1e-windows64-cc7ea1e.tar.zst</string>
+ <string>https://github.com/secondlife/viewer-manager/releases/download/v3.0-08bf5ee/viewer_manager-3.0-08bf5ee-windows64-08bf5ee.tar.zst</string>
</map>
<key>name</key>
<string>windows64</string>
@@ -2776,7 +2776,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<key>copyright</key>
<string>Copyright (c) 2000-2012, Linden Research, Inc.</string>
<key>version</key>
- <string>3.0.cc7ea1e</string>
+ <string>3.0-08bf5ee</string>
<key>name</key>
<string>viewer-manager</string>
<key>description</key>
diff --git a/doc/contributions.txt b/doc/contributions.txt
index e6c2e7cb70..ceb7aac600 100755
--- a/doc/contributions.txt
+++ b/doc/contributions.txt
@@ -242,6 +242,7 @@ Ansariel Hiller
SL-19575
SL-19623
SL-4126
+ SL-20224
Aralara Rajal
Arare Chantilly
CHUIBUG-191
@@ -931,6 +932,8 @@ LSL Scientist
Lamorna Proctor
Lares Carter
Larry Pixel
+Lars Næsbye Christensen
+ SL-20054
Laurent Bechir
Leal Choche
Lenae Munz
diff --git a/indra/CMakeLists.txt b/indra/CMakeLists.txt
index 205ce402a0..500ffa3e8b 100644
--- a/indra/CMakeLists.txt
+++ b/indra/CMakeLists.txt
@@ -29,15 +29,6 @@ else()
set( USE_AUTOBUILD_3P ON )
endif()
-# The viewer code base can now be successfully compiled with -std=c++14. But
-# turning that on in the generic viewer-build-variables/variables file would
-# potentially require tweaking each of our ~50 third-party library builds.
-# Until we decide to set -std=c++14 in viewer-build-variables/variables, set
-# it locally here: we want to at least prevent inadvertently reintroducing
-# viewer code that would fail with C++14.
-set(CMAKE_CXX_STANDARD 17)
-set(CMAKE_CXX_STANDARD_REQUIRED ON)
-
include(Variables)
include(BuildVersion)
diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake
index def0c5d6bc..9f79c13a97 100644
--- a/indra/cmake/Copy3rdPartyLibs.cmake
+++ b/indra/cmake/Copy3rdPartyLibs.cmake
@@ -95,7 +95,8 @@ if(WINDOWS)
endif (USE_BUGSPLAT)
if (TARGET ll::fmodstudio)
- set(debug_files ${debug_files} fmodL.dll)
+ # fmodL is included for logging, only one should be picked by manifest
+ set(release_files ${release_files} fmodL.dll)
set(release_files ${release_files} fmod.dll)
endif ()
diff --git a/indra/cmake/Python.cmake b/indra/cmake/Python.cmake
index f9259f6c2b..da5d2ef22c 100644
--- a/indra/cmake/Python.cmake
+++ b/indra/cmake/Python.cmake
@@ -13,7 +13,7 @@ elseif (WINDOWS)
foreach(hive HKEY_CURRENT_USER HKEY_LOCAL_MACHINE)
# prefer more recent Python versions to older ones, if multiple versions
# are installed
- foreach(pyver 3.11 3.10 3.9 3.8 3.7)
+ foreach(pyver 3.12 3.11 3.10 3.9 3.8 3.7)
list(APPEND regpaths "[${hive}\\SOFTWARE\\Python\\PythonCore\\${pyver}\\InstallPath]")
endforeach()
endforeach()
@@ -40,7 +40,7 @@ elseif (WINDOWS)
${regpaths}
${pymaybe}
)
- include(FindPythonInterp)
+ find_package(Python3 COMPONENTS Interpreter)
else()
find_program(python python3)
diff --git a/indra/llcommon/CMakeLists.txt b/indra/llcommon/CMakeLists.txt
index 7ba937a909..c947184dc8 100644
--- a/indra/llcommon/CMakeLists.txt
+++ b/indra/llcommon/CMakeLists.txt
@@ -17,8 +17,10 @@ include(Tracy)
set(llcommon_SOURCE_FILES
+ apply.cpp
commoncontrol.cpp
indra_constants.cpp
+ lazyeventapi.cpp
llallocator.cpp
llallocator_heap_profile.cpp
llapp.cpp
@@ -116,12 +118,16 @@ set(llcommon_SOURCE_FILES
set(llcommon_HEADER_FILES
CMakeLists.txt
+ always_return.h
+ apply.h
chrono.h
classic_callback.h
commoncontrol.h
ctype_workaround.h
fix_macros.h
+ function_types.h
indra_constants.h
+ lazyeventapi.h
linden_common.h
llalignedarray.h
llallocator.h
@@ -294,9 +300,11 @@ if (LL_TESTS)
#set(TEST_DEBUG on)
set(test_libs llcommon)
+ LL_ADD_INTEGRATION_TEST(apply "" "${test_libs}")
LL_ADD_INTEGRATION_TEST(bitpack "" "${test_libs}")
LL_ADD_INTEGRATION_TEST(classic_callback "" "${test_libs}")
LL_ADD_INTEGRATION_TEST(commonmisc "" "${test_libs}")
+ LL_ADD_INTEGRATION_TEST(lazyeventapi "" "${test_libs}")
LL_ADD_INTEGRATION_TEST(llbase64 "" "${test_libs}")
LL_ADD_INTEGRATION_TEST(llcond "" "${test_libs}")
LL_ADD_INTEGRATION_TEST(lldate "" "${test_libs}")
diff --git a/indra/llcommon/always_return.h b/indra/llcommon/always_return.h
new file mode 100644
index 0000000000..6b9f1fdeaf
--- /dev/null
+++ b/indra/llcommon/always_return.h
@@ -0,0 +1,124 @@
+/**
+ * @file always_return.h
+ * @author Nat Goodspeed
+ * @date 2023-01-20
+ * @brief Call specified callable with arbitrary arguments, but always return
+ * specified type.
+ *
+ * $LicenseInfo:firstyear=2023&license=viewerlgpl$
+ * Copyright (c) 2023, Linden Research, Inc.
+ * $/LicenseInfo$
+ */
+
+#if ! defined(LL_ALWAYS_RETURN_H)
+#define LL_ALWAYS_RETURN_H
+
+#include <type_traits> // std::enable_if, std::is_convertible
+
+namespace LL
+{
+
+#if __cpp_lib_is_invocable >= 201703L // C++17
+ template <typename CALLABLE, typename... ARGS>
+ using invoke_result = std::invoke_result<CALLABLE, ARGS...>;
+#else // C++14
+ template <typename CALLABLE, typename... ARGS>
+ using invoke_result = std::result_of<CALLABLE(ARGS...)>;
+#endif // C++14
+
+ /**
+ * AlwaysReturn<T>()(some_function, some_args...) calls
+ * some_function(some_args...). It is guaranteed to return a value of type
+ * T, regardless of the return type of some_function(). If some_function()
+ * returns a type convertible to T, it will convert and return that value.
+ * Otherwise (notably if some_function() is void), AlwaysReturn returns
+ * T().
+ *
+ * When some_function() returns a type not convertible to T, if
+ * you want AlwaysReturn to return some T value other than
+ * default-constructed T(), pass that value to AlwaysReturn's constructor.
+ */
+ template <typename DESIRED>
+ class AlwaysReturn
+ {
+ public:
+ /// pass explicit default value if other than default-constructed type
+ AlwaysReturn(const DESIRED& dft=DESIRED()): mDefault(dft) {}
+
+ // callable returns a type not convertible to DESIRED, return default
+ template <typename CALLABLE, typename... ARGS,
+ typename std::enable_if<
+ ! std::is_convertible<
+ typename invoke_result<CALLABLE, ARGS...>::type,
+ DESIRED
+ >::value,
+ bool
+ >::type=true>
+ DESIRED operator()(CALLABLE&& callable, ARGS&&... args)
+ {
+ // discard whatever callable(args) returns
+ std::forward<CALLABLE>(callable)(std::forward<ARGS>(args)...);
+ return mDefault;
+ }
+
+ // callable returns a type convertible to DESIRED
+ template <typename CALLABLE, typename... ARGS,
+ typename std::enable_if<
+ std::is_convertible<
+ typename invoke_result<CALLABLE, ARGS...>::type,
+ DESIRED
+ >::value,
+ bool
+ >::type=true>
+ DESIRED operator()(CALLABLE&& callable, ARGS&&... args)
+ {
+ return { std::forward<CALLABLE>(callable)(std::forward<ARGS>(args)...) };
+ }
+
+ private:
+ DESIRED mDefault;
+ };
+
+ /**
+ * always_return<T>(some_function, some_args...) calls
+ * some_function(some_args...). It is guaranteed to return a value of type
+ * T, regardless of the return type of some_function(). If some_function()
+ * returns a type convertible to T, it will convert and return that value.
+ * Otherwise (notably if some_function() is void), always_return() returns
+ * T().
+ */
+ template <typename DESIRED, typename CALLABLE, typename... ARGS>
+ DESIRED always_return(CALLABLE&& callable, ARGS&&... args)
+ {
+ return AlwaysReturn<DESIRED>()(std::forward<CALLABLE>(callable),
+ std::forward<ARGS>(args)...);
+ }
+
+ /**
+ * make_always_return<T>(some_function) returns a callable which, when
+ * called with appropriate some_function() arguments, always returns a
+ * value of type T, regardless of the return type of some_function(). If
+ * some_function() returns a type convertible to T, the returned callable
+ * will convert and return that value. Otherwise (notably if
+ * some_function() is void), the returned callable returns T().
+ *
+ * When some_function() returns a type not convertible to T, if
+ * you want the returned callable to return some T value other than
+ * default-constructed T(), pass that value to make_always_return() as its
+ * optional second argument.
+ */
+ template <typename DESIRED, typename CALLABLE>
+ auto make_always_return(CALLABLE&& callable, const DESIRED& dft=DESIRED())
+ {
+ return
+ [dft, callable = std::forward<CALLABLE>(callable)]
+ (auto&&... args)
+ {
+ return AlwaysReturn<DESIRED>(dft)(callable,
+ std::forward<decltype(args)>(args)...);
+ };
+ }
+
+} // namespace LL
+
+#endif /* ! defined(LL_ALWAYS_RETURN_H) */
diff --git a/indra/llcommon/apply.cpp b/indra/llcommon/apply.cpp
new file mode 100644
index 0000000000..417e23d3b4
--- /dev/null
+++ b/indra/llcommon/apply.cpp
@@ -0,0 +1,29 @@
+/**
+ * @file apply.cpp
+ * @author Nat Goodspeed
+ * @date 2022-12-21
+ * @brief Implementation for apply.
+ *
+ * $LicenseInfo:firstyear=2022&license=viewerlgpl$
+ * Copyright (c) 2022, Linden Research, Inc.
+ * $/LicenseInfo$
+ */
+
+// Precompiled header
+#include "linden_common.h"
+// associated header
+#include "apply.h"
+// STL headers
+// std headers
+// external library headers
+// other Linden headers
+#include "stringize.h"
+
+void LL::apply_validate_size(size_t size, size_t arity)
+{
+ if (size != arity)
+ {
+ LLTHROW(apply_error(stringize("LL::apply(func(", arity, " args), "
+ "std::vector(", size, " elements))")));
+ }
+}
diff --git a/indra/llcommon/apply.h b/indra/llcommon/apply.h
index 7c58d63bc0..cf6161ed50 100644
--- a/indra/llcommon/apply.h
+++ b/indra/llcommon/apply.h
@@ -12,8 +12,11 @@
#if ! defined(LL_APPLY_H)
#define LL_APPLY_H
+#include "llexception.h"
#include <boost/type_traits/function_traits.hpp>
+#include <functional> // std::mem_fn()
#include <tuple>
+#include <type_traits> // std::is_member_pointer
namespace LL
{
@@ -54,20 +57,67 @@ namespace LL
}, \
(ARGS))
-#if __cplusplus >= 201703L
+/*****************************************************************************
+* invoke()
+*****************************************************************************/
+#if __cpp_lib_invoke >= 201411L
// C++17 implementation
-using std::apply;
+using std::invoke;
+
+#else // no std::invoke
+
+// Use invoke() to handle pointer-to-method:
+// derived from https://stackoverflow.com/a/38288251
+template<typename Fn, typename... Args,
+ typename std::enable_if<std::is_member_pointer<typename std::decay<Fn>::type>::value,
+ int>::type = 0 >
+auto invoke(Fn&& f, Args&&... args)
+{
+ return std::mem_fn(std::forward<Fn>(f))(std::forward<Args>(args)...);
+}
+
+template<typename Fn, typename... Args,
+ typename std::enable_if<!std::is_member_pointer<typename std::decay<Fn>::type>::value,
+ int>::type = 0 >
+auto invoke(Fn&& f, Args&&... args)
+{
+ return std::forward<Fn>(f)(std::forward<Args>(args)...);
+}
+
+#endif // no std::invoke
+
+/*****************************************************************************
+* apply(function, tuple); apply(function, array)
+*****************************************************************************/
+#if __cpp_lib_apply >= 201603L
+
+// C++17 implementation
+// We don't just say 'using std::apply;' because that template is too general:
+// it also picks up the apply(function, vector) case, which we want to handle
+// below.
+template <typename CALLABLE, typename... ARGS>
+auto apply(CALLABLE&& func, const std::tuple<ARGS...>& args)
+{
+ return std::apply(std::forward<CALLABLE>(func), args);
+}
#else // C++14
// Derived from https://stackoverflow.com/a/20441189
// and https://en.cppreference.com/w/cpp/utility/apply
-template <typename CALLABLE, typename TUPLE, std::size_t... I>
-auto apply_impl(CALLABLE&& func, TUPLE&& args, std::index_sequence<I...>)
+template <typename CALLABLE, typename... ARGS, std::size_t... I>
+auto apply_impl(CALLABLE&& func, const std::tuple<ARGS...>& args, std::index_sequence<I...>)
{
+ // We accept const std::tuple& so a caller can construct an tuple on the
+ // fly. But std::get<I>(const tuple) adds a const qualifier to everything
+ // it extracts. Get a non-const ref to this tuple so we can extract
+ // without the extraneous const.
+ auto& non_const_args{ const_cast<std::tuple<ARGS...>&>(args) };
+
// call func(unpacked args)
- return std::forward<CALLABLE>(func)(std::move(std::get<I>(args))...);
+ return invoke(std::forward<CALLABLE>(func),
+ std::forward<ARGS>(std::get<I>(non_const_args))...);
}
template <typename CALLABLE, typename... ARGS>
@@ -81,6 +131,8 @@ auto apply(CALLABLE&& func, const std::tuple<ARGS...>& args)
std::index_sequence_for<ARGS...>{});
}
+#endif // C++14
+
// per https://stackoverflow.com/a/57510428/5533635
template <typename CALLABLE, typename T, size_t SIZE>
auto apply(CALLABLE&& func, const std::array<T, SIZE>& args)
@@ -88,28 +140,92 @@ auto apply(CALLABLE&& func, const std::array<T, SIZE>& args)
return apply(std::forward<CALLABLE>(func), std::tuple_cat(args));
}
+/*****************************************************************************
+* bind_front()
+*****************************************************************************/
+// To invoke a non-static member function with a tuple, you need a callable
+// that binds your member function with an instance pointer or reference.
+// std::bind_front() is perfect: std::bind_front(&cls::method, instance).
+// Unfortunately bind_front() only enters the standard library in C++20.
+#if __cpp_lib_bind_front >= 201907L
+
+// C++20 implementation
+using std::bind_front;
+
+#else // no std::bind_front()
+
+template<typename Fn, typename... Args,
+ typename std::enable_if<!std::is_member_pointer<typename std::decay<Fn>::type>::value,
+ int>::type = 0 >
+auto bind_front(Fn&& f, Args&&... args)
+{
+ // Don't use perfect forwarding for f or args: we must bind them for later.
+ return [f, pfx_args=std::make_tuple(args...)]
+ (auto&&... sfx_args)
+ {
+ // Use perfect forwarding for sfx_args because we use them as soon as
+ // we receive them.
+ return apply(
+ f,
+ std::tuple_cat(pfx_args,
+ std::make_tuple(std::forward<decltype(sfx_args)>(sfx_args)...)));
+ };
+}
+
+template<typename Fn, typename... Args,
+ typename std::enable_if<std::is_member_pointer<typename std::decay<Fn>::type>::value,
+ int>::type = 0 >
+auto bind_front(Fn&& f, Args&&... args)
+{
+ return bind_front(std::mem_fn(std::forward<Fn>(f)), std::forward<Args>(args)...);
+}
+
+#endif // C++20 with std::bind_front()
+
+/*****************************************************************************
+* apply(function, std::vector)
+*****************************************************************************/
// per https://stackoverflow.com/a/28411055/5533635
template <typename CALLABLE, typename T, std::size_t... I>
auto apply_impl(CALLABLE&& func, const std::vector<T>& args, std::index_sequence<I...>)
{
+ return apply(std::forward<CALLABLE>(func),
+ std::make_tuple(args[I]...));
+}
+
+// produce suitable error if apply(func, vector) is the wrong size for func()
+void apply_validate_size(size_t size, size_t arity);
+
+/// possible exception from apply() validation
+struct apply_error: public LLException
+{
+ apply_error(const std::string& what): LLException(what) {}
+};
+
+template <size_t ARITY, typename CALLABLE, typename T>
+auto apply_n(CALLABLE&& func, const std::vector<T>& args)
+{
+ apply_validate_size(args.size(), ARITY);
return apply_impl(std::forward<CALLABLE>(func),
- std::make_tuple(std::forward<T>(args[I])...),
- I...);
+ args,
+ std::make_index_sequence<ARITY>());
}
-// this goes beyond C++17 std::apply()
+/**
+ * apply(function, std::vector) goes beyond C++17 std::apply(). For this case
+ * @a function @emph cannot be variadic: the compiler must know at compile
+ * time how many arguments to pass. This isn't Python. (But see apply_n() to
+ * pass a specific number of args to a variadic function.)
+ */
template <typename CALLABLE, typename T>
auto apply(CALLABLE&& func, const std::vector<T>& args)
{
+ // infer arity from the definition of func
constexpr auto arity = boost::function_traits<CALLABLE>::arity;
- assert(args.size() == arity);
- return apply_impl(std::forward<CALLABLE>(func),
- args,
- std::make_index_sequence<arity>());
+ // now that we have a compile-time arity, apply_n() works
+ return apply_n<arity>(std::forward<CALLABLE>(func), args);
}
-#endif // C++14
-
} // namespace LL
#endif /* ! defined(LL_APPLY_H) */
diff --git a/indra/llcommon/function_types.h b/indra/llcommon/function_types.h
new file mode 100644
index 0000000000..3f42f6d640
--- /dev/null
+++ b/indra/llcommon/function_types.h
@@ -0,0 +1,49 @@
+/**
+ * @file function_types.h
+ * @author Nat Goodspeed
+ * @date 2023-01-20
+ * @brief Extend boost::function_types to examine boost::function and
+ * std::function
+ *
+ * $LicenseInfo:firstyear=2023&license=viewerlgpl$
+ * Copyright (c) 2023, Linden Research, Inc.
+ * $/LicenseInfo$
+ */
+
+#if ! defined(LL_FUNCTION_TYPES_H)
+#define LL_FUNCTION_TYPES_H
+
+#include <boost/function.hpp>
+#include <boost/function_types/function_arity.hpp>
+#include <functional>
+
+namespace LL
+{
+
+ template <typename F>
+ struct function_arity_impl
+ {
+ static constexpr auto value = boost::function_types::function_arity<F>::value;
+ };
+
+ template <typename F>
+ struct function_arity_impl<std::function<F>>
+ {
+ static constexpr auto value = function_arity_impl<F>::value;
+ };
+
+ template <typename F>
+ struct function_arity_impl<boost::function<F>>
+ {
+ static constexpr auto value = function_arity_impl<F>::value;
+ };
+
+ template <typename F>
+ struct function_arity
+ {
+ static constexpr auto value = function_arity_impl<typename std::decay<F>::type>::value;
+ };
+
+} // namespace LL
+
+#endif /* ! defined(LL_FUNCTION_TYPES_H) */
diff --git a/indra/llcommon/lazyeventapi.cpp b/indra/llcommon/lazyeventapi.cpp
new file mode 100644
index 0000000000..028af9f33f
--- /dev/null
+++ b/indra/llcommon/lazyeventapi.cpp
@@ -0,0 +1,72 @@
+/**
+ * @file lazyeventapi.cpp
+ * @author Nat Goodspeed
+ * @date 2022-06-17
+ * @brief Implementation for lazyeventapi.
+ *
+ * $LicenseInfo:firstyear=2022&license=viewerlgpl$
+ * Copyright (c) 2022, Linden Research, Inc.
+ * $/LicenseInfo$
+ */
+
+// Precompiled header
+#include "linden_common.h"
+// associated header
+#include "lazyeventapi.h"
+// STL headers
+// std headers
+#include <algorithm> // std::find_if
+// external library headers
+// other Linden headers
+#include "llevents.h"
+#include "llsdutil.h"
+
+LL::LazyEventAPIBase::LazyEventAPIBase(
+ const std::string& name, const std::string& desc, const std::string& field)
+{
+ // populate embedded LazyEventAPIParams instance
+ mParams.name = name;
+ mParams.desc = desc;
+ mParams.field = field;
+ // mParams.init and mOperations are populated by subsequent add() calls.
+
+ // Our raison d'etre: register as an LLEventPumps::PumpFactory
+ // so obtain() will notice any request for this name and call us.
+ // Of course, our subclass constructor must finish running (making add()
+ // calls) before mParams will be fully populated, but we expect that to
+ // happen well before the first LLEventPumps::obtain(name) call.
+ mRegistered = LLEventPumps::instance().registerPumpFactory(
+ name,
+ [this](const std::string& name){ return construct(name); });
+}
+
+LL::LazyEventAPIBase::~LazyEventAPIBase()
+{
+ // If our constructor's registerPumpFactory() call was unsuccessful, that
+ // probably means somebody else claimed the name first. If that's the
+ // case, do NOT unregister their name out from under them!
+ // If this is a static instance being destroyed at process shutdown,
+ // LLEventPumps will probably have been cleaned up already.
+ if (mRegistered && ! LLEventPumps::wasDeleted())
+ {
+ // unregister the callback to this doomed instance
+ LLEventPumps::instance().unregisterPumpFactory(mParams.name);
+ }
+}
+
+LLSD LL::LazyEventAPIBase::getMetadata(const std::string& name) const
+{
+ // Since mOperations is a vector rather than a map, just search.
+ auto found = std::find_if(mOperations.begin(), mOperations.end(),
+ [&name](const auto& namedesc)
+ { return (namedesc.first == name); });
+ if (found == mOperations.end())
+ return {};
+
+ // LLEventDispatcher() supplements the returned metadata in different
+ // ways, depending on metadata provided to the specific add() method.
+ // Don't try to emulate all that. At some point we might consider more
+ // closely unifying LLEventDispatcher machinery with LazyEventAPI, but for
+ // now this will have to do.
+ return llsd::map("name", found->first, "desc", found->second);
+}
diff --git a/indra/llcommon/lazyeventapi.h b/indra/llcommon/lazyeventapi.h
new file mode 100644
index 0000000000..e36831270b
--- /dev/null
+++ b/indra/llcommon/lazyeventapi.h
@@ -0,0 +1,205 @@
+/**
+ * @file lazyeventapi.h
+ * @author Nat Goodspeed
+ * @date 2022-06-16
+ * @brief Declaring a static module-scope LazyEventAPI registers a specific
+ * LLEventAPI for future on-demand instantiation.
+ *
+ * $LicenseInfo:firstyear=2022&license=viewerlgpl$
+ * Copyright (c) 2022, Linden Research, Inc.
+ * $/LicenseInfo$
+ */
+
+#if ! defined(LL_LAZYEVENTAPI_H)
+#define LL_LAZYEVENTAPI_H
+
+#include "apply.h"
+#include "lleventapi.h"
+#include "llinstancetracker.h"
+#include <boost/signals2/signal.hpp>
+#include <string>
+#include <tuple>
+#include <utility> // std::pair
+#include <vector>
+
+namespace LL
+{
+ /**
+ * Bundle params we want to pass to LLEventAPI's protected constructor. We
+ * package them this way so a subclass constructor can simply forward an
+ * opaque reference to the LLEventAPI constructor.
+ */
+ // This is a class instead of a plain struct mostly so when we forward-
+ // declare it we don't have to remember the distinction.
+ class LazyEventAPIParams
+ {
+ public:
+ // package the parameters used by the normal LLEventAPI constructor
+ std::string name, desc, field;
+ // bundle LLEventAPI::add() calls collected by LazyEventAPI::add(), so
+ // the special LLEventAPI constructor we engage can "play back" those
+ // add() calls
+ boost::signals2::signal<void(LLEventAPI*)> init;
+ };
+
+ /**
+ * LazyEventAPIBase implements most of the functionality of LazyEventAPI
+ * (q.v.), but we need the LazyEventAPI template subclass so we can accept
+ * the specific LLEventAPI subclass type.
+ */
+ // No LLInstanceTracker key: we don't need to find a specific instance,
+ // LLLeapListener just needs to be able to enumerate all instances.
+ class LazyEventAPIBase: public LLInstanceTracker<LazyEventAPIBase>
+ {
+ public:
+ LazyEventAPIBase(const std::string& name, const std::string& desc,
+ const std::string& field);
+ virtual ~LazyEventAPIBase();
+
+ // Do not copy or move: once constructed, LazyEventAPIBase must stay
+ // put: we bind its instance pointer into a callback.
+ LazyEventAPIBase(const LazyEventAPIBase&) = delete;
+ LazyEventAPIBase(LazyEventAPIBase&&) = delete;
+ LazyEventAPIBase& operator=(const LazyEventAPIBase&) = delete;
+ LazyEventAPIBase& operator=(LazyEventAPIBase&&) = delete;
+
+ // capture add() calls we want to play back on LLEventAPI construction
+ template <typename... ARGS>
+ void add(const std::string& name, const std::string& desc, ARGS&&... rest)
+ {
+ // capture the metadata separately
+ mOperations.push_back(std::make_pair(name, desc));
+ // Use connect_extended() so the lambda is passed its own
+ // connection.
+
+ // apply() can't accept a template per se; it needs a particular
+ // specialization. Specialize out here to work around a clang bug:
+ // https://github.com/llvm/llvm-project/issues/41999
+ auto func{ &LazyEventAPIBase::add_trampoline
+ <const std::string&, const std::string&, ARGS...> };
+ // We can't bind an unexpanded parameter pack into a lambda --
+ // shame really. Instead, capture all our args as a std::tuple and
+ // then, in the lambda, use apply() to pass to add_trampoline().
+ auto args{ std::make_tuple(name, desc, std::forward<ARGS>(rest)...) };
+
+ mParams.init.connect_extended(
+ [func, args]
+ (const boost::signals2::connection& conn, LLEventAPI* instance)
+ {
+ // we only need this connection once
+ conn.disconnect();
+ // apply() expects a tuple specifying ALL the arguments,
+ // so prepend instance.
+ apply(func, std::tuple_cat(std::make_tuple(instance), args));
+ });
+ }
+
+ // The following queries mimic the LLEventAPI / LLEventDispatcher
+ // query API.
+
+ // Get the string name of the subject LLEventAPI
+ std::string getName() const { return mParams.name; }
+ // Get the documentation string
+ std::string getDesc() const { return mParams.desc; }
+ // Retrieve the LLSD key we use for dispatching
+ std::string getDispatchKey() const { return mParams.field; }
+
+ // operations
+ using NameDesc = std::pair<std::string, std::string>;
+
+ private:
+ // metadata that might be queried by LLLeapListener
+ std::vector<NameDesc> mOperations;
+
+ public:
+ using const_iterator = decltype(mOperations)::const_iterator;
+ const_iterator begin() const { return mOperations.begin(); }
+ const_iterator end() const { return mOperations.end(); }
+ LLSD getMetadata(const std::string& name) const;
+
+ protected:
+ // Params with which to instantiate the companion LLEventAPI subclass
+ LazyEventAPIParams mParams;
+
+ private:
+ // true if we successfully registered our LLEventAPI on construction
+ bool mRegistered;
+
+ // actually instantiate the companion LLEventAPI subclass
+ virtual LLEventPump* construct(const std::string& name) = 0;
+
+ // Passing an overloaded function to any function that accepts an
+ // arbitrary callable is a PITB because you have to specify the
+ // correct overload. What we want is for the compiler to select the
+ // correct overload, based on the carefully-wrought enable_ifs in
+ // LLEventDispatcher. This (one and only) add_trampoline() method
+ // exists solely to pass to LL::apply(). Once add_trampoline() is
+ // called with the expanded arguments, we hope the compiler will Do
+ // The Right Thing in selecting the correct LLEventAPI::add()
+ // overload.
+ template <typename... ARGS>
+ static
+ void add_trampoline(LLEventAPI* instance, ARGS&&... args)
+ {
+ instance->add(std::forward<ARGS>(args)...);
+ }
+ };
+
+ /**
+ * LazyEventAPI provides a way to register a particular LLEventAPI to be
+ * instantiated on demand, that is, when its name is passed to
+ * LLEventPumps::obtain().
+ *
+ * Derive your listener from LLEventAPI as usual, with its various
+ * operation methods, but code your constructor to accept
+ * <tt>(const LL::LazyEventAPIParams& params)</tt>
+ * and forward that reference to (the protected)
+ * <tt>LLEventAPI(const LL::LazyEventAPIParams&)</tt> constructor.
+ *
+ * Then derive your listener registrar from
+ * <tt>LazyEventAPI<your LLEventAPI subclass></tt>. The constructor should
+ * look very like a traditional LLEventAPI constructor:
+ *
+ * * pass (name, desc [, field]) to LazyEventAPI's constructor
+ * * in the body, make a series of add() calls referencing your LLEventAPI
+ * subclass methods.
+ *
+ * You may use any LLEventAPI::add() methods, that is, any
+ * LLEventDispatcher::add() methods. But the target methods you pass to
+ * add() must belong to your LLEventAPI subclass, not the LazyEventAPI
+ * subclass.
+ *
+ * Declare a static instance of your LazyEventAPI listener registrar
+ * class. When it's constructed at static initialization time, it will
+ * register your LLEventAPI subclass with LLEventPumps. It will also
+ * collect metadata for the LLEventAPI and its operations to provide to
+ * LLLeapListener's introspection queries.
+ *
+ * When someone later calls LLEventPumps::obtain() to post an event to
+ * your LLEventAPI subclass, obtain() will instantiate it using
+ * LazyEventAPI's name, desc, field and add() calls.
+ */
+ template <class EVENTAPI>
+ class LazyEventAPI: public LazyEventAPIBase
+ {
+ public:
+ // for subclass constructor to reference handler methods
+ using listener = EVENTAPI;
+
+ LazyEventAPI(const std::string& name, const std::string& desc,
+ const std::string& field="op"):
+ // Forward ctor params to LazyEventAPIBase
+ LazyEventAPIBase(name, desc, field)
+ {}
+
+ private:
+ LLEventPump* construct(const std::string& /*name*/) override
+ {
+ // base class has carefully assembled LazyEventAPIParams embedded
+ // in this instance, just pass to LLEventAPI subclass constructor
+ return new EVENTAPI(mParams);
+ }
+ };
+} // namespace LL
+
+#endif /* ! defined(LL_LAZYEVENTAPI_H) */
diff --git a/indra/llcommon/llapr.cpp b/indra/llcommon/llapr.cpp
index e49f72722b..575c524219 100644
--- a/indra/llcommon/llapr.cpp
+++ b/indra/llcommon/llapr.cpp
@@ -38,6 +38,12 @@ const S32 FULL_VOLATILE_APR_POOL = 1024 ; //number of references to LLVolatileAP
bool gAPRInitialized = false;
+int abortfunc(int retcode)
+{
+ LL_WARNS("APR") << "Allocation failure in apr pool with code " << (S32)retcode << LL_ENDL;
+ return 0;
+}
+
void ll_init_apr()
{
// Initialize APR and create the global pool
@@ -45,7 +51,7 @@ void ll_init_apr()
if (!gAPRPoolp)
{
- apr_pool_create(&gAPRPoolp, NULL);
+ apr_pool_create_ex(&gAPRPoolp, NULL, abortfunc, NULL);
}
if(!LLAPRFile::sAPRFilePoolp)
diff --git a/indra/llcommon/llcoros.cpp b/indra/llcommon/llcoros.cpp
index cfaf3415e7..3ab97b557f 100644
--- a/indra/llcommon/llcoros.cpp
+++ b/indra/llcommon/llcoros.cpp
@@ -278,6 +278,7 @@ std::string LLCoros::launch(const std::string& prefix, const callable_t& callabl
catch (std::bad_alloc&)
{
// Out of memory on stack allocation?
+ printActiveCoroutines();
LL_ERRS("LLCoros") << "Bad memory allocation in LLCoros::launch(" << prefix << ")!" << LL_ENDL;
}
diff --git a/indra/llcommon/lleventapi.cpp b/indra/llcommon/lleventapi.cpp
index ff5459c1eb..3d46ef1034 100644
--- a/indra/llcommon/lleventapi.cpp
+++ b/indra/llcommon/lleventapi.cpp
@@ -35,6 +35,7 @@
// external library headers
// other Linden headers
#include "llerror.h"
+#include "lazyeventapi.h"
LLEventAPI::LLEventAPI(const std::string& name, const std::string& desc, const std::string& field):
lbase(name, field),
@@ -43,6 +44,13 @@ LLEventAPI::LLEventAPI(const std::string& name, const std::string& desc, const s
{
}
+LLEventAPI::LLEventAPI(const LL::LazyEventAPIParams& params):
+ LLEventAPI(params.name, params.desc, params.field)
+{
+ // call initialization functions with our brand-new instance pointer
+ params.init(this);
+}
+
LLEventAPI::~LLEventAPI()
{
}
diff --git a/indra/llcommon/lleventapi.h b/indra/llcommon/lleventapi.h
index 5991fe8fd5..25f6becd8b 100644
--- a/indra/llcommon/lleventapi.h
+++ b/indra/llcommon/lleventapi.h
@@ -35,6 +35,11 @@
#include "llinstancetracker.h"
#include <string>
+namespace LL
+{
+ class LazyEventAPIParams;
+}
+
/**
* LLEventAPI not only provides operation dispatch functionality, inherited
* from LLDispatchListener -- it also gives us event API introspection.
@@ -65,19 +70,6 @@ public:
std::string getDesc() const { return mDesc; }
/**
- * Publish only selected add() methods from LLEventDispatcher.
- * Every LLEventAPI add() @em must have a description string.
- */
- template <typename CALLABLE>
- void add(const std::string& name,
- const std::string& desc,
- CALLABLE callable,
- const LLSD& required=LLSD())
- {
- LLEventDispatcher::add(name, desc, callable, required);
- }
-
- /**
* Instantiate a Response object in any LLEventAPI subclass method that
* wants to guarantee a reply (if requested) will be sent on exit from the
* method. The reply will be sent if request.has(@a replyKey), default
@@ -150,16 +142,20 @@ public:
* @endcode
*/
LLSD& operator[](const LLSD::String& key) { return mResp[key]; }
-
- /**
- * set the response to the given data
- */
- void setResponse(LLSD const & response){ mResp = response; }
+
+ /**
+ * set the response to the given data
+ */
+ void setResponse(LLSD const & response){ mResp = response; }
LLSD mResp, mReq;
LLSD::String mKey;
};
+protected:
+ // constructor used only by subclasses registered by LazyEventAPI
+ LLEventAPI(const LL::LazyEventAPIParams&);
+
private:
std::string mDesc;
};
diff --git a/indra/llcommon/lleventdispatcher.cpp b/indra/llcommon/lleventdispatcher.cpp
index cd0ab6bc29..da96de18f7 100644
--- a/indra/llcommon/lleventdispatcher.cpp
+++ b/indra/llcommon/lleventdispatcher.cpp
@@ -40,71 +40,13 @@
// other Linden headers
#include "llevents.h"
#include "llerror.h"
+#include "llexception.h"
#include "llsdutil.h"
#include "stringize.h"
+#include <iomanip> // std::quoted()
#include <memory> // std::auto_ptr
/*****************************************************************************
-* LLSDArgsSource
-*****************************************************************************/
-/**
- * Store an LLSD array, producing its elements one at a time. Die with LL_ERRS
- * if the consumer requests more elements than the array contains.
- */
-class LL_COMMON_API LLSDArgsSource
-{
-public:
- LLSDArgsSource(const std::string function, const LLSD& args);
- ~LLSDArgsSource();
-
- LLSD next();
-
- void done() const;
-
-private:
- std::string _function;
- LLSD _args;
- LLSD::Integer _index;
-};
-
-LLSDArgsSource::LLSDArgsSource(const std::string function, const LLSD& args):
- _function(function),
- _args(args),
- _index(0)
-{
- if (! (_args.isUndefined() || _args.isArray()))
- {
- LL_ERRS("LLSDArgsSource") << _function << " needs an args array instead of "
- << _args << LL_ENDL;
- }
-}
-
-LLSDArgsSource::~LLSDArgsSource()
-{
- done();
-}
-
-LLSD LLSDArgsSource::next()
-{
- if (_index >= _args.size())
- {
- LL_ERRS("LLSDArgsSource") << _function << " requires more arguments than the "
- << _args.size() << " provided: " << _args << LL_ENDL;
- }
- return _args[_index++];
-}
-
-void LLSDArgsSource::done() const
-{
- if (_index < _args.size())
- {
- LL_WARNS("LLSDArgsSource") << _function << " only consumed " << _index
- << " of the " << _args.size() << " arguments provided: "
- << _args << LL_ENDL;
- }
-}
-
-/*****************************************************************************
* LLSDArgsMapper
*****************************************************************************/
/**
@@ -156,19 +98,26 @@ void LLSDArgsSource::done() const
* - Holes are filled with the default values.
* - Any remaining holes constitute an error.
*/
-class LL_COMMON_API LLSDArgsMapper
+class LL_COMMON_API LLEventDispatcher::LLSDArgsMapper
{
public:
/// Accept description of function: function name, param names, param
/// default values
- LLSDArgsMapper(const std::string& function, const LLSD& names, const LLSD& defaults);
+ LLSDArgsMapper(LLEventDispatcher* parent, const std::string& function,
+ const LLSD& names, const LLSD& defaults);
- /// Given arguments map, return LLSD::Array of parameter values, or LL_ERRS.
+ /// Given arguments map, return LLSD::Array of parameter values, or
+ /// trigger error.
LLSD map(const LLSD& argsmap) const;
private:
static std::string formatlist(const LLSD&);
+ template <typename... ARGS>
+ [[noreturn]] void callFail(ARGS&&... args) const;
+ // store a plain dumb back-pointer because we don't have to manage the
+ // parent LLEventDispatcher's lifespan
+ LLEventDispatcher* _parent;
// The function-name string is purely descriptive. We want error messages
// to be able to indicate which function's LLSDArgsMapper has the problem.
std::string _function;
@@ -187,15 +136,18 @@ private:
FilledVector _has_dft;
};
-LLSDArgsMapper::LLSDArgsMapper(const std::string& function,
- const LLSD& names, const LLSD& defaults):
+LLEventDispatcher::LLSDArgsMapper::LLSDArgsMapper(LLEventDispatcher* parent,
+ const std::string& function,
+ const LLSD& names,
+ const LLSD& defaults):
+ _parent(parent),
_function(function),
_names(names),
_has_dft(names.size())
{
if (! (_names.isUndefined() || _names.isArray()))
{
- LL_ERRS("LLSDArgsMapper") << function << " names must be an array, not " << names << LL_ENDL;
+ callFail(" names must be an array, not ", names);
}
auto nparams(_names.size());
// From _names generate _indexes.
@@ -218,8 +170,7 @@ LLSDArgsMapper::LLSDArgsMapper(const std::string& function,
// defaults is a (possibly empty) array. Right-align it with names.
if (ndefaults > nparams)
{
- LL_ERRS("LLSDArgsMapper") << function << " names array " << names
- << " shorter than defaults array " << defaults << LL_ENDL;
+ callFail(" names array ", names, " shorter than defaults array ", defaults);
}
// Offset by which we slide defaults array right to right-align with
@@ -256,23 +207,20 @@ LLSDArgsMapper::LLSDArgsMapper(const std::string& function,
}
if (bogus.size())
{
- LL_ERRS("LLSDArgsMapper") << function << " defaults specified for nonexistent params "
- << formatlist(bogus) << LL_ENDL;
+ callFail(" defaults specified for nonexistent params ", formatlist(bogus));
}
}
else
{
- LL_ERRS("LLSDArgsMapper") << function << " defaults must be a map or an array, not "
- << defaults << LL_ENDL;
+ callFail(" defaults must be a map or an array, not ", defaults);
}
}
-LLSD LLSDArgsMapper::map(const LLSD& argsmap) const
+LLSD LLEventDispatcher::LLSDArgsMapper::map(const LLSD& argsmap) const
{
if (! (argsmap.isUndefined() || argsmap.isMap() || argsmap.isArray()))
{
- LL_ERRS("LLSDArgsMapper") << _function << " map() needs a map or array, not "
- << argsmap << LL_ENDL;
+ callFail(" map() needs a map or array, not ", argsmap);
}
// Initialize the args array. Indexing a non-const LLSD array grows it
// to appropriate size, but we don't want to resize this one on each
@@ -369,15 +317,14 @@ LLSD LLSDArgsMapper::map(const LLSD& argsmap) const
// by argsmap, that's a problem.
if (unfilled.size())
{
- LL_ERRS("LLSDArgsMapper") << _function << " missing required arguments "
- << formatlist(unfilled) << " from " << argsmap << LL_ENDL;
+ callFail(" missing required arguments ", formatlist(unfilled), " from ", argsmap);
}
// done
return args;
}
-std::string LLSDArgsMapper::formatlist(const LLSD& list)
+std::string LLEventDispatcher::LLSDArgsMapper::formatlist(const LLSD& list)
{
std::ostringstream out;
const char* delim = "";
@@ -390,23 +337,44 @@ std::string LLSDArgsMapper::formatlist(const LLSD& list)
return out.str();
}
-LLEventDispatcher::LLEventDispatcher(const std::string& desc, const std::string& key):
- mDesc(desc),
- mKey(key)
+template <typename... ARGS>
+[[noreturn]] void LLEventDispatcher::LLSDArgsMapper::callFail(ARGS&&... args) const
{
+ _parent->callFail<LLEventDispatcher::DispatchError>
+ (_function, std::forward<ARGS>(args)...);
}
+/*****************************************************************************
+* LLEventDispatcher
+*****************************************************************************/
+LLEventDispatcher::LLEventDispatcher(const std::string& desc, const std::string& key):
+ LLEventDispatcher(desc, key, "args")
+{}
+
+LLEventDispatcher::LLEventDispatcher(const std::string& desc, const std::string& key,
+ const std::string& argskey):
+ mDesc(desc),
+ mKey(key),
+ mArgskey(argskey)
+{}
+
LLEventDispatcher::~LLEventDispatcher()
{
}
+LLEventDispatcher::DispatchEntry::DispatchEntry(LLEventDispatcher* parent, const std::string& desc):
+ mParent(parent),
+ mDesc(desc)
+{}
+
/**
* DispatchEntry subclass used for callables accepting(const LLSD&)
*/
struct LLEventDispatcher::LLSDDispatchEntry: public LLEventDispatcher::DispatchEntry
{
- LLSDDispatchEntry(const std::string& desc, const Callable& func, const LLSD& required):
- DispatchEntry(desc),
+ LLSDDispatchEntry(LLEventDispatcher* parent, const std::string& desc,
+ const Callable& func, const LLSD& required):
+ DispatchEntry(parent, desc),
mFunc(func),
mRequired(required)
{}
@@ -414,22 +382,21 @@ struct LLEventDispatcher::LLSDDispatchEntry: public LLEventDispatcher::DispatchE
Callable mFunc;
LLSD mRequired;
- virtual void call(const std::string& desc, const LLSD& event) const
+ LLSD call(const std::string& desc, const LLSD& event, bool, const std::string&) const override
{
// Validate the syntax of the event itself.
std::string mismatch(llsd_matches(mRequired, event));
if (! mismatch.empty())
{
- LL_ERRS("LLEventDispatcher") << desc << ": bad request: " << mismatch << LL_ENDL;
+ callFail(desc, ": bad request: ", mismatch);
}
// Event syntax looks good, go for it!
- mFunc(event);
+ return mFunc(event);
}
- virtual LLSD addMetadata(LLSD meta) const
+ LLSD getMetadata() const override
{
- meta["required"] = mRequired;
- return meta;
+ return llsd::map("required", mRequired);
}
};
@@ -439,17 +406,27 @@ struct LLEventDispatcher::LLSDDispatchEntry: public LLEventDispatcher::DispatchE
*/
struct LLEventDispatcher::ParamsDispatchEntry: public LLEventDispatcher::DispatchEntry
{
- ParamsDispatchEntry(const std::string& desc, const invoker_function& func):
- DispatchEntry(desc),
+ ParamsDispatchEntry(LLEventDispatcher* parent, const std::string& name,
+ const std::string& desc, const invoker_function& func):
+ DispatchEntry(parent, desc),
+ mName(name),
mInvoker(func)
{}
+ std::string mName;
invoker_function mInvoker;
- virtual void call(const std::string& desc, const LLSD& event) const
+ LLSD call(const std::string&, const LLSD& event, bool, const std::string&) const override
{
- LLSDArgsSource src(desc, event);
- mInvoker(boost::bind(&LLSDArgsSource::next, boost::ref(src)));
+ try
+ {
+ return mInvoker(event);
+ }
+ catch (const LL::apply_error& err)
+ {
+ // could hit runtime errors with LL::apply()
+ callFail(err.what());
+ }
}
};
@@ -459,23 +436,62 @@ struct LLEventDispatcher::ParamsDispatchEntry: public LLEventDispatcher::Dispatc
*/
struct LLEventDispatcher::ArrayParamsDispatchEntry: public LLEventDispatcher::ParamsDispatchEntry
{
- ArrayParamsDispatchEntry(const std::string& desc, const invoker_function& func,
+ ArrayParamsDispatchEntry(LLEventDispatcher* parent, const std::string& name,
+ const std::string& desc, const invoker_function& func,
LLSD::Integer arity):
- ParamsDispatchEntry(desc, func),
+ ParamsDispatchEntry(parent, name, desc, func),
mArity(arity)
{}
LLSD::Integer mArity;
- virtual LLSD addMetadata(LLSD meta) const
+ LLSD call(const std::string& desc, const LLSD& event, bool fromMap, const std::string& argskey) const override
+ {
+// std::string context { stringize(desc, "(", event, ") with argskey ", std::quoted(argskey), ": ") };
+ // Whether we try to extract arguments from 'event' depends on whether
+ // the LLEventDispatcher consumer called one of the (name, event)
+ // methods (! fromMap) or one of the (event) methods (fromMap). If we
+ // were called with (name, event), the passed event must itself be
+ // suitable to pass to the registered callable, no args extraction
+ // required or even attempted. Only if called with plain (event) do we
+ // consider extracting args from that event. Initially assume 'event'
+ // itself contains the arguments.
+ LLSD args{ event };
+ if (fromMap)
+ {
+ if (! mArity)
+ {
+ // When the target function is nullary, and we're called from
+ // an (event) method, just ignore the rest of the map entries.
+ args.clear();
+ }
+ else
+ {
+ // We only require/retrieve argskey if the target function
+ // isn't nullary. For all others, since we require an LLSD
+ // array, we must have an argskey.
+ if (argskey.empty())
+ {
+ callFail("LLEventDispatcher has no args key");
+ }
+ if ((! event.has(argskey)))
+ {
+ callFail("missing required key ", std::quoted(argskey));
+ }
+ args = event[argskey];
+ }
+ }
+ return ParamsDispatchEntry::call(desc, args, fromMap, argskey);
+ }
+
+ LLSD getMetadata() const override
{
LLSD array(LLSD::emptyArray());
// Resize to number of arguments required
if (mArity)
array[mArity - 1] = LLSD();
llassert_always(array.size() == mArity);
- meta["required"] = array;
- return meta;
+ return llsd::map("required", array);
}
};
@@ -485,11 +501,11 @@ struct LLEventDispatcher::ArrayParamsDispatchEntry: public LLEventDispatcher::Pa
*/
struct LLEventDispatcher::MapParamsDispatchEntry: public LLEventDispatcher::ParamsDispatchEntry
{
- MapParamsDispatchEntry(const std::string& name, const std::string& desc,
- const invoker_function& func,
+ MapParamsDispatchEntry(LLEventDispatcher* parent, const std::string& name,
+ const std::string& desc, const invoker_function& func,
const LLSD& params, const LLSD& defaults):
- ParamsDispatchEntry(desc, func),
- mMapper(name, params, defaults),
+ ParamsDispatchEntry(parent, name, desc, func),
+ mMapper(parent, name, params, defaults),
mRequired(LLSD::emptyMap())
{
// Build the set of all param keys, then delete the ones that are
@@ -532,18 +548,27 @@ struct LLEventDispatcher::MapParamsDispatchEntry: public LLEventDispatcher::Para
LLSD mRequired;
LLSD mOptional;
- virtual void call(const std::string& desc, const LLSD& event) const
+ LLSD call(const std::string& desc, const LLSD& event, bool fromMap, const std::string& argskey) const override
{
- // Just convert from LLSD::Map to LLSD::Array using mMapper, then pass
- // to base-class call() method.
- ParamsDispatchEntry::call(desc, mMapper.map(event));
+ // by default, pass the whole event as the arguments map
+ LLSD args{ event };
+ // Were we called by one of the (event) methods (instead of the (name,
+ // event) methods), do we have an argskey, and does the incoming event
+ // have that key?
+ if (fromMap && (! argskey.empty()) && event.has(argskey))
+ {
+ // if so, extract the value of argskey from the incoming event,
+ // and use that as the arguments map
+ args = event[argskey];
+ }
+ // Now convert args from LLSD map to LLSD array using mMapper, then
+ // pass to base-class call() method.
+ return ParamsDispatchEntry::call(desc, mMapper.map(args), fromMap, argskey);
}
- virtual LLSD addMetadata(LLSD meta) const
+ LLSD getMetadata() const override
{
- meta["required"] = mRequired;
- meta["optional"] = mOptional;
- return meta;
+ return llsd::map("required", mRequired, "optional", mOptional);
}
};
@@ -552,9 +577,9 @@ void LLEventDispatcher::addArrayParamsDispatchEntry(const std::string& name,
const invoker_function& invoker,
LLSD::Integer arity)
{
- mDispatch.insert(
- DispatchMap::value_type(name, DispatchMap::mapped_type(
- new ArrayParamsDispatchEntry(desc, invoker, arity))));
+ mDispatch.emplace(
+ name,
+ new ArrayParamsDispatchEntry(this, "", desc, invoker, arity));
}
void LLEventDispatcher::addMapParamsDispatchEntry(const std::string& name,
@@ -563,25 +588,25 @@ void LLEventDispatcher::addMapParamsDispatchEntry(const std::string& name,
const LLSD& params,
const LLSD& defaults)
{
- mDispatch.insert(
- DispatchMap::value_type(name, DispatchMap::mapped_type(
- new MapParamsDispatchEntry(name, desc, invoker, params, defaults))));
+ // Pass instance info as well as this entry name for error messages.
+ mDispatch.emplace(
+ name,
+ new MapParamsDispatchEntry(this, "", desc, invoker, params, defaults));
}
/// Register a callable by name
-void LLEventDispatcher::add(const std::string& name, const std::string& desc,
- const Callable& callable, const LLSD& required)
+void LLEventDispatcher::addLLSD(const std::string& name, const std::string& desc,
+ const Callable& callable, const LLSD& required)
{
- mDispatch.insert(
- DispatchMap::value_type(name, DispatchMap::mapped_type(
- new LLSDDispatchEntry(desc, callable, required))));
+ mDispatch.emplace(name, new LLSDDispatchEntry(this, desc, callable, required));
}
-void LLEventDispatcher::addFail(const std::string& name, const std::string& classname) const
+void LLEventDispatcher::addFail(const std::string& name, const char* classname) const
{
LL_ERRS("LLEventDispatcher") << "LLEventDispatcher(" << mDesc << ")::add(" << name
- << "): " << classname << " is not a subclass "
- << "of LLEventDispatcher" << LL_ENDL;
+ << "): " << LLError::Log::demangle(classname)
+ << " is not a subclass of LLEventDispatcher"
+ << LL_ENDL;
}
/// Unregister a callable
@@ -596,48 +621,105 @@ bool LLEventDispatcher::remove(const std::string& name)
return true;
}
-/// Call a registered callable with an explicitly-specified name. If no
-/// such callable exists, die with LL_ERRS.
-void LLEventDispatcher::operator()(const std::string& name, const LLSD& event) const
+/// Call a registered callable with an explicitly-specified name. It is an
+/// error if no such callable exists.
+LLSD LLEventDispatcher::operator()(const std::string& name, const LLSD& event) const
{
- if (! try_call(name, event))
- {
- LL_ERRS("LLEventDispatcher") << "LLEventDispatcher(" << mDesc << "): '" << name
- << "' not found" << LL_ENDL;
- }
+ return try_call(std::string(), name, event);
}
-/// Extract the @a key value from the incoming @a event, and call the
-/// callable whose name is specified by that map @a key. If no such
-/// callable exists, die with LL_ERRS.
-void LLEventDispatcher::operator()(const LLSD& event) const
+bool LLEventDispatcher::try_call(const std::string& name, const LLSD& event) const
{
- // This could/should be implemented in terms of the two-arg overload.
- // However -- we can produce a more informative error message.
- std::string name(event[mKey]);
- if (! try_call(name, event))
+ try
{
- LL_ERRS("LLEventDispatcher") << "LLEventDispatcher(" << mDesc << "): bad " << mKey
- << " value '" << name << "'" << LL_ENDL;
+ try_call(std::string(), name, event);
+ return true;
+ }
+ // Note that we don't catch the generic DispatchError, only the specific
+ // DispatchMissing. try_call() only promises to return false if the
+ // specified callable name isn't found -- not for general errors.
+ catch (const DispatchMissing&)
+ {
+ return false;
}
}
+/// Extract the @a key value from the incoming @a event, and call the callable
+/// whose name is specified by that map @a key. It is an error if no such
+/// callable exists.
+LLSD LLEventDispatcher::operator()(const LLSD& event) const
+{
+ return try_call(mKey, event[mKey], event);
+}
+
bool LLEventDispatcher::try_call(const LLSD& event) const
{
- return try_call(event[mKey], event);
+ try
+ {
+ try_call(mKey, event[mKey], event);
+ return true;
+ }
+ catch (const DispatchMissing&)
+ {
+ return false;
+ }
}
-bool LLEventDispatcher::try_call(const std::string& name, const LLSD& event) const
+LLSD LLEventDispatcher::try_call(const std::string& key, const std::string& name,
+ const LLSD& event) const
{
+ if (name.empty())
+ {
+ if (key.empty())
+ {
+ callFail<DispatchError>("attempting to call with no name");
+ }
+ else
+ {
+ callFail<DispatchError>("no ", key);
+ }
+ }
+
DispatchMap::const_iterator found = mDispatch.find(name);
if (found == mDispatch.end())
{
- return false;
+ // Here we were passed a non-empty name, but there's no registered
+ // callable with that name. This is the one case in which we throw
+ // DispatchMissing instead of the generic DispatchError.
+ // Distinguish the public method by which our caller reached here:
+ // key.empty() means the name was passed explicitly, non-empty means
+ // we extracted the name from the incoming event using that key.
+ if (key.empty())
+ {
+ callFail<DispatchMissing>(std::quoted(name), " not found");
+ }
+ else
+ {
+ callFail<DispatchMissing>("bad ", key, " value ", std::quoted(name));
+ }
}
+
// Found the name, so it's plausible to even attempt the call.
- found->second->call(STRINGIZE("LLEventDispatcher(" << mDesc << ") calling '" << name << "'"),
- event);
- return true; // tell caller we were able to call
+ const char* delim = (key.empty()? "" : "=");
+ // append either "[key=name]" or just "[name]"
+ SetState transient(this, '[', key, delim, name, ']');
+ return found->second->call("", event, (! key.empty()), mArgskey);
+}
+
+template <typename EXCEPTION, typename... ARGS>
+//static
+[[noreturn]] void LLEventDispatcher::sCallFail(ARGS&&... args)
+{
+ auto error = stringize(std::forward<ARGS>(args)...);
+ LL_WARNS("LLEventDispatcher") << error << LL_ENDL;
+ LLTHROW(EXCEPTION(error));
+}
+
+template <typename EXCEPTION, typename... ARGS>
+[[noreturn]] void LLEventDispatcher::callFail(ARGS&&... args) const
+{
+ // Describe this instance in addition to the error itself.
+ sCallFail<EXCEPTION>(*this, ": ", std::forward<ARGS>(args)...);
}
LLSD LLEventDispatcher::getMetadata(const std::string& name) const
@@ -647,26 +729,243 @@ LLSD LLEventDispatcher::getMetadata(const std::string& name) const
{
return LLSD();
}
- LLSD meta;
+ LLSD meta{ found->second->getMetadata() };
meta["name"] = name;
meta["desc"] = found->second->mDesc;
- return found->second->addMetadata(meta);
+ return meta;
+}
+
+std::ostream& operator<<(std::ostream& out, const LLEventDispatcher& self)
+{
+ // If we're a subclass of LLEventDispatcher, e.g. LLEventAPI, report that.
+ // Also report whatever transient state is active.
+ return out << LLError::Log::classname(self) << '(' << self.mDesc << ')'
+ << self.getState();
}
-LLDispatchListener::LLDispatchListener(const std::string& pumpname, const std::string& key):
- LLEventDispatcher(pumpname, key),
- mPump(pumpname, true), // allow tweaking for uniqueness
- mBoundListener(mPump.listen("self", boost::bind(&LLDispatchListener::process, this, _1)))
+std::string LLEventDispatcher::getState() const
{
+ // default value of fiber_specific_ptr is nullptr, and ~SetState() reverts
+ // to that; infer empty string
+ if (! mState.get())
+ return {};
+ else
+ return *mState;
}
-bool LLDispatchListener::process(const LLSD& event)
+bool LLEventDispatcher::setState(SetState&, const std::string& state) const
{
- (*this)(event);
+ // If SetState is instantiated at multiple levels of function call, ignore
+ // the lower-level call because the outer call presumably provides more
+ // context.
+ if (mState.get())
+ return false;
+
+ // Pass us empty string (a la ~SetState()) to reset to nullptr, else take
+ // a heap copy of the passed state string so we can delete it on
+ // subsequent reset().
+ mState.reset(state.empty()? nullptr : new std::string(state));
+ return true;
+}
+
+/*****************************************************************************
+* LLDispatchListener
+*****************************************************************************/
+std::string LLDispatchListener::mReplyKey{ "reply" };
+
+bool LLDispatchListener::process(const LLSD& event) const
+{
+ // Decide what to do based on the incoming value of the specified dispatch
+ // key.
+ LLSD name{ event[getDispatchKey()] };
+ if (name.isMap())
+ {
+ call_map(name, event);
+ }
+ else if (name.isArray())
+ {
+ call_array(name, event);
+ }
+ else
+ {
+ call_one(name, event);
+ }
return false;
}
-LLEventDispatcher::DispatchEntry::DispatchEntry(const std::string& desc):
- mDesc(desc)
-{}
+void LLDispatchListener::call_one(const LLSD& name, const LLSD& event) const
+{
+ LLSD result;
+ try
+ {
+ result = (*this)(event);
+ }
+ catch (const DispatchError& err)
+ {
+ if (! event.has(mReplyKey))
+ {
+ // Without a reply key, let the exception propagate.
+ throw;
+ }
+
+ // Here there was an error and the incoming event has mReplyKey. Reply
+ // with a map containing an "error" key explaining the problem.
+ return reply(llsd::map("error", err.what()), event);
+ }
+ // We seem to have gotten a valid result. But we don't know whether the
+ // registered callable is void or non-void. If it's void,
+ // LLEventDispatcher returned isUndefined(). Otherwise, try to send it
+ // back to our invoker.
+ if (result.isDefined())
+ {
+ if (! result.isMap())
+ {
+ // wrap the result in a map as the "data" key
+ result = llsd::map("data", result);
+ }
+ reply(result, event);
+ }
+}
+
+void LLDispatchListener::call_map(const LLSD& reqmap, const LLSD& event) const
+{
+ // LLSD map containing returned values
+ LLSD result;
+ // cache dispatch key
+ std::string key{ getDispatchKey() };
+ // collect any error messages here
+ std::ostringstream errors;
+ const char* delim = "";
+
+ for (const auto& pair : llsd::inMap(reqmap))
+ {
+ const LLSD::String& name{ pair.first };
+ const LLSD& args{ pair.second };
+ try
+ {
+ // in case of errors, tell user the dispatch key, the fact that
+ // we're processing a request map and the current key in that map
+ SetState(this, '[', key, '[', name, "]]");
+ // With this form, capture return value even if undefined:
+ // presence of the key in the response map can be used to detect
+ // which request keys succeeded.
+ result[name] = (*this)(name, args);
+ }
+ catch (const std::exception& err)
+ {
+ // Catch not only DispatchError, but any C++ exception thrown by
+ // the target callable. Collect exception name and message in
+ // 'errors'.
+ errors << delim << LLError::Log::classname(err) << ": " << err.what();
+ delim = "\n";
+ }
+ }
+
+ // so, were there any errors?
+ std::string error = errors.str();
+ if (! error.empty())
+ {
+ if (! event.has(mReplyKey))
+ {
+ // can't send reply, throw
+ sCallFail<DispatchError>(error);
+ }
+ else
+ {
+ // reply key present
+ result["error"] = error;
+ }
+ }
+
+ reply(result, event);
+}
+
+void LLDispatchListener::call_array(const LLSD& reqarray, const LLSD& event) const
+{
+ // LLSD array containing returned values
+ LLSD results;
+ // cache the dispatch key
+ std::string key{ getDispatchKey() };
+ // arguments array, if present -- const because, if it's shorter than
+ // reqarray, we don't want to grow it
+ const LLSD argsarray{ event[getArgsKey()] };
+ // error message, if any
+ std::string error;
+
+ // classic index loop because we need the index
+ for (size_t i = 0, size = reqarray.size(); i < size; ++i)
+ {
+ const auto& reqentry{ reqarray[i] };
+ std::string name;
+ LLSD args;
+ if (reqentry.isString())
+ {
+ name = reqentry.asString();
+ args = argsarray[i];
+ }
+ else if (reqentry.isArray() && reqentry.size() == 2 && reqentry[0].isString())
+ {
+ name = reqentry[0].asString();
+ args = reqentry[1];
+ }
+ else
+ {
+ // reqentry isn't in either of the documented forms
+ error = stringize(*this, ": ", getDispatchKey(), '[', i, "] ",
+ reqentry, " unsupported");
+ break;
+ }
+
+ // reqentry is one of the valid forms, got name and args
+ try
+ {
+ // in case of errors, tell user the dispatch key, the fact that
+ // we're processing a request array, the current entry in that
+ // array and the corresponding callable name
+ SetState(this, '[', key, '[', i, "]=", name, ']');
+ // With this form, capture return value even if undefined
+ results.append((*this)(name, args));
+ }
+ catch (const std::exception& err)
+ {
+ // Catch not only DispatchError, but any C++ exception thrown by
+ // the target callable. Report the exception class as well as the
+ // error string.
+ error = stringize(LLError::Log::classname(err), ": ", err.what());
+ break;
+ }
+ }
+
+ LLSD result;
+ // was there an error?
+ if (! error.empty())
+ {
+ if (! event.has(mReplyKey))
+ {
+ // can't send reply, throw
+ sCallFail<DispatchError>(error);
+ }
+ else
+ {
+ // reply key present
+ result["error"] = error;
+ }
+ }
+
+ // wrap the results array as response map "data" key, as promised
+ if (results.isDefined())
+ {
+ result["data"] = results;
+ }
+
+ reply(result, event);
+}
+
+void LLDispatchListener::reply(const LLSD& reply, const LLSD& request) const
+{
+ // Call sendReply() unconditionally: sendReply() itself tests whether the
+ // specified reply key is present in the incoming request, and does
+ // nothing if there's no such key.
+ sendReply(reply, request, mReplyKey);
+}
diff --git a/indra/llcommon/lleventdispatcher.h b/indra/llcommon/lleventdispatcher.h
index 9e1244ef5b..a82bc7a69b 100644
--- a/indra/llcommon/lleventdispatcher.h
+++ b/indra/llcommon/lleventdispatcher.h
@@ -27,55 +27,26 @@
*
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
- *
- * The invoker machinery that constructs a boost::fusion argument list for use
- * with boost::fusion::invoke() is derived from
- * http://www.boost.org/doc/libs/1_45_0/libs/function_types/example/interpreter.hpp
- * whose license information is copied below:
- *
- * "(C) Copyright Tobias Schwinger
- *
- * Use modification and distribution are subject to the boost Software License,
- * Version 1.0. (See http://www.boost.org/LICENSE_1_0.txt)."
*/
#if ! defined(LL_LLEVENTDISPATCHER_H)
#define LL_LLEVENTDISPATCHER_H
-// nil is too generic a term to be allowed to be a global macro. In
-// particular, boost::fusion defines a 'class nil' (properly encapsulated in a
-// namespace) that a global 'nil' macro breaks badly.
-#if defined(nil)
-// Capture the value of the macro 'nil', hoping int is an appropriate type.
-static const auto nil_(nil);
-// Now forget the macro.
-#undef nil
-// Finally, reintroduce 'nil' as a properly-scoped alias for the previously-
-// defined const 'nil_'. Make it static since otherwise it produces duplicate-
-// symbol link errors later.
-static const auto& nil(nil_);
-#endif
-
-#include <string>
-#include <boost/shared_ptr.hpp>
-#include <boost/function.hpp>
-#include <boost/bind.hpp>
-#include <boost/iterator/transform_iterator.hpp>
-#include <boost/utility/enable_if.hpp>
+#include <boost/fiber/fss.hpp>
+#include <boost/function_types/is_member_function_pointer.hpp>
#include <boost/function_types/is_nonmember_callable_builtin.hpp>
-#include <boost/function_types/parameter_types.hpp>
-#include <boost/function_types/function_arity.hpp>
-#include <boost/type_traits/remove_cv.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-#include <boost/fusion/include/push_back.hpp>
-#include <boost/fusion/include/cons.hpp>
-#include <boost/fusion/include/invoke.hpp>
-#include <boost/mpl/begin.hpp>
-#include <boost/mpl/end.hpp>
-#include <boost/mpl/next.hpp>
-#include <boost/mpl/deref.hpp>
+#include <boost/hof/is_invocable.hpp> // until C++17, when we get std::is_invocable
+#include <boost/iterator/transform_iterator.hpp>
+#include <functional> // std::function
+#include <memory> // std::unique_ptr
+#include <string>
#include <typeinfo>
+#include <type_traits>
+#include <utility> // std::pair
+#include "always_return.h"
+#include "function_types.h" // LL::function_arity
#include "llevents.h"
+#include "llptrto.h"
#include "llsdutil.h"
class LLSD;
@@ -89,15 +60,27 @@ class LLSD;
class LL_COMMON_API LLEventDispatcher
{
public:
+ /**
+ * Pass description and the LLSD key used by try_call(const LLSD&) and
+ * operator()(const LLSD&) to extract the name of the registered callable
+ * to invoke.
+ */
LLEventDispatcher(const std::string& desc, const std::string& key);
+ /**
+ * Pass description, the LLSD key used by try_call(const LLSD&) and
+ * operator()(const LLSD&) to extract the name of the registered callable
+ * to invoke, and the LLSD key used by try_call(const LLSD&) and
+ * operator()(const LLSD&) to extract arguments LLSD.
+ */
+ LLEventDispatcher(const std::string& desc, const std::string& key,
+ const std::string& argskey);
virtual ~LLEventDispatcher();
/// @name Register functions accepting(const LLSD&)
//@{
- /// Accept any C++ callable with the right signature, typically a
- /// boost::bind() expression
- typedef boost::function<void(const LLSD&)> Callable;
+ /// Accept any C++ callable with the right signature
+ typedef std::function<LLSD(const LLSD&)> Callable;
/**
* Register a @a callable by @a name. The passed @a callable accepts a
@@ -109,27 +92,54 @@ public:
void add(const std::string& name,
const std::string& desc,
const Callable& callable,
- const LLSD& required=LLSD());
+ const LLSD& required=LLSD())
+ {
+ addLLSD(name, desc, callable, required);
+ }
- /**
- * The case of a free function (or static method) accepting(const LLSD&)
- * could also be intercepted by the arbitrary-args overload below. Ensure
- * that it's directed to the Callable overload above instead.
- */
+ template <typename CALLABLE,
+ typename=typename std::enable_if<
+ boost::hof::is_invocable<CALLABLE, LLSD>::value
+ >::type>
void add(const std::string& name,
const std::string& desc,
- void (*f)(const LLSD&),
+ CALLABLE&& callable,
const LLSD& required=LLSD())
{
- add(name, desc, Callable(f), required);
+ addLLSD(
+ name,
+ desc,
+ Callable(LL::make_always_return<LLSD>(std::forward<CALLABLE>(callable))),
+ required);
}
/**
* Special case: a subclass of this class can pass an unbound member
* function pointer (of an LLEventDispatcher subclass) without explicitly
- * specifying the <tt>boost::bind()</tt> expression. The passed @a method
+ * specifying a <tt>std::bind()</tt> expression. The passed @a method
* accepts a single LLSD value, presumably containing other parameters.
*/
+ template <typename R, class CLASS>
+ void add(const std::string& name,
+ const std::string& desc,
+ R (CLASS::*method)(const LLSD&),
+ const LLSD& required=LLSD())
+ {
+ addMethod<CLASS>(name, desc, method, required);
+ }
+
+ /// Overload for both const and non-const methods. The passed @a method
+ /// accepts a single LLSD value, presumably containing other parameters.
+ template <typename R, class CLASS>
+ void add(const std::string& name,
+ const std::string& desc,
+ R (CLASS::*method)(const LLSD&) const,
+ const LLSD& required=LLSD())
+ {
+ addMethod<CLASS>(name, desc, method, required);
+ }
+
+ // because the compiler can't match a method returning void to the above
template <class CLASS>
void add(const std::string& name,
const std::string& desc,
@@ -150,6 +160,128 @@ public:
addMethod<CLASS>(name, desc, method, required);
}
+ // non-const nullary method
+ template <typename R, class CLASS>
+ void add(const std::string& name,
+ const std::string& desc,
+ R (CLASS::*method)())
+ {
+ addVMethod<CLASS>(name, desc, method);
+ }
+
+ // const nullary method
+ template <typename R, class CLASS>
+ void add(const std::string& name,
+ const std::string& desc,
+ R (CLASS::*method)() const)
+ {
+ addVMethod<CLASS>(name, desc, method);
+ }
+
+ // non-const nullary method returning void
+ template <class CLASS>
+ void add(const std::string& name,
+ const std::string& desc,
+ void (CLASS::*method)())
+ {
+ addVMethod<CLASS>(name, desc, method);
+ }
+
+ // const nullary method returning void
+ template <class CLASS>
+ void add(const std::string& name,
+ const std::string& desc,
+ void (CLASS::*method)() const)
+ {
+ addVMethod<CLASS>(name, desc, method);
+ }
+
+ // non-const unary method (but method accepting LLSD should use the other add())
+ // enable_if usage per https://stackoverflow.com/a/39913395/5533635
+ template <typename R, class CLASS, typename ARG,
+ typename = typename std::enable_if<
+ ! std::is_same<typename std::decay<ARG>::type, LLSD>::value
+ >::type>
+ void add(const std::string& name,
+ const std::string& desc,
+ R (CLASS::*method)(ARG))
+ {
+ addVMethod<CLASS>(name, desc, method);
+ }
+
+ // const unary method (but method accepting LLSD should use the other add())
+ template <typename R, class CLASS, typename ARG,
+ typename = typename std::enable_if<
+ ! std::is_same<typename std::decay<ARG>::type, LLSD>::value
+ >::type>
+ void add(const std::string& name,
+ const std::string& desc,
+ R (CLASS::*method)(ARG) const)
+ {
+ addVMethod<CLASS>(name, desc, method);
+ }
+
+ // non-const unary method returning void
+ // enable_if usage per https://stackoverflow.com/a/39913395/5533635
+ template <class CLASS, typename ARG,
+ typename = typename std::enable_if<
+ ! std::is_same<typename std::decay<ARG>::type, LLSD>::value
+ >::type>
+ void add(const std::string& name,
+ const std::string& desc,
+ void (CLASS::*method)(ARG))
+ {
+ addVMethod<CLASS>(name, desc, method);
+ }
+
+ // const unary method returning void
+ template <class CLASS, typename ARG,
+ typename = typename std::enable_if<
+ ! std::is_same<typename std::decay<ARG>::type, LLSD>::value
+ >::type>
+ void add(const std::string& name,
+ const std::string& desc,
+ void (CLASS::*method)(ARG) const)
+ {
+ addVMethod<CLASS>(name, desc, method);
+ }
+
+ // non-const binary (or more) method
+ template <typename R, class CLASS, typename ARG0, typename ARG1, typename... ARGS>
+ void add(const std::string& name,
+ const std::string& desc,
+ R (CLASS::*method)(ARG0, ARG1, ARGS...))
+ {
+ addVMethod<CLASS>(name, desc, method);
+ }
+
+ // const binary (or more) method
+ template <typename R, class CLASS, typename ARG0, typename ARG1, typename... ARGS>
+ void add(const std::string& name,
+ const std::string& desc,
+ R (CLASS::*method)(ARG0, ARG1, ARGS...) const)
+ {
+ addVMethod<CLASS>(name, desc, method);
+ }
+
+ // non-const binary (or more) method returning void
+ template <class CLASS, typename ARG0, typename ARG1, typename... ARGS>
+ void add(const std::string& name,
+ const std::string& desc,
+ void (CLASS::*method)(ARG0, ARG1, ARGS...))
+ {
+ addVMethod<CLASS>(name, desc, method);
+ }
+
+ // const binary (or more) method returning void
+ template <class CLASS, typename ARG0, typename ARG1, typename... ARGS>
+ void add(const std::string& name,
+ const std::string& desc,
+ void (CLASS::*method)(ARG0, ARG1, ARGS...) const)
+ {
+ addVMethod<CLASS>(name, desc, method);
+ }
+
//@}
/// @name Register functions with arbitrary param lists
@@ -159,51 +291,43 @@ public:
* Register a free function with arbitrary parameters. (This also works
* for static class methods.)
*
- * @note This supports functions with up to about 6 parameters -- after
- * that you start getting dismaying compile errors in which
- * boost::fusion::joint_view is mentioned a surprising number of times.
- *
* When calling this name, pass an LLSD::Array. Each entry in turn will be
* converted to the corresponding parameter type using LLSDParam.
*/
- template<typename Function>
- typename boost::enable_if< boost::function_types::is_nonmember_callable_builtin<Function>
- >::type add(const std::string& name,
- const std::string& desc,
- Function f);
+ template <typename CALLABLE,
+ typename=typename std::enable_if<
+ ! boost::hof::is_invocable<CALLABLE, LLSD>()
+ >::type>
+ void add(const std::string& name,
+ const std::string& desc,
+ CALLABLE&& f)
+ {
+ addV(name, desc, f);
+ }
/**
* Register a nonstatic class method with arbitrary parameters.
*
- * @note This supports functions with up to about 6 parameters -- after
- * that you start getting dismaying compile errors in which
- * boost::fusion::joint_view is mentioned a surprising number of times.
- *
* To cover cases such as a method on an LLSingleton we don't yet want to
* instantiate, instead of directly storing an instance pointer, accept a
* nullary callable returning a pointer/reference to the desired class
- * instance. If you already have an instance in hand,
- * boost::lambda::var(instance) or boost::lambda::constant(instance_ptr)
- * produce suitable callables.
+ * instance.
*
* When calling this name, pass an LLSD::Array. Each entry in turn will be
* converted to the corresponding parameter type using LLSDParam.
*/
- template<typename Method, typename InstanceGetter>
- typename boost::enable_if< boost::function_types::is_member_function_pointer<Method>
- >::type add(const std::string& name,
- const std::string& desc,
- Method f,
- const InstanceGetter& getter);
+ template<typename Method, typename InstanceGetter,
+ typename = typename std::enable_if<
+ boost::function_types::is_member_function_pointer<Method>::value &&
+ ! std::is_convertible<InstanceGetter, LLSD>::value
+ >::type>
+ void add(const std::string& name, const std::string& desc, Method f,
+ const InstanceGetter& getter);
/**
* Register a free function with arbitrary parameters. (This also works
* for static class methods.)
*
- * @note This supports functions with up to about 6 parameters -- after
- * that you start getting dismaying compile errors in which
- * boost::fusion::joint_view is mentioned a surprising number of times.
- *
* Pass an LLSD::Array of parameter names, and optionally another
* LLSD::Array of default parameter values, a la LLSDArgsMapper.
*
@@ -211,21 +335,17 @@ public:
* an LLSD::Array using LLSDArgsMapper and then convert each entry in turn
* to the corresponding parameter type using LLSDParam.
*/
- template<typename Function>
- typename boost::enable_if< boost::function_types::is_nonmember_callable_builtin<Function>
- >::type add(const std::string& name,
- const std::string& desc,
- Function f,
- const LLSD& params,
- const LLSD& defaults=LLSD());
+ template<typename Function,
+ typename = typename std::enable_if<
+ boost::function_types::is_nonmember_callable_builtin<Function>::value &&
+ ! boost::hof::is_invocable<Function, LLSD>::value
+ >::type>
+ void add(const std::string& name, const std::string& desc, Function f,
+ const LLSD& params, const LLSD& defaults=LLSD());
/**
* Register a nonstatic class method with arbitrary parameters.
*
- * @note This supports functions with up to about 6 parameters -- after
- * that you start getting dismaying compile errors in which
- * boost::fusion::joint_view is mentioned a surprising number of times.
- *
* To cover cases such as a method on an LLSingleton we don't yet want to
* instantiate, instead of directly storing an instance pointer, accept a
* nullary callable returning a pointer/reference to the desired class
@@ -233,6 +353,8 @@ public:
* boost::lambda::var(instance) or boost::lambda::constant(instance_ptr)
* produce suitable callables.
*
+ * TODO: variant accepting a method of the containing class, no getter.
+ *
* Pass an LLSD::Array of parameter names, and optionally another
* LLSD::Array of default parameter values, a la LLSDArgsMapper.
*
@@ -240,42 +362,96 @@ public:
* an LLSD::Array using LLSDArgsMapper and then convert each entry in turn
* to the corresponding parameter type using LLSDParam.
*/
- template<typename Method, typename InstanceGetter>
- typename boost::enable_if< boost::function_types::is_member_function_pointer<Method>
- >::type add(const std::string& name,
- const std::string& desc,
- Method f,
- const InstanceGetter& getter,
- const LLSD& params,
- const LLSD& defaults=LLSD());
+ template<typename Method, typename InstanceGetter,
+ typename = typename std::enable_if<
+ boost::function_types::is_member_function_pointer<Method>::value &&
+ ! std::is_convertible<InstanceGetter, LLSD>::value
+ >::type>
+ void add(const std::string& name, const std::string& desc, Method f,
+ const InstanceGetter& getter, const LLSD& params,
+ const LLSD& defaults=LLSD());
//@}
/// Unregister a callable
bool remove(const std::string& name);
- /// Call a registered callable with an explicitly-specified name. If no
- /// such callable exists, die with LL_ERRS. If the @a event fails to match
- /// the @a required prototype specified at add() time, die with LL_ERRS.
- void operator()(const std::string& name, const LLSD& event) const;
+ /// Exception if an attempted call fails for any reason
+ struct DispatchError: public LLException
+ {
+ DispatchError(const std::string& what): LLException(what) {}
+ };
+
+ /// Specific exception for an attempt to call a nonexistent name
+ struct DispatchMissing: public DispatchError
+ {
+ DispatchMissing(const std::string& what): DispatchError(what) {}
+ };
+
+ /**
+ * Call a registered callable with an explicitly-specified name,
+ * converting its return value to LLSD (undefined for a void callable).
+ * It is an error if no such callable exists. It is an error if the @a
+ * event fails to match the @a required prototype specified at add()
+ * time.
+ *
+ * @a event must be an LLSD array for a callable registered to accept its
+ * arguments from such an array. It must be an LLSD map for a callable
+ * registered to accept its arguments from such a map.
+ */
+ LLSD operator()(const std::string& name, const LLSD& event) const;
- /// Call a registered callable with an explicitly-specified name and
- /// return <tt>true</tt>. If no such callable exists, return
- /// <tt>false</tt>. If the @a event fails to match the @a required
- /// prototype specified at add() time, die with LL_ERRS.
+ /**
+ * Call a registered callable with an explicitly-specified name and
+ * return <tt>true</tt>. If no such callable exists, return
+ * <tt>false</tt>. It is an error if the @a event fails to match the @a
+ * required prototype specified at add() time.
+ *
+ * @a event must be an LLSD array for a callable registered to accept its
+ * arguments from such an array. It must be an LLSD map for a callable
+ * registered to accept its arguments from such a map.
+ */
bool try_call(const std::string& name, const LLSD& event) const;
- /// Extract the @a key value from the incoming @a event, and call the
- /// callable whose name is specified by that map @a key. If no such
- /// callable exists, die with LL_ERRS. If the @a event fails to match the
- /// @a required prototype specified at add() time, die with LL_ERRS.
- void operator()(const LLSD& event) const;
-
- /// Extract the @a key value from the incoming @a event, call the callable
- /// whose name is specified by that map @a key and return <tt>true</tt>.
- /// If no such callable exists, return <tt>false</tt>. If the @a event
- /// fails to match the @a required prototype specified at add() time, die
- /// with LL_ERRS.
+ /**
+ * Extract the @a key specified to our constructor from the incoming LLSD
+ * map @a event, and call the callable whose name is specified by that @a
+ * key's value, converting its return value to LLSD (undefined for a void
+ * callable). It is an error if no such callable exists. It is an error if
+ * the @a event fails to match the @a required prototype specified at
+ * add() time.
+ *
+ * For a (non-nullary) callable registered to accept its arguments from an
+ * LLSD array, the @a event map must contain the key @a argskey specified to
+ * our constructor. The value of the @a argskey key must be an LLSD array
+ * containing the arguments to pass to the callable named by @a key.
+ *
+ * For a callable registered to accept its arguments from an LLSD map, if
+ * the @a event map contains the key @a argskey specified our constructor,
+ * extract the value of the @a argskey key and use it as the arguments map.
+ * If @a event contains no @a argskey key, use the whole @a event as the
+ * arguments map.
+ */
+ LLSD operator()(const LLSD& event) const;
+
+ /**
+ * Extract the @a key specified to our constructor from the incoming LLSD
+ * map @a event, call the callable whose name is specified by that @a
+ * key's value and return <tt>true</tt>. If no such callable exists,
+ * return <tt>false</tt>. It is an error if the @a event fails to match
+ * the @a required prototype specified at add() time.
+ *
+ * For a (non-nullary) callable registered to accept its arguments from an
+ * LLSD array, the @a event map must contain the key @a argskey specified to
+ * our constructor. The value of the @a argskey key must be an LLSD array
+ * containing the arguments to pass to the callable named by @a key.
+ *
+ * For a callable registered to accept its arguments from an LLSD map, if
+ * the @a event map contains the key @a argskey specified our constructor,
+ * extract the value of the @a argskey key and use it as the arguments map.
+ * If @a event contains no @a argskey key, use the whole @a event as the
+ * arguments map.
+ */
bool try_call(const LLSD& event) const;
/// @name Iterate over defined names
@@ -285,22 +461,26 @@ public:
private:
struct DispatchEntry
{
- DispatchEntry(const std::string& desc);
+ DispatchEntry(LLEventDispatcher* parent, const std::string& desc);
virtual ~DispatchEntry() {} // suppress MSVC warning, sigh
+ // store a plain dumb back-pointer because the parent
+ // LLEventDispatcher manages the lifespan of each DispatchEntry
+ // subclass instance -- not the other way around
+ LLEventDispatcher* mParent;
std::string mDesc;
- virtual void call(const std::string& desc, const LLSD& event) const = 0;
- virtual LLSD addMetadata(LLSD) const = 0;
+ virtual LLSD call(const std::string& desc, const LLSD& event,
+ bool fromMap, const std::string& argskey) const = 0;
+ virtual LLSD getMetadata() const = 0;
+
+ template <typename... ARGS>
+ [[noreturn]] void callFail(ARGS&&... args) const
+ {
+ mParent->callFail<LLEventDispatcher::DispatchError>(std::forward<ARGS>(args)...);
+ }
};
- // Tried using boost::ptr_map<std::string, DispatchEntry>, but ptr_map<>
- // wants its value type to be "clonable," even just to dereference an
- // iterator. I don't want to clone entries -- if I have to copy an entry
- // around, I want it to continue pointing to the same DispatchEntry
- // subclass object. However, I definitely want DispatchMap to destroy
- // DispatchEntry if no references are outstanding at the time an entry is
- // removed. This looks like a job for boost::shared_ptr.
- typedef std::map<std::string, boost::shared_ptr<DispatchEntry> > DispatchMap;
+ typedef std::map<std::string, std::unique_ptr<DispatchEntry> > DispatchMap;
public:
/// We want the flexibility to redefine what data we store per name,
@@ -323,12 +503,58 @@ public:
/// Retrieve the LLSD key we use for one-arg <tt>operator()</tt> method
std::string getDispatchKey() const { return mKey; }
+ /// Retrieve the LLSD key we use for non-map arguments
+ std::string getArgsKey() const { return mArgskey; }
+
+ /// description of this instance's leaf class and description
+ friend std::ostream& operator<<(std::ostream&, const LLEventDispatcher&);
private:
- template <class CLASS, typename METHOD>
+ void addLLSD(const std::string& name,
+ const std::string& desc,
+ const Callable& callable,
+ const LLSD& required);
+
+ template <class CLASS, typename METHOD,
+ typename std::enable_if<
+ std::is_base_of<LLEventDispatcher, CLASS>::value,
+ bool
+ >::type=true>
void addMethod(const std::string& name, const std::string& desc,
const METHOD& method, const LLSD& required)
{
+ // Why two overloaded addMethod() methods, discriminated with
+ // std::is_base_of? It might seem simpler to use dynamic_cast and test
+ // for nullptr. The trouble is that it doesn't work for LazyEventAPI
+ // deferred registration: we get nullptr even for a method of an
+ // LLEventAPI subclass.
+ CLASS* downcast = static_cast<CLASS*>(this);
+ add(name,
+ desc,
+ Callable(LL::make_always_return<LLSD>(
+ [downcast, method]
+ (const LLSD& args)
+ {
+ return (downcast->*method)(args);
+ })),
+ required);
+ }
+
+ template <class CLASS, typename METHOD,
+ typename std::enable_if<
+ ! std::is_base_of<LLEventDispatcher, CLASS>::value,
+ bool
+ >::type=true>
+ void addMethod(const std::string& name, const std::string& desc,
+ const METHOD&, const LLSD&)
+ {
+ addFail(name, typeid(CLASS).name());
+ }
+
+ template <class CLASS, typename METHOD>
+ void addVMethod(const std::string& name, const std::string& desc,
+ const METHOD& method)
+ {
CLASS* downcast = dynamic_cast<CLASS*>(this);
if (! downcast)
{
@@ -336,38 +562,85 @@ private:
}
else
{
- add(name, desc, boost::bind(method, downcast, _1), required);
+ // add() arbitrary method plus InstanceGetter, where the
+ // InstanceGetter in this case returns 'this'. We don't need to
+ // worry about binding 'this' because, once this LLEventDispatcher
+ // is destroyed, the DispatchEntry goes away too.
+ add(name, desc, method, [downcast](){ return downcast; });
}
}
- void addFail(const std::string& name, const std::string& classname) const;
- std::string mDesc, mKey;
+ template <typename Function>
+ void addV(const std::string& name, const std::string& desc, Function f);
+
+ void addFail(const std::string& name, const char* classname) const;
+ LLSD try_call(const std::string& key, const std::string& name,
+ const LLSD& event) const;
+
+protected:
+ // raise specified EXCEPTION with specified stringize(ARGS)
+ template <typename EXCEPTION, typename... ARGS>
+ [[noreturn]] void callFail(ARGS&&... args) const;
+ template <typename EXCEPTION, typename... ARGS>
+ [[noreturn]] static
+ void sCallFail(ARGS&&... args);
+
+ // Manage transient state, e.g. which registered callable we're attempting
+ // to call, for error reporting
+ class SetState
+ {
+ public:
+ template <typename... ARGS>
+ SetState(const LLEventDispatcher* self, ARGS&&... args):
+ mSelf(self)
+ {
+ mSet = mSelf->setState(*this, stringize(std::forward<ARGS>(args)...));
+ }
+ // RAII class: forbid both copy and move
+ SetState(const SetState&) = delete;
+ SetState(SetState&&) = delete;
+ SetState& operator=(const SetState&) = delete;
+ SetState& operator=(SetState&&) = delete;
+ virtual ~SetState()
+ {
+ // if we're the ones who succeeded in setting state, clear it
+ if (mSet)
+ {
+ mSelf->setState(*this, {});
+ }
+ }
+
+ private:
+ const LLEventDispatcher* mSelf;
+ bool mSet;
+ };
+
+private:
+ std::string mDesc, mKey, mArgskey;
DispatchMap mDispatch;
+ // transient state: must be fiber_specific since multiple threads and/or
+ // multiple fibers may be calling concurrently. Make it mutable so we can
+ // use SetState even within const methods.
+ mutable boost::fibers::fiber_specific_ptr<std::string> mState;
+
+ std::string getState() const;
+ // setState() requires SetState& because only the SetState class should
+ // call it. Make it const so we can use SetState even within const methods.
+ bool setState(SetState&, const std::string& state) const;
static NameDesc makeNameDesc(const DispatchMap::value_type& item)
{
return NameDesc(item.first, item.second->mDesc);
}
+ class LLSDArgsMapper;
struct LLSDDispatchEntry;
struct ParamsDispatchEntry;
struct ArrayParamsDispatchEntry;
struct MapParamsDispatchEntry;
- // Step 2 of parameter analysis. Instantiating invoker<some_function_type>
- // implicitly sets its From and To parameters to the (compile time) begin
- // and end iterators over that function's parameter types.
- template< typename Function
- , class From = typename boost::mpl::begin< boost::function_types::parameter_types<Function> >::type
- , class To = typename boost::mpl::end< boost::function_types::parameter_types<Function> >::type
- >
- struct invoker;
-
- // deliver LLSD arguments one at a time
- typedef boost::function<LLSD()> args_source;
- // obtain args from an args_source to build param list and call target
- // function
- typedef boost::function<void(const args_source&)> invoker_function;
+ // call target function with args from LLSD array
+ typedef std::function<LLSD(const LLSD&)> invoker_function;
template <typename Function>
invoker_function make_invoker(Function f);
@@ -387,101 +660,38 @@ private:
/*****************************************************************************
* LLEventDispatcher template implementation details
*****************************************************************************/
-// Step 3 of parameter analysis, the recursive case.
-template<typename Function, class From, class To>
-struct LLEventDispatcher::invoker
-{
- template<typename T>
- struct remove_cv_ref
- : boost::remove_cv< typename boost::remove_reference<T>::type >
- { };
-
- // apply() accepts an arbitrary boost::fusion sequence as args. It
- // examines the next parameter type in the parameter-types sequence
- // bounded by From and To, obtains the next LLSD object from the passed
- // args_source and constructs an LLSDParam of appropriate type to try
- // to convert the value. It then recurs with the next parameter-types
- // iterator, passing the args sequence thus far.
- template<typename Args>
- static inline
- void apply(Function func, const args_source& argsrc, Args const & args)
- {
- typedef typename boost::mpl::deref<From>::type arg_type;
- typedef typename boost::mpl::next<From>::type next_iter_type;
- typedef typename remove_cv_ref<arg_type>::type plain_arg_type;
-
- invoker<Function, next_iter_type, To>::apply
- ( func, argsrc, boost::fusion::push_back(args, LLSDParam<plain_arg_type>(argsrc())));
- }
-
- // Special treatment for instance (first) parameter of a non-static member
- // function. Accept the instance-getter callable, calling that to produce
- // the first args value. Since we know we're at the top of the recursion
- // chain, we need not also require a partial args sequence from our caller.
- template <typename InstanceGetter>
- static inline
- void method_apply(Function func, const args_source& argsrc, const InstanceGetter& getter)
- {
- typedef typename boost::mpl::next<From>::type next_iter_type;
-
- // Instead of grabbing the first item from argsrc and making an
- // LLSDParam of it, call getter() and pass that as the instance param.
- invoker<Function, next_iter_type, To>::apply
- ( func, argsrc, boost::fusion::push_back(boost::fusion::nil(), boost::ref(getter())));
- }
-};
-
-// Step 4 of parameter analysis, the leaf case. When the general
-// invoker<Function, From, To> logic has advanced From until it matches To,
-// the compiler will pick this template specialization.
-template<typename Function, class To>
-struct LLEventDispatcher::invoker<Function,To,To>
-{
- // the argument list is complete, now call the function
- template<typename Args>
- static inline
- void apply(Function func, const args_source&, Args const & args)
- {
- boost::fusion::invoke(func, args);
- }
-};
-
-template<typename Function>
-typename boost::enable_if< boost::function_types::is_nonmember_callable_builtin<Function> >::type
-LLEventDispatcher::add(const std::string& name, const std::string& desc, Function f)
+template <typename Function>
+void LLEventDispatcher::addV(const std::string& name, const std::string& desc, Function f)
{
- // Construct an invoker_function, a callable accepting const args_source&.
+ // Construct an invoker_function, a callable accepting const LLSD&.
// Add to DispatchMap an ArrayParamsDispatchEntry that will handle the
// caller's LLSD::Array.
addArrayParamsDispatchEntry(name, desc, make_invoker(f),
- boost::function_types::function_arity<Function>::value);
+ LL::function_arity<Function>::value);
}
-template<typename Method, typename InstanceGetter>
-typename boost::enable_if< boost::function_types::is_member_function_pointer<Method> >::type
-LLEventDispatcher::add(const std::string& name, const std::string& desc, Method f,
- const InstanceGetter& getter)
+template<typename Method, typename InstanceGetter, typename>
+void LLEventDispatcher::add(const std::string& name, const std::string& desc, Method f,
+ const InstanceGetter& getter)
{
// Subtract 1 from the compile-time arity because the getter takes care of
// the first parameter. We only need (arity - 1) additional arguments.
addArrayParamsDispatchEntry(name, desc, make_invoker(f, getter),
- boost::function_types::function_arity<Method>::value - 1);
+ LL::function_arity<Method>::value - 1);
}
-template<typename Function>
-typename boost::enable_if< boost::function_types::is_nonmember_callable_builtin<Function> >::type
-LLEventDispatcher::add(const std::string& name, const std::string& desc, Function f,
- const LLSD& params, const LLSD& defaults)
+template<typename Function, typename>
+void LLEventDispatcher::add(const std::string& name, const std::string& desc, Function f,
+ const LLSD& params, const LLSD& defaults)
{
// See comments for previous is_nonmember_callable_builtin add().
addMapParamsDispatchEntry(name, desc, make_invoker(f), params, defaults);
}
-template<typename Method, typename InstanceGetter>
-typename boost::enable_if< boost::function_types::is_member_function_pointer<Method> >::type
-LLEventDispatcher::add(const std::string& name, const std::string& desc, Method f,
- const InstanceGetter& getter,
- const LLSD& params, const LLSD& defaults)
+template<typename Method, typename InstanceGetter, typename>
+void LLEventDispatcher::add(const std::string& name, const std::string& desc, Method f,
+ const InstanceGetter& getter,
+ const LLSD& params, const LLSD& defaults)
{
addMapParamsDispatchEntry(name, desc, make_invoker(f, getter), params, defaults);
}
@@ -490,29 +700,45 @@ template <typename Function>
LLEventDispatcher::invoker_function
LLEventDispatcher::make_invoker(Function f)
{
- // Step 1 of parameter analysis, the top of the recursion. Passing a
- // suitable f (see add()'s enable_if condition) to this method causes it
- // to infer the function type; specifying that function type to invoker<>
- // causes it to fill in the begin/end MPL iterators over the function's
- // list of parameter types.
- // While normally invoker::apply() could infer its template type from the
- // boost::fusion::nil parameter value, here we must be explicit since
- // we're boost::bind()ing it rather than calling it directly.
- return boost::bind(&invoker<Function>::template apply<boost::fusion::nil>,
- f,
- _1,
- boost::fusion::nil());
+ // Return an invoker_function that accepts (const LLSD& args).
+ return [f](const LLSD& args)
+ {
+ // When called, call always_return<LLSD>, directing it to call
+ // f(expanded args). always_return<LLSD> guarantees we'll get an LLSD
+ // value back, even if it's undefined because 'f' doesn't return a
+ // type convertible to LLSD.
+ return LL::always_return<LLSD>(
+ [f, args]
+ ()
+ {
+ return LL::apply(f, args);
+ });
+ };
}
template <typename Method, typename InstanceGetter>
LLEventDispatcher::invoker_function
LLEventDispatcher::make_invoker(Method f, const InstanceGetter& getter)
{
- // Use invoker::method_apply() to treat the instance (first) arg specially.
- return boost::bind(&invoker<Method>::template method_apply<InstanceGetter>,
- f,
- _1,
- getter);
+ return [f, getter](const LLSD& args)
+ {
+ // always_return<LLSD>() immediately calls the lambda we pass, and
+ // returns LLSD whether our passed lambda returns void or non-void.
+ return LL::always_return<LLSD>(
+ [f, getter, args]
+ ()
+ {
+ // function_arity<member function> includes its implicit 'this' pointer
+ constexpr auto arity = LL::function_arity<
+ typename std::remove_reference<Method>::type>::value - 1;
+
+ // Use bind_front() to bind the method to (a pointer to) the object
+ // returned by getter(). It's okay to capture and bind a pointer
+ // because this bind_front() object will last only as long as this
+ // lambda call.
+ return LL::apply_n<arity>(LL::bind_front(f, LL::get_ptr(getter())), args);
+ });
+ };
}
/*****************************************************************************
@@ -521,21 +747,138 @@ LLEventDispatcher::make_invoker(Method f, const InstanceGetter& getter)
/**
* Bundle an LLEventPump and a listener with an LLEventDispatcher. A class
* that contains (or derives from) LLDispatchListener need only specify the
- * LLEventPump name and dispatch key, and add() its methods. Incoming events
- * will automatically be dispatched.
+ * LLEventPump name and dispatch key, and add() its methods. Each incoming
+ * event ("request") will automatically be dispatched.
+ *
+ * If the request contains a "reply" key specifying the LLSD::String name of
+ * an LLEventPump to which to respond, LLDispatchListener will attempt to send
+ * a response to that LLEventPump.
+ *
+ * If some error occurs (e.g. nonexistent callable name, wrong params) and
+ * "reply" is present, LLDispatchListener will send a response map to the
+ * specified LLEventPump containing an "error" key whose value is the relevant
+ * error message. If "reply" is not present, the DispatchError exception will
+ * propagate. Since LLDispatchListener bundles an LLEventStream, which
+ * attempts the call immediately on receiving the post() call, there's a
+ * reasonable chance that the exception will highlight the post() call that
+ * triggered the error.
+ *
+ * If LLDispatchListener successfully calls the target callable, but no
+ * "reply" key is present, any value returned by that callable is discarded.
+ * If a "reply" key is present, but the target callable is void -- or it
+ * returns LLSD::isUndefined() -- no response is sent. If a void callable
+ * wants to send a response, it must do so explicitly.
+ *
+ * If the target callable returns a type convertible to LLSD (and, if it
+ * directly returns LLSD, the return value isDefined()), and if a "reply" key
+ * is present in the request, LLDispatchListener will post the returned value
+ * to the "reply" LLEventPump. If the returned value is an LLSD map, it will
+ * merge the echoed "reqid" key into the map and send that. Otherwise, it will
+ * send an LLSD map containing "reqid" and a "data" key whose value is the
+ * value returned by the target callable.
+ *
+ * (It is inadvisable for a target callable to return an LLSD map containing
+ * keys "data", "reqid" or "error", as that will confuse the invoker.)
+ *
+ * Normally the request will specify the value of the dispatch key as an
+ * LLSD::String naming the target callable. Alternatively, several such calls
+ * may be "batched" as described below.
+ *
+ * If the value of the dispatch key is itself an LLSD map (a "request map"),
+ * each map key must name a target callable, and the value of that key must
+ * contain the parameters to pass to that callable. If a "reply" key is
+ * present in the request, the response map will contain a key for each of the
+ * keys in the request map. The value of every such key is the value returned
+ * by the target callable.
+ *
+ * (Avoid naming any target callable in the LLDispatchListener "data", "reqid"
+ * or "error" to avoid confusion.)
+ *
+ * Since LLDispatchListener calls the target callables specified by a request
+ * map in arbitrary order, this form assumes that the batched operations are
+ * independent of each other. LLDispatchListener will attempt every call, even
+ * if some attempts produce errors. If any keys in the request map produce
+ * errors, LLDispatchListener builds a composite error message string
+ * collecting the relevant messages. The corresponding keys will be missing
+ * from the response map. As in the single-callable case, absent a "reply" key
+ * in the request, this error message will be thrown as a DispatchError. With
+ * a "reply" key, it will be returned as the value of the "error" key. This
+ * form can indicate partial success: some request keys might have
+ * return-value keys in the response, others might have message text in the
+ * "error" key.
+ *
+ * If a specific call sequence is required, the value of the dispatch key may
+ * instead be an LLSD array (a "request array"). Each entry in the request
+ * array ("request entry") names a target callable, to be called in
+ * array-index sequence. Arguments for that callable may be specified in
+ * either of two ways.
+ *
+ * The request entry may itself be a two-element array, whose [0] is an
+ * LLSD::String naming the target callable and whose [1] contains the
+ * arguments to pass to that callable.
+ *
+ * Alternatively, the request entry may be an LLSD::String naming the target
+ * callable, in which case the request must contain an arguments key (optional
+ * third constructor argument) whose value is an array matching the request
+ * array. The arguments for the request entry's target callable are found at
+ * the same index in the arguments key array.
+ *
+ * If a "reply" key is present in the request, the response map will contain a
+ * "data" key whose value is an array. Each entry in that response array will
+ * contain the result from the corresponding request entry.
+ *
+ * This form assumes that any of the batched operations might depend on the
+ * success of a previous operation in the same batch. The @emph first error
+ * encountered will terminate the sequence. The error message might either be
+ * thrown as DispatchError or, given a "reply" key, returned as the "error"
+ * key in the response map. This form can indicate partial success: the first
+ * few request entries might have return-value entries in the "data" response
+ * array, along with an "error" key whose value is the error message that
+ * stopped the sequence.
*/
-class LL_COMMON_API LLDispatchListener: public LLEventDispatcher
+// Instead of containing an LLEventStream, LLDispatchListener derives from it.
+// This allows an LLEventPumps::PumpFactory to return a pointer to an
+// LLDispatchListener (subclass) instance, and still have ~LLEventPumps()
+// properly clean it up.
+class LL_COMMON_API LLDispatchListener:
+ public LLEventDispatcher,
+ public LLEventStream
{
public:
- LLDispatchListener(const std::string& pumpname, const std::string& key);
-
- std::string getPumpName() const { return mPump.getName(); }
+ /// LLEventPump name, dispatch key [, arguments key (see LLEventDispatcher)]
+ template <typename... ARGS>
+ LLDispatchListener(const std::string& pumpname, const std::string& key,
+ ARGS&&... args);
+ virtual ~LLDispatchListener() {}
private:
- bool process(const LLSD& event);
+ bool process(const LLSD& event) const;
+ void call_one(const LLSD& name, const LLSD& event) const;
+ void call_map(const LLSD& reqmap, const LLSD& event) const;
+ void call_array(const LLSD& reqarray, const LLSD& event) const;
+ void reply(const LLSD& reply, const LLSD& request) const;
- LLEventStream mPump;
LLTempBoundListener mBoundListener;
+ static std::string mReplyKey;
};
+template <typename... ARGS>
+LLDispatchListener::LLDispatchListener(const std::string& pumpname, const std::string& key,
+ ARGS&&... args):
+ // pass through any additional arguments to LLEventDispatcher ctor
+ LLEventDispatcher(pumpname, key, std::forward<ARGS>(args)...),
+ // Do NOT tweak the passed pumpname. In practice, when someone
+ // instantiates a subclass of our LLEventAPI subclass, they intend to
+ // claim that LLEventPump name in the global LLEventPumps namespace. It
+ // would be mysterious and distressing if we allowed name tweaking, and
+ // someone else claimed pumpname first for a completely unrelated
+ // LLEventPump. Posted events would never reach our subclass listener
+ // because we would have silently changed its name; meanwhile listeners
+ // (if any) on that other LLEventPump would be confused by the events
+ // intended for our subclass.
+ LLEventStream(pumpname, false),
+ mBoundListener(listen("self", [this](const LLSD& event){ return process(event); }))
+{
+}
+
#endif /* ! defined(LL_LLEVENTDISPATCHER_H) */
diff --git a/indra/llcommon/lleventfilter.h b/indra/llcommon/lleventfilter.h
index 7613850fb2..1fb41e0297 100644
--- a/indra/llcommon/lleventfilter.h
+++ b/indra/llcommon/lleventfilter.h
@@ -435,16 +435,61 @@ public:
// generic type-appropriate store through mTarget, construct an
// LLSDParam<T> and store that, thus engaging LLSDParam's custom
// conversions.
- mTarget = LLSDParam<T>(llsd::drill(event, mPath));
+ storeTarget(LLSDParam<T>(llsd::drill(event, mPath)));
return mConsume;
}
private:
+ // This method disambiguates LLStoreListener<LLSD>. Directly assigning
+ // some_LLSD_var = LLSDParam<LLSD>(some_LLSD_value);
+ // is problematic because the compiler has too many choices: LLSD has
+ // multiple assignment operator overloads, and LLSDParam<LLSD> has a
+ // templated conversion operator. But LLSDParam<LLSD> can convert to a
+ // (const LLSD&) parameter, and LLSD::operator=(const LLSD&) works.
+ void storeTarget(const T& value)
+ {
+ mTarget = value;
+ }
+
T& mTarget;
const LLSD mPath;
const bool mConsume;
};
+/**
+ * LLVarHolder bundles a target variable of the specified type. We use it as a
+ * base class so the target variable will be fully constructed by the time a
+ * subclass constructor tries to pass a reference to some other base class.
+ */
+template <typename T>
+struct LLVarHolder
+{
+ T mVar;
+};
+
+/**
+ * LLCaptureListener isa LLStoreListener that bundles the target variable of
+ * interest.
+ */
+template <typename T>
+class LLCaptureListener: public LLVarHolder<T>,
+ public LLStoreListener<T>
+{
+private:
+ using holder = LLVarHolder<T>;
+ using super = LLStoreListener<T>;
+
+public:
+ LLCaptureListener(const LLSD& path=LLSD(), bool consume=false):
+ super(*this, holder::mVar, path, consume)
+ {}
+
+ void set(T&& newval=T()) { holder::mVar = std::forward<T>(newval); }
+
+ const T& get() const { return holder::mVar; }
+ operator const T&() { return holder::mVar; }
+};
+
/*****************************************************************************
* LLEventLogProxy
*****************************************************************************/
diff --git a/indra/llcommon/llevents.cpp b/indra/llcommon/llevents.cpp
index 0a213bddef..1a305ec3dc 100644
--- a/indra/llcommon/llevents.cpp
+++ b/indra/llcommon/llevents.cpp
@@ -68,19 +68,78 @@
LLEventPumps::LLEventPumps():
mFactories
{
- { "LLEventStream", [](const std::string& name, bool tweak)
+ { "LLEventStream", [](const std::string& name, bool tweak, const std::string& /*type*/)
{ return new LLEventStream(name, tweak); } },
- { "LLEventMailDrop", [](const std::string& name, bool tweak)
+ { "LLEventMailDrop", [](const std::string& name, bool tweak, const std::string& /*type*/)
{ return new LLEventMailDrop(name, tweak); } }
},
mTypes
{
- // LLEventStream is the default for obtain(), so even if somebody DOES
- // call obtain("placeholder"), this sample entry won't break anything.
- { "placeholder", "LLEventStream" }
+// { "placeholder", "LLEventStream" }
}
{}
+bool LLEventPumps::registerTypeFactory(const std::string& type, const TypeFactory& factory)
+{
+ auto found = mFactories.find(type);
+ // can't re-register a TypeFactory for a type name that's already registered
+ if (found != mFactories.end())
+ return false;
+ // doesn't already exist, go ahead and register
+ mFactories[type] = factory;
+ return true;
+}
+
+void LLEventPumps::unregisterTypeFactory(const std::string& type)
+{
+ auto found = mFactories.find(type);
+ if (found != mFactories.end())
+ mFactories.erase(found);
+}
+
+bool LLEventPumps::registerPumpFactory(const std::string& name, const PumpFactory& factory)
+{
+ // Do we already have a pump by this name?
+ if (mPumpMap.find(name) != mPumpMap.end())
+ return false;
+ // Do we already have an override for this pump name?
+ if (mTypes.find(name) != mTypes.end())
+ return false;
+ // Leverage the two-level lookup implemented by mTypes (pump name -> type
+ // name) and mFactories (type name -> factory). We could instead create a
+ // whole separate (pump name -> factory) map, and look in both; or we
+ // could change mTypes to (pump name -> factory) and, for typical type-
+ // based lookups, use a "factory" that looks up the real factory in
+ // mFactories. But this works, and we don't expect many calls to make() -
+ // either explicit or implicit via obtain().
+ // Create a bogus type name extremely unlikely to collide with an actual type.
+ static std::string nul(1, '\0');
+ std::string type_name{ nul + name };
+ mTypes[name] = type_name;
+ // TypeFactory is called with (name, tweak, type), whereas PumpFactory
+ // accepts only name. We could adapt with std::bind(), but this lambda
+ // does the trick.
+ mFactories[type_name] =
+ [factory]
+ (const std::string& name, bool /*tweak*/, const std::string& /*type*/)
+ { return factory(name); };
+ return true;
+}
+
+void LLEventPumps::unregisterPumpFactory(const std::string& name)
+{
+ auto tfound = mTypes.find(name);
+ if (tfound != mTypes.end())
+ {
+ auto ffound = mFactories.find(tfound->second);
+ if (ffound != mFactories.end())
+ {
+ mFactories.erase(ffound);
+ }
+ mTypes.erase(tfound);
+ }
+}
+
LLEventPump& LLEventPumps::obtain(const std::string& name)
{
PumpMap::iterator found = mPumpMap.find(name);
@@ -114,7 +173,7 @@ LLEventPump& LLEventPumps::make(const std::string& name, bool tweak,
// Passing an unrecognized type name is a no-no
LLTHROW(BadType(type));
}
- auto newInstance = (found->second)(name, tweak);
+ auto newInstance = (found->second)(name, tweak, type);
// LLEventPump's constructor implicitly registers each new instance in
// mPumpMap. But remember that we instantiated it (in mOurPumps) so we'll
// delete it later.
diff --git a/indra/llcommon/llevents.h b/indra/llcommon/llevents.h
index ae6e5aabc9..c1dbf4392f 100644
--- a/indra/llcommon/llevents.h
+++ b/indra/llcommon/llevents.h
@@ -268,6 +268,45 @@ public:
LLEventPump& make(const std::string& name, bool tweak=false,
const std::string& type=std::string());
+ /// function passed to registerTypeFactory()
+ typedef std::function<LLEventPump*(const std::string& name, bool tweak, const std::string& type)> TypeFactory;
+
+ /**
+ * Register a TypeFactory for use with make(). When make() is called with
+ * the specified @a type string, call @a factory(name, tweak, type) to
+ * instantiate it.
+ *
+ * Returns true if successfully registered, false if there already exists
+ * a TypeFactory for the specified @a type name.
+ */
+ bool registerTypeFactory(const std::string& type, const TypeFactory& factory);
+ void unregisterTypeFactory(const std::string& type);
+
+ /// function passed to registerPumpFactory()
+ typedef std::function<LLEventPump*(const std::string&)> PumpFactory;
+
+ /**
+ * Register a PumpFactory for use with obtain(). When obtain() is called
+ * with the specified @a name string, if an LLEventPump with the specified
+ * @a name doesn't already exist, call @a factory(name) to instantiate it.
+ *
+ * Returns true if successfully registered, false if there already exists
+ * a factory override for the specified @a name.
+ *
+ * PumpFactory does not support @a tweak because it's only called when
+ * <i>that particular</i> @a name is passed to obtain(). Bear in mind that
+ * <tt>obtain(name)</tt> might still bypass the caller's PumpFactory for a
+ * couple different reasons:
+ *
+ * * registerPumpFactory() returns false because there's already a factory
+ * override for the specified @name
+ * * between a successful <tt>registerPumpFactory(name)</tt> call (returns
+ * true) and a call to <tt>obtain(name)</tt>, someone explicitly
+ * instantiated an LLEventPump(name), so obtain(name) returned that.
+ */
+ bool registerPumpFactory(const std::string& name, const PumpFactory& factory);
+ void unregisterPumpFactory(const std::string& name);
+
/**
* Find the named LLEventPump instance. If it exists post the message to it.
* If the pump does not exist, do nothing.
@@ -325,13 +364,13 @@ testable:
typedef std::set<LLEventPump*> PumpSet;
PumpSet mOurPumps;
// for make(), map string type name to LLEventPump subclass factory function
- typedef std::map<std::string, std::function<LLEventPump*(const std::string&, bool)>> PumpFactories;
+ typedef std::map<std::string, TypeFactory> TypeFactories;
// Data used by make().
// One might think mFactories and mTypes could reasonably be static. So
// they could -- if not for the fact that make() or obtain() might be
// called before this module's static variables have been initialized.
// This is why we use singletons in the first place.
- PumpFactories mFactories;
+ TypeFactories mFactories;
// for obtain(), map desired string instance name to string type when
// obtain() must create the instance
diff --git a/indra/llcommon/llleap.cpp b/indra/llcommon/llleap.cpp
index 5b5bf97cef..8f88e728ce 100644
--- a/indra/llcommon/llleap.cpp
+++ b/indra/llcommon/llleap.cpp
@@ -340,11 +340,28 @@ public:
}
else
{
- // The LLSD object we got from our stream contains the keys we
- // need.
- LLEventPumps::instance().obtain(data["pump"]).post(data["data"]);
- // Block calls to this method; resetting mBlocker unblocks calls
- // to the other method.
+ try
+ {
+ // The LLSD object we got from our stream contains the
+ // keys we need.
+ LLEventPumps::instance().obtain(data["pump"]).post(data["data"]);
+ }
+ catch (const std::exception& err)
+ {
+ // No plugin should be allowed to crash the viewer by
+ // driving an exception -- intentionally or not.
+ LOG_UNHANDLED_EXCEPTION(stringize("handling request ", data));
+ // Whether or not the plugin added a "reply" key to the
+ // request, send a reply. We happen to know who originated
+ // this request, and the reply LLEventPump of interest.
+ // Not our problem if the plugin ignores the reply event.
+ data["reply"] = mReplyPump.getName();
+ sendReply(llsd::map("error",
+ stringize(LLError::Log::classname(err), ": ", err.what())),
+ data);
+ }
+ // Block calls to this method; resetting mBlocker unblocks
+ // calls to the other method.
mBlocker.reset(new LLEventPump::Blocker(mStdoutDataConnection));
// Go check for any more pending events in the buffer.
if (childout.size())
diff --git a/indra/llcommon/llleaplistener.cpp b/indra/llcommon/llleaplistener.cpp
index 11bfec1b31..471f52e91c 100644
--- a/indra/llcommon/llleaplistener.cpp
+++ b/indra/llcommon/llleaplistener.cpp
@@ -14,14 +14,16 @@
// associated header
#include "llleaplistener.h"
// STL headers
-#include <map>
+#include <algorithm> // std::find_if
#include <functional>
+#include <map>
+#include <set>
// std headers
// external library headers
-#include <boost/foreach.hpp>
// other Linden headers
-#include "lluuid.h"
+#include "lazyeventapi.h"
#include "llsdutil.h"
+#include "lluuid.h"
#include "stringize.h"
/*****************************************************************************
@@ -110,7 +112,7 @@ LLLeapListener::~LLLeapListener()
// value_type, and Bad Things would happen if you copied an
// LLTempBoundListener. (Destruction of the original would disconnect the
// listener, invalidating every stored connection.)
- BOOST_FOREACH(ListenersMap::value_type& pair, mListeners)
+ for (ListenersMap::value_type& pair : mListeners)
{
pair.second.disconnect();
}
@@ -208,31 +210,65 @@ void LLLeapListener::getAPIs(const LLSD& request) const
{
Response reply(LLSD(), request);
+ // first, traverse existing LLEventAPI instances
+ std::set<std::string> instances;
for (auto& ea : LLEventAPI::instance_snapshot())
{
- LLSD info;
- info["desc"] = ea.getDesc();
- reply[ea.getName()] = info;
+ // remember which APIs are actually instantiated
+ instances.insert(ea.getName());
+ reply[ea.getName()] = llsd::map("desc", ea.getDesc());
+ }
+ // supplement that with *potential* instances: that is, instances of
+ // LazyEventAPI that can each instantiate an LLEventAPI on demand
+ for (const auto& lea : LL::LazyEventAPIBase::instance_snapshot())
+ {
+ // skip any LazyEventAPI that's already instantiated its LLEventAPI
+ if (instances.find(lea.getName()) == instances.end())
+ {
+ reply[lea.getName()] = llsd::map("desc", lea.getDesc());
+ }
}
}
+// Because LazyEventAPI deliberately mimics LLEventAPI's query API, this
+// function can be passed either -- even though they're unrelated types.
+template <typename API>
+void reportAPI(LLEventAPI::Response& reply, const API& api)
+{
+ reply["name"] = api.getName();
+ reply["desc"] = api.getDesc();
+ reply["key"] = api.getDispatchKey();
+ LLSD ops;
+ for (const auto& namedesc : api)
+ {
+ ops.append(api.getMetadata(namedesc.first));
+ }
+ reply["ops"] = ops;
+}
+
void LLLeapListener::getAPI(const LLSD& request) const
{
Response reply(LLSD(), request);
- auto found = LLEventAPI::getInstance(request["api"]);
- if (found)
+ // check first among existing LLEventAPI instances
+ auto foundea = LLEventAPI::getInstance(request["api"]);
+ if (foundea)
+ {
+ reportAPI(reply, *foundea);
+ }
+ else
{
- reply["name"] = found->getName();
- reply["desc"] = found->getDesc();
- reply["key"] = found->getDispatchKey();
- LLSD ops;
- for (LLEventAPI::const_iterator oi(found->begin()), oend(found->end());
- oi != oend; ++oi)
+ // Here the requested LLEventAPI doesn't yet exist, but do we have a
+ // registered LazyEventAPI for it?
+ LL::LazyEventAPIBase::instance_snapshot snap;
+ auto foundlea = std::find_if(snap.begin(), snap.end(),
+ [api = request["api"].asString()]
+ (const auto& lea)
+ { return (lea.getName() == api); });
+ if (foundlea != snap.end())
{
- ops.append(found->getMetadata(oi->first));
+ reportAPI(reply, *foundlea);
}
- reply["ops"] = ops;
}
}
diff --git a/indra/llcommon/llprocess.cpp b/indra/llcommon/llprocess.cpp
index 97a38ea992..0d65762284 100644
--- a/indra/llcommon/llprocess.cpp
+++ b/indra/llcommon/llprocess.cpp
@@ -529,6 +529,7 @@ LLProcess::LLProcess(const LLSDOrParams& params):
// preserve existing semantics, we promise that mAttached defaults to the
// same setting as mAutokill.
mAttached(params.attached.isProvided()? params.attached : params.autokill),
+ mPool(NULL),
mPipes(NSLOTS)
{
// Hmm, when you construct a ptr_vector with a size, it merely reserves
@@ -549,8 +550,14 @@ LLProcess::LLProcess(const LLSDOrParams& params):
mPostend = params.postend;
+ apr_pool_create(&mPool, gAPRPoolp);
+ if (!mPool)
+ {
+ LLTHROW(LLProcessError(STRINGIZE("failed to create apr pool")));
+ }
+
apr_procattr_t *procattr = NULL;
- chkapr(apr_procattr_create(&procattr, gAPRPoolp));
+ chkapr(apr_procattr_create(&procattr, mPool));
// IQA-490, CHOP-900: On Windows, ask APR to jump through hoops to
// constrain the set of handles passed to the child process. Before we
@@ -689,14 +696,14 @@ LLProcess::LLProcess(const LLSDOrParams& params):
// one. Hand-expand chkapr() macro so we can fill in the actual command
// string instead of the variable names.
if (ll_apr_warn_status(apr_proc_create(&mProcess, argv[0], &argv[0], NULL, procattr,
- gAPRPoolp)))
+ mPool)))
{
LLTHROW(LLProcessError(STRINGIZE(params << " failed")));
}
// arrange to call status_callback()
apr_proc_other_child_register(&mProcess, &LLProcess::status_callback, this, mProcess.in,
- gAPRPoolp);
+ mPool);
// and make sure we poll it once per "mainloop" tick
sProcessListener.addPoll(*this);
mStatus.mState = RUNNING;
@@ -815,6 +822,12 @@ LLProcess::~LLProcess()
{
kill("destructor");
}
+
+ if (mPool)
+ {
+ apr_pool_destroy(mPool);
+ mPool = NULL;
+ }
}
bool LLProcess::kill(const std::string& who)
diff --git a/indra/llcommon/llprocess.h b/indra/llcommon/llprocess.h
index e3386ad88e..0842f2eb07 100644
--- a/indra/llcommon/llprocess.h
+++ b/indra/llcommon/llprocess.h
@@ -568,6 +568,7 @@ private:
// explicitly want this ptr_vector to be able to store NULLs
typedef boost::ptr_vector< boost::nullable<BasePipe> > PipeVector;
PipeVector mPipes;
+ apr_pool_t* mPool;
};
/// for logging
diff --git a/indra/llcommon/llptrto.h b/indra/llcommon/llptrto.h
index 4082e30de6..9ef279fdbf 100644
--- a/indra/llcommon/llptrto.h
+++ b/indra/llcommon/llptrto.h
@@ -33,9 +33,12 @@
#include "llpointer.h"
#include "llrefcount.h" // LLRefCount
+#include <boost/intrusive_ptr.hpp>
+#include <boost/shared_ptr.hpp>
#include <boost/type_traits/is_base_of.hpp>
#include <boost/type_traits/remove_pointer.hpp>
-#include <boost/utility/enable_if.hpp>
+#include <memory> // std::shared_ptr, std::unique_ptr
+#include <type_traits>
/**
* LLPtrTo<TARGET>::type is either of two things:
@@ -55,14 +58,14 @@ struct LLPtrTo
/// specialize for subclasses of LLRefCount
template <class T>
-struct LLPtrTo<T, typename boost::enable_if< boost::is_base_of<LLRefCount, T> >::type>
+struct LLPtrTo<T, typename std::enable_if< boost::is_base_of<LLRefCount, T>::value >::type>
{
typedef LLPointer<T> type;
};
/// specialize for subclasses of LLThreadSafeRefCount
template <class T>
-struct LLPtrTo<T, typename boost::enable_if< boost::is_base_of<LLThreadSafeRefCount, T> >::type>
+struct LLPtrTo<T, typename std::enable_if< boost::is_base_of<LLThreadSafeRefCount, T>::value >::type>
{
typedef LLPointer<T> type;
};
@@ -83,4 +86,83 @@ struct LLRemovePointer< LLPointer<SOMECLASS> >
typedef SOMECLASS type;
};
+namespace LL
+{
+
+/*****************************************************************************
+* get_ref()
+*****************************************************************************/
+ template <typename T>
+ struct GetRef
+ {
+ // return const ref or non-const ref, depending on whether we can bind
+ // a non-const lvalue ref to the argument
+ const auto& operator()(const T& obj) const { return obj; }
+ auto& operator()(T& obj) const { return obj; }
+ };
+
+ template <typename T>
+ struct GetRef<const T*>
+ {
+ const auto& operator()(const T* ptr) const { return *ptr; }
+ };
+
+ template <typename T>
+ struct GetRef<T*>
+ {
+ auto& operator()(T* ptr) const { return *ptr; }
+ };
+
+ template <typename T>
+ struct GetRef< LLPointer<T> >
+ {
+ auto& operator()(LLPointer<T> ptr) const { return *ptr; }
+ };
+
+ /// whether we're passed a pointer or a reference, return a reference
+ template <typename T>
+ auto& get_ref(T& ptr_or_ref)
+ {
+ return GetRef<typename std::decay<T>::type>()(ptr_or_ref);
+ }
+
+ template <typename T>
+ const auto& get_ref(const T& ptr_or_ref)
+ {
+ return GetRef<typename std::decay<T>::type>()(ptr_or_ref);
+ }
+
+/*****************************************************************************
+* get_ptr()
+*****************************************************************************/
+ // if T is any pointer type we recognize, return it unchanged
+ template <typename T>
+ const T* get_ptr(const T* ptr) { return ptr; }
+
+ template <typename T>
+ T* get_ptr(T* ptr) { return ptr; }
+
+ template <typename T>
+ const std::shared_ptr<T>& get_ptr(const std::shared_ptr<T>& ptr) { return ptr; }
+
+ template <typename T>
+ const std::unique_ptr<T>& get_ptr(const std::unique_ptr<T>& ptr) { return ptr; }
+
+ template <typename T>
+ const boost::shared_ptr<T>& get_ptr(const boost::shared_ptr<T>& ptr) { return ptr; }
+
+ template <typename T>
+ const boost::intrusive_ptr<T>& get_ptr(const boost::intrusive_ptr<T>& ptr) { return ptr; }
+
+ template <typename T>
+ const LLPointer<T>& get_ptr(const LLPointer<T>& ptr) { return ptr; }
+
+ // T is not any pointer type we recognize, take a pointer to the parameter
+ template <typename T>
+ const T* get_ptr(const T& obj) { return &obj; }
+
+ template <typename T>
+ T* get_ptr(T& obj) { return &obj; }
+} // namespace LL
+
#endif /* ! defined(LL_LLPTRTO_H) */
diff --git a/indra/llcommon/llsdutil.cpp b/indra/llcommon/llsdutil.cpp
index f70bee9903..e98fc0285a 100644
--- a/indra/llcommon/llsdutil.cpp
+++ b/indra/llcommon/llsdutil.cpp
@@ -1046,3 +1046,38 @@ LLSD llsd_shallow(LLSD value, LLSD filter)
return shallow;
}
+
+LLSD LL::apply_llsd_fix(size_t arity, const LLSD& args)
+{
+ // LLSD supports a number of types, two of which are aggregates: Map and
+ // Array. We don't try to support Map: supporting Map would seem to
+ // promise that we could somehow match the string key to 'func's parameter
+ // names. Uh sorry, maybe in some future version of C++ with reflection.
+ if (args.isMap())
+ {
+ LLTHROW(LL::apply_error("LL::apply(function, Map LLSD) unsupported"));
+ }
+ // We expect an LLSD array, but what the heck, treat isUndefined() as a
+ // zero-length array for calling a nullary 'func'.
+ if (args.isUndefined() || args.isArray())
+ {
+ // this works because LLSD().size() == 0
+ if (args.size() != arity)
+ {
+ LLTHROW(LL::apply_error(stringize("LL::apply(function(", arity, " args), ",
+ args.size(), "-entry LLSD array)")));
+ }
+ return args;
+ }
+
+ // args is one of the scalar types
+ // scalar_LLSD.size() == 0, so don't test that here.
+ // You can pass a scalar LLSD only to a unary 'func'.
+ if (arity != 1)
+ {
+ LLTHROW(LL::apply_error(stringize("LL::apply(function(", arity, " args), "
+ "LLSD ", LLSD::typeString(args.type()), ")")));
+ }
+ // make an array of it
+ return llsd::array(args);
+}
diff --git a/indra/llcommon/llsdutil.h b/indra/llcommon/llsdutil.h
index 372278c51a..ad54d1b0be 100644
--- a/indra/llcommon/llsdutil.h
+++ b/indra/llcommon/llsdutil.h
@@ -29,8 +29,14 @@
#ifndef LL_LLSDUTIL_H
#define LL_LLSDUTIL_H
+#include "apply.h" // LL::invoke()
+#include "function_types.h" // LL::function_arity
#include "llsd.h"
#include <boost/functional/hash.hpp>
+#include <cassert>
+#include <memory> // std::shared_ptr
+#include <type_traits>
+#include <vector>
// U32
LL_COMMON_API LLSD ll_sd_from_U32(const U32);
@@ -298,6 +304,11 @@ LLSD map(Ts&&... vs)
/*****************************************************************************
* LLSDParam
*****************************************************************************/
+struct LLSDParamBase
+{
+ virtual ~LLSDParamBase() {}
+};
+
/**
* LLSDParam is a customization point for passing LLSD values to function
* parameters of more or less arbitrary type. LLSD provides a small set of
@@ -315,7 +326,7 @@ LLSD map(Ts&&... vs)
* @endcode
*/
template <typename T>
-class LLSDParam
+class LLSDParam: public LLSDParamBase
{
public:
/**
@@ -323,13 +334,66 @@ public:
* value for later retrieval
*/
LLSDParam(const LLSD& value):
- _value(value)
+ value_(value)
{}
- operator T() const { return _value; }
+ operator T() const { return value_; }
private:
- T _value;
+ T value_;
+};
+
+/**
+ * LLSDParam<LLSD> is for when you don't already have the target parameter
+ * type in hand. Instantiate LLSDParam<LLSD>(your LLSD object), and the
+ * templated conversion operator will try to select a more specific LLSDParam
+ * specialization.
+ */
+template <>
+class LLSDParam<LLSD>: public LLSDParamBase
+{
+private:
+ LLSD value_;
+ // LLSDParam<LLSD>::operator T() works by instantiating an LLSDParam<T> on
+ // demand. Returning that engages LLSDParam<T>::operator T(), producing
+ // the desired result. But LLSDParam<const char*> owns a std::string whose
+ // c_str() is returned by its operator const char*(). If we return a temp
+ // LLSDParam<const char*>, the compiler can destroy it right away, as soon
+ // as we've called operator const char*(). That's a problem! That
+ // invalidates the const char* we've just passed to the subject function.
+ // This LLSDParam<LLSD> is presumably guaranteed to survive until the
+ // subject function has returned, so we must ensure that any constructed
+ // LLSDParam<T> lives just as long as this LLSDParam<LLSD> does. Putting
+ // each LLSDParam<T> on the heap and capturing a smart pointer in a vector
+ // works. We would have liked to use std::unique_ptr, but vector entries
+ // must be copyable.
+ // (Alternatively we could assume that every instance of LLSDParam<LLSD>
+ // will be asked for at most ONE conversion. We could store a scalar
+ // std::unique_ptr and, when constructing an new LLSDParam<T>, assert that
+ // the unique_ptr is empty. But some future change in usage patterns, and
+ // consequent failure of that assertion, would be very mysterious. Instead
+ // of explaining how to fix it, just fix it now.)
+ mutable std::vector<std::shared_ptr<LLSDParamBase>> converters_;
+
+public:
+ LLSDParam(const LLSD& value): value_(value) {}
+
+ /// if we're literally being asked for an LLSD parameter, avoid infinite
+ /// recursion
+ operator LLSD() const { return value_; }
+
+ /// otherwise, instantiate a more specific LLSDParam<T> to convert; that
+ /// preserves the existing customization mechanism
+ template <typename T>
+ operator T() const
+ {
+ // capture 'ptr' with the specific subclass type because converters_
+ // only stores LLSDParamBase pointers
+ auto ptr{ std::make_shared<LLSDParam<std::decay_t<T>>>(value_) };
+ // keep the new converter alive until we ourselves are destroyed
+ converters_.push_back(ptr);
+ return *ptr;
+ }
};
/**
@@ -346,17 +410,17 @@ private:
*/
#define LLSDParam_for(T, AS) \
template <> \
-class LLSDParam<T> \
+class LLSDParam<T>: public LLSDParamBase \
{ \
public: \
LLSDParam(const LLSD& value): \
- _value((T)value.AS()) \
+ value_((T)value.AS()) \
{} \
\
- operator T() const { return _value; } \
+ operator T() const { return value_; } \
\
private: \
- T _value; \
+ T value_; \
}
LLSDParam_for(float, asReal);
@@ -372,31 +436,31 @@ LLSDParam_for(LLSD::Binary, asBinary);
* safely pass an LLSDParam<const char*>(yourLLSD).
*/
template <>
-class LLSDParam<const char*>
+class LLSDParam<const char*>: public LLSDParamBase
{
private:
// The difference here is that we store a std::string rather than a const
// char*. It's important that the LLSDParam object own the std::string.
- std::string _value;
+ std::string value_;
// We don't bother storing the incoming LLSD object, but we do have to
- // distinguish whether _value is an empty string because the LLSD object
+ // distinguish whether value_ is an empty string because the LLSD object
// contains an empty string or because it's isUndefined().
- bool _undefined;
+ bool undefined_;
public:
LLSDParam(const LLSD& value):
- _value(value),
- _undefined(value.isUndefined())
+ value_(value),
+ undefined_(value.isUndefined())
{}
- // The const char* we retrieve is for storage owned by our _value member.
+ // The const char* we retrieve is for storage owned by our value_ member.
// That's how we guarantee that the const char* is valid for the lifetime
// of this LLSDParam object. Constructing your LLSDParam in the argument
// list should ensure that the LLSDParam object will persist for the
// duration of the function call.
operator const char*() const
{
- if (_undefined)
+ if (undefined_)
{
// By default, an isUndefined() LLSD object's asString() method
// will produce an empty string. But for a function accepting
@@ -406,7 +470,7 @@ public:
// case, though, no LLSD value could pass NULL.
return NULL;
}
- return _value.c_str();
+ return value_.c_str();
}
};
@@ -555,4 +619,56 @@ struct hash<LLSD>
}
};
}
+
+namespace LL
+{
+
+/*****************************************************************************
+* apply(function, LLSD array)
+*****************************************************************************/
+// validate incoming LLSD blob, and return an LLSD array suitable to pass to
+// the function of interest
+LLSD apply_llsd_fix(size_t arity, const LLSD& args);
+
+// Derived from https://stackoverflow.com/a/20441189
+// and https://en.cppreference.com/w/cpp/utility/apply .
+// We can't simply make a tuple from the LLSD array and then apply() that
+// tuple to the function -- how would make_tuple() deduce the correct
+// parameter type for each entry? We must go directly to the target function.
+template <typename CALLABLE, std::size_t... I>
+auto apply_impl(CALLABLE&& func, const LLSD& array, std::index_sequence<I...>)
+{
+ // call func(unpacked args), using generic LLSDParam<LLSD> to convert each
+ // entry in 'array' to the target parameter type
+ return std::forward<CALLABLE>(func)(LLSDParam<LLSD>(array[I])...);
+}
+
+// use apply_n<ARITY>(function, LLSD) to call a specific arity of a variadic
+// function with (that many) items from the passed LLSD array
+template <size_t ARITY, typename CALLABLE>
+auto apply_n(CALLABLE&& func, const LLSD& args)
+{
+ return apply_impl(std::forward<CALLABLE>(func),
+ apply_llsd_fix(ARITY, args),
+ std::make_index_sequence<ARITY>());
+}
+
+/**
+ * apply(function, LLSD) goes beyond C++17 std::apply(). For this case
+ * @a function @emph cannot be variadic: the compiler must know at compile
+ * time how many arguments to pass. This isn't Python. (But see apply_n() to
+ * pass a specific number of args to a variadic function.)
+ */
+template <typename CALLABLE>
+auto apply(CALLABLE&& func, const LLSD& args)
+{
+ // infer arity from the definition of func
+ constexpr auto arity = function_arity<
+ typename std::remove_reference<CALLABLE>::type>::value;
+ // now that we have a compile-time arity, apply_n() works
+ return apply_n<arity>(std::forward<CALLABLE>(func), args);
+}
+
+} // namespace LL
+
#endif // LL_LLSDUTIL_H
diff --git a/indra/llcommon/tests/apply_test.cpp b/indra/llcommon/tests/apply_test.cpp
new file mode 100644
index 0000000000..56b497e0c8
--- /dev/null
+++ b/indra/llcommon/tests/apply_test.cpp
@@ -0,0 +1,240 @@
+/**
+ * @file apply_test.cpp
+ * @author Nat Goodspeed
+ * @date 2022-12-19
+ * @brief Test for apply.
+ *
+ * $LicenseInfo:firstyear=2022&license=viewerlgpl$
+ * Copyright (c) 2022, Linden Research, Inc.
+ * $/LicenseInfo$
+ */
+
+// Precompiled header
+#include "linden_common.h"
+// associated header
+#include "apply.h"
+// STL headers
+// std headers
+#include <iomanip>
+// external library headers
+// other Linden headers
+#include "llsd.h"
+#include "llsdutil.h"
+#include <array>
+#include <string>
+#include <vector>
+
+// for ensure_equals
+std::ostream& operator<<(std::ostream& out, const std::vector<std::string>& stringvec)
+{
+ const char* delim = "[";
+ for (const auto& str : stringvec)
+ {
+ out << delim << std::quoted(str);
+ delim = ", ";
+ }
+ return out << ']';
+}
+
+// the above must be declared BEFORE ensure_equals(std::vector<std::string>)
+#include "../test/lltut.h"
+
+/*****************************************************************************
+* TUT
+*****************************************************************************/
+namespace tut
+{
+ namespace statics
+ {
+ /*------------------------------ data ------------------------------*/
+ // Although we're using types from the LLSD namespace, we're not
+ // constructing LLSD values, but rather instances of the C++ types
+ // supported by LLSD.
+ static LLSD::Boolean b{true};
+ static LLSD::Integer i{17};
+ static LLSD::Real f{3.14};
+ static LLSD::String s{ "hello" };
+ static LLSD::UUID uu{ "baadf00d-dead-beef-baad-feedb0ef" };
+ static LLSD::Date dt{ "2022-12-19" };
+ static LLSD::URI uri{ "http://secondlife.com" };
+ static LLSD::Binary bin{ 0x01, 0x02, 0x03, 0x04, 0x05 };
+
+ static std::vector<LLSD::String> quick
+ {
+ "The", "quick", "brown", "fox", "etc."
+ };
+
+ static std::array<int, 5> fibs
+ {
+ 0, 1, 1, 2, 3
+ };
+
+ // ensure that apply() actually reaches the target method --
+ // lack of ensure_equals() failure could be due to no-op apply()
+ bool called{ false };
+ // capture calls from collect()
+ std::vector<std::string> collected;
+
+ /*------------------------- test functions -------------------------*/
+ void various(LLSD::Boolean b, LLSD::Integer i, LLSD::Real f, const LLSD::String& s,
+ const LLSD::UUID& uu, const LLSD::Date& dt,
+ const LLSD::URI& uri, const LLSD::Binary& bin)
+ {
+ called = true;
+ ensure_equals( "b mismatch", b, statics::b);
+ ensure_equals( "i mismatch", i, statics::i);
+ ensure_equals( "f mismatch", f, statics::f);
+ ensure_equals( "s mismatch", s, statics::s);
+ ensure_equals( "uu mismatch", uu, statics::uu);
+ ensure_equals( "dt mismatch", dt, statics::dt);
+ ensure_equals("uri mismatch", uri, statics::uri);
+ ensure_equals("bin mismatch", bin, statics::bin);
+ }
+
+ void strings(std::string s0, std::string s1, std::string s2, std::string s3, std::string s4)
+ {
+ called = true;
+ ensure_equals("s0 mismatch", s0, statics::quick[0]);
+ ensure_equals("s1 mismatch", s1, statics::quick[1]);
+ ensure_equals("s2 mismatch", s2, statics::quick[2]);
+ ensure_equals("s3 mismatch", s3, statics::quick[3]);
+ ensure_equals("s4 mismatch", s4, statics::quick[4]);
+ }
+
+ void ints(int i0, int i1, int i2, int i3, int i4)
+ {
+ called = true;
+ ensure_equals("i0 mismatch", i0, statics::fibs[0]);
+ ensure_equals("i1 mismatch", i1, statics::fibs[1]);
+ ensure_equals("i2 mismatch", i2, statics::fibs[2]);
+ ensure_equals("i3 mismatch", i3, statics::fibs[3]);
+ ensure_equals("i4 mismatch", i4, statics::fibs[4]);
+ }
+
+ void sdfunc(const LLSD& sd)
+ {
+ called = true;
+ ensure_equals("sd mismatch", sd.asInteger(), statics::i);
+ }
+
+ void intfunc(int i)
+ {
+ called = true;
+ ensure_equals("i mismatch", i, statics::i);
+ }
+
+ void voidfunc()
+ {
+ called = true;
+ }
+
+ // recursion tail
+ void collect()
+ {
+ called = true;
+ }
+
+ // collect(arbitrary)
+ template <typename... ARGS>
+ void collect(const std::string& first, ARGS&&... rest)
+ {
+ statics::collected.push_back(first);
+ collect(std::forward<ARGS>(rest)...);
+ }
+ } // namespace statics
+
+ struct apply_data
+ {
+ apply_data()
+ {
+ // reset called before each test
+ statics::called = false;
+ statics::collected.clear();
+ }
+ };
+ typedef test_group<apply_data> apply_group;
+ typedef apply_group::object object;
+ apply_group applygrp("apply");
+
+ template<> template<>
+ void object::test<1>()
+ {
+ set_test_name("apply(tuple)");
+ LL::apply(statics::various,
+ std::make_tuple(statics::b, statics::i, statics::f, statics::s,
+ statics::uu, statics::dt, statics::uri, statics::bin));
+ ensure("apply(tuple) failed", statics::called);
+ }
+
+ template<> template<>
+ void object::test<2>()
+ {
+ set_test_name("apply(array)");
+ LL::apply(statics::ints, statics::fibs);
+ ensure("apply(array) failed", statics::called);
+ }
+
+ template<> template<>
+ void object::test<3>()
+ {
+ set_test_name("apply(vector)");
+ LL::apply(statics::strings, statics::quick);
+ ensure("apply(vector) failed", statics::called);
+ }
+
+ // The various apply(LLSD) tests exercise only the success cases because
+ // the failure cases trigger assert() fail, which is hard to catch.
+ template<> template<>
+ void object::test<4>()
+ {
+ set_test_name("apply(LLSD())");
+ LL::apply(statics::voidfunc, LLSD());
+ ensure("apply(LLSD()) failed", statics::called);
+ }
+
+ template<> template<>
+ void object::test<5>()
+ {
+ set_test_name("apply(fn(int), LLSD scalar)");
+ LL::apply(statics::intfunc, LLSD(statics::i));
+ ensure("apply(fn(int), LLSD scalar) failed", statics::called);
+ }
+
+ template<> template<>
+ void object::test<6>()
+ {
+ set_test_name("apply(fn(LLSD), LLSD scalar)");
+ // This test verifies that LLSDParam<LLSD> doesn't send the compiler
+ // into infinite recursion when the target is itself LLSD.
+ LL::apply(statics::sdfunc, LLSD(statics::i));
+ ensure("apply(fn(LLSD), LLSD scalar) failed", statics::called);
+ }
+
+ template<> template<>
+ void object::test<7>()
+ {
+ set_test_name("apply(LLSD array)");
+ LL::apply(statics::various,
+ llsd::array(statics::b, statics::i, statics::f, statics::s,
+ statics::uu, statics::dt, statics::uri, statics::bin));
+ ensure("apply(LLSD array) failed", statics::called);
+ }
+
+ template<> template<>
+ void object::test<8>()
+ {
+ set_test_name("VAPPLY()");
+ // Make a std::array<std::string> from statics::quick. We can't call a
+ // variadic function with a data structure of dynamic length.
+ std::array<std::string, 5> strray;
+ for (size_t i = 0; i < strray.size(); ++i)
+ strray[i] = statics::quick[i];
+ // This doesn't work: the compiler doesn't know which overload of
+ // collect() to pass to LL::apply().
+ // LL::apply(statics::collect, strray);
+ // That's what VAPPLY() is for.
+ VAPPLY(statics::collect, strray);
+ ensure("VAPPLY() failed", statics::called);
+ ensure_equals("collected mismatch", statics::collected, statics::quick);
+ }
+} // namespace tut
diff --git a/indra/llcommon/tests/lazyeventapi_test.cpp b/indra/llcommon/tests/lazyeventapi_test.cpp
new file mode 100644
index 0000000000..31b2d6d17f
--- /dev/null
+++ b/indra/llcommon/tests/lazyeventapi_test.cpp
@@ -0,0 +1,136 @@
+/**
+ * @file lazyeventapi_test.cpp
+ * @author Nat Goodspeed
+ * @date 2022-06-18
+ * @brief Test for lazyeventapi.
+ *
+ * $LicenseInfo:firstyear=2022&license=viewerlgpl$
+ * Copyright (c) 2022, Linden Research, Inc.
+ * $/LicenseInfo$
+ */
+
+// Precompiled header
+#include "linden_common.h"
+// associated header
+#include "lazyeventapi.h"
+// STL headers
+// std headers
+// external library headers
+// other Linden headers
+#include "../test/lltut.h"
+#include "llevents.h"
+#include "llsdutil.h"
+
+// observable side effect, solely for testing
+static LLSD data;
+
+// LLEventAPI listener subclass
+class MyListener: public LLEventAPI
+{
+public:
+ // need this trivial forwarding constructor
+ // (of course do any other initialization your subclass requires)
+ MyListener(const LL::LazyEventAPIParams& params):
+ LLEventAPI(params)
+ {}
+
+ // example operation, registered by LazyEventAPI subclass below
+ void set_data(const LLSD& event)
+ {
+ data = event["data"];
+ }
+};
+
+// LazyEventAPI registrar subclass
+class MyRegistrar: public LL::LazyEventAPI<MyListener>
+{
+ using super = LL::LazyEventAPI<MyListener>;
+ using super::listener;
+public:
+ // LazyEventAPI subclass initializes like a classic LLEventAPI subclass
+ // constructor, with API name and desc plus add() calls for the defined
+ // operations
+ MyRegistrar():
+ super("Test", "This is a test LLEventAPI")
+ {
+ add("set", "This is a set operation", &listener::set_data);
+ }
+};
+// Normally we'd declare a static instance of MyRegistrar -- but because we
+// want to test both with and without, defer declaration to individual test
+// methods.
+
+/*****************************************************************************
+* TUT
+*****************************************************************************/
+namespace tut
+{
+ struct lazyeventapi_data
+ {
+ lazyeventapi_data()
+ {
+ // before every test, reset 'data'
+ data.clear();
+ }
+ ~lazyeventapi_data()
+ {
+ // after every test, reset LLEventPumps
+ LLEventPumps::deleteSingleton();
+ }
+ };
+ typedef test_group<lazyeventapi_data> lazyeventapi_group;
+ typedef lazyeventapi_group::object object;
+ lazyeventapi_group lazyeventapigrp("lazyeventapi");
+
+ template<> template<>
+ void object::test<1>()
+ {
+ set_test_name("LazyEventAPI");
+ // this is where the magic (should) happen
+ // 'register' still a keyword until C++17
+ MyRegistrar regster;
+ LLEventPumps::instance().obtain("Test").post(llsd::map("op", "set", "data", "hey"));
+ ensure_equals("failed to set data", data.asString(), "hey");
+ }
+
+ template<> template<>
+ void object::test<2>()
+ {
+ set_test_name("No LazyEventAPI");
+ // Because the MyRegistrar declaration in test<1>() is local, because
+ // it has been destroyed, we fully expect NOT to reach a MyListener
+ // instance with this post.
+ LLEventPumps::instance().obtain("Test").post(llsd::map("op", "set", "data", "moot"));
+ ensure("accidentally set data", ! data.isDefined());
+ }
+
+ template<> template<>
+ void object::test<3>()
+ {
+ set_test_name("LazyEventAPI metadata");
+ MyRegistrar regster;
+ // Of course we have 'regster' in hand; we don't need to search for
+ // it. But this next test verifies that we can find (all) LazyEventAPI
+ // instances using LazyEventAPIBase::instance_snapshot. Normally we
+ // wouldn't search; normally we'd just look at each instance in the
+ // loop body.
+ const MyRegistrar* found = nullptr;
+ for (const auto& registrar : LL::LazyEventAPIBase::instance_snapshot())
+ if ((found = dynamic_cast<const MyRegistrar*>(&registrar)))
+ break;
+ ensure("Failed to find MyRegistrar via LLInstanceTracker", found);
+
+ ensure_equals("wrong API name", found->getName(), "Test");
+ ensure_contains("wrong API desc", found->getDesc(), "test LLEventAPI");
+ ensure_equals("wrong API field", found->getDispatchKey(), "op");
+ // Normally we'd just iterate over *found. But for test purposes,
+ // actually capture the range of NameDesc pairs in a vector.
+ std::vector<LL::LazyEventAPIBase::NameDesc> ops{ found->begin(), found->end() };
+ ensure_equals("failed to find operations", ops.size(), 1);
+ ensure_equals("wrong operation name", ops[0].first, "set");
+ ensure_contains("wrong operation desc", ops[0].second, "set operation");
+ LLSD metadata{ found->getMetadata(ops[0].first) };
+ ensure_equals("bad metadata name", metadata["name"].asString(), ops[0].first);
+ ensure_equals("bad metadata desc", metadata["desc"].asString(), ops[0].second);
+ }
+} // namespace tut
diff --git a/indra/llcommon/tests/lleventdispatcher_test.cpp b/indra/llcommon/tests/lleventdispatcher_test.cpp
index 466f11f52a..b0c532887c 100644
--- a/indra/llcommon/tests/lleventdispatcher_test.cpp
+++ b/indra/llcommon/tests/lleventdispatcher_test.cpp
@@ -18,9 +18,12 @@
// external library headers
// other Linden headers
#include "../test/lltut.h"
+#include "lleventfilter.h"
#include "llsd.h"
#include "llsdutil.h"
+#include "llevents.h"
#include "stringize.h"
+#include "StringVec.h"
#include "tests/wrapllerrs.h"
#include "../test/catch_and_store_what_in.h"
#include "../test/debug.h"
@@ -32,8 +35,6 @@
#include <boost/bind.hpp>
#include <boost/function.hpp>
#include <boost/range.hpp>
-#include <boost/foreach.hpp>
-#define foreach BOOST_FOREACH
#include <boost/lambda/lambda.hpp>
@@ -177,6 +178,7 @@ struct Vars
/*-------- Arbitrary-params (non-const, const, static) methods ---------*/
void methodna(NPARAMSa)
{
+ DEBUG;
// Because our const char* param cp might be NULL, and because we
// intend to capture the value in a std::string, have to distinguish
// between the NULL value and any non-NULL value. Use a convention
@@ -188,7 +190,7 @@ struct Vars
else
vcp = std::string("'") + cp + "'";
- debug()("methodna(", b,
+ this->debug()("methodna(", b,
", ", i,
", ", f,
", ", d,
@@ -205,7 +207,7 @@ struct Vars
void methodnb(NPARAMSb)
{
std::ostringstream vbin;
- foreach(U8 byte, bin)
+ for (U8 byte: bin)
{
vbin << std::hex << std::setfill('0') << std::setw(2) << unsigned(byte);
}
@@ -226,7 +228,8 @@ struct Vars
void cmethodna(NPARAMSa) const
{
- debug()('c', NONL);
+ DEBUG;
+ this->debug()('c', NONL);
const_cast<Vars*>(this)->methodna(NARGSa);
}
@@ -315,6 +318,31 @@ void freenb(NPARAMSb)
*****************************************************************************/
namespace tut
{
+ void ensure_has(const std::string& outer, const std::string& inner)
+ {
+ ensure(stringize("'", outer, "' does not contain '", inner, "'"),
+ outer.find(inner) != std::string::npos);
+ }
+
+ template <typename CALLABLE>
+ std::string call_exc(CALLABLE&& func, const std::string& exc_frag)
+ {
+ std::string what =
+ catch_what<LLEventDispatcher::DispatchError>(std::forward<CALLABLE>(func));
+ ensure_has(what, exc_frag);
+ return what;
+ }
+
+ template <typename CALLABLE>
+ void call_logerr(CALLABLE&& func, const std::string& frag)
+ {
+ CaptureLog capture;
+ // the error should be logged; we just need to stop the exception
+ // propagating
+ catch_what<LLEventDispatcher::DispatchError>(std::forward<CALLABLE>(func));
+ capture.messageWith(frag);
+ }
+
struct lleventdispatcher_data
{
Debug debug{"test"};
@@ -397,9 +425,9 @@ namespace tut
work.add(name, desc, &Dispatcher::cmethod1, required);
// Non-subclass method with/out required params
addf("method1", "method1", &v);
- work.add(name, desc, boost::bind(&Vars::method1, boost::ref(v), _1));
+ work.add(name, desc, [this](const LLSD& args){ return v.method1(args); });
addf("method1_req", "method1", &v);
- work.add(name, desc, boost::bind(&Vars::method1, boost::ref(v), _1), required);
+ work.add(name, desc, [this](const LLSD& args){ return v.method1(args); }, required);
/*--------------- Arbitrary params, array style ----------------*/
@@ -461,7 +489,7 @@ namespace tut
debug("dft_array_full:\n",
dft_array_full);
// Partial defaults arrays.
- foreach(LLSD::String a, ab)
+ for (LLSD::String a: ab)
{
LLSD::Integer partition(std::min(partial_offset, dft_array_full[a].size()));
dft_array_partial[a] =
@@ -471,7 +499,7 @@ namespace tut
debug("dft_array_partial:\n",
dft_array_partial);
- foreach(LLSD::String a, ab)
+ for(LLSD::String a: ab)
{
// Generate full defaults maps by zipping (params, dft_array_full).
dft_map_full[a] = zipmap(params[a], dft_array_full[a]);
@@ -583,6 +611,7 @@ namespace tut
void addf(const std::string& n, const std::string& d, Vars* v)
{
+ debug("addf('", n, "', '", d, "')");
// This method is to capture in our own DescMap the name and
// description of every registered function, for metadata query
// testing.
@@ -598,19 +627,14 @@ namespace tut
{
// Copy descs to a temp map of same type.
DescMap forgotten(descs.begin(), descs.end());
- // LLEventDispatcher intentionally provides only const_iterator:
- // since dereferencing that iterator generates values on the fly,
- // it's meaningless to have a modifiable iterator. But since our
- // 'work' object isn't const, by default BOOST_FOREACH() wants to
- // use non-const iterators. Persuade it to use the const_iterator.
- foreach(LLEventDispatcher::NameDesc nd, const_cast<const Dispatcher&>(work))
+ for (LLEventDispatcher::NameDesc nd: work)
{
DescMap::iterator found = forgotten.find(nd.first);
- ensure(STRINGIZE("LLEventDispatcher records function '" << nd.first
- << "' we didn't enter"),
+ ensure(stringize("LLEventDispatcher records function '", nd.first,
+ "' we didn't enter"),
found != forgotten.end());
- ensure_equals(STRINGIZE("LLEventDispatcher desc '" << nd.second <<
- "' doesn't match what we entered: '" << found->second << "'"),
+ ensure_equals(stringize("LLEventDispatcher desc '", nd.second,
+ "' doesn't match what we entered: '", found->second, "'"),
nd.second, found->second);
// found in our map the name from LLEventDispatcher, good, erase
// our map entry
@@ -621,41 +645,49 @@ namespace tut
std::ostringstream out;
out << "LLEventDispatcher failed to report";
const char* delim = ": ";
- foreach(const DescMap::value_type& fme, forgotten)
+ for (const DescMap::value_type& fme: forgotten)
{
out << delim << fme.first;
delim = ", ";
}
- ensure(out.str(), false);
+ throw failure(out.str());
}
}
Vars* varsfor(const std::string& name)
{
VarsMap::const_iterator found = funcvars.find(name);
- ensure(STRINGIZE("No Vars* for " << name), found != funcvars.end());
- ensure(STRINGIZE("NULL Vars* for " << name), found->second);
+ ensure(stringize("No Vars* for ", name), found != funcvars.end());
+ ensure(stringize("NULL Vars* for ", name), found->second);
return found->second;
}
- void ensure_has(const std::string& outer, const std::string& inner)
+ std::string call_exc(const std::string& func, const LLSD& args, const std::string& exc_frag)
{
- ensure(STRINGIZE("'" << outer << "' does not contain '" << inner << "'").c_str(),
- outer.find(inner) != std::string::npos);
+ return tut::call_exc(
+ [this, func, args]()
+ {
+ if (func.empty())
+ {
+ work(args);
+ }
+ else
+ {
+ work(func, args);
+ }
+ },
+ exc_frag);
}
- void call_exc(const std::string& func, const LLSD& args, const std::string& exc_frag)
+ void call_logerr(const std::string& func, const LLSD& args, const std::string& frag)
{
- std::string threw = catch_what<std::runtime_error>([this, &func, &args](){
- work(func, args);
- });
- ensure_has(threw, exc_frag);
+ tut::call_logerr([this, func, args](){ work(func, args); }, frag);
}
LLSD getMetadata(const std::string& name)
{
LLSD meta(work.getMetadata(name));
- ensure(STRINGIZE("No metadata for " << name), meta.isDefined());
+ ensure(stringize("No metadata for ", name), meta.isDefined());
return meta;
}
@@ -724,7 +756,7 @@ namespace tut
set_test_name("map-style registration with non-array params");
// Pass "param names" as scalar or as map
LLSD attempts(llsd::array(17, LLSDMap("pi", 3.14)("two", 2)));
- foreach(LLSD ae, inArray(attempts))
+ for (LLSD ae: inArray(attempts))
{
std::string threw = catch_what<std::exception>([this, &ae](){
work.add("freena_err", "freena", freena, ae);
@@ -799,7 +831,7 @@ namespace tut
{
set_test_name("query Callables with/out required params");
LLSD names(llsd::array("free1", "Dmethod1", "Dcmethod1", "method1"));
- foreach(LLSD nm, inArray(names))
+ for (LLSD nm: inArray(names))
{
LLSD metadata(getMetadata(nm));
ensure_equals("name mismatch", metadata["name"], nm);
@@ -828,19 +860,19 @@ namespace tut
(5, llsd::array("freena_array", "smethodna_array", "methodna_array")),
llsd::array
(5, llsd::array("freenb_array", "smethodnb_array", "methodnb_array"))));
- foreach(LLSD ae, inArray(expected))
+ for (LLSD ae: inArray(expected))
{
LLSD::Integer arity(ae[0].asInteger());
LLSD names(ae[1]);
LLSD req(LLSD::emptyArray());
if (arity)
req[arity - 1] = LLSD();
- foreach(LLSD nm, inArray(names))
+ for (LLSD nm: inArray(names))
{
LLSD metadata(getMetadata(nm));
ensure_equals("name mismatch", metadata["name"], nm);
ensure_equals(metadata["desc"].asString(), descs[nm]);
- ensure_equals(STRINGIZE("mismatched required for " << nm.asString()),
+ ensure_equals(stringize("mismatched required for ", nm.asString()),
metadata["required"], req);
ensure("should not have optional", metadata["optional"].isUndefined());
}
@@ -854,7 +886,7 @@ namespace tut
// - (Free function | non-static method), map style, no params (ergo
// no defaults)
LLSD names(llsd::array("free0_map", "smethod0_map", "method0_map"));
- foreach(LLSD nm, inArray(names))
+ for (LLSD nm: inArray(names))
{
LLSD metadata(getMetadata(nm));
ensure_equals("name mismatch", metadata["name"], nm);
@@ -884,7 +916,7 @@ namespace tut
llsd::array("smethodnb_map_adft", "smethodnb_map_mdft"),
llsd::array("methodna_map_adft", "methodna_map_mdft"),
llsd::array("methodnb_map_adft", "methodnb_map_mdft")));
- foreach(LLSD eq, inArray(equivalences))
+ for (LLSD eq: inArray(equivalences))
{
LLSD adft(eq[0]);
LLSD mdft(eq[1]);
@@ -898,8 +930,8 @@ namespace tut
ensure_equals("mdft name", mdft, mmeta["name"]);
ameta.erase("name");
mmeta.erase("name");
- ensure_equals(STRINGIZE("metadata for " << adft.asString()
- << " vs. " << mdft.asString()),
+ ensure_equals(stringize("metadata for ", adft.asString(),
+ " vs. ", mdft.asString()),
ameta, mmeta);
}
}
@@ -915,7 +947,7 @@ namespace tut
// params are required. Also maps containing left requirements for
// partial defaults arrays. Also defaults maps from defaults arrays.
LLSD allreq, leftreq, rightdft;
- foreach(LLSD::String a, ab)
+ for (LLSD::String a: ab)
{
// The map in which all params are required uses params[a] as
// keys, with all isUndefined() as values. We can accomplish that
@@ -943,9 +975,9 @@ namespace tut
// Generate maps containing parameter names not provided by the
// dft_map_partial maps.
LLSD skipreq(allreq);
- foreach(LLSD::String a, ab)
+ for (LLSD::String a: ab)
{
- foreach(const MapEntry& me, inMap(dft_map_partial[a]))
+ for (const MapEntry& me: inMap(dft_map_partial[a]))
{
skipreq[a].erase(me.first);
}
@@ -990,7 +1022,7 @@ namespace tut
(llsd::array("freenb_map_mdft", "smethodnb_map_mdft", "methodnb_map_mdft"),
llsd::array(LLSD::emptyMap(), dft_map_full["b"])))); // required, optional
- foreach(LLSD grp, inArray(groups))
+ for (LLSD grp: inArray(groups))
{
// Internal structure of each group in 'groups':
LLSD names(grp[0]);
@@ -1003,14 +1035,14 @@ namespace tut
optional);
// Loop through 'names'
- foreach(LLSD nm, inArray(names))
+ for (LLSD nm: inArray(names))
{
LLSD metadata(getMetadata(nm));
ensure_equals("name mismatch", metadata["name"], nm);
ensure_equals(nm.asString(), metadata["desc"].asString(), descs[nm]);
- ensure_equals(STRINGIZE(nm << " required mismatch"),
+ ensure_equals(stringize(nm, " required mismatch"),
metadata["required"], required);
- ensure_equals(STRINGIZE(nm << " optional mismatch"),
+ ensure_equals(stringize(nm, " optional mismatch"),
metadata["optional"], optional);
}
}
@@ -1031,13 +1063,7 @@ namespace tut
{
set_test_name("call with bad name");
call_exc("freek", LLSD(), "not found");
- // We don't have a comparable helper function for the one-arg
- // operator() method, and it's not worth building one just for this
- // case. Write it out.
- std::string threw = catch_what<std::runtime_error>([this](){
- work(LLSDMap("op", "freek"));
- });
- ensure_has(threw, "bad");
+ std::string threw = call_exc("", LLSDMap("op", "freek"), "bad");
ensure_has(threw, "op");
ensure_has(threw, "freek");
}
@@ -1079,7 +1105,7 @@ namespace tut
// LLSD value matching 'required' according to llsd_matches() rules.
LLSD matching(LLSDMap("d", 3.14)("array", llsd::array("answer", true, answer)));
// Okay, walk through 'tests'.
- foreach(const CallablesTriple& tr, tests)
+ for (const CallablesTriple& tr: tests)
{
// Should be able to pass 'answer' to Callables registered
// without 'required'.
@@ -1087,7 +1113,7 @@ namespace tut
ensure_equals("answer mismatch", tr.llsd, answer);
// Should NOT be able to pass 'answer' to Callables registered
// with 'required'.
- call_exc(tr.name_req, answer, "bad request");
+ call_logerr(tr.name_req, answer, "bad request");
// But SHOULD be able to pass 'matching' to Callables registered
// with 'required'.
work(tr.name_req, matching);
@@ -1101,17 +1127,20 @@ namespace tut
set_test_name("passing wrong args to (map | array)-style registrations");
// Pass scalar/map to array-style functions, scalar/array to map-style
- // functions. As that validation happens well before we engage the
- // argument magic, it seems pointless to repeat this with every
- // variation: (free function | non-static method), (no | arbitrary)
- // args. We should only need to engage it for one map-style
- // registration and one array-style registration.
- std::string array_exc("needs an args array");
- call_exc("free0_array", 17, array_exc);
- call_exc("free0_array", LLSDMap("pi", 3.14), array_exc);
+ // functions. It seems pointless to repeat this with every variation:
+ // (free function | non-static method), (no | arbitrary) args. We
+ // should only need to engage it for one map-style registration and
+ // one array-style registration.
+ // Now that LLEventDispatcher has been extended to treat an LLSD
+ // scalar as a single-entry array, the error we expect in this case is
+ // that apply() is trying to pass that non-empty array to a nullary
+ // function.
+ call_logerr("free0_array", 17, "LL::apply");
+ // similarly, apply() doesn't accept an LLSD Map
+ call_logerr("free0_array", LLSDMap("pi", 3.14), "unsupported");
std::string map_exc("needs a map");
- call_exc("free0_map", 17, map_exc);
+ call_logerr("free0_map", 17, map_exc);
// Passing an array to a map-style function works now! No longer an
// error case!
// call_exc("free0_map", llsd::array("a", "b"), map_exc);
@@ -1125,7 +1154,7 @@ namespace tut
("free0_array", "free0_map",
"smethod0_array", "smethod0_map",
"method0_array", "method0_map"));
- foreach(LLSD name, inArray(names))
+ for (LLSD name: inArray(names))
{
// Look up the Vars instance for this function.
Vars* vars(varsfor(name));
@@ -1150,15 +1179,21 @@ namespace tut
template<> template<>
void object::test<19>()
{
- set_test_name("call array-style functions with too-short arrays");
- // Could have two different too-short arrays, one for *na and one for
- // *nb, but since they both take 5 params...
+ set_test_name("call array-style functions with wrong-length arrays");
+ // Could have different wrong-length arrays for *na and for *nb, but
+ // since they both take 5 params...
LLSD tooshort(llsd::array("this", "array", "too", "short"));
- foreach(const LLSD& funcsab, inArray(array_funcs))
+ LLSD toolong (llsd::array("this", "array", "is", "one", "too", "long"));
+ LLSD badargs (llsd::array(tooshort, toolong));
+ for (const LLSD& toosomething: inArray(badargs))
{
- foreach(const llsd::MapEntry& e, inMap(funcsab))
+ for (const LLSD& funcsab: inArray(array_funcs))
{
- call_exc(e.second, tooshort, "requires more arguments");
+ for (const llsd::MapEntry& e: inMap(funcsab))
+ {
+ // apply() complains about wrong number of array entries
+ call_logerr(e.second, toosomething, "LL::apply");
+ }
}
}
}
@@ -1166,7 +1201,7 @@ namespace tut
template<> template<>
void object::test<20>()
{
- set_test_name("call array-style functions with (just right | too long) arrays");
+ set_test_name("call array-style functions with right-size arrays");
std::vector<U8> binary;
for (size_t h(0x01), i(0); i < 5; h+= 0x22, ++i)
{
@@ -1178,40 +1213,25 @@ namespace tut
LLDate("2011-02-03T15:07:00Z"),
LLURI("http://secondlife.com"),
binary)));
- LLSD argsplus(args);
- argsplus["a"].append("bogus");
- argsplus["b"].append("bogus");
LLSD expect;
- foreach(LLSD::String a, ab)
+ for (LLSD::String a: ab)
{
expect[a] = zipmap(params[a], args[a]);
}
// Adjust expect["a"]["cp"] for special Vars::cp treatment.
- expect["a"]["cp"] = std::string("'") + expect["a"]["cp"].asString() + "'";
+ expect["a"]["cp"] = stringize("'", expect["a"]["cp"].asString(), "'");
debug("expect: ", expect);
- // Use substantially the same logic for args and argsplus
- LLSD argsarrays(llsd::array(args, argsplus));
- // So i==0 selects 'args', i==1 selects argsplus
- for (LLSD::Integer i(0), iend(argsarrays.size()); i < iend; ++i)
+ for (const LLSD& funcsab: inArray(array_funcs))
{
- foreach(const LLSD& funcsab, inArray(array_funcs))
+ for (LLSD::String a: ab)
{
- foreach(LLSD::String a, ab)
- {
- // Reset the Vars instance before each call
- Vars* vars(varsfor(funcsab[a]));
- *vars = Vars();
- work(funcsab[a], argsarrays[i][a]);
- ensure_llsd(STRINGIZE(funcsab[a].asString() <<
- ": expect[\"" << a << "\"] mismatch"),
- vars->inspect(), expect[a], 7); // 7 bits ~= 2 decimal digits
-
- // TODO: in the i==1 or argsplus case, intercept LL_WARNS
- // output? Even without that, using argsplus verifies that
- // passing too many args isn't fatal; it works -- but
- // would be nice to notice the warning too.
- }
+ // Reset the Vars instance before each call
+ Vars* vars(varsfor(funcsab[a]));
+ *vars = Vars();
+ work(funcsab[a], args[a]);
+ ensure_llsd(stringize(funcsab[a].asString(), ": expect[\"", a, "\"] mismatch"),
+ vars->inspect(), expect[a], 7); // 7 bits ~= 2 decimal digits
}
}
}
@@ -1239,7 +1259,7 @@ namespace tut
("a", llsd::array(false, 255, 98.6, 1024.5, "pointer"))
("b", llsd::array("object", LLUUID::generateNewID(), LLDate::now(), LLURI("http://wiki.lindenlab.com/wiki"), LLSD::Binary(boost::begin(binary), boost::end(binary)))));
LLSD array_overfull(array_full);
- foreach(LLSD::String a, ab)
+ for (LLSD::String a: ab)
{
array_overfull[a].append("bogus");
}
@@ -1253,7 +1273,7 @@ namespace tut
ensure_not_equals("UUID collision",
array_full["b"][1].asUUID(), dft_array_full["b"][1].asUUID());
LLSD map_full, map_overfull;
- foreach(LLSD::String a, ab)
+ for (LLSD::String a: ab)
{
map_full[a] = zipmap(params[a], array_full[a]);
map_overfull[a] = map_full[a];
@@ -1294,21 +1314,360 @@ namespace tut
"freenb_map_mdft", "smethodnb_map_mdft", "methodnb_map_mdft")));
// Treat (full | overfull) (array | map) the same.
LLSD argssets(llsd::array(array_full, array_overfull, map_full, map_overfull));
- foreach(const LLSD& args, inArray(argssets))
+ for (const LLSD& args: inArray(argssets))
{
- foreach(LLSD::String a, ab)
+ for (LLSD::String a: ab)
{
- foreach(LLSD::String name, inArray(names[a]))
+ for (LLSD::String name: inArray(names[a]))
{
// Reset the Vars instance
Vars* vars(varsfor(name));
*vars = Vars();
work(name, args[a]);
- ensure_llsd(STRINGIZE(name << ": expect[\"" << a << "\"] mismatch"),
+ ensure_llsd(stringize(name, ": expect[\"", a, "\"] mismatch"),
vars->inspect(), expect[a], 7); // 7 bits, 2 decimal digits
// intercept LL_WARNS for the two overfull cases?
}
}
}
}
+
+ struct DispatchResult: public LLDispatchListener
+ {
+ using DR = DispatchResult;
+
+ DispatchResult(): LLDispatchListener("results", "op")
+ {
+ add("strfunc", "return string", &DR::strfunc);
+ add("voidfunc", "void function", &DR::voidfunc);
+ add("emptyfunc", "return empty LLSD", &DR::emptyfunc);
+ add("intfunc", "return Integer LLSD", &DR::intfunc);
+ add("llsdfunc", "return passed LLSD", &DR::llsdfunc);
+ add("mapfunc", "return map LLSD", &DR::mapfunc);
+ add("arrayfunc", "return array LLSD", &DR::arrayfunc);
+ }
+
+ std::string strfunc(const std::string& str) const { return "got " + str; }
+ void voidfunc() const {}
+ LLSD emptyfunc() const { return {}; }
+ int intfunc(int i) const { return -i; }
+ LLSD llsdfunc(const LLSD& event) const
+ {
+ LLSD result{ event };
+ result["with"] = "string";
+ return result;
+ }
+ LLSD mapfunc(int i, const std::string& str) const
+ {
+ return llsd::map("i", intfunc(i), "str", strfunc(str));
+ }
+ LLSD arrayfunc(int i, const std::string& str) const
+ {
+ return llsd::array(intfunc(i), strfunc(str));
+ }
+ };
+
+ template<> template<>
+ void object::test<23>()
+ {
+ set_test_name("string result");
+ DispatchResult service;
+ LLSD result{ service("strfunc", "a string") };
+ ensure_equals("strfunc() mismatch", result.asString(), "got a string");
+ }
+
+ template<> template<>
+ void object::test<24>()
+ {
+ set_test_name("void result");
+ DispatchResult service;
+ LLSD result{ service("voidfunc", LLSD()) };
+ ensure("voidfunc() returned defined", result.isUndefined());
+ }
+
+ template<> template<>
+ void object::test<25>()
+ {
+ set_test_name("Integer result");
+ DispatchResult service;
+ LLSD result{ service("intfunc", -17) };
+ ensure_equals("intfunc() mismatch", result.asInteger(), 17);
+ }
+
+ template<> template<>
+ void object::test<26>()
+ {
+ set_test_name("LLSD echo");
+ DispatchResult service;
+ LLSD result{ service("llsdfunc", llsd::map("op", "llsdfunc", "reqid", 17)) };
+ ensure_equals("llsdfunc() mismatch", result,
+ llsd::map("op", "llsdfunc", "reqid", 17, "with", "string"));
+ }
+
+ template<> template<>
+ void object::test<27>()
+ {
+ set_test_name("map LLSD result");
+ DispatchResult service;
+ LLSD result{ service("mapfunc", llsd::array(-12, "value")) };
+ ensure_equals("mapfunc() mismatch", result, llsd::map("i", 12, "str", "got value"));
+ }
+
+ template<> template<>
+ void object::test<28>()
+ {
+ set_test_name("array LLSD result");
+ DispatchResult service;
+ LLSD result{ service("arrayfunc", llsd::array(-8, "word")) };
+ ensure_equals("arrayfunc() mismatch", result, llsd::array(8, "got word"));
+ }
+
+ template<> template<>
+ void object::test<29>()
+ {
+ set_test_name("listener error, no reply");
+ DispatchResult service;
+ tut::call_exc(
+ [&service]()
+ { service.post(llsd::map("op", "nosuchfunc", "reqid", 17)); },
+ "nosuchfunc");
+ }
+
+ template<> template<>
+ void object::test<30>()
+ {
+ set_test_name("listener error with reply");
+ DispatchResult service;
+ LLCaptureListener<LLSD> result;
+ service.post(llsd::map("op", "nosuchfunc", "reqid", 17, "reply", result.getName()));
+ LLSD reply{ result.get() };
+ ensure("no reply", reply.isDefined());
+ ensure_equals("reqid not echoed", reply["reqid"].asInteger(), 17);
+ ensure_has(reply["error"].asString(), "nosuchfunc");
+ }
+
+ template<> template<>
+ void object::test<31>()
+ {
+ set_test_name("listener call to void function");
+ DispatchResult service;
+ LLCaptureListener<LLSD> result;
+ result.set("non-empty");
+ for (const auto& func: StringVec{ "voidfunc", "emptyfunc" })
+ {
+ service.post(llsd::map(
+ "op", func,
+ "reqid", 17,
+ "reply", result.getName()));
+ ensure_equals("reply from " + func, result.get().asString(), "non-empty");
+ }
+ }
+
+ template<> template<>
+ void object::test<32>()
+ {
+ set_test_name("listener call to string function");
+ DispatchResult service;
+ LLCaptureListener<LLSD> result;
+ service.post(llsd::map(
+ "op", "strfunc",
+ "args", llsd::array("a string"),
+ "reqid", 17,
+ "reply", result.getName()));
+ LLSD reply{ result.get() };
+ ensure_equals("reqid not echoed", reply["reqid"].asInteger(), 17);
+ ensure_equals("bad reply from strfunc", reply["data"].asString(), "got a string");
+ }
+
+ template<> template<>
+ void object::test<33>()
+ {
+ set_test_name("listener call to map function");
+ DispatchResult service;
+ LLCaptureListener<LLSD> result;
+ service.post(llsd::map(
+ "op", "mapfunc",
+ "args", llsd::array(-7, "value"),
+ "reqid", 17,
+ "reply", result.getName()));
+ LLSD reply{ result.get() };
+ ensure_equals("reqid not echoed", reply["reqid"].asInteger(), 17);
+ ensure_equals("bad i from mapfunc", reply["i"].asInteger(), 7);
+ ensure_equals("bad str from mapfunc", reply["str"], "got value");
+ }
+
+ template<> template<>
+ void object::test<34>()
+ {
+ set_test_name("batched map success");
+ DispatchResult service;
+ LLCaptureListener<LLSD> result;
+ service.post(llsd::map(
+ "op", llsd::map(
+ "strfunc", "some string",
+ "intfunc", 2,
+ "voidfunc", LLSD(),
+ "arrayfunc", llsd::array(-5, "other string")),
+ "reqid", 17,
+ "reply", result.getName()));
+ LLSD reply{ result.get() };
+ ensure_equals("reqid not echoed", reply["reqid"].asInteger(), 17);
+ reply.erase("reqid");
+ ensure_equals(
+ "bad map batch",
+ reply,
+ llsd::map(
+ "strfunc", "got some string",
+ "intfunc", -2,
+ "voidfunc", LLSD(),
+ "arrayfunc", llsd::array(5, "got other string")));
+ }
+
+ template<> template<>
+ void object::test<35>()
+ {
+ set_test_name("batched map error");
+ DispatchResult service;
+ LLCaptureListener<LLSD> result;
+ service.post(llsd::map(
+ "op", llsd::map(
+ "badfunc", 34, // !
+ "strfunc", "some string",
+ "intfunc", 2,
+ "missing", LLSD(), // !
+ "voidfunc", LLSD(),
+ "arrayfunc", llsd::array(-5, "other string")),
+ "reqid", 17,
+ "reply", result.getName()));
+ LLSD reply{ result.get() };
+ ensure_equals("reqid not echoed", reply["reqid"].asInteger(), 17);
+ reply.erase("reqid");
+ auto error{ reply["error"].asString() };
+ reply.erase("error");
+ ensure_has(error, "badfunc");
+ ensure_has(error, "missing");
+ ensure_equals(
+ "bad partial batch",
+ reply,
+ llsd::map(
+ "strfunc", "got some string",
+ "intfunc", -2,
+ "voidfunc", LLSD(),
+ "arrayfunc", llsd::array(5, "got other string")));
+ }
+
+ template<> template<>
+ void object::test<36>()
+ {
+ set_test_name("batched map exception");
+ DispatchResult service;
+ auto error = tut::call_exc(
+ [&service]()
+ {
+ service.post(llsd::map(
+ "op", llsd::map(
+ "badfunc", 34, // !
+ "strfunc", "some string",
+ "intfunc", 2,
+ "missing", LLSD(), // !
+ "voidfunc", LLSD(),
+ "arrayfunc", llsd::array(-5, "other string")),
+ "reqid", 17));
+ // no "reply"
+ },
+ "badfunc");
+ ensure_has(error, "missing");
+ }
+
+ template<> template<>
+ void object::test<37>()
+ {
+ set_test_name("batched array success");
+ DispatchResult service;
+ LLCaptureListener<LLSD> result;
+ service.post(llsd::map(
+ "op", llsd::array(
+ llsd::array("strfunc", "some string"),
+ llsd::array("intfunc", 2),
+ "arrayfunc",
+ "voidfunc"),
+ "args", llsd::array(
+ LLSD(),
+ LLSD(),
+ llsd::array(-5, "other string")),
+ // args array deliberately short, since the default
+ // [3] is undefined, which should work for voidfunc
+ "reqid", 17,
+ "reply", result.getName()));
+ LLSD reply{ result.get() };
+ ensure_equals("reqid not echoed", reply["reqid"].asInteger(), 17);
+ reply.erase("reqid");
+ ensure_equals(
+ "bad array batch",
+ reply,
+ llsd::map(
+ "data", llsd::array(
+ "got some string",
+ -2,
+ llsd::array(5, "got other string"),
+ LLSD())));
+ }
+
+ template<> template<>
+ void object::test<38>()
+ {
+ set_test_name("batched array error");
+ DispatchResult service;
+ LLCaptureListener<LLSD> result;
+ service.post(llsd::map(
+ "op", llsd::array(
+ llsd::array("strfunc", "some string"),
+ llsd::array("intfunc", 2, "whoops"), // bad form
+ "arrayfunc",
+ "voidfunc"),
+ "args", llsd::array(
+ LLSD(),
+ LLSD(),
+ llsd::array(-5, "other string")),
+ // args array deliberately short, since the default
+ // [3] is undefined, which should work for voidfunc
+ "reqid", 17,
+ "reply", result.getName()));
+ LLSD reply{ result.get() };
+ ensure_equals("reqid not echoed", reply["reqid"].asInteger(), 17);
+ reply.erase("reqid");
+ auto error{ reply["error"] };
+ reply.erase("error");
+ ensure_has(error, "[1]");
+ ensure_has(error, "unsupported");
+ ensure_equals("bad array batch", reply,
+ llsd::map("data", llsd::array("got some string")));
+ }
+
+ template<> template<>
+ void object::test<39>()
+ {
+ set_test_name("batched array exception");
+ DispatchResult service;
+ auto error = tut::call_exc(
+ [&service]()
+ {
+ service.post(llsd::map(
+ "op", llsd::array(
+ llsd::array("strfunc", "some string"),
+ llsd::array("intfunc", 2, "whoops"), // bad form
+ "arrayfunc",
+ "voidfunc"),
+ "args", llsd::array(
+ LLSD(),
+ LLSD(),
+ llsd::array(-5, "other string")),
+ // args array deliberately short, since the default
+ // [3] is undefined, which should work for voidfunc
+ "reqid", 17));
+ // no "reply"
+ },
+ "[1]");
+ ensure_has(error, "unsupported");
+ }
} // namespace tut
diff --git a/indra/llcommon/tests/wrapllerrs.h b/indra/llcommon/tests/wrapllerrs.h
index 3779fb41bc..d657b329bb 100644
--- a/indra/llcommon/tests/wrapllerrs.h
+++ b/indra/llcommon/tests/wrapllerrs.h
@@ -226,6 +226,11 @@ public:
return boost::dynamic_pointer_cast<CaptureLogRecorder>(mRecorder)->streamto(out);
}
+ friend inline std::ostream& operator<<(std::ostream& out, const CaptureLog& self)
+ {
+ return self.streamto(out);
+ }
+
private:
LLError::FatalFunction mFatalFunction;
LLError::SettingsStoragePtr mOldSettings;
diff --git a/indra/llplugin/slplugin/slplugin-objc.mm b/indra/llplugin/slplugin/slplugin-objc.mm
index a5ab1d95c8..68ff196eaf 100644
--- a/indra/llplugin/slplugin/slplugin-objc.mm
+++ b/indra/llplugin/slplugin/slplugin-objc.mm
@@ -95,7 +95,7 @@ void LLCocoaPlugin::processEvents()
{
// Some plugins (webkit at least) will want an event loop. This qualifies.
NSEvent * event;
- event = [NSApp nextEventMatchingMask:NSAnyEventMask untilDate:[NSDate distantPast] inMode:NSDefaultRunLoopMode dequeue:YES];
+ event = [NSApp nextEventMatchingMask:NSEventMaskAny untilDate:[NSDate distantPast] inMode:NSDefaultRunLoopMode dequeue:YES];
[NSApp sendEvent: event];
}
diff --git a/indra/llrender/llgltexture.cpp b/indra/llrender/llgltexture.cpp
index 7fdef4a3b7..b616002b49 100644
--- a/indra/llrender/llgltexture.cpp
+++ b/indra/llrender/llgltexture.cpp
@@ -94,7 +94,8 @@ void LLGLTexture::setBoostLevel(S32 level)
{
mBoostLevel = level ;
if(mBoostLevel != LLGLTexture::BOOST_NONE
- && mBoostLevel != LLGLTexture::BOOST_ICON)
+ && mBoostLevel != LLGLTexture::BOOST_ICON
+ && mBoostLevel != LLGLTexture::BOOST_THUMBNAIL)
{
setNoDelete() ;
}
diff --git a/indra/llrender/llgltexture.h b/indra/llrender/llgltexture.h
index 5c693fc93c..24849d1d1b 100644
--- a/indra/llrender/llgltexture.h
+++ b/indra/llrender/llgltexture.h
@@ -62,6 +62,7 @@ public:
BOOST_SUPER_HIGH , //textures higher than this need to be downloaded at the required resolution without delay.
BOOST_HUD ,
BOOST_ICON ,
+ BOOST_THUMBNAIL ,
BOOST_UI ,
BOOST_PREVIEW ,
BOOST_MAP ,
diff --git a/indra/llui/lllineeditor.cpp b/indra/llui/lllineeditor.cpp
index 7d13d731e2..bd6fd5b79e 100644
--- a/indra/llui/lllineeditor.cpp
+++ b/indra/llui/lllineeditor.cpp
@@ -166,7 +166,8 @@ LLLineEditor::LLLineEditor(const LLLineEditor::Params& p)
mHighlightColor(p.highlight_color()),
mPreeditBgColor(p.preedit_bg_color()),
mGLFont(p.font),
- mContextMenuHandle()
+ mContextMenuHandle(),
+ mShowContextMenu(true)
{
llassert( mMaxLengthBytes > 0 );
@@ -827,7 +828,7 @@ BOOL LLLineEditor::handleMiddleMouseDown(S32 x, S32 y, MASK mask)
BOOL LLLineEditor::handleRightMouseDown(S32 x, S32 y, MASK mask)
{
setFocus(TRUE);
- if (!LLUICtrl::handleRightMouseDown(x, y, mask))
+ if (!LLUICtrl::handleRightMouseDown(x, y, mask) && getShowContextMenu())
{
showContextMenu(x, y);
}
diff --git a/indra/llui/lllineeditor.h b/indra/llui/lllineeditor.h
index 624371ebda..69eb0792e1 100644
--- a/indra/llui/lllineeditor.h
+++ b/indra/llui/lllineeditor.h
@@ -287,7 +287,10 @@ public:
void setBgImage(LLPointer<LLUIImage> image) { mBgImage = image; }
void setBgImageFocused(LLPointer<LLUIImage> image) { mBgImageFocused = image; }
-private:
+ void setShowContextMenu(bool show) { mShowContextMenu = show; }
+ bool getShowContextMenu() const { return mShowContextMenu; }
+
+ private:
// private helper methods
void pasteHelper(bool is_primary);
@@ -407,6 +410,8 @@ protected:
LLHandle<LLContextMenu> mContextMenuHandle;
+ bool mShowContextMenu;
+
private:
// Instances that by default point to the statics but can be overidden in XML.
LLPointer<LLUIImage> mBgImage;
diff --git a/indra/llui/lltabcontainer.cpp b/indra/llui/lltabcontainer.cpp
index 76b9e448a1..cb36f72f6e 100644
--- a/indra/llui/lltabcontainer.cpp
+++ b/indra/llui/lltabcontainer.cpp
@@ -2149,14 +2149,19 @@ void LLTabContainer::commitHoveredButton(S32 x, S32 y)
{
if (!getTabsHidden() && hasMouseCapture())
{
- for(tuple_list_t::iterator iter = mTabList.begin(); iter != mTabList.end(); ++iter)
+ for (tuple_list_t::iterator iter = mTabList.begin(); iter != mTabList.end(); ++iter)
{
- LLTabTuple* tuple = *iter;
- S32 local_x = x - tuple->mButton->getRect().mLeft;
- S32 local_y = y - tuple->mButton->getRect().mBottom;
- if (tuple->mButton->pointInView(local_x, local_y) && tuple->mButton->getEnabled() && !tuple->mTabPanel->getVisible())
+ LLButton* button = (*iter)->mButton;
+ LLPanel* panel = (*iter)->mTabPanel;
+ if (button->getEnabled() && button->getVisible() && !panel->getVisible())
{
- tuple->mButton->onCommit();
+ S32 local_x = x - button->getRect().mLeft;
+ S32 local_y = y - button->getRect().mBottom;
+ if (button->pointInView(local_x, local_y))
+ {
+ button->onCommit();
+ break;
+ }
}
}
}
diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp
index 4ca1879be6..1b83ee401c 100644
--- a/indra/llui/lltextbase.cpp
+++ b/indra/llui/lltextbase.cpp
@@ -1578,7 +1578,13 @@ S32 LLTextBase::getLeftOffset(S32 width)
case LLFontGL::HCENTER:
return mHPad + llmax(0, (mVisibleTextRect.getWidth() - width - mHPad) / 2);
case LLFontGL::RIGHT:
- return mVisibleTextRect.getWidth() - width;
+ {
+ // Font's rendering rounds string size, if value gets rounded
+ // down last symbol might not have enough space to render,
+ // compensate by adding an extra pixel as padding
+ const S32 right_padding = 1;
+ return llmax(mHPad, mVisibleTextRect.getWidth() - width - right_padding);
+ }
default:
return mHPad;
}
diff --git a/indra/llui/llurlentry.cpp b/indra/llui/llurlentry.cpp
index 6a9070634c..77e9edf5e5 100644
--- a/indra/llui/llurlentry.cpp
+++ b/indra/llui/llurlentry.cpp
@@ -35,7 +35,9 @@
#include "llavatarnamecache.h"
#include "llcachename.h"
+#include "llkeyboard.h"
#include "llregex.h"
+#include "llscrolllistctrl.h" // for LLUrlEntryKeybinding file parsing
#include "lltrans.h"
#include "lluicolortable.h"
#include "message.h"
@@ -1609,3 +1611,122 @@ std::string LLUrlEntryIPv6::getUrl(const std::string &string) const
{
return string;
}
+
+
+//
+// LLUrlEntryKeybinding Displays currently assigned key
+//
+LLUrlEntryKeybinding::LLUrlEntryKeybinding()
+ : LLUrlEntryBase()
+ , pHandler(NULL)
+{
+ mPattern = boost::regex(APP_HEADER_REGEX "/keybinding/\\w+(\\?mode=\\w+)?$",
+ boost::regex::perl | boost::regex::icase);
+ mMenuName = "menu_url_experience.xml";
+
+ initLocalization();
+}
+
+std::string LLUrlEntryKeybinding::getLabel(const std::string& url, const LLUrlLabelCallback& cb)
+{
+ std::string control = getControlName(url);
+
+ std::map<std::string, LLLocalizationData>::iterator iter = mLocalizations.find(control);
+
+ std::string keybind;
+ if (pHandler)
+ {
+ keybind = pHandler->getKeyBindingAsString(getMode(url), control);
+ }
+
+ if (iter != mLocalizations.end())
+ {
+ return iter->second.mLocalization + ": " + keybind;
+ }
+
+ return control + ": " + keybind;
+}
+
+std::string LLUrlEntryKeybinding::getTooltip(const std::string& url) const
+{
+ std::string control = getControlName(url);
+
+ std::map<std::string, LLLocalizationData>::const_iterator iter = mLocalizations.find(control);
+ if (iter != mLocalizations.end())
+ {
+ return iter->second.mTooltip;
+ }
+ return url;
+}
+
+std::string LLUrlEntryKeybinding::getControlName(const std::string& url) const
+{
+ std::string search = "/keybinding/";
+ size_t pos_start = url.find(search);
+ if (pos_start == std::string::npos)
+ {
+ return std::string();
+ }
+ pos_start += search.size();
+
+ size_t pos_end = url.find("?mode=");
+ if (pos_end == std::string::npos)
+ {
+ pos_end = url.size();
+ }
+ return url.substr(pos_start, pos_end - pos_start);
+}
+
+std::string LLUrlEntryKeybinding::getMode(const std::string& url) const
+{
+ std::string search = "?mode=";
+ size_t pos_start = url.find(search);
+ if (pos_start == std::string::npos)
+ {
+ return std::string();
+ }
+ pos_start += search.size();
+ return url.substr(pos_start, url.size() - pos_start);
+}
+
+void LLUrlEntryKeybinding::initLocalization()
+{
+ initLocalizationFromFile("control_table_contents_movement.xml");
+ initLocalizationFromFile("control_table_contents_camera.xml");
+ initLocalizationFromFile("control_table_contents_editing.xml");
+ initLocalizationFromFile("control_table_contents_media.xml");
+}
+
+void LLUrlEntryKeybinding::initLocalizationFromFile(const std::string& filename)
+{
+ LLXMLNodePtr xmlNode;
+ LLScrollListCtrl::Contents contents;
+ if (!LLUICtrlFactory::getLayeredXMLNode(filename, xmlNode))
+ {
+ LL_WARNS() << "Failed to load " << filename << LL_ENDL;
+ return;
+ }
+ LLXUIParser parser;
+ parser.readXUI(xmlNode, contents, filename);
+
+ if (!contents.validateBlock())
+ {
+ LL_WARNS() << "Failed to validate " << filename << LL_ENDL;
+ return;
+ }
+
+ for (LLInitParam::ParamIterator<LLScrollListItem::Params>::const_iterator row_it = contents.rows.begin();
+ row_it != contents.rows.end();
+ ++row_it)
+ {
+ std::string control = row_it->value.getValue().asString();
+ if (!control.empty() && control != "menu_separator")
+ {
+ mLocalizations[control] =
+ LLLocalizationData(
+ row_it->columns.begin()->value.getValue().asString(),
+ row_it->columns.begin()->tool_tip.getValue()
+ );
+ }
+ }
+}
diff --git a/indra/llui/llurlentry.h b/indra/llui/llurlentry.h
index 63a1506731..5d0f5479f6 100644
--- a/indra/llui/llurlentry.h
+++ b/indra/llui/llurlentry.h
@@ -550,4 +550,37 @@ public:
std::string mHostPath;
};
+class LLKeyBindingToStringHandler;
+
+///
+/// LLUrlEntryKeybinding A way to access keybindings and show currently used one in text.
+/// secondlife:///app/keybinding/control_name
+class LLUrlEntryKeybinding: public LLUrlEntryBase
+{
+public:
+ LLUrlEntryKeybinding();
+ /*virtual*/ std::string getLabel(const std::string& url, const LLUrlLabelCallback& cb);
+ /*virtual*/ std::string getTooltip(const std::string& url) const;
+ void setHandler(LLKeyBindingToStringHandler* handler) {pHandler = handler;}
+private:
+ std::string getControlName(const std::string& url) const;
+ std::string getMode(const std::string& url) const;
+ void initLocalization();
+ void initLocalizationFromFile(const std::string& filename);
+
+ struct LLLocalizationData
+ {
+ LLLocalizationData() {}
+ LLLocalizationData(const std::string& localization, const std::string& tooltip)
+ : mLocalization(localization)
+ , mTooltip(tooltip)
+ {}
+ std::string mLocalization;
+ std::string mTooltip;
+ };
+
+ std::map<std::string, LLLocalizationData> mLocalizations;
+ LLKeyBindingToStringHandler* pHandler;
+};
+
#endif
diff --git a/indra/llui/llurlregistry.cpp b/indra/llui/llurlregistry.cpp
index 23f3dca3fb..3bd7321777 100644
--- a/indra/llui/llurlregistry.cpp
+++ b/indra/llui/llurlregistry.cpp
@@ -73,6 +73,8 @@ LLUrlRegistry::LLUrlRegistry()
registerUrl(new LLUrlEntryPlace());
registerUrl(new LLUrlEntryInventory());
registerUrl(new LLUrlEntryExperienceProfile());
+ mUrlEntryKeybinding = new LLUrlEntryKeybinding();
+ registerUrl(mUrlEntryKeybinding);
//LLUrlEntrySL and LLUrlEntrySLLabel have more common pattern,
//so it should be registered in the end of list
registerUrl(new LLUrlEntrySL());
@@ -307,3 +309,9 @@ bool LLUrlRegistry::isUrl(const LLWString &text)
}
return false;
}
+
+void LLUrlRegistry::setKeybindingHandler(LLKeyBindingToStringHandler* handler)
+{
+ LLUrlEntryKeybinding *entry = (LLUrlEntryKeybinding*)mUrlEntryKeybinding;
+ entry->setHandler(handler);
+}
diff --git a/indra/llui/llurlregistry.h b/indra/llui/llurlregistry.h
index efafe543ab..186447c0be 100644
--- a/indra/llui/llurlregistry.h
+++ b/indra/llui/llurlregistry.h
@@ -36,6 +36,8 @@
#include <string>
#include <vector>
+class LLKeyBindingToStringHandler;
+
/// This default callback for findUrl() simply ignores any label updates
void LLUrlRegistryNullCallback(const std::string &url,
const std::string &label,
@@ -88,6 +90,9 @@ public:
bool isUrl(const std::string &text);
bool isUrl(const LLWString &text);
+ // Set handler for url registry to be capable of parsing and populating keybindings
+ void setKeybindingHandler(LLKeyBindingToStringHandler* handler);
+
private:
std::vector<LLUrlEntryBase *> mUrlEntry;
LLUrlEntryBase* mUrlEntryTrusted;
@@ -96,6 +101,7 @@ private:
LLUrlEntryBase* mUrlEntryHTTPLabel;
LLUrlEntryBase* mUrlEntrySLLabel;
LLUrlEntryBase* mUrlEntryNoLink;
+ LLUrlEntryBase* mUrlEntryKeybinding;
};
#endif
diff --git a/indra/llwindow/llkeyboard.cpp b/indra/llwindow/llkeyboard.cpp
index e65cc7563e..34720ff64e 100644
--- a/indra/llwindow/llkeyboard.cpp
+++ b/indra/llwindow/llkeyboard.cpp
@@ -367,6 +367,45 @@ std::string LLKeyboard::stringFromKey(KEY key, bool translate)
}
//static
+std::string LLKeyboard::stringFromMouse(EMouseClickType click, bool translate)
+{
+ std::string res;
+ switch (click)
+ {
+ case CLICK_LEFT:
+ res = "LMB";
+ break;
+ case CLICK_MIDDLE:
+ res = "MMB";
+ break;
+ case CLICK_RIGHT:
+ res = "RMB";
+ break;
+ case CLICK_BUTTON4:
+ res = "MB4";
+ break;
+ case CLICK_BUTTON5:
+ res = "MB5";
+ break;
+ case CLICK_DOUBLELEFT:
+ res = "Double LMB";
+ break;
+ default:
+ break;
+ }
+
+ if (translate && !res.empty())
+ {
+ LLKeyStringTranslatorFunc* trans = gKeyboard->mStringTranslator;
+ if (trans != NULL)
+ {
+ res = trans(res.c_str());
+ }
+ }
+ return res;
+}
+
+//static
std::string LLKeyboard::stringFromAccelerator(MASK accel_mask)
{
std::string res;
@@ -433,6 +472,18 @@ std::string LLKeyboard::stringFromAccelerator( MASK accel_mask, KEY key )
return res;
}
+//static
+std::string LLKeyboard::stringFromAccelerator(MASK accel_mask, EMouseClickType click)
+{
+ std::string res;
+ if (CLICK_NONE == click)
+ {
+ return res;
+ }
+ res.append(stringFromAccelerator(accel_mask));
+ res.append(stringFromMouse(click));
+ return res;
+}
//static
BOOL LLKeyboard::maskFromString(const std::string& str, MASK *mask)
diff --git a/indra/llwindow/llkeyboard.h b/indra/llwindow/llkeyboard.h
index fb1ae10f50..dad150e3c1 100644
--- a/indra/llwindow/llkeyboard.h
+++ b/indra/llwindow/llkeyboard.h
@@ -96,8 +96,10 @@ public:
static BOOL maskFromString(const std::string& str, MASK *mask); // False on failure
static BOOL keyFromString(const std::string& str, KEY *key); // False on failure
static std::string stringFromKey(KEY key, bool translate = true);
+ static std::string stringFromMouse(EMouseClickType click, bool translate = true);
static std::string stringFromAccelerator( MASK accel_mask ); // separated for convinience, returns with "+": "Shift+" or "Shift+Alt+"...
static std::string stringFromAccelerator( MASK accel_mask, KEY key );
+ static std::string stringFromAccelerator(MASK accel_mask, EMouseClickType click);
void setCallbacks(LLWindowCallbacks *cbs) { mCallbacks = cbs; }
F32 getKeyElapsedTime( KEY key ); // Returns time in seconds since key was pressed.
@@ -130,6 +132,13 @@ protected:
static std::map<std::string,KEY> sNamesToKeys;
};
+// Interface to get key from assigned command
+class LLKeyBindingToStringHandler
+{
+public:
+ virtual std::string getKeyBindingAsString(const std::string& mode, const std::string& control) const = 0;
+};
+
extern LLKeyboard *gKeyboard;
#endif
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index c16e75dd1f..355f35c558 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -1761,7 +1761,7 @@ if (WINDOWS)
if (TARGET ll::fmodstudio)
list(APPEND COPY_INPUT_DEPENDENCIES
${SHARED_LIB_STAGING_DIR}/fmod.dll
- ${SHARED_LIB_STAGING_DIR}/Debug/fmodL.dll
+ ${SHARED_LIB_STAGING_DIR}/fmodL.dll
)
endif ()
diff --git a/indra/newview/VIEWER_VERSION.txt b/indra/newview/VIEWER_VERSION.txt
index 21c8c7b46b..0e7b60da8a 100644
--- a/indra/newview/VIEWER_VERSION.txt
+++ b/indra/newview/VIEWER_VERSION.txt
@@ -1 +1 @@
-7.1.1
+7.1.2 \ No newline at end of file
diff --git a/indra/newview/installers/darwin/release-dmg/Applications-alias.r b/indra/newview/installers/darwin/release-dmg/Applications-alias.r
index aa3cfb87d8..f9be0536c6 100755
--- a/indra/newview/installers/darwin/release-dmg/Applications-alias.r
+++ b/indra/newview/installers/darwin/release-dmg/Applications-alias.r
@@ -1,6996 +1,21 @@
data 'alis' (0) {
$"0000 0000 0112 0002 0001 036D 6277 0000" /* ...........mbw.. */
$"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 C135 A717 482B 0000 0000" /* ......5.H+.... */
+ $"0000 0000 0000 C135 A717 482B 0000 0000" /* ......�5�.H+.... */
$"0002 0C41 7070 6C69 6361 7469 6F6E 7300" /* ...Applications. */
$"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
$"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
$"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 00E2 4F18 C2E8 9FB0 0000 0000 0000" /* ...O.蟰...... */
- $"0000 FFFF FFFF 0000 0920 0000 0000 0000" /* .... ...... */
+ $"0000 00E2 4F18 C2E8 9FB0 0000 0000 0000" /* ...�O.�蟰...... */
+ $"0000 FFFF FFFF 0000 0920 0000 0000 0000" /* ..����..� ...... */
$"0000 0000 0000 0000 0003 6D62 7700 0010" /* ..........mbw... */
- $"0008 0000 C136 0987 0000 0011 0008 0000" /* ....6Ƈ........ */
- $"C2E9 0220 0000 0001 0000 0002 0010 6D62" /* . ..........mb */
+ $"0008 0000 C136 0987 0000 0011 0008 0000" /* ....�6Ƈ........ */
+ $"C2E9 0220 0000 0001 0000 0002 0010 6D62" /* ��. ..........mb */
$"773A 4170 706C 6963 6174 696F 6E73 000E" /* w:Applications.. */
$"001A 000C 0041 0070 0070 006C 0069 0063" /* .....A.p.p.l.i.c */
$"0061 0074 0069 006F 006E 0073 000F 0008" /* .a.t.i.o.n.s.... */
$"0003 006D 0062 0077 0012 000C 4170 706C" /* ...m.b.w....Appl */
- $"6963 6174 696F 6E73 0013 0001 2F00 FFFF" /* ications..../. */
+ $"6963 6174 696F 6E73 0013 0001 2F00 FFFF" /* ications..../.�� */
$"0000" /* .. */
};
-
-data 'icns' (-16455) {
- $"6963 6E73 0001 B3AC 6973 3332 0000 0224" /* icns..is32...$ */
- $"9F00 005F 8061 005D 8700 055D 9AA2 A0A4" /* .._a.]..] */
- $"8986 0008 557D B3B2 B1B3 A881 8081 8104" /* ..U}. */
- $"826F 577E AF82 A801 B3AE 82AD 03AF 7B7A" /* oW~..{z */
- $"A781 A203 9EB7 C89D 81A2 03A6 776E 9A80" /* .ȝ.wn */
- $"9705 959F D3DC A295 8097 5899 6C67 8F8D" /* .ܢXlg */
- $"8E89 85C9 BCA9 C883 898D 8D8E 6561 8585" /* ɼȃea */
- $"83A8 B7F3 BAB4 DFB6 AA84 8585 605E 7B7D" /* ߶`^{} */
- $"79D0 F9E0 F0F2 DAE1 D87C 7D7B 5D5B 7476" /* y|}{][tv */
- $"7099 D876 7373 76CA 8A72 7673 5B5A 6D70" /* pvssvʊrvs[Zmp */
- $"6B9B 816C 6F6F 67B3 C567 706C 5A59 686B" /* klooggplZYhk */
- $"6B67 686B 806A 056B 6F6A 6B67 5A88 5900" /* kghkj.kojkgZY. */
- $"5882 598A 5801 0059 9F00 0482 8383 8480" /* XYX..Y.. */
- $"8700 057F B7BE BDC0 A786 0008 799E D0CE" /* .....y */
- $"CECF C5A1 A081 A105 A390 7AA0 D0CA 80C9" /* š.zʀ */
- $"01CA D183 CE03 D09C 9ECD 81C9 03C7 D4DE" /* .у.М́. */
- $"C681 C903 CD9A 94C5 80C2 05C1 C6E3 E9C8" /* Ɓ.͚ŀ. */
- $"C180 C20D C491 8DBD BBBC B9B6 DDD7 CCDD" /* .đ */
- $"B5B9 80BC 468B 87B4 B4B3 C8D1 F7D3 CFEA" /* F */
- $"D0C9 B4B4 B385 83AA ABA9 E0FB EAF5 F6E5" /* ɴ */
- $"EAE5 AAAB A981 80A0 A39E BAE4 A2A0 A1A2" /* 媫䢠 */
- $"DAAF 9FA3 9F7F 7E97 9B97 B8A6 979A 9A94" /* گ.~ */
- $"CAD6 949B 977D 7D90 9493 9091 8293 0496" /* ֔}}. */
- $"9294 907D 8E7C 8A7B 0100 7C9F 0000 7A80" /* }|{..|..z */
- $"7C00 7887 0005 77B1 B8B7 BBA0 8600 0871" /* |.x..w..q */
- $"97CB C9C8 CAC0 9B99 819A 049C 8972 99CA" /* .r */
- $"82C3 00CB 83C8 03CA 9596 C681 C203 BFCF" /* .˃.ʕƁ. */
- $"DABF 81C2 03C6 938C BD80 BA05 B9BF E0E7" /* ڿ.Ɠ. */
- $"C1B9 80BA 57BC 8985 B5B3 B3B0 ADD9 D2C6" /* W */
- $"D9AC B0B3 B3B4 827F ACAB AAC2 CCF6 CECA" /* ٬. */
- $"E8CB C3AB ACAA 7D7B A1A3 A0DD FAE9 F4F5" /* ë}{ */
- $"E3E8 E3A2 A3A0 7A78 989B 96B3 E29A 9898" /* 㢣zx⚘ */
- $"9AD7 A897 9B97 7776 8F93 8FB2 9F8F 9292" /* רwv */
- $"8BC5 D28C 938F 7575 888C 8B89 8982 8B04" /* Ҍuu. */
- $"8F8A 8C88 758E 748A 7301 0074 7338 6D6B" /* uts..ts8mk */
- $"0000 0108 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 1E24 2424 1600 0000 0000" /* .......$$$...... */
- $"0000 0000 0011 BDC8 C8C8 9600 0000 0000" /* ......Ȗ..... */
- $"0000 0000 048C FFFF FFFF F5A7 9C9E 9E9E" /* ..... */
- $"9E9E 6003 8AFF FCFC FCFC FEFF FFFF FFFF" /* `. */
- $"FFFF FF7A 89FF FFFF FFFF FFFF FFFF FFFF" /* z */
- $"FFFF FF7A 73FF FFFF FFFF FFFF FFFF FFFF" /* zs */
- $"FFFF FF64 62FF FFFF FFFF FFFF FFFF FFFF" /* db */
- $"FFFF FF53 53FF FFFF FFFF FFFF FFFF FFFF" /* SS */
- $"FFFF FF45 48FF FFFF FFFF FFFF FFFF FFFF" /* EH */
- $"FFFF FF3C 41FF FFFF FFFF FFFF FFFF FFFF" /* <A */
- $"FFFF FD35 3DFF FFFF FFFF FFFF FFFF FFFF" /* 5= */
- $"FFFF FA30 3CFF FFFF FFFF FFFF FFFF FFFF" /* 0< */
- $"FFFF FB2F 1247 4B4A 4A4A 4A4A 4A4A 4A4A" /* /.GKJJJJJJJJJ */
- $"4A4B 450F 0101 0201 0101 0101 0101 0101" /* JKE............. */
- $"0102 0001 696C 3332 0000 05AB FF00 BE00" /* ....il32..... */
- $"025A 7881 847F 0064 9200 0262 BBC4 83C2" /* .Zx..d..bă */
- $"02C7 8451 9000 0255 86BF 84BC 03BF A064" /* .DŽQ..U.d */
- $"6389 6400 6281 0003 5770 A2A2 85A1 01A3" /* cd.b..Wp. */
- $"9D89 9B07 9C97 6758 005B 95AC 88A7 02A8" /* .gX.[. */
- $"A4A7 89A8 05AB 925A 61A7 AE88 AC03 ABCA" /* .Za. */
- $"AEAB 88AC 05AE A15E 5B9A A788 A503 A0D7" /* .^[. */
- $"D79F 88A5 05A8 9559 5990 A288 9F04 9BAB" /* ן.YY. */
- $"FBAE 9C87 9F05 A28B 5857 879D 879A 0595" /* .XW. */
- $"BDD6 E6E3 9487 9A05 9D82 5656 7F97 8594" /* 㔇.VV. */
- $"0995 8FB3 F4CF B1FF AD90 9585 9405 977A" /* ƕϱ.z */
- $"0000 7793 8690 078D CDF8 B886 E8E5 8B86" /* ..w.勆 */
- $"9005 9372 0000 708F 828C 808B 0984 BBF7" /* .r..pƄ */
- $"C687 85AB FFA9 8580 8B82 8C05 8E6D 0000" /* Ƈ.m.. */
- $"6B8A 8287 0D88 8785 8FF3 FDA1 8186 84E5" /* k. */
- $"E484 8684 8705 8868 0000 6685 8183 117E" /* 䄆.h..f.~ */
- $"B3E3 D0D2 FFDC D4DF DDDB D2FD D0DE E2B7" /* */
- $"8082 8304 6400 0062 8081 7F06 76C5 FFDB" /* .d..b..v */
- $"F9F3 E381 FF06 F6D4 BFF4 FFD3 7882 7F03" /* .Կx.. */
- $"6100 005F 827B 0675 B0D9 E1FF C8D8 82DF" /* a.._{.u؂ */
- $"05BF F3C9 DCB9 7681 7B04 7A5E 0000 5C82" /* .ܹv{.z^..\ */
- $"7706 786F 96FF E879 7281 7306 7278 C8C2" /* w.xoyrs.rx */
- $"7074 7880 7706 7875 5C00 005A 7382 7405" /* ptxw.xu\..Zst. */
- $"71C1 E19A 6D74 8173 0574 6BA2 FFAD 6C81" /* qmts.tkl */
- $"7406 7571 5B00 005A 6F81 7104 6F77 F2AF" /* t.uq[..Zoq.ow */
- $"6984 7105 6E7E FAFB 836D 8071 0772 6D5A" /* iq.n~mq.rmZ */
- $"0000 586C 6F80 6E03 6C7B 9368 866E 0467" /* ..Xlon.l{hn.g */
- $"C3FA 8B69 806E 076F 6A59 0000 586A 6E81" /* in.ojY..Xjn */
- $"6D01 6C68 876D 036B 717D 6B81 6D07 6E69" /* m.lhm.kq}km.ni */
- $"5900 0058 666A 8E69 0168 6682 6903 6A65" /* Y..Xfji.hfi.je */
- $"5900 BD59 0000 9B59 9E00 FF00 BE00 027D" /* Y.Y..Y....} */
- $"98A0 829E 029F 9E85 9200 0284 D5DE 83DC" /* ...ރ */
- $"02E0 A275 9000 0279 A7DB 84D8 03DB BD87" /* .u..yۄ.۽ */
- $"8689 8700 8581 0003 7A92 C0C0 85BF 01C0" /* ...z. */
- $"BB89 B907 BAB4 887B 007E B7CC 88C7 01C8" /* .{.~̈. */
- $"C68A C805 CBB2 7C84 CAD1 89CF 02DE CFCE" /* Ɗ.˲|щ. */
- $"88CF 05D2 C380 7FBF CC88 CA03 C7E8 E5C6" /* .À.̈. */
- $"88CA 05CD B87C 7CB7 CA88 C704 C4CD FCCD" /* .͸||ʈ. */
- $"C587 C705 CAB0 7A7A AFC7 87C4 05C1 D4E3" /* Ň.ʰzzLJ. */
- $"F0ED C087 C405 C8A8 7979 A7C4 85C0 09C1" /* .Ȩyyą */
- $"BDD0 F7E1 D1FF CDBE C185 C005 C4A1 0000" /* ;.ġ.. */
- $"A0C1 86BD 07BA DEFB D5B7 F2EE B986 BD05" /* .շ. */
- $"C09A 0000 9ABE 85BA 09B6 D4F9 DBB8 B6CD" /* ..ƶ۸ */
- $"FFCA B785 BA05 BD94 0000 94B9 83B6 0EB4" /* ʷ.... */
- $"B3B9 F7FE C4B0 B4B2 EFED B2B4 B4B5 82B6" /* İ */
- $"05B8 8F00 008E B481 B211 AFCD EBDF E0FF" /* .... */
- $"E8E2 E9E8 E6E0 FEDF E8EA D0B0 81B2 05B3" /* а. */
- $"8A00 0089 AF81 AD06 A8D9 FFE7 FBF7 EB81" /* ... */
- $"FF06 F9E1 D3F8 FFE3 A980 AD05 AEAD 8600" /* .㩀.. */
- $"0086 82A9 06A5 CBE5 EAFF DAE5 82EA 05D3" /* ... */
- $"F7DA E8D1 A680 A906 AAA7 8300 0082 A382" /* Ѧ... */
- $"A405 9FB7 FFF0 A5A1 81A2 05A1 A5D9 D39F" /* .𥡁.ӟ */
- $"A281 A406 A5A1 8000 0080 9F82 A004 9ED2" /* .... */
- $"E9BA 9B83 A004 9ABF FFC5 9A81 A007 A19C" /* 麛.Ś. */
- $"7F00 007E 999D 809B 059A 9FF6 C696 9C83" /* ...~.Ɩ */
- $"9B05 99A4 FBFB A799 809B 079C 977D 0000" /* ..}.. */
- $"7C95 9980 9803 97A1 B295 8698 0494 D5FC" /* |.. */
- $"AC95 8098 0799 937C 0000 7C93 9782 9600" /* .|..|. */
- $"9387 9603 9599 A295 8196 0797 917C 0000" /* ..|.. */
- $"7B8E 928D 9102 9290 8F82 9103 928C 7B00" /* {..{. */
- $"BD7C 0000 9B7C 9E00 FF00 BE00 0275 9199" /* |..|....u */
- $"8498 007E 9200 027D D0D9 83D7 02DB 9B6C" /* .~..}ك.ۛl */
- $"9000 0271 A0D5 84D2 03D5 B67F 7E89 7F00" /* ..qՄ.ն.~.. */
- $"7D81 0003 728B BBBB 85BA 02BB B6B3 88B4" /* }..r. */
- $"08B5 AF81 7300 76B0 C6C2 87C1 01C2 C089" /* .s.v‡. */
- $"C206 C3C5 AB75 7CC3 CA89 C801 DBC9 89C8" /* .ūu|ʉ.ɉ */
- $"05CB BD78 77B9 C588 C304 C0E5 E2BF C487" /* .˽xwň.ć */
- $"C305 C6B2 7574 B0C3 87C0 05BF BCC7 FCC7" /* .ƲutÇ. */
- $"BE87 C005 C3A9 7272 A7BF 87BC 05B9 D0E1" /* .érr. */
- $"EEEB B887 BC05 C0A1 7171 A0BC 86B8 07B5" /* 븇.qq. */
- $"CBF6 DDCB FFC7 B586 B805 BB99 0000 98B9" /* ǵ... */
- $"86B5 07B2 DBFA D0AE F0EC B186 B505 B892" /* .Ю챆. */
- $"0000 91B5 82B2 80B1 09AC D0F9 D7AF ADC7" /* ..Ƭׯ */
- $"FFC4 AD80 B182 B205 B48C 0000 8BB1 81AD" /* ĭ... */
- $"11AE ADAC ABB1 F6FD BDA8 ABAA EDEB A9AB" /* .멫 */
- $"ACAC AE81 AD05 AF87 0000 86AB 81A9 11A6" /* .... */
- $"C8E9 DCDE FFE5 DFE7 E6E4 DDFE DCE6 E9CB" /* */
- $"A781 A905 AA82 0000 81A6 81A5 069F D6FF" /* .... */
- $"E4FA F6EA 81FF 06F8 DFCF F7FF E0A0 80A5" /* .ࠀ */
- $"05A6 A47E 0000 7D82 A006 9BC6 E3E8 FFD6" /* .~..}. */
- $"E282 E805 CFF6 D7E6 CC9C 80A0 06A1 9E7B" /* .̜.{ */
- $"0000 7A9B 829C 0496 B1FF EF9D 8399 049C" /* ..z.. */
- $"D6D0 969A 819C 069D 9979 0000 7897 8198" /* Ж.y..x */
- $"0597 95CF E7B4 9283 9704 91BA FFC0 9181" /* .紒. */
- $"9807 9994 7700 0076 9295 8094 0493 98F5" /* .w..v. */
- $"C28E 8494 0592 9DFB FBA0 9180 9407 958F" /* Ž.. */
- $"7500 0074 8E91 8090 038F 9AAC 8C86 9004" /* u..t.. */
- $"8BD1 FBA6 8C80 9007 918B 7400 0074 8B8F" /* .t..t */
- $"808E 048F 8E8B 8E8F 848E 048F 8D91 9B8D" /* .. */
- $"818E 078F 8974 0000 7487 8B8E 8A01 8987" /* .t..t. */
- $"828A 038B 8574 00BD 7400 009B 749E 006C" /* .t.t..t.l */
- $"386D 6B00 0004 0800 0000 0000 0000 0000" /* 8mk............. */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0B76 8889 8989" /* ...........v */
- $"8989 8988 3800 0000 0000 0000 0000 0000" /* 8........... */
- $"0000 0000 0000 0000 0000 36FF FFFF FFFF" /* ..........6 */
- $"FFFF FFFF A301 0000 0000 0000 0000 0000" /* ........... */
- $"0000 0000 0000 0000 0006 A4FF FFFF FFFF" /* .......... */
- $"FFFF FFFF DE59 3F40 4040 4040 4040 4040" /* Y?@@@@@@@@@ */
- $"4040 4033 0000 0000 1384 F8F3 F3F3 F3F3" /* @@@3..... */
- $"F3F3 F3F3 F7F9 F7F7 F7F7 F7F7 F7F7 F7F7" /* */
- $"F7F7 F7F1 520D 001D E1FF FAFB FBFB FBFB" /* R... */
- $"FBFB FBFB FBFB FBFB FBFB FBFB FBFB FBFB" /* */
- $"FBFB FBFB FFCD 0E39 FFFF FFFF FFFF FFFF" /* .9 */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFF8 1F26 F6FF FFFF FFFF FFFF" /* .& */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFE5 1318 ECFF FFFF FFFF FFFF" /* .. */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFD5 0A0F DDFF FFFF FFFF FFFF" /* . */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFC6 0206 D0FF FFFF FFFF FFFF" /* .. */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFB6 0000 C2FF FFFF FFFF FFFF" /* .. */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFA5 0000 B2FF FFFF FFFF FFFF" /* .. */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FF95 0000 A4FF FFFF FFFF FFFF" /* .. */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FF87 0000 96FF FFFF FFFF FFFF" /* .. */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FF7A 0000 8AFF FFFF FFFF FFFF" /* z.. */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FF6D 0000 7FFF FFFF FFFF FFFF" /* m... */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FF63 0000 77FF FFFF FFFF FFFF" /* c..w */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FF5A 0000 6FFF FFFF FFFF FFFF" /* Z..o */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FF54 0000 69FF FFFF FFFF FFFF" /* T..i */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FF4F 0000 65FF FFFF FFFF FFFF" /* O..e */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FF4C 0000 64FF FFFF FFFF FFFF" /* L..d */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FF4B 0000 61FF FFFF FFFF FFFF" /* K..a */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FF48 0004 2C6D 7574 7474 7474" /* H..,muttttt */
- $"7474 7474 7474 7474 7474 7474 7474 7474" /* tttttttttttttttt */
- $"7474 7475 6824 0202 0D18 1C1C 1C1C 1C1C" /* tttuh$.......... */
- $"1C1C 1C1C 1C1C 1C1C 1C1C 1C1C 1C1C 1C1C" /* ................ */
- $"1C1C 1C1C 170C 0100 0103 0303 0303 0303" /* ................ */
- $"0303 0303 0303 0303 0303 0303 0303 0303" /* ................ */
- $"0303 0303 0301 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0069 6833 3200 0009 DEFF" /* .......ih32.. */
- $"00FF 00FF 00AD 0001 5E66 8865 0261 5859" /* .....^fe.aXY */
- $"9C00 025E A6BA 87B7 04B9 AE67 5659 9B00" /* ..^.gVY. */
- $"0266 BABF 87BE 04BF BC70 5459 9A00 0252" /* .f.pTY..R */
- $"81BD 89BA 03BC 8652 5491 5585 0003 5580" /* .RTU..U */
- $"B7BA 89B9 02BA B497 918F 0191 7683 0003" /* ..v.. */
- $"5864 9399 8B97 0098 929B 039D 855F 5A80" /* Xd.._Z */
- $"0002 649D A990 A500 A490 A509 A6A9 9B65" /* ..d.Ʀe */
- $"0000 85B4 AFAF 8EAE 03B0 AEAC AF8E AE07" /* .... */
- $"AFAF B280 0000 80AD 8FA9 04A8 B2E7 ACA8" /* ...笨 */
- $"90A9 05AB 7A00 0076 A98F A604 A5A4 F1E0" /* .z..v. */
- $"A08F A606 A7A6 7100 006D A390 A204 9DC8" /* .q..m. */
- $"FFB9 9C8E A207 A3A0 6A00 0065 9D9F 8D9E" /* .j..e */
- $"069F 9C96 A2FA EF9C 8E9E 079F 9A65 0000" /* ..e.. */
- $"6097 9C8D 9B07 97A5 E2C6 D2FF C394 8D9B" /* `.Ô */
- $"079C 9461 0000 5E90 988C 9709 959A D5CE" /* .a..^ƕ */
- $"E4B2 FCF4 9A95 8C97 0799 8D5E 0000 5A8B" /* .^..Z */
- $"968C 9409 8EC8 FFF6 C18D DDFF C78C 8C94" /* Ǝnj */
- $"0796 875B 0000 5885 938B 910B 8F8F E5FF" /* .[..X. */
- $"FFA9 87AA FFF7 988E 8B91 0793 8159 0000" /* .Y.. */
- $"577F 908B 8E0B 87CF D4D0 CA89 8D8B E0FF" /* W..ʉ */
- $"C786 8B8E 0790 7B58 0000 5779 8C86 8A81" /* dž.{X..Wy */
- $"8B0D 84A5 FFFF E38B 898B 85A8 FFF8 9387" /* .㋉ */
- $"818B 868A 078C 7557 0000 5674 8A85 8800" /* .uW..Vt. */
- $"8680 820E 8385 E4FF FFB9 7C83 8381 7FDD" /* .|. */
- $"FFC6 7E81 8200 8585 8807 8A71 5759 0056" /* ~..qWY.V */
- $"6F87 8485 1983 929F A3A0 94B0 FFFF E39D" /* o. */
- $"9F9E 9DA3 9AB0 FBF4 98A0 A09F A192 8484" /* */
- $"8507 876D 5759 0056 6984 8482 197C A7EB" /* .mWY.Vi.| */
- $"FBF1 C2EC FFFB C1ED F2F6 ECFB EDD9 DBFF" /* */
- $"D4EE F0F6 F6B7 7C84 8207 8369 5700 5956" /* |.iW.YV */
- $"6481 847F 0979 A3FF FFEB CCFF FFD5 E084" /* d.y */
- $"FF03 C8F1 BCC4 80FF 01C0 7785 7F06 6557" /* .Ā.w..eW */
- $"5959 5661 7E84 7D08 76A3 FFFF C3F4 FFF5" /* YYVa~}.v */
- $"CB85 FF08 EDA8 CCC0 F2FF FFC1 7485 7D06" /* ˅.t}. */
- $"6358 5959 575E 7B84 7A09 7692 D0BE D6FF" /* cXYYW^{zvо */
- $"FFC2 B9D0 84CF 08CD B9FF F1B1 CED0 A574" /* ¹Є.͹Хt */
- $"847A 0679 6058 5959 585D 8678 0776 6A9C" /* z.y`XYYX]x.vj */
- $"FFFF F081 7086 7106 75D1 D89D 6A71 7484" /* pq.u؝jqt */
- $"7808 7976 5E58 5959 585B 7486 7505 73B9" /* x.yv^XYYX[tu.s */
- $"F5FF AC6D 8775 0570 8CEB F889 6F85 7508" /* mu.pou. */
- $"7672 5C58 5959 5859 7285 7306 6F8A E1C6" /* vr\XYYXYrs.o */
- $"C176 7287 7306 7179 EEFF E173 7184 7308" /* vrs.qysqs. */
- $"7470 5B58 5959 5859 7085 7205 6B97 FFE7" /* tp[XYYXYpr.k */
- $"776E 8972 0569 C6FF FFB4 6A84 7202 736E" /* wnr.ijr.sn */
- $"5A81 5901 586D 856F 0567 B9D9 786B 7089" /* ZY.Xmo.gxkp */
- $"6F06 6993 FFFF F173 6D83 6F01 706B 8259" /* o.ismo.pkY */
- $"0157 6B85 6E03 6C8C 7269 8B6E 066D 6BD3" /* .Wkn.lrin.mk */
- $"FFCB 6C6D 836E 026F 6958 8159 0256 6A6E" /* lmn.oiXY.Vjn */
- $"856D 0169 6B8D 6D04 6A73 8A6D 6B84 6D02" /* m.ikm.jsmkm. */
- $"6E68 5881 5902 566A 6E98 6D02 6B67 6C85" /* nhXY.Vjnm.kgl */
- $"6D02 6E68 5881 5902 5665 69A3 6802 6963" /* m.nhXY.Veih.ic */
- $"5881 5901 5858 A559 0058 B059 0000 AB59" /* XY.XXY.XY..Y */
- $"8000 A959 DF00 FF00 FF00 FF00 AD00 0081" /* .Y...... */
- $"8987 0283 7B7C 9C00 0280 C1D3 87D1 04D2" /* .{|..Ӈ. */
- $"C787 7A7C 9B00 0288 D4DA 87D9 04DA D68F" /* LJz|..ڇ.֏ */
- $"787C 9A00 0276 A2D8 89D6 02D7 A476 9278" /* x|..v؉.פvx */
- $"8500 0379 A2D3 D789 D503 D6D0 B5AD 90AE" /* ..y׉.е */
- $"01B0 9683 0003 7C87 B1B7 8BB5 00B6 92B9" /* ...|. */
- $"03BA A282 7D80 0003 87BD C8C5 90C4 00C5" /* .}..Ő. */
- $"8FC4 08C5 C8B9 8700 00A7 D6D1 90D0 01CD" /* .ȹ..ѐ. */
- $"CF90 D006 D1D3 A000 00A3 D18F CD04 CCD1" /* ϐ.Ӡ..я. */
- $"EECC CC90 CD05 CF9B 0000 9ACE 90CB 03CA" /* ̐.ϛ..ΐ. */
- $"F7E9 C68F CB07 CCCB 9300 0091 C9C9 8FC8" /* Ə.˓..ɏ */
- $"04C6 DFFF D2C5 8EC8 07C9 C68D 0000 8BC5" /* .Ŏ.ƍ.. */
- $"C78D C606 C7C5 BFC7 FDF3 C38E C607 C7C0" /* Ǎ.ſÎ. */
- $"8800 0086 C0C5 8DC4 07C2 C7EB DAE4 FFD9" /* ..ō. */
- $"C08D C407 C6BC 8400 0082 BBC4 8CC2 09C1" /* .Ƽ..Č */
- $"C2E2 DEED D1FD F7C1 C18C C207 C4B6 8100" /* .Ķ. */
- $"007F B5C2 8CC0 09BC DBFF F8D7 BBEA FFDB" /* ..ŒƼ׻ */
- $"BA8C C007 C2B0 7E00 007C B0C0 8BBE 0BBD" /* .°~..|. */
- $"BAED FFFF CCB8 CCFF F9BF BC8B BE07 C0AA" /* ̸. */
- $"7C00 007B ABBF 8BBC 0BB7 DEE1 DFDF B9BB" /* |..{.߹ */
- $"BAED FFDA B78B BC07 BFA5 7B00 007A A5BC" /* ڷ.{..z */
- $"89B9 0EBA B6C6 FFFF ECB9 B9BA B6CB FFFA" /* .칹 */
- $"BCB8 8AB9 07BC 9F7A 0000 799F B984 B601" /* .z..y. */
- $"B7B5 82B3 0CEC FFFF D4AF B3B3 B2B1 EAFF" /* .ԯ */
- $"D9B0 81B3 01B5 B784 B607 B899 797C 0079" /* ٰ..y|.y */
- $"99B7 84B4 13B3 B9BE C1C0 B9CB FFFF EDBE" /* . */
- $"BFBE BEC1 BCCB FCF7 BB80 BF02 C0B9 B384" /* . */
- $"B407 B694 797C 0079 93B4 84B1 19AD C7F1" /* .y|.y. */
- $"FBF5 D6F1 FFFD D5F2 F5F8 F1FB F2E4 E7FF" /* */
- $"E2F3 F4F8 F8D0 AD84 B107 B290 7A00 7C79" /* Э.z.|y */
- $"8DB0 84AE 09AA C3FF FFF2 DCFF FFE2 E984" /* ƪ */
- $"FF03 D9F6 D1D8 80FF 01D6 A985 AE06 8C7A" /* .؀.֩.z */
- $"7C7C 7989 AD84 AB08 A7C3 FFFF D5F7 FFF8" /* ||y. */
- $"DA85 FF08 F2C2 DAD3 F6FF FFD7 A583 AB08" /* څ.ץ. */
- $"ACAA 897A 7C7C 7A86 A984 A809 A5B7 E0D3" /* z||zƥ */
- $"E2FF FFD6 D0E0 84DF 08DD CFFF F5CB DFE0" /* . */
- $"C3A4 83A8 07A9 A686 7A7C 7C7A 8386 A506" /* ä.z||z. */
- $"A39B BAFF FFF5 AA87 A006 A3DF E2BA 9BA1" /* .⺛ */
- $"A284 A507 A6A2 837B 7C7C 7B82 87A2 059F" /* .{||{. */
- $"CCF8 FFC7 9C87 A205 9EAF F0F9 AD9E 85A2" /* ǜ. */
- $"08A3 9F81 7B7C 7C7B 7F9D 859F 069C AEE8" /* .{||{.. */
- $"D4D3 A09E 879F 069D A3F4 FFE8 9D9E 849F" /* Ӡ.蝞 */
- $"09A0 9B7F 7B7C 7C7B 7E9A 9D84 9C05 98B5" /* Ơ.{||{~. */
- $"FFEE 9F99 899C 0596 D7FF FFC9 9684 9C09" /* .ɖ */
- $"9D97 7E7B 7C7C 7B7C 989B 849A 0494 CCE4" /* ~{||{|. */
- $"A097 8A9A 0695 B3FF FFF4 9C99 839A 019B" /* .. */
- $"9482 7C02 7B95 9984 9803 97AD 9B95 8B98" /* |.{. */
- $"0697 96E0 FFDA 9797 8398 0199 9282 7C02" /* .ڗ.|. */
- $"7A93 9785 9601 9395 8D96 0494 9AAB 9695" /* z.. */
- $"8496 0297 8F7B 817C 027A 9297 9896 0294" /* .{|.z. */
- $"9295 8596 0297 8F7B 817C 027A 8C91 A390" /* .{|.z */
- $"0291 897A 817C 017B 7BA5 7C00 7BB0 7C00" /* .z|.{{|.{|. */
- $"00AB 7C80 00A9 7CDF 00FF 00FF 00FF 00AD" /* .|.|.... */
- $"0000 7A89 8002 7C73 749C 0002 79BC CE87" /* ..z.|st..y· */
- $"CC04 CDC2 8172 749B 0002 80CF D587 D304" /* .rt..Շ. */
- $"D4D1 8870 749A 0002 6E9B D288 D003 D1D2" /* шpt..n҈. */
- $"9E6E 9270 8500 0371 9BCE D289 D002 D1CB" /* np..q҉. */
- $"AF91 A801 AA90 8300 0474 80AC B2AF 8AB0" /* ...t */
- $"02B1 B3B4 90B3 03B5 9D7A 7580 0002 80B7" /* ..zu.. */
- $"C3A4 BF09 C0C3 B57F 0000 A0CF CACA 8DC9" /* äõ...ʍ */
- $"04CA CAC6 C8CA 8EC9 07CA CACD 9900 009C" /* .ʎ.͙.. */
- $"CA8F C604 C5CB EDC5 C58F C606 C7C8 9400" /* ʏ.ŏ.Ȕ. */
- $"0093 C790 C403 C3F6 E7BF 8FC4 07C5 C48B" /* .ǐ.翏.ċ */
- $"0000 8AC2 C28F C104 BEDA FFCE BE8E C107" /* ...ξ. */
- $"C2BF 8600 0083 BEC0 8DBF 06C0 BEB8 C1FC" /* ¿... */
- $"F3BC 8EBF 07C0 BA81 0000 7EB9 BE8D BD07" /* 󼎿...~. */
- $"BAC0 E9D6 E1FF D5B8 8DBD 07BF B57C 0000" /* ո.|.. */
- $"7AB3 BC8C BA09 B9BB DFDB EBCB FDF7 BAB9" /* zƹ */
- $"8CBA 07BC AE79 0000 77AE B98C B709 B3D7" /* .y..wƳ */
- $"FFF8 D3B2 E8FF D7B1 8CB7 07B9 A876 0000" /* Ӳױ.v.. */
- $"74A9 B78A B50C B6B5 B2EC FFFF C6AF C6FF" /* t.Ư */
- $"F9B8 B48B B507 B7A3 7400 0073 A3B6 8BB3" /* .t..s */
- $"0BAE DBDE DDDB B0B3 B1EA FFD7 AE8B B307" /* .۰׮. */
- $"B59D 7300 0072 9CB3 8AB0 04AD C0FF FFEA" /* s..r. */
- $"80B0 05AD C4FF F9B4 AF8A B007 B397 7200" /* ..r. */
- $"0071 97B1 85AE 00AC 80AA 0EAB AAEA FFFF" /* .q.. */
- $"CFA6 AAAA A9A7 E7FF D5A7 81AA 00AC 85AE" /* Ϧէ. */
- $"07B0 9171 7400 7191 AE84 AB13 AAB2 B9BB" /* .qt.q. */
- $"BAB2 C6FF FFEB B7B9 B8B7 BBB6 C5FC F7B5" /* 뷹 */
- $"80B9 01BA B285 AB07 AD8C 7174 0070 8BAB" /* ..qt.p */
- $"84A8 19A4 C1EF FBF4 D2F0 FFFC D1F1 F4F8" /* . */
- $"F0FB F1E2 E5FF DFF2 F3F8 F8CB A484 A807" /* ˤ. */
- $"A988 7200 7471 85A7 84A5 09A1 BDFF FFF0" /* r.tqơ */
- $"D9FF FFE0 E784 FF03 D6F5 CDD4 80FF 01D2" /* .Ԁ. */
- $"9F85 A506 8472 7474 7181 A484 A208 9EBD" /* .rttq. */
- $"FFFF D2F6 FFF7 D785 FF08 F1BD D8CF F6FF" /* ׅ. */
- $"FFD3 9C83 A208 A3A2 8172 7474 727E A084" /* Ӝ.rttr~ */
- $"9F09 9CB0 DDCF DFFF FFD2 CCDD 84DC 08DA" /* Ɯ݄. */
- $"CBFF F4C6 DCDD BE9B 839F 08A0 9E7E 7274" /* ݾ.~rt */
- $"7472 7C9D 849C 089D 9B93 B5FF FFF4 A397" /* tr|. */
- $"8598 0897 9BDD E0B4 9398 9A9D 839C 089D" /* .ഓ. */
- $"9A7B 7374 7473 7998 8699 0597 C8F7 FFC1" /* {sttsy. */
- $"9387 9905 96A9 EEF9 A695 8599 089A 9679" /* ..y */
- $"7374 7473 7795 8596 0693 A7E6 D1D0 9895" /* sttsw.И */
- $"8796 0695 9BF3 FFE7 9595 8496 0897 9377" /* .畕.w */
- $"7374 7473 7693 8595 058F B0FF ED98 9289" /* sttsv.혒 */
- $"9505 8ED4 FFFF C58E 8495 0996 9076 7374" /* .ŎƖvst */
- $"7473 7490 9384 9204 8BC8 E299 8F8A 9206" /* tst.♏. */
- $"8DAD FFFF F494 9183 9202 938C 7581 7402" /* .ut. */
- $"738D 9184 9003 8EA7 938D 8B90 068F 8EDD" /* s.. */
- $"FFD7 8E8F 8390 0191 8A82 7402 728B 8F85" /* ׎.t.r */
- $"8E01 8B8D 8D8E 048C 93A4 8E8D 848E 028F" /* ... */
- $"8773 8174 0272 8B8F 988E 028C 8A8D 858E" /* st.r. */
- $"028F 8773 8174 0272 8489 A388 0289 8173" /* .st.r.s */
- $"8174 0173 73A5 7400 73B0 7400 00AB 7480" /* t.sst.st..t */
- $"00A9 74DF 0068 386D 6B00 0009 0800 0000" /* .t.h8mk...... */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 002E 4549 4A4A 4A4A 4A4A 4A4A 4A4A" /* ....EIJJJJJJJJJJ */
- $"3B0A 0400 0000 0000 0000 0000 0000 0000" /* ;.............. */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 2FF9 FFFF FFFF FFFF FFFF FFFF FFFF" /* ../ */
- $"FD52 0802 0000 0000 0000 0000 0000 0000" /* R.............. */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 4DFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ..M */
- $"FF7E 1306 0000 0000 0000 0000 0000 0000" /* ~.............. */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0002 ABFF FFFF FFFF FFFF FFFF FFFF FFFF" /* .. */
- $"FFBB 2C11 0B0B 0B0B 0B0B 0B0B 0B0B 0B0B" /* ,............. */
- $"0B0B 0B0B 0B0B 0903 0000 0000 0000 0000" /* ............... */
- $"08B2 FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* . */
- $"FFFF DFCC CCCC CCCC CCCC CCCC CCCC CCCC" /* */
- $"CCCC CCCC CCCC CBC9 8000 0000 0000 0026" /* ɀ......& */
- $"71F2 EDEE EFEF EFEF EFEF EFEF EFEF EFEF" /* q */
- $"EFEF F4F7 F7F7 F7F7 F7F7 F7F7 F7F7 F7F7" /* */
- $"F7F7 F7F7 F7F7 F7F5 CE41 2000 0000 5EF7" /* A ...^ */
- $"FFF8 F8F9 F9F9 F9F9 F9F9 F9F9 F9F9 F9F9" /* */
- $"F9F9 F9F9 F9F9 F9F9 F9F9 F9F9 F9F9 F9F9" /* */
- $"F9F9 F9F9 F9F9 F9F8 FAFF EE41 0000 C4FF" /* A.. */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFA1 0000 B6FF" /* .. */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FF91 0000 A2FF" /* .. */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FF7A 0000 8FFF" /* z.. */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FF68 0000 79FF" /* h..y */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FF57 0000 5EFF" /* W..^ */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FF48 0000 4BFF" /* H..K */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FD3B 0000 3FFE" /* ;..? */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF F62F 0000 33F8" /* /..3 */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF ED23 0000 27F2" /* #..' */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF DE1A 0000 1FE9" /* .... */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF CE10 0000 1ADF" /* .... */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF C10B 0100 14D5" /* .... */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF B509 0100 0FCD" /* ... */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF AA07 0001 0BC2" /* .... */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF A005 0101 09B3" /* ...Ƴ */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF 9504 0101 08A6" /* .... */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF 8D04 0101 069A" /* .... */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF 8505 0101 0691" /* .... */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF 7D05 0101 078B" /* }.... */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF 7606 0101 0885" /* v.... */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF 7106 0102 0881" /* q.... */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF 6D07 0102 0A7E" /* m...~ */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF 6A08 0102 0B7B" /* j....{ */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF 6709 0102 0C7C" /* g...| */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF 670A 0102 0C75" /* g...u */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF 600B 0102 113A" /* `....: */
- $"7B85 8585 8585 8585 8585 8585 8585 8585" /* { */
- $"8585 8585 8585 8585 8585 8585 8585 8585" /* */
- $"8585 8585 8585 8585 8574 310F 0101 0B1E" /* t1..... */
- $"2B34 3535 3535 3535 3535 3535 3535 3535" /* +455555555555555 */
- $"3535 3535 3535 3535 3535 3535 3535 3535" /* 5555555555555555 */
- $"3535 3535 3535 3535 332A 1C0A 0100 040C" /* 555555553*..... */
- $"1418 1818 1818 1818 1818 1818 1818 1818" /* ................ */
- $"1818 1818 1818 1818 1818 1818 1818 1818" /* ................ */
- $"1818 1818 1818 1818 1813 0B03 0000 0002" /* ................ */
- $"0304 0303 0303 0303 0303 0303 0303 0303" /* ................ */
- $"0303 0303 0303 0303 0303 0303 0303 0303" /* ................ */
- $"0303 0303 0303 0303 0402 0100 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0069 7433" /* .............it3 */
- $"3200 0025 F700 0000 00FF 00FF 00FF 00FF" /* 2..%....... */
- $"00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF" /* ........ */
- $"00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF" /* ........ */
- $"00FF 00FF 00FF 00FF 00FF 00DF 009F 59D7" /* .......Y */
- $"00A6 59D3 0001 5959 8000 9D58 8459 D000" /* .Y..YY.XY. */
- $"0359 5900 569F 5901 5658 8359 D000 0257" /* .YY.VY.VXY..W */
- $"6287 9D95 0494 917F 5E58 8359 CD00 0459" /* b..^XY..Y */
- $"005C 9ABA 9EBC 03B9 AE85 5883 59CD 0004" /* .\.XY.. */
- $"5900 6EB3 BE9E BF04 BEB6 9D62 5782 59CD" /* Y.n.bWY */
- $"0003 5900 74B6 A0BE 03B8 9F63 5782 59CC" /* ..Y.t.cWY */
- $"0004 5959 547A B8A0 BC03 B7A0 6357 8359" /* ..YYTz.cWY */
- $"CB00 0459 5954 88B9 A0BB 03B7 A366 56B8" /* ..YYT.fV */
- $"5995 0005 5959 005B A0B9 A0BA 03B8 AA73" /* Y..YY.[.s */
- $"55BA 5992 0006 5959 0053 7BB4 B9A0 BA04" /* UY..YY.S{. */
- $"B9B2 905A 56BA 5990 0006 5959 0054 73AB" /* ZVY..YY.Ts */
- $"B8A2 B903 B5AB 865E B756 0300 5859 598E" /* .^V..XYY */
- $"0007 5959 005A 83AD B6B7 A2B8 04B7 B4AD" /* ..YY.Z. */
- $"9B87 B57D 047B 725D 0059 8D00 0759 5900" /* }.{r].Y..YY. */
- $"5A8F B2B6 B6A4 B704 B6B5 B4B2 B1B4 B003" /* Z.. */
- $"ADA0 7600 8059 8900 8159 0355 77AC B0E2" /* v.Y.Y.Uw */
- $"B103 AFA4 7D56 8259 8600 0159 5980 0003" /* .}VY..YY.. */
- $"5279 9697 E298 0496 9073 5456 8000 0159" /* Ry.sTV..Y */
- $"5984 0008 5900 5457 6268 686D 7284 73A1" /* Y..Y.TWbhhmrs */
- $"74B9 7309 706C 6868 6763 5900 5959 8200" /* tsplhhgcY.YY. */
- $"0759 0052 6E96 A4A7 A8E7 A980 A706 A6A0" /* .Y.Rn穀. */
- $"8E6A 5759 5982 0002 536F A782 B0E5 AF81" /* jWYY..So寁 */
- $"B006 AFAF AB99 6A00 5980 0004 5900 5A9B" /* .j.Y..Y.Z */
- $"AEF0 AF0B AEA6 895B 0059 0000 5900 6CA7" /* .[.Y..Y.l */
- $"B4AE 03AF ABAE AFB7 AE0A A996 6500 5900" /* .©e.Y. */
- $"0059 5470 A7B3 AD05 AEA8 A299 A8AE B6AD" /* .YTp. */
- $"0AA8 9666 0059 0059 5900 6CA3 B4AB 05A6" /* ¨f.Y.YY.l. */
- $"EDE9 99A7 ACB5 AB0A A692 6200 5900 5959" /* 陧¦b.Y.YY */
- $"0063 9EB3 A905 A8A8 ECFF E195 B6A9 0BA3" /* .c.ᕶ. */
- $"8D5F 5859 0059 5900 6099 A7B3 A806 A4DC" /* _XY.YY.`. */
- $"FFFF CA96 AAB4 A80B A187 5B58 5900 5959" /* ʖ.[XY.YY */
- $"005C 94A6 B3A7 01A3 C580 FF02 AD9D A8B3" /* .\.ŀ. */
- $"A70B 9F82 5A58 5900 5959 5857 8DA5 B3A6" /* .ZXY.YYXW */
- $"07A4 AEF8 FFFF ED97 A4B2 A603 A59C 7C58" /* .헤.|X */
- $"8359 0257 87A3 B4A4 01A1 E180 FF02 CB94" /* Y.W..˔ */
- $"A6B1 A403 A399 7657 8359 0254 80A1 B4A2" /* .vWY.T */
- $"019D C180 FF03 FEA4 9BA3 B0A2 03A1 9672" /* ...r */
- $"5783 5902 547A 9FB4 A202 A0A6 F380 FF02" /* WY.Tz.. */
- $"E192 A3B0 A203 A094 6D56 8359 0255 759D" /* ᒣ.mVY.Uu */
- $"B5A0 019B D381 FF02 B495 A1AF A006 9D90" /* .Ӂ.. */
- $"6957 5959 0080 5902 546D 9BB1 9E00 9F80" /* iWYY.Y.Tm. */
- $"A002 9CAF FD80 FF02 EF93 9DAF 9E06 9B8C" /* ... */
- $"6657 5959 0080 5902 5568 97B0 9D07 9F95" /* fWYY.Y.Uh. */
- $"8A89 8B98 9CE2 81FF 02C3 8F9E AE9D 0699" /* .Ï. */
- $"8861 5759 5900 8059 0256 6494 AF9C 089D" /* aWYY.Y.Vd. */
- $"8C9E D0DD C793 8CBC 81FF 02F7 9899 AE9C" /* Ǔ. */
- $"0697 855F 5859 5900 8059 0257 5E91 AF9B" /* ._XYY.Y.W^ */
- $"0195 B781 FF03 F69B 96ED 81FF 02CE 8B9C" /* ...΋ */
- $"AD9B 0D95 815D 5859 5900 0059 5957 5B8C" /* .]XYY..YYW[ */
- $"98AD 9903 9889 9AD8 81FF 02E0 89C4 81FF" /* .؁.ā */
- $"02FD 9E93 AD99 0D93 7C5A 5859 5900 0059" /* ..|ZXYY..Y */
- $"5958 5987 96AC 970C 9889 D3CE 88A1 E8FF" /* YXY.Έ */
- $"FFF9 9B9D F481 FF02 D788 98AC 9702 9079" /* .׈.y */
- $"5A80 5901 0000 8059 0255 8395 AB96 0D97" /* ZY...Y.U. */
- $"8DA4 FFFF F6B2 84B4 F6FB A28E CC82 FF02" /* ̂. */
- $"A28F 97AB 9601 8E75 8159 0100 0080 5902" /* .uY...Y. */
- $"547F 94AB 9502 9688 E481 FF07 E99E 8CBC" /* T...鞌 */
- $"9991 A2F8 81FF 02DD 8896 AA95 0394 8D71" /* .݈.q */
- $"5880 5901 0000 8059 0255 7993 AA94 0295" /* XY...Y.Uy. */
- $"87B4 84FF 05D4 8C93 948F D182 FF02 A68C" /* .Ԍт. */
- $"95A9 9403 938A 6D57 8059 0700 0059 595A" /* .mWY...YYZ */
- $"5374 91AA 9302 908C F284 FF06 DD92 9293" /* St..ݒ */
- $"8FA4 FB81 FF01 E086 AA93 0391 876A 5780" /* ..jW */
- $"5907 0000 5959 5A53 6F8F A991 0292 87CA" /* Y...YYZSo. */
- $"84FF 02F8 A18D 8091 018D D782 FF02 A788" /* ..ׂ. */
- $"92A8 9103 8F84 6757 8059 0100 0080 5902" /* .gWY...Y. */
- $"556B 8DA9 9002 8E85 DB84 FF01 C78A 8190" /* Uk.ۄ.NJ */
- $"028B A8FE 81FF 01E2 84A9 9003 8E82 6357" /* ..℩.cW */
- $"8059 0100 0080 5902 5466 8CA8 9005 9186" /* Y...Y.Tf. */
- $"AB85 A6EE 81FF 02EE 958E 8190 028F 8CDC" /* .. */
- $"82FF 02AA 8591 A790 038D 7F62 5880 5901" /* ...bXY. */
- $"0000 8059 0254 618A A78E 0C8F 84A5 FFF0" /* ..Y.Ta. */
- $"A480 BBF9 FFFF B688 838E 0189 A982 FF01" /* .. */
- $"E583 A88E 038B 7C5F 5880 5901 0000 8059" /* 僨.|_XY...Y */
- $"0256 5F87 A78D 028C 83E8 80FF 06DF 9087" /* .V_..ߐ */
- $"D4E0 8C8C 838D 028C 8ADE 82FF 02AB 838E" /* .ނ. */
- $"A68D 038A 7A5D 5880 5901 0000 8059 0257" /* .z]XY...Y.W */
- $"5C84 A68C 028D 7EB7 83FF 03C9 8B8E 8B85" /* \.~.ɋ */
- $"8C01 87AA 82FF 01E6 82A7 8C03 8877 5C58" /* ..悧.w\X */
- $"8059 0100 0080 5902 5757 81A6 8A02 878A" /* Y...Y.WW. */
- $"F584 FF01 CB83 868A 0289 88E0 82FF 02A8" /* .˃.. */
- $"808B A58A 0386 735B 5880 5901 0000 8059" /* .s[XY...Y */
- $"0258 557F A58A 028B 7BC9 84FF 02F6 9987" /* .XU..{Ʉ. */
- $"878A 0184 AB82 FF01 E580 A68A 0285 715A" /* ..倦.qZ */
- $"8159 0100 0081 5902 577B 88A3 8902 8A81" /* Y...Y.W{. */
- $"9685 FF01 BF82 8889 0288 87E0 82FF 02A7" /* ... */
- $"7F8A A489 0183 6F82 5901 0000 8159 0254" /* ..oY...Y.T */
- $"7787 A488 017A DC84 FF02 EA8C 8689 8801" /* w.z܄.ꌆ. */
- $"82A9 82FF 01E3 7EA4 8802 8781 6C82 5901" /* .~.lY. */
- $"0000 8159 0151 7497 860E 8784 8686 8486" /* ..Y.Qt. */
- $"8684 8685 8486 877B A685 FF11 AD7D 8685" /* {.} */
- $"8486 8584 8784 8487 8485 8783 83DF 82FF" /* ߂ */
- $"0FA4 7D87 8584 8785 8487 8485 8784 8586" /* .} */
- $"8596 8602 7F69 5881 5901 0000 8059 035A" /* ..iXY...Y.Z */
- $"5170 8496 850E 8182 7F7F 827F 8082 7E81" /* Qp....~ */
- $"8280 837E EC84 FF12 DB7E 817F 8082 7E81" /* ~.~.~ */
- $"827E 8182 7E82 817E 827B A682 FF10 E07B" /* ~~~{.{ */
- $"8380 827E 8181 7E82 817E 8280 7F81 8494" /* ~~~. */
- $"8503 847D 6758 8159 0100 0080 5903 5A53" /* .}gXY...Y.ZS */
- $"6E84 9585 0E82 90FB BCAC FFA4 B9FF 9BD3" /* n. */
- $"FC97 7BB9 84FF 14FC 91AA FFA8 BFFF 92D1" /* {. */
- $"FB92 E5ED 87F4 DC95 FFCB 73DF 82FF 0FA0" /* ܕs߂. */
- $"79DC F889 E5ED 90F6 D88F FFC7 AAC2 7D94" /* y؏Ǫ} */
- $"8503 847C 6558 8159 0100 0080 5903 5A52" /* .|eXY...Y.ZR */
- $"6983 9584 0E81 92FF BCAA FFC4 D2FF 96D4" /* i. */
- $"FF9A 82F8 84FF 14C6 78CE FFA6 BFFF B6E4" /* .x */
- $"FF8D E8F9 AFFE DE91 FFE3 899E 82FF 0FDB" /* ޑ㉞. */
- $"74E2 FFB1 F3F0 8AFA E9B4 FFC8 A6C7 7C94" /* tȦ| */
- $"8403 8379 6258 8159 0100 0080 5903 5A51" /* .ybXY...Y.ZQ */
- $"6581 9582 047F 90FF D5C8 81FF 04BB E5F9" /* e..ȁ. */
- $"86CA 84FF 06F2 82D6 FFFF C6D6 80FF 02FC" /* ʄ.ր. */
- $"B5EF 80FF 06E9 B8FF FFFA 8AD6 82FF 0196" /* .ւ. */
- $"C680 FF02 F4B4 FA80 FF03 DCC9 C57A 9482" /* ƀ..z */
- $"0381 7761 5881 5901 0000 8059 035A 5262" /* .waXY...Y.ZRb */
- $"7F95 8102 7E8F FA85 FF01 B190 85FF 01AC" /* ..~.. */
- $"9A90 FF01 C494 82FF 02D5 8DF9 87FF 01BF" /* .Ĕ.Ս. */
- $"7994 8103 8075 5F58 8159 0100 0081 5902" /* y.u_XY...Y. */
- $"5461 7D95 8002 7D8E FA84 FF02 E779 DD84" /* Ta}.}.y݄ */
- $"FF02 E47C E690 FF02 FC8A D281 FF02 FC8C" /* .|.ҁ. */
- $"C787 FF01 BF77 9480 037E 725E 5881 5901" /* LJ.w.~r^XY. */
- $"0000 8159 0254 5D7C 957F 027C 8EFA 84FF" /* ..Y.T]|..| */
- $"019C A285 FF01 97AD 92FF 01C7 8F80 FF04" /* ...Ǐ. */
- $"FBC0 748B F986 FF01 BE76 947F 037D 715C" /* t.v..}q\ */
- $"5881 5901 0000 8159 0254 597B 957F 027C" /* XY...Y.TY{..| */
- $"8EFA 83FF 02D7 7BEF 84FF 02D1 7EF4 92FF" /* .{.~ */
- $"09FE 8CC9 F8CB 8C64 9F83 C386 FF01 BE76" /* ˌdÆ.v */
- $"947F 037C 6F5B 5881 5901 0000 8159 0355" /* ..|o[XY...Y.U */
- $"5779 7E94 7D02 7A8C FA82 FF02 FD8A B884" /* Wy~}.z. */
- $"FF02 FA86 C094 FF09 CF74 7C64 7FCB FFC0" /* .t|d. */
- $"80F7 85FF 01BD 7494 7D02 7A6D 5B82 5901" /* .t}.zm[Y. */
- $"0000 8159 0256 5677 957C 0279 8BFA 82FF" /* ..Y.VVw|.y */
- $"02C3 82FB 84FF 02BB 86FE 95FF 088C 99D5" /* .Â.. */
- $"FCFF FFFA 7FBC 85FF 01BD 7394 7C02 796B" /* ..s|.yk */
- $"5A82 5901 0000 8159 0257 5575 957B 0277" /* ZY...Y.WUu{.w */
- $"8BFA 81FF 02F4 7DCE 84FF 02EE 7BD6 96FF" /* .}΄.{֖ */
- $"01D0 A782 FF02 C47B F484 FF01 BC72 947B" /* .Ч.{.r{ */
- $"0178 6983 5901 0000 8159 0258 5272 957A" /* .xiY...Y.XRrz */
- $"0877 8AE8 EEEC ECF2 AA91 85FF 02A8 92F2" /* .w򪑅. */
- $"95EC 03ED ED93 DC81 FF03 FD83 B2F2 82EC" /* .܁. */
- $"02F3 B573 947A 0176 6783 5901 0000 8159" /* .sz.vgY...Y */
- $"0258 5070 9679 007A 817F 027E 71E3 84FF" /* .XPpy.z..~q */
- $"03DF 797F 8096 7F02 8078 A382 FF02 C970" /* .y...x.p */
- $"8083 7F00 7D95 7902 7565 5882 5901 0000" /* ..}y.ueXY... */
- $"8159 0258 4F6F 9779 8077 0278 69AB 85FF" /* Y.XOoyw.xi */
- $"029B 7378 9977 0178 DF81 FF02 B468 7583" /* .sxw.x߁.hu */
- $"7700 7895 7902 7464 5882 5901 0000 8259" /* w.xy.tdXY...Y */
- $"0150 6D9A 7802 747A F384 FF02 CD72 779A" /* .Pmx.tz.rw */
- $"7808 71A0 FFFF D98C 8FC6 6D9C 7801 7363" /* x.qٌmx.sc */
- $"8359 0100 0082 5901 516B 9A77 016B C484" /* Y...Y.Qkw.kĄ */
- $"FF02 F68A 729B 770A 7677 9B8A 80BD FDFF" /* .rwvw */
- $"9C6A 789A 7702 7261 5882 5901 0000 8159" /* jxw.raXY...Y */
- $"035A 4F68 7598 7602 737B F184 FF01 B96E" /* .ZOhuv.s{.n */
- $"9D76 0371 85D7 FB80 FF02 F076 719A 7602" /* v.q.vqv. */
- $"7060 5882 5901 0000 8159 035A 4E66 7498" /* p`XY...Y.ZNft */
- $"7504 7380 77C3 FE81 FF02 E97B 729D 7502" /* u.sw.{ru. */
- $"727F EF82 FF01 CD66 9A75 026F 5E58 8259" /* r..fu.o^XY */
- $"0100 0081 5903 5A4D 6473 9774 0672 76EE" /* ...Y.ZMdst.rv */
- $"CC73 83DA 80FF 01A4 6C9F 7401 6CBE 83FF" /* sڀ.lt.l */
- $"02A5 6575 9874 026D 5C58 8259 0100 0081" /* .eut.m\XY... */
- $"5902 5A4D 6298 730B 6F82 FAFF F9AD 6A97" /* Y.ZMbs.oj */
- $"F1DC 7172 9F73 016D 9283 FF03 F981 6B74" /* qrs.m.kt */
- $"9773 026C 5B58 8259 0100 0081 5902 5A4D" /* s.l[XY...Y.ZM */
- $"6098 7301 6C94 81FF 04EC 957B 8470 A073" /* `s.l.{ps */
- $"0271 75E7 83FF 02DD 6972 9773 026B 5C58" /* .qu.irs.k\X */
- $"8259 0100 0081 5902 5A50 5F98 7201 69A8" /* Y...Y.ZP_r.i */
- $"83FF 019B 69A2 7201 6ABF 84FF 02AF 6473" /* .ir.j.ds */
- $"9672 026A 5B58 8259 0100 0081 5903 5A51" /* r.j[XY...Y.ZQ */
- $"5D70 9771 0167 BD81 FF02 F6A1 6FA3 7101" /* ]pq.g.oq. */
- $"6B94 84FF 02F7 7B6D 9671 0169 5A83 5901" /* k.{mq.iZY. */
- $"0000 8159 035A 505B 6F97 7101 69D5 80FF" /* ..Y.ZP[oq.iՀ */
- $"03E8 8B68 70A3 7102 6F74 E984 FF02 BC65" /* .hpq.ot.e */
- $"7294 7102 7067 5883 5901 0000 8159 035A" /* rq.pgXY...Y.Z */
- $"5059 6F96 7007 6F6F E7FF FFD4 7A69 A670" /* PYop.oozip */
- $"0168 BD84 FF02 EC71 6E94 7002 6F67 5883" /* .h.qnp.ogX */
- $"5901 0000 8159 035A 5058 6E96 6F06 6C79" /* Y...Y.ZPXno.ly */
- $"F7FF BD6E 6BA7 6F02 6A8B FD83 FF02 FC83" /* nko.j. */
- $"6B94 6F02 6E66 5783 5901 0000 8159 035A" /* ko.nfWY...Y.Z */
- $"5056 6D96 6E05 688E FBA5 676C A86E 026D" /* PVmn.hgln.m */
- $"6AD0 83FF 02F5 7D6B 946E 026D 6456 8359" /* jЃ.}kn.mdVY */
- $"0100 0081 5903 5A4F 556C 966D 0468 9294" /* ...Y.ZOUlm.h */
- $"656C AA6D 0268 87F8 82FF 01BC 6995 6D02" /* elm.h.im. */
- $"6C63 5683 5901 0000 8159 035A 5054 6C97" /* lcVY...Y.ZPTl */
- $"6D01 6C68 AD6D 0866 9EF7 FFFF F3B1 6C6B" /* m.lhm.flk */
- $"956D 026C 6256 8359 0100 0081 5903 5A50" /* m.lbVY...Y.ZP */
- $"546C CA6D 0667 81A6 9D7A 666C 966D 026C" /* Tlm.gzflm.l */
- $"6256 8359 0100 0081 5903 5A51 536C CB6D" /* bVY...Y.ZQSlm */
- $"0369 6565 6998 6D02 6C62 5783 5901 0000" /* .ieeim.lbWY... */
- $"8159 035A 5152 6AEA 6C02 6B61 5783 5901" /* Y.ZQRjl.kaWY. */
- $"0000 8159 035A 5252 6AEA 6C02 6B61 5783" /* ..Y.ZRRjl.kaW */
- $"5901 0000 8159 035A 5252 6AEA 6C02 6B61" /* Y...Y.ZRRjl.ka */
- $"5783 5901 0000 8159 035A 5352 6AEA 6C02" /* WY...Y.ZSRjl. */
- $"6B61 5783 5900 0082 5903 5A54 5168 EA6B" /* kaWY..Y.ZTQhk */
- $"0269 5E56 8359 0000 8359 0257 4D5E EA63" /* .i^VY..Y.WM^c */
- $"0260 5756 8359 0100 0082 5902 5A55 53EA" /* .`WVY...Y.ZUS */
- $"5601 5556 8459 0100 00FB 5901 0000 FB59" /* V.UVY...Y...Y */
- $"0100 00FB 5901 0000 FB59 0100 00FA 5981" /* ...Y...Y...Y */
- $"00F9 5982 00F7 5983 00F6 5986 00F3 59FF" /* .Y.Y.Y.Y */
- $"00FF 0000 00FF 00FF 00FF 00FF 00FF 00FF" /* ......... */
- $"00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF" /* ........ */
- $"00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF" /* ........ */
- $"00FF 00FF 00FF 00DF 009F 7CD7 00A6 7CD3" /* .....|.| */
- $"0001 7C7C 8000 9D7B 847C D000 037C 7C00" /* ..||.{|..||. */
- $"7C9F 7F01 7B7B 837C D000 027B 88A5 9EB0" /* |..{{|..{ */
- $"03AC 9D81 7B83 7CCD 0004 7C00 81B3 D09E" /* .{|..|.О */
- $"D302 D0C3 A184 7CCD 0004 7C00 8FCA D79F" /* .á|..|.ן */
- $"D803 CEB4 837A 827C CD00 037C 0095 CEA0" /* .δz|..|.Π */
- $"D803 D1B7 847A 827C CC00 047C 7C78 9BD0" /* .ѷz|..||x */
- $"A0D7 03D1 B884 7A83 7CCB 0004 7C7C 79A8" /* .Ѹz|..||y */
- $"D3A0 D703 D2BC 867A B87C 9500 057C 7C00" /* Ӡ.Ҽz|..||. */
- $"81BD D5A0 D603 D3C3 9278 BA7C 9200 067C" /* ՠ.Òx|..| */
- $"7C00 799D CED5 A0D6 04D4 CBAC 7D79 BA7C" /* |.yՠ.ˬ}y| */
- $"9000 067C 7C00 7B97 C5D3 A2D5 03D1 C4A3" /* ..||.{Ӣ.ģ */
- $"8280 7AB4 7B03 007B 7C7C 8E00 077C 7C00" /* z{..{||..||. */
- $"81A4 C8D2 D4A2 D505 D4D0 C8B7 A69F B19E" /* Ԣ.ȷ */
- $"079F 9F9E 9D94 8100 7C8D 0007 7C7C 0081" /* ..|..||. */
- $"ADCD D3D3 A4D4 03D3 D2D0 CE80 CCB2 CB03" /* Ӥ.΀̲. */
- $"C7B9 9500 807C 8900 817C 037A 98C6 CDE2" /* ǹ.|.|.z */
- $"CE03 CCBE 9B7A 827C 8600 017C 7C80 0002" /* .̾z|..||.. */
- $"7697 B181 B403 B5B5 B4B4 9EB5 01B4 B4B6" /* v.. */
- $"B506 B4B4 B3AA 9177 7980 0001 7C7C 8400" /* .wy..||. */
- $"097C 0078 7D87 8B8B 8D94 95E2 960A 9592" /* |.x}• */
- $"8E8C 8B8B 867D 007C 7C82 0009 7C00 7892" /* }.||.|.x */
- $"B5C1 C4C5 C6C6 81C7 03C6 C6C7 C79E C601" /* Ɓ.Ǟ. */
- $"C7C7 82C6 01C7 C7AC C683 C70A C6C6 C4C3" /* ǂ.Ǭƃ */
- $"C3BD AB8C 7A7C 7C82 0005 7893 C5CE CFD0" /* ýz||..x */
- $"E9CF 08D0 D0CF CEC9 B58B 007C 8000 047C" /* .ɵ.|..| */
- $"0080 B9CE F0D0 0CCF C5A7 7E00 7C00 007C" /* ..ŧ~.|..| */
- $"008F C5CE B3CF 03D0 CDCF D0B7 CF0A C9B2" /* .γ.зɲ */
- $"8600 7C00 007C 7894 C6B3 CF05 D0CB BEBA" /* .|..|xƳ.˾ */
- $"CCD0 B6CF 0ACA B487 007C 007C 7C00 8FC4" /* жʴ.|.||. */
- $"B4CE 05C9 F2ED B9CC CFB5 CE0B C8B1 8400" /* .ϵ.ȱ. */
- $"7C00 7C7C 0089 C0CC B3CD 05CC F3FF E7B9" /* |.||.̳. */
- $"CEB5 CD0B C5AC 817B 7C00 7C7C 0085 BCCB" /* ε.Ŭ{|.||. */
- $"B3CC 06C9 EAFF FFD8 BDCE B4CC 0BC4 A77D" /* .ؽδ.ħ} */
- $"7B7C 007C 7C00 81B6 CAB3 CC01 C9DC 80FF" /* {|.||.ʳ.܀ */
- $"02C6 C4CD B2CC 0DCB C1A3 7D7B 7C00 7C7C" /* .Ͳ.}{|.|| */
- $"7B7D B1C9 CBB2 CA07 C9CF FBFF FFF1 BACB" /* {}˲. */
- $"B2CA 03C9 BE9D 7B83 7C02 7BAB C8B4 CA01" /* .ɾ{|.{ȴ. */
- $"C8ED 80FF 02D9 BCCB B1CA 03C9 BC98 7A83" /* .ټ˱.ɼz */
- $"7C02 7AA5 C6B4 C901 C6DA 80FF 03FD C1C4" /* |.zƴ.ڀ. */
- $"CAB0 C903 C7B9 957A 837C 0279 9FC4 B4C8" /* ʰ.ǹz|.yĴ */
- $"02C7 CAF7 80FF 02E8 B8C9 B0C8 03C5 B68F" /* ..ɰ.Ŷ */
- $"7A83 7C02 799A C2B5 C701 C4E4 81FF 02CA" /* z|.yµ.. */
- $"BFC8 AFC7 06C4 B38B 7A7C 7C00 807C 0278" /* ȯ.ijz||.|.x */
- $"93C0 B1C6 00C7 80C8 02C4 CFFD 80FF 01F2" /* .ǀ.. */
- $"B8B0 C606 C2AF 897A 7C7C 0080 7C02 798F" /* .¯z||.|.y */
- $"BEB0 C607 C8C0 B4B2 B6C3 C6ED 81FF 02D4" /* .. */
- $"BBC7 AEC6 06C1 AC84 7A7C 7C00 807C 0279" /* Ǯ.z||.|.y */
- $"8BBB AFC5 08C6 B6BA DCE5 D5B3 BAD8 81FF" /* .ƶճ؁ */
- $"02F9 BBC4 AEC5 06C0 A982 7B7C 7C00 807C" /* .Į.{||.| */
- $"027A 85B7 AEC4 02C5 C1CE 81FF 03F7 BAC1" /* .z.΁. */
- $"F481 FF02 DCB7 C6AD C40D BDA5 817B 7C7C" /* .ܷƭ.{|| */
- $"0000 7C7C 7A83 B4C3 ADC4 03C3 B3BE E981" /* ..||zí.ó */
- $"FF02 E8B6 DC81 FF02 FDBE C0AD C40D BCA1" /* .܁.. */
- $"7E7B 7C7C 0000 7C7C 7B80 B0C2 ACC3 0CC4" /* ~{||..||{¬. */
- $"B5DD DAAE C4F2 FFFF FAC2 C5F8 81FF 02E2" /* ڮ. */
- $"B5C4 ACC3 01B9 9D81 7C07 0000 7C7C 7B7C" /* Ĭ.|...||{| */
- $"ABC0 ABC1 0DC2 BCC1 FFFF F7C7 ACD0 FBFC" /* .¼Ǭ */
- $"C7BC E082 FF02 C0BD C2AB C101 B79A 817C" /* Ǽ.«.| */
- $"0100 0080 7C02 7BA7 BFAB C102 C2B2 EB81" /* ...|.{.² */
- $"FF07 EDB9 B3D7 C3BF C7FA 81FF 02E6 B3C2" /* .ÿ. */
- $"AAC1 03C0 B595 7B80 7C01 0000 807C 027A" /* .{|...|.z */
- $"A3BE AAC0 02C1 B6CA 84FF 05DE B8C0 C0BD" /* .ʄ.޸ */
- $"E382 FF02 C2BA C1A9 C003 BFB2 927A 807C" /* .º.z| */
- $"0100 0080 7C02 789D BCAA BF02 BEB3 F584" /* ...|.x. */
- $"FF06 EBBF BEBF BDC9 FC81 FF02 E8B2 C0A9" /* .뿾. */
- $"BF03 BEB0 8F7A 807C 0100 0080 7C02 7898" /* .z|...|.x */
- $"BAA9 BE02 BFB5 D984 FF02 FBC7 BC80 BE01" /* .ل.Ǽ. */
- $"BBE7 82FF 02C3 B7BF A8BE 03BC AD8B 7A80" /* .÷.z */
- $"7C01 0000 807C 0278 95B9 A9BD 02BC B3E9" /* |...|.x. */
- $"84FF 01DD B981 BD02 BACB FE81 FF02 EAB0" /* .ݹ.. */
- $"BEA8 BD03 BAAA 887A 807C 0100 0080 7C02" /* .z|...|. */
- $"7890 B8A8 BD05 BEB2 C1AC C7F6 81FF 02F4" /* x.. */
- $"C0BC 82BD 01BB EA82 FF02 C4B6 BEA7 BD03" /* ..Ķ. */
- $"BAA8 867A 807C 0100 0080 7C02 788B B5A7" /* z|...|.x */
- $"BC0C BDB5 C1FF F2BD AAD5 FCFF FFD3 B983" /* .ӹ */
- $"BC01 B9CC 82FF 02EB AFBD A7BC 03B8 A584" /* .̂.믽. */
- $"7B80 7C01 0000 807C 0279 88B3 A8BC 01AE" /* {|...|.y. */
- $"ED80 FF06 E5B1 B1E6 ECBB BB84 BC01 B9EB" /* .山컻. */
- $"82FF 02C5 B4BD A6BC 03B7 A381 7B80 7C01" /* .Ŵ.{|. */
- $"0000 807C 027A 85B1 A6BB 02BC AFCC 82FF" /* ..|.z.̂ */
- $"04FE D6AF BBBA 85BB 01B7 CC82 FF02 ECAE" /* .֯.̂. */
- $"BCA6 BB03 B5A0 807B 807C 0100 0080 7C03" /* .{|...|. */
- $"7A80 ADB9 A5BA 02B8 B0F7 84FF 01DE B486" /* z..޴ */
- $"BA02 B9B8 EB82 FF02 C3B2 BBA5 BA03 B39C" /* ..ò. */
- $"7F7B 807C 0100 0080 7C03 7B7E AAB7 A4B8" /* .{|...|.{~ */
- $"02BA ABD8 84FF 02F9 C1B6 87B8 01B5 CC82" /* .؄..̂ */
- $"FF02 EBAC B9A5 B803 B199 7D7B 807C 0100" /* .묹.}{|.. */
- $"0080 7C03 7B7D A7B6 A4B7 02B2 B7FE 84FF" /* .|.{}. */
- $"01D7 B388 B702 B6B6 EB82 FF02 C2B0 B8A4" /* .׳..° */
- $"B701 AF96 827C 0100 0081 7C02 7BA3 B5A3" /* .|...|.{ */
- $"B602 B7A8 E584 FF02 F1B8 B589 B601 B3CA" /* ..񸵉. */
- $"82FF 02EA AAB7 A4B6 01AD 9382 7C01 0000" /* .ꪷ.|... */
- $"817C 0278 9FB4 97B5 0DB4 B5B6 B4B6 B5B4" /* |.x. */
- $"B6B5 B4B6 B6AD C085 FF11 CCB0 B6B5 B4B6" /* .̰ */
- $"B5B4 B6B5 B4B6 B4B5 B6B3 B4EB 82FF 0EC0" /* . */
- $"AFB6 B5B4 B6B4 B4B6 B4B5 B6B4 B5B6 97B5" /* */
- $"01AB 9082 7C01 0000 817C 0278 9CB3 95B5" /* .|...|.x */
- $"0FB6 AFA7 A9AA A7AA AAA7 ABA9 A7AC B1A9" /* . */
- $"F084 FF12 E9AA A6AA AAA7 ABA9 A7AB A8A8" /* .骦 */
- $"ACA8 A8AB A7A5 C882 FF0F E8A8 B2A8 A8AB" /* Ȃ.訲 */
- $"A8A8 ACA8 A9AC A7A9 AAAB 95B5 03B4 A98E" /* . */
- $"7B81 7C01 0000 817C 0278 99B2 95B4 0EB3" /* {|...|.x. */
- $"B7F9 D2C7 FFC1 CEFF BCE1 FABB AACD 84FF" /* ̈́ */
- $"14FD BAC6 FFC5 D3FF B7DF F9B7 EBF2 B0F6" /* . */
- $"E6B9 FDDA A7EB 82FF 0FBD AAE6 F8B0 EBF1" /* ڧ. */
- $"B5F7 E3B4 FED9 C5D5 AF94 B403 B3A7 8B7B" /* կ.{ */
- $"817C 0100 0081 7C02 7794 B195 B30E B1B9" /* |...|.w. */
- $"FFD2 C7FF D3DE FFBA E3FF BDAA F984 FF14" /* . */
- $"DBA2 DAFF C4D4 FFCA EBFE B4EF FBC4 FEE9" /* ۢ */
- $"B6FF EAAB C082 FF0F E4A3 ECFF C5F6 F5B2" /* . */
- $"FBEF C8FF DAC4 DAAE 94B3 03B2 A589 7B81" /* ڮ.{ */
- $"7C01 0000 807C 037D 7690 AE95 B104 AFB7" /* |...|.}v. */
- $"FFE0 D681 FF04 CDEC FCAE D884 FF06 F7AC" /* ց.؄. */
- $"E0FF FFD4 E180 FF02 FDC9 F380 FF06 EFCA" /* .. */
- $"FFFF FAAE E582 FF01 B6DA 80FF 02F7 C7FB" /* .ڀ. */
- $"80FF 03E5 D6D9 AC94 B103 B0A2 877B 817C" /* .٬.{| */
- $"0100 0081 7C02 768D AC95 B002 AEB7 FB85" /* ...|.v. */
- $"FF01 CDB1 85FF 01C9 B890 FF01 D5B8 82FF" /* .ͱ.ɸ.ո */
- $"02E0 B3FC 87FF 01D5 AA94 B003 AE9F 857B" /* ..ժ.{ */
- $"817C 0100 0081 7C02 788A AB95 AF02 ADB6" /* |...|.x. */
- $"FB84 FF02 F0A5 E584 FF02 EEA6 EC90 FF02" /* ... */
- $"FCAE E281 FF02 FCB4 DB87 FF01 D5A9 94AF" /* .ۇ.թ */
- $"03AC 9D83 7B81 7C01 0000 817C 0278 86A9" /* .{|...|.x */
- $"95AD 02AB B4FB 84FF 01BE BD85 FF01 BAC3" /* ... */
- $"92FF 01D6 B480 FF04 FCD8 A4B3 FB86 FF01" /* .ִ.ؤ. */
- $"D4A7 94AD 03AB 9A81 7B81 7C01 0000 817C" /* ԧ.{|...| */
- $"0278 83A7 95AC 02AA B3FB 83FF 02E5 A3F2" /* .x.. */
- $"84FF 02E1 A5F6 92FF 09FD AEDC FBDE B595" /* .޵ */
- $"B6A9 D886 FF01 D3A6 94AC 03A9 9880 7B81" /* ؆.Ӧ.{ */
- $"7C01 0000 817C 0278 80A5 95AC 02AA B3FB" /* |...|.x. */
- $"82FF 02FE B0CB 84FF 02FC ADD0 94FF 09DB" /* .˄.Д */
- $"A1A8 95A2 D6FF D1AA FA85 FF01 D3A6 94AC" /* Ѫ.Ӧ */
- $"03A8 967F 7B81 7C01 0000 817C 0279 7FA3" /* ..{|...|.y. */
- $"95AB 02A9 B2FB 82FF 02D7 A7FB 84FF 02D2" /* ..ק. */
- $"AAFD 95FF 08AD B4DD FCFF FFFA A5D3 85FF" /* .Ӆ */
- $"01D3 A594 AB03 A694 7E7B 817C 0100 0081" /* .ӥ.~{|... */
- $"7C02 7A7D A095 A902 A7B1 FB81 FF02 F8A5" /* |.z}.. */
- $"DA84 FF02 F4A4 E096 FF01 DCC2 82FF 02D3" /* ڄ..‚. */
- $"A5F8 84FF 01D2 A394 A902 A491 7D82 7C01" /* .ң.}|. */
- $"0000 817C 027A 7A9E 95A8 08A6 B1EF F3F2" /* ..|.zz. */
- $"F2F6 C6B0 85FF 02C5 B4F5 95F2 03F3 F2B5" /* ư.Ŵ. */
- $"E881 FF03 FCA7 CCF6 82F2 02F7 CDA3 94A8" /* ..ͣ */
- $"01A3 8F83 7C01 0000 817C 027B 779C 96A7" /* .|...|.{w */
- $"00A8 82AB 019C E984 FF03 E9A6 AAAC 96AB" /* ...馪 */
- $"02AC A6C1 82FF 02D8 A0AC 83AB 00A9 95A7" /* ..ؠ. */
- $"01A1 8D83 7C01 0000 817C 037B 7699 A595" /* .|...|.{v */
- $"A600 A580 A402 A599 C085 FF02 BCA1 A599" /* ... */
- $"A401 A5E9 81FF 02CB 96A3 83A4 00A5 95A6" /* ..˖. */
- $"029F 8A7B 827C 0100 0082 7C02 7596 A399" /* .{|...|.u */
- $"A402 A29F F584 FF01 DDA0 9BA4 09A0 BFFF" /* ..ݠƠ */
- $"FFE6 ADAB D299 A59B A402 9D88 7B82 7C01" /* 歫ҙ.{|. */
- $"0000 827C 0276 94A2 98A3 02A4 98D1 84FF" /* ..|.v.ф */
- $"02F9 AFA0 9CA3 09A4 B9A9 A0CB FCFF B599" /* .Ƥ */
- $"A49A A302 9C87 7B82 7C01 0000 827C 0275" /* .{|...|.u */
- $"92A2 98A3 02A1 A4F5 84FF 01CF 9E9D A303" /* ..Ϟ. */
- $"A0A9 DEFB 80FF 02F3 9CA0 9AA3 029B 867B" /* .󜠚.{ */
- $"827C 0100 0081 7C03 7D74 8FA1 97A2 05A3" /* |...|.}t. */
- $"9FA0 9ED6 FE81 FF02 F0A6 A09D A202 A0A9" /* .𦠝. */
- $"F382 FF01 D893 9AA2 0299 837B 827C 0100" /* .ؓ.{|.. */
- $"0081 7C03 7D73 8D9F 97A0 069F 9FF1 D697" /* .|.}s.֗ */
- $"A6E6 80FF 01C1 9B9F A001 9BD2 83FF 02BB" /* ..҃. */
- $"94A1 98A0 0297 827B 827C 0100 0081 7C03" /* .{|...|. */
- $"7D72 8A9E 979F 0B9D A6FB FFF9 BF91 B6F6" /* }r. */
- $"E69E 9E9F 9F01 9BB4 83FF 03FA A199 A096" /* 枞.. */
- $"9F03 9E95 807B 827C 0100 0081 7C03 7D72" /* .{|...|.}r */
- $"889D 979E 0199 B281 FF04 EFAD 9EA9 9CA0" /* ..ﭞ */
- $"9E02 9D9F EE83 FF01 E492 979E 039D 9480" /* ..䒗. */
- $"7B82 7C01 0000 817C 037D 7487 9B97 9D01" /* {|...|.}t. */
- $"96BF 82FF 02FE B697 A29D 0198 D184 FF02" /* ..ф. */
- $"C191 9E95 9D03 9C92 7F7B 827C 0100 0081" /* ..{|... */
- $"7C03 7D75 849A 979C 0194 CE81 FF02 F8BD" /* |.}u.΁. */
- $"9BA3 9C01 98B4 84FF 02F8 9D99 959C 039B" /* ... */
- $"907E 7B82 7C01 0000 817C 037D 7482 9997" /* ~{|...|.}t */
- $"9B01 94DF 80FF 03EE AD95 9AA3 9B02 9A9D" /* .߀.. */
- $"EF84 FF02 CC91 9C94 9B03 9A8F 7C7B 827C" /* .̑.|{| */
- $"0100 0081 7C03 7D74 8098 979A 0697 ECFF" /* ...|.}t. */
- $"FFE0 A195 A69A 0195 D084 FF02 F098 9994" /* ࡕ.Є.𘙔 */
- $"9A02 998D 7B83 7C01 0000 817C 037D 737E" /* .{|...|.}s~ */
- $"9896 9A06 989F F9FF D099 97A7 9A02 96AD" /* .Й. */
- $"FD83 FF02 FCA6 9794 9A02 998D 7B83 7C01" /* ..{|. */
- $"0000 817C 037D 737D 9796 9905 95AD FCBE" /* ..|.}s}. */
- $"9498 A999 0196 DD83 FF02 F7A3 9794 9902" /* .݃.. */
- $"988C 7A83 7C01 0000 817C 037D 737B 9696" /* z|...|.}s{ */
- $"9803 95B0 B392 AB98 0294 AAF9 82FF 01CF" /* ... */
- $"9595 9802 978A 7A83 7C01 0000 817C 037D" /* .z|...|.} */
- $"747B 9498 9700 94AD 9708 93B9 F9FF FFF6" /* t{.. */
- $"C797 9695 9702 9688 7983 7C01 0000 817C" /* Ǘ.y|...| */
- $"037D 7479 93CA 9606 92A4 BEB8 9F91 9596" /* .}tyʖ. */
- $"9602 9588 7983 7C01 0000 817C 037D 7478" /* .y|...|.}tx */
- $"93CB 9603 9390 9193 9896 0294 8779 837C" /* ˖..y| */
- $"0100 0081 7C03 7D75 7892 EA95 0293 8679" /* ...|.}ux.y */
- $"837C 0100 0081 7C03 7D75 7892 EA95 0293" /* |...|.}ux. */
- $"8679 837C 0100 0081 7C03 7D76 7792 EA95" /* y|...|.}vw */
- $"0293 8679 837C 0100 0081 7C03 7D76 7792" /* .y|...|.}vw */
- $"EA95 0293 8579 837C 0000 827C 037D 7776" /* .y|..|.}wv */
- $"8FEA 9402 9182 7883 7C00 0083 7C03 7A70" /* .x|..|.zp */
- $"8288 E989 0285 7A79 837C 0100 0082 7C02" /* .zy|...|. */
- $"7D78 76EA 7901 7779 847C 0100 00FB 7C01" /* }xvy.wy|...|. */
- $"0000 FB7C 0100 00FB 7C01 0000 FB7C 0100" /* ..|...|...|.. */
- $"00FA 7C81 00F9 7C82 00F7 7C83 00F6 7C86" /* .|.|.|.| */
- $"00F3 7CFF 00FF 0000 00FF 00FF 00FF 00FF" /* .|....... */
- $"00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF" /* ........ */
- $"00FF 00FF 00FF 00FF 00FF 00FF 00FF 00FF" /* ........ */
- $"00FF 00FF 00FF 00FF 00FF 00DF 009F 74D7" /* .......t */
- $"00A6 74D3 0001 7474 8000 9D73 8474 D000" /* .t..tt.st. */
- $"0374 7400 749E 7702 7673 7283 74D0 0003" /* .tt.tw.vsrt.. */
- $"7381 9FAB 9DAC 03A8 977A 7383 74CD 0004" /* s.zst.. */
- $"7400 79AF CC9E CF03 CCBF 9B73 8374 CD00" /* t.y̞.̿st. */
- $"0474 0088 C6D2 9FD3 03CA AF7C 7282 74CD" /* .t.ҟ.ʯ|rt */
- $"0003 7400 8EC9 A0D3 03CC B27D 7282 74CC" /* ..t.ɠ.̲}rt */
- $"0004 7474 7094 CBA0 D203 CCB3 7C72 8374" /* ..ttpˠ.̳|rt */
- $"CB00 0474 7471 A1CE A0D1 03CC B67F 72B8" /* ..ttqΠ.̶.r */
- $"7495 0005 7474 0078 B7D0 A0D1 03CE BE8B" /* t..tt.xР.ξ */
- $"70BA 7492 0006 7474 0070 96C9 CFA0 D004" /* pt..tt.pϠ. */
- $"CFC6 A675 71BA 7490 0006 7474 0072 8FC0" /* Ʀuqt..tt.r */
- $"CDA2 CF03 CBBF 9D7A B672 0473 0073 7474" /* ͢.˿zr.s.stt */
- $"8E00 0674 7400 799D C3CD A3CF 04CE CAC3" /* ..tt.yͣ. */
- $"B2A0 B598 0496 8D79 0074 8D00 0774 7400" /* .y.t..tt. */
- $"79A8 C8CE CEA4 CF03 CECD CBC9 B5C7 03C3" /* yΤ.ɵ. */
- $"B58F 0080 7489 0081 7403 7192 C1C8 E2C9" /* .t.t.q */
- $"03C7 B995 7282 7486 0001 7474 8000 026E" /* .ǹrt..tt..n */
- $"91AC E3AF 04AE A58A 6F71 8000 0174 7484" /* .oq..tt */
- $"0008 7400 7075 8085 8487 8E80 8FAA 9000" /* ..t.pu. */
- $"8FB0 9080 8F09 8B87 8584 847F 7600 7474" /* Ƌ.v.tt */
- $"8200 0774 0070 8BAF BCBF C0E7 C109 C0BF" /* ..t.p */
- $"BEBE B8A6 8572 7474 8200 0370 8DC0 C9EE" /* rtt..p */
- $"CA05 C9C4 B185 0074 8000 0474 0078 B4C8" /* .ı.t..t.x */
- $"F0CA 0CC9 BFA1 7600 7400 0074 0088 BFC8" /* .ɿv.t..t. */
- $"B3C9 03CA C7C9 CAB7 C90A C3AD 7F00 7400" /* .ʷí..t. */
- $"0074 708C C0B3 C805 C9C3 B8B3 C4C9 B6C8" /* .tp.øɶ */
- $"0AC3 AE7F 0074 0074 7400 88BD B4C7 05C2" /* î..t.tt.. */
- $"F1EC B2C4 C8B5 C70B C1AB 7C00 7400 7474" /* ȵ.|.t.tt */
- $"0082 BAC6 B3C7 04C6 F2FF E6B3 B6C7 0BC0" /* .Ƴ.泶. */
- $"A67A 7374 0074 7400 7DB5 C5B3 C606 C3E7" /* zst.tt.}ų. */
- $"FFFF D5B6 C8B4 C60B BDA1 7573 7400 7474" /* նȴ.ust.tt */
- $"0079 B0C4 B3C5 01C2 D880 FF02 C0BD C6B2" /* .yij.؀.Ʋ */
- $"C50C C4BB 9D75 7374 0074 7473 75AA C2B3" /* .Ļust.ttsu³ */
- $"C406 C3C9 FAFF FFF0 B3B3 C403 C3B8 9673" /* ..øs */
- $"8474 01A5 C1B4 C301 C1EB 80FF 02D6 B4C5" /* t...ִ */
- $"B1C3 03C2 B591 7283 7402 719E BFB4 C201" /* .µrt.q. */
- $"BFD5 80FF 03FD BBBD C3B0 C203 C0B2 8E72" /* Հ.ð.r */
- $"8374 0270 99BD B4C1 02C0 C4F6 80FF 02E6" /* t.p.. */
- $"B1C2 B0C1 03BE AF87 7283 7402 7193 BBB5" /* °.rt.q */
- $"C001 BCE1 81FF 02C6 B7C1 AFC0 06BD AC84" /* ..Ʒ. */
- $"7274 7400 8074 0270 8CB9 B1BF 00C0 80C1" /* rtt.t.p. */
- $"02BD CAFD 80FF 01F1 B1B0 BF06 BBA9 8172" /* ..񱰿.r */
- $"7474 0080 7402 7088 B7B0 BF07 C1B9 ACAB" /* tt.t.p. */
- $"AEBC BEEB 81FF 02D1 B3C0 AEBF 06BA A67C" /* .ѳ.| */
- $"7274 7400 8074 0271 83B4 AFBE 08BF AFB4" /* rtt.t.q. */
- $"D9E3 D2AD B1D3 81FF 02F8 B4BC AEBE 06B8" /* ҭӁ.. */
- $"A27A 7374 7400 8074 0372 7DB1 BCAE BD01" /* zstt.t.r}. */
- $"B9CA 81FF 03F6 B4B9 F381 FF02 D8AF BEAD" /* ʁ..د */
- $"BD0D B69F 7973 7474 0000 7474 727A ADBB" /* .ystt..ttrz */
- $"ADBC 03BB ABB7 E681 FF02 E6AE D881 FF02" /* ..؁. */
- $"FDB7 B8AD BC0D B49A 7673 7474 0000 7474" /* .vstt..tt */
- $"7378 A9BA ACBB 0CBC ACDB D7A6 BDF0 FFFF" /* sx.צ */
- $"FABA BEF7 81FF 02DF ACBC ACBB 01B2 9781" /* .߬. */
- $"7407 0000 7474 7374 A4B8 ABB9 0DBA B3BB" /* t...ttst. */
- $"FFFF F7C2 A4CB FAFC C0B4 DC82 FF02 BAB4" /* ¤܂. */
- $"BAAB B901 B093 8174 0100 0080 7402 729F" /* .t...t.r */
- $"B6AB B902 BAAA E981 FF07 ECB3 ABD1 BBB6" /* ..쳫ѻ */
- $"C0FA 81FF 02E4 AABA AAB9 03B8 AD8E 7380" /* .䪺.s */
- $"7401 0000 8074 0272 9BB6 AAB8 02B9 ADC6" /* t...t.r. */
- $"84FF 05DC AFB7 B8B4 E082 FF02 BCB1 B9A9" /* .ܯ. */
- $"B803 B6AB 8A72 8074 0100 0080 7402 7095" /* .rt...t.p */
- $"B4AA B602 B5AB F484 FF06 E9B6 B5B6 B4C2" /* ..鶵 */
- $"FC81 FF02 E6A9 B7A9 B603 B5A8 8872 8074" /* .橷.rt */
- $"0100 0080 7402 6F91 B3A9 B602 B7AD D684" /* ...t.o.ք */
- $"FF02 FAC0 B480 B601 B3E4 82FF 02BD AFB7" /* ... */
- $"A8B6 03B4 A584 7280 7401 0000 8074 0270" /* .rt...t.p */
- $"8DB2 A9B6 02B4 ACE7 84FF 01D9 B181 B602" /* ..ٱ. */
- $"B3C5 FE81 FF02 E8A8 B7A8 B603 B3A3 8172" /* .訷.r */
- $"8074 0100 0080 7402 7087 B0A8 B505 B6AA" /* t...t.p. */
- $"BDA4 C1F5 81FF 02F3 B8B4 82B5 01B2 E782" /* .󸴂. */
- $"FF02 BFAD B6A7 B503 B2A1 7F72 8074 0100" /* ...rt.. */
- $"0080 7402 7083 ADA7 B40C B5AC BBFF F2B8" /* .t.p. */
- $"A2D0 FBFF FFCE B083 B401 B1C5 82FF 02EA" /* ΰ.ł. */
- $"A7B5 A7B4 03B0 9E7C 7380 7401 0000 8074" /* .|st...t */
- $"0271 80AB A8B3 01A5 EC80 FF06 E4AA A9E2" /* .q..䪩 */
- $"EAB2 B284 B301 B1E8 82FF 02BF ABB4 A6B3" /* 겲.. */
- $"03AE 9B79 7380 7401 0000 8074 0272 7DA8" /* .yst...t.r} */
- $"A6B2 02B3 A6C8 82FF 04FE D3A8 B2B1 85B2" /* .Ȃ.Ө */
- $"01AE C582 FF02 EAA6 B3A6 B203 AC98 7873" /* .ł.꦳.xs */
- $"8074 0100 0080 7403 7278 A5B0 A5B1 02AF" /* t...t.rx. */
- $"A9F7 84FF 01DA AB86 B102 B0AF E982 FF02" /* .ګ.. */
- $"BEA9 B2A5 B103 AB95 7773 8074 0100 0080" /* .wst... */
- $"7403 7276 A2AF A4B0 02B1 A2D5 84FF 02F8" /* t.rv.Մ. */
- $"BAAE 87B0 01AC C682 FF02 EAA4 B1A5 B003" /* .Ƃ.ꤱ. */
- $"A991 7573 8074 0100 0080 7402 7375 9FA4" /* ust...t.su */
- $"AE03 AFA9 B0FE 84FF 01D3 AA88 AE02 ADAD" /* ..Ӫ. */
- $"E982 FF02 BCA7 AFA4 AE01 A78E 8274 0100" /* ..t.. */
- $"0081 7402 729B ADA3 AE02 AFA0 E384 FF02" /* .t.r.. */
- $"F0B0 AD89 AE01 AAC4 82FF 02E9 A2AF A4AE" /* 𰭉.Ă.颯 */
- $"01A5 8C82 7401 0000 8174 0270 98AC 97AD" /* .t...t.p */
- $"0DAC ADAE ACAE ADAC AEAD ACAE AEA4 BB85" /* . */
- $"FF11 C7A7 AEAD ACAE ADAC AEAC ACAE ACAD" /* .ǧ */
- $"AEAB ABE9 82FF 0EBB A6AE ADAC AEAC ACAE" /* . */
- $"ACAD AEAC ADAE 97AD 01A3 8982 7401 0000" /* .t... */
- $"8174 0270 94AA 95AC 0FAD A79F A1A2 9FA2" /* t.p. */
- $"A29F A2A1 9FA4 A9A1 EF84 FF12 E6A2 9FA2" /* .梟 */
- $"A1A0 A3A1 A0A2 A0A0 A3A0 A0A2 9F9D C282" /* ‚ */
- $"FF10 E6A0 A9A0 A0A2 A0A0 A2A0 A1A3 A0A1" /* .栩 */
- $"A2A2 AB94 AC03 ABA1 8673 8174 0100 0081" /* .st... */
- $"7402 7091 A995 AB0E A9AF FACE C2FF BCCA" /* t.p. */
- $"FFB6 DEFA B4A1 C884 FF14 FDB2 C0FF BFCF" /* Ȅ. */
- $"FFAF DCFA AFEA F1A8 F5E4 B2FE D79D E982" /* ם */
- $"FF0F B8A1 E4F8 A9EA F0AE F7E0 ACFF D5C0" /* . */
- $"D1A5 94AB 03AA 9F84 7381 7401 0000 8174" /* ѥ.st...t */
- $"026F 8CA8 95A9 0EA7 B1FF CEC2 FFD0 DBFF" /* .o. */
- $"B3E0 FFB6 A2F9 84FF 14D7 99D8 FFBE D0FF" /* .י */
- $"C5E9 FFAC EEFA C0FE E7B0 FFE8 A3B9 82FF" /* 裹 */
- $"0FE2 99EA FFC1 F5F4 ABFB EDC4 FFD7 BED6" /* .׾ */
- $"A394 A903 A89C 8173 8174 0100 0080 7403" /* .st...t. */
- $"756E 88A6 95A8 04A6 B0FF DDD3 81FF 04C9" /* un.Ӂ. */
- $"EBFB A6D5 84FF 06F6 A3DE FFFF D1DE 80FF" /* Մ.ހ */
- $"02FD C4F2 80FF 06EE C6FF FFFA A7E2 82FF" /* .. */
- $"01B0 D780 FF02 F6C3 FB80 FF03 E3D3 D5A2" /* .׀..բ */
- $"94A8 03A7 9A7F 7381 7401 0000 8074 0375" /* ..st...t.u */
- $"6E85 A495 A702 A5AF FA85 FF01 C7AB 85FF" /* n..ǫ */
- $"01C4 B290 FF01 D1B1 82FF 02DD ACFB 87FF" /* .IJ.ѱ.ݬ */
- $"01D1 A194 A703 A598 7D73 8174 0100 0081" /* .ѡ.}st... */
- $"7402 7082 A295 A602 A4AE FB84 FF02 EF9C" /* t.p.. */
- $"E484 FF02 EC9E EB90 FF02 FCA7 DF81 FF02" /* ..߁. */
- $"FCAD D787 FF01 D0A0 94A6 03A3 957B 7381" /* ׇ.Р.{s */
- $"7401 0000 8174 0270 7EA1 95A6 02A4 AEFB" /* t...t.p~. */
- $"84FF 01B8 B885 FF01 B4BF 92FF 01D4 AD80" /* ...ԭ */
- $"FF04 FCD4 9CAC FA86 FF01 D0A0 94A6 03A3" /* .Ԝ.Р. */
- $"937A 7381 7401 0000 8174 0270 7B9F 95A4" /* zst...t.p{ */
- $"02A2 ACFA 83FF 02E3 9BF1 84FF 02DE 9EF5" /* ...ޞ */
- $"92FF 09FD A8D9 FADB AD8B B1A1 D486 FF01" /* ۭԆ. */
- $"CF9E 94A4 03A1 9178 7381 7401 0000 8174" /* Ϟ.xst...t */
- $"0270 779D 95A3 02A1 ACFA 82FF 02FD A9C7" /* .pw.. */
- $"84FF 02FC A5CD 94FF 09D9 989F 8B9B D3FF" /* .͔٘ */
- $"CDA1 F985 FF01 CF9D 94A3 03A0 8E77 7381" /* ͡.ϝ.ws */
- $"7401 0000 8174 0271 779A 95A2 02A0 ABFA" /* t...t.qw. */
- $"82FF 02D4 A0FB 84FF 02CE A2FD 95FF 08A6" /* .Ԡ.΢. */
- $"AEDB FCFF FFFA 9ECF 85FF 01CE 9C94 A203" /* υ.Μ. */
- $"9E8C 7673 8174 0100 0081 7402 7275 9895" /* vst...t.ru */
- $"A102 9FAA FA81 FF02 F79D D784 FF02 F29C" /* ..ׄ. */
- $"DE96 FF01 DABD 82FF 02D0 9DF8 84FF 01CE" /* ޖ.ڽ.Н. */
- $"9A94 A102 9C8A 7582 7401 0000 8174 0272" /* .ut...t.r */
- $"7196 959F 089D A9EE F2F1 F1F6 C0AA 85FF" /* q. */
- $"02C0 ADF5 95F1 03F2 F1AE E681 FF03 FCA0" /* ... */
- $"C7F5 82F1 02F6 C89A 949F 029A 8775 8274" /* .Ț.ut */
- $"0100 0081 7402 736F 9396 9E00 9F82 A201" /* ...t.so.. */
- $"93E8 84FF 03E8 9EA2 A396 A202 A39D BB82" /* .螢. */
- $"FF02 D597 A383 A200 A195 9E01 9985 8374" /* .՗..t */
- $"0100 0081 7403 736E 929D 959E 009D 809C" /* ...t.sn. */
- $"029D 91BC 84FF 03FE B599 9D99 9C01 9DE7" /* ... */
- $"81FF 02C7 8D9B 839C 009D 959E 0198 8383" /* .Ǎ.. */
- $"7401 0000 8274 016E 8F9A 9C02 9A98 F484" /* t...t.n. */
- $"FF01 DA99 9B9C 0997 B9FF FFE4 A7A6 CF91" /* .ڙƗ䧦ϑ */
- $"9D9B 9C02 9681 7382 7401 0000 8274 026F" /* .st...t.o */
- $"8C9A 989B 029C 90CF 84FF 02F8 A998 9D9B" /* .τ. */
- $"08B3 A39A C8FC FFB0 919C 9A9B 0294 8073" /* ..s */
- $"8274 0100 0082 7402 6D8A 9998 9A02 989C" /* t...t.m. */
- $"F484 FF01 CB94 9D9A 0397 A2DD FB80 FF02" /* .˔.. */
- $"F294 979A 9A02 927E 7382 7401 0000 8174" /* 򔗚.~st...t */
- $"0375 6B87 9898 9904 969A 96D2 FE81 FF02" /* .uk.. */
- $"EF9E 979D 9902 97A1 F382 FF02 D68A 9A99" /* ..֊ */
- $"9902 917C 7382 7401 0000 8174 0375 6A85" /* .|st...t.uj */
- $"9797 9806 9798 F1D3 8F9F E480 FF01 BB92" /* .ӏ. */
- $"9F98 0192 CF83 FF02 B68A 9998 9802 8F7B" /* .σ..{ */
- $"7382 7401 0000 8174 0375 6A82 9597 960B" /* st...t.uj. */
- $"939F FBFF F9BB 89B0 F5E4 9595 9F96 0192" /* 䕕. */
- $"AD83 FF03 FA9B 9097 9796 028D 7973 8274" /* ..yst */
- $"0100 0081 7403 756A 8195 9796 0191 AC81" /* ...t.uj. */
- $"FF04 EEA8 97A2 94A0 9602 9597 EC83 FF01" /* ... */
- $"E28A 9796 0395 8C78 7382 7401 0000 8174" /* ⊗.xst...t */
- $"0375 6C7F 9497 9501 8EBB 82FF 02FE B28E" /* .ul... */
- $"A295 018F CE84 FF02 BD89 9695 9503 948B" /* .΄.. */
- $"7873 8274 0100 0081 7403 756D 7D92 9794" /* xst...t.um} */
- $"018C CB81 FF02 F8B8 93A3 9401 90AE 84FF" /* .ˁ.. */
- $"02F7 9691 9594 0393 8A77 7382 7401 0000" /* ..wst... */
- $"8174 0375 6C7B 9197 9301 8CDD 80FF 02ED" /* t.ul{.݀. */
- $"A78D A493 0292 96EE 84FF 02C8 8894 9493" /* ..Ȉ */
- $"0392 8875 7382 7401 0000 8174 0375 6C79" /* .ust...t.uly */
- $"9096 9207 9190 EBFF FFDE 9A8D A692 018C" /* .ޚ. */
- $"CC84 FF02 EF91 9194 9201 9186 8474 0100" /* ̄..t.. */
- $"0081 7403 756B 7790 9692 0690 97F8 FFCC" /* .t.ukw. */
- $"918E A792 028E A6FD 83FF 02FC 9F8F 9492" /* .. */
- $"0191 8584 7401 0000 8174 0375 6B75 8E96" /* .t...t.uku */
- $"9005 8BA7 FCBA 8B8E A990 018D DB83 FF02" /* ..ۃ. */
- $"F79B 8D94 9002 8F83 7383 7401 0000 8174" /* .st...t */
- $"0375 6C74 8E96 9004 8CAA AD89 8FAA 9002" /* .ult.. */
- $"8CA3 F982 FF01 CB8C 9590 028F 8373 8374" /* .ˌ.st */
- $"0100 0081 7403 756B 728D 988F 008B AD8F" /* ...t.ukr. */
- $"088A B4F9 FFFF F6C3 8E8E 958F 028E 8172" /* .Î.r */
- $"8374 0100 0081 7403 756C 718C CA8E 068A" /* t...t.ulqʎ. */
- $"9DBA B398 898D 968E 028D 8072 8374 0100" /* .rt.. */
- $"0081 7403 756C 718B CB8E 038B 8888 8B98" /* .t.ulqˎ. */
- $"8E02 8C80 7283 7401 0000 8174 0375 6D71" /* .rt...t.umq */
- $"8BEA 8E02 8C80 7283 7401 0000 8174 0375" /* .rt...t.u */
- $"6D70 8AEA 8D02 8B7F 7283 7401 0000 8174" /* mp..rt...t */
- $"0375 6E70 8AEA 8D02 8B7E 7283 7401 0000" /* .unp.~rt... */
- $"8174 0375 6E70 8AEA 8D02 8B7E 7283 7400" /* t.unp.~rt. */
- $"0082 7403 756F 6E88 EA8C 0289 7B71 8374" /* .t.uon.{qt */
- $"0000 8374 0372 697B 81E9 8202 7E73 7283" /* ..t.ri{.~sr */
- $"7401 0000 8274 0475 706E 7172 E671 0372" /* t...t.upnqrq.r */
- $"7270 7284 7401 0000 FB74 0100 00FB 7401" /* rprt...t...t. */
- $"0000 FB74 0100 00FB 7401 0000 FA74 8100" /* ..t...t...t. */
- $"F974 8200 F774 8300 F674 8600 F374 FF00" /* t.t.t.t. */
- $"FF00 0000 7438 6D6B 0000 4008 0000 0000" /* ...t8mk..@..... */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0101 0101 0202 0202 0202 0202 0202 0202" /* ................ */
- $"0202 0202 0202 0202 0202 0202 0202 0101" /* ................ */
- $"0101 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0102 0202" /* ................ */
- $"0304 0505 0606 0606 0606 0606 0606 0606" /* ................ */
- $"0606 0606 0606 0606 0606 0606 0606 0505" /* ................ */
- $"0503 0302 0100 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0001 0100 0000" /* ................ */
- $"0204 0506 0707 0707 0707 0707 0707 0707" /* ................ */
- $"0707 0707 0707 0707 0707 0707 0707 0606" /* ................ */
- $"090A 0805 0302 0100 0000 0000 0000 0000" /* .............. */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0101 001C 2F31" /* ............../1 */
- $"3436 383A 3A3A 3A3A 3A3A 3A3A 3A3A 3A3A" /* 468::::::::::::: */
- $"3A3A 3A3A 3A3A 3A3A 3A3A 3A3A 3A3A 3A34" /* :::::::::::::::4 */
- $"120B 0F0B 0704 0201 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0004 8FF3 FAF9" /* ............ */
- $"F9F9 F9F9 F9F9 F9F9 F9F9 F9F9 F9F9 F9F9" /* */
- $"F9F9 F9F9 F9F9 F9F9 F9F9 F9F9 F9F9 FAFA" /* */
- $"C433 1112 0C07 0402 0100 0000 0000 0000" /* 3.............. */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0001 0067 FFFF FFFF" /* ...........g */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFC3 201A 130C 0703 0100 0000 0000 0000" /* ............. */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0001 00A9 FFFF FFFF" /* ........... */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFF8 4A20 1B11 0A05 0200 0000 0000 0000" /* J ........... */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0002 00B6 FFFF FFFF" /* ........... */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFB 5928 2216 0D07 0200 0000 0000 0000" /* Y("........... */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0103 07CC FFFF FFFF" /* ........... */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFD 6231 291B 1109 0401 0000 0000 0000" /* b1).......... */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0201 21F0 FFFF FFFF" /* ..........! */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF 7337 2F21 160D 0704 0303 0303 0303" /* s7/!.......... */
- $"0303 0303 0303 0303 0303 0303 0303 0303" /* ................ */
- $"0303 0303 0303 0303 0303 0303 0303 0303" /* ................ */
- $"0303 0303 0303 0303 0303 0302 0201 0100" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0001 0500 69FF FFFF FFFF" /* ..........i */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF 9A38 3628 1C14 0E0A 0909 0909 0909" /* 86(... */
- $"0909 0909 0909 0909 0909 0909 0909 0909" /* */
- $"0909 0909 0909 0909 0909 0909 0909 0909" /* */
- $"0909 0909 0909 0909 0909 0807 0604 0302" /* ...... */
- $"0100 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0203 0021 DFFF FFFF FFFF" /* .........! */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF E653 312D 231B 1512 1011 1010 1010" /* S1-#......... */
- $"1010 1010 1010 1010 1010 1010 1010 1010" /* ................ */
- $"1010 1010 1010 1010 1010 1010 1010 1010" /* ................ */
- $"1010 1010 1010 1010 1010 0E0C 0A08 0504" /* ............... */
- $"0301 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0002 0200 34D3 FFFF FFFF FFFF" /* ........4 */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFD6 6E40 312A 2522 2121 2121 2121" /* n@1*%"!!!!!! */
- $"2121 2121 2121 2121 2121 2121 2121 2121" /* !!!!!!!!!!!!!!!! */
- $"2121 2121 2121 2121 2121 2121 2121 2121" /* !!!!!!!!!!!!!!!! */
- $"2121 2121 2121 2121 2120 1E1B 1814 0D00" /* !!!!!!!!! ...... */
- $"0203 0100 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0102 006C F4FF FFFF FFFF FFFF" /* .......l */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FEE8 DAD9 D9D8 D8D8 D8D8 D8D8" /* */
- $"D8D8 D8D8 D8D8 D8D8 D8D8 D8D8 D8D8 D8D8" /* */
- $"D8D8 D8D8 D8D8 D8D8 D8D8 D8D8 D8D8 D8D8" /* */
- $"D8D8 D8D8 D8D8 D8D8 D8D8 D7D7 D6D5 D5A9" /* թ */
- $"1E00 0200 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0001 0300 71FF FFFF FFFF FFFF FFFF" /* ......q */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"8500 0402 0100 0000 0000 0000 0000 0000" /* ............... */
- $"0001 0203 0317 E1FF FFFF FFFF FFFF FFFF" /* ...... */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"9E03 0905 0302 0100 0000 0000 0000 0000" /* .............. */
- $"0201 0000 002C E4E8 E8E9 EAEB ECEC EDED" /* ....., */
- $"EDED EDED EDED EDED EDED EDED EDED EDED" /* */
- $"EDED EDED EDED EDED EDED EDED EDED EDED" /* */
- $"EDED EDED ECEC ECEC ECEC ECEC ECEC ECEC" /* */
- $"ECEC ECEC ECEC ECEC ECEC ECEC ECEC ECEC" /* */
- $"ECEC ECEC ECEC ECEC ECEC ECEC ECEC ECEC" /* */
- $"ECEC ECEC ECEC ECEC ECEC ECEB EAE9 E8F4" /* */
- $"8E02 0400 0000 0202 0000 0000 0000 0002" /* ............... */
- $"0012 6297 A3A9 BBBD C0C4 C7CA CCCD CECE" /* ..b */
- $"CECE CECE CECE CECE CECE CECE CECE CECE" /* */
- $"CECE CECE CECE CECE CECE CECE CECE CECE" /* */
- $"CECE CECE CDCD CCCC CCCC CBCB CBCB CBCB" /* */
- $"CBCB CBCB CBCB CBCB CBCB CBCB CBCB CBCB" /* */
- $"CBCB CBCB CBCB CBCB CBCB CBCB CBCB CBCB" /* */
- $"CBCB CBCB CBCB CBCB CBCB CBC9 C8C5 C2C0" /* */
- $"B5A6 A5A1 8236 0002 0100 0000 0000 0100" /* 6.......... */
- $"35DC FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* 5 */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFE 8901 0101 0000 0000 001B" /* ......... */
- $"DFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FF73 0002 0000 0001 0082" /* s....... */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFE4 1800 0100 0001 00C0" /* ....... */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF 4500 0200 0002 02C6" /* E...... */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF 4C00 0200 0103 00B3" /* L...... */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFE 3D00 0300 0104 009C" /* =...... */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFF4 2C04 0400 0105 0087" /* ,...... */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFE8 2007 0400 0105 0073" /* ......s */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFD9 1808 0400 0105 015C" /* .......\ */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFC7 0E0A 0401 0105 034A" /* ......J */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFB5 0A0A 0402 0105 043C" /* .....< */
- $"FBFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFA1 080A 0402 0105 062B" /* ......+ */
- $"F2FF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FF8E 050A 0402 0104 0720" /* ...... */
- $"E7FF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FF7C 0609 0300 0104 0817" /* |....... */
- $"D8FF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FF68 0709 0300 0104 0A0E" /* h...... */
- $"C8FF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FF55 0809 0300 0104 0A0A" /* U..... */
- $"B7FF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FF47 0909 0300 0104 0A07" /* G..... */
- $"A4FF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF F638 0B08 0300 0004 0A05" /* 8....... */
- $"91FF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF EE2B 0C08 0300 0004 0905" /* +....... */
- $"81FF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF E224 0D08 0300 0003 0906" /* $....... */
- $"71FF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* q */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF D51C 0E08 0300 0003 0907" /* ........ */
- $"5EFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ^ */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF C714 0F07 0200 0003 0908" /* ........ */
- $"4FFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* O */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF B811 0E07 0200 0003 090A" /* ....... */
- $"43FD FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* C */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF A70E 0F07 0200 0003 080B" /* ......... */
- $"34F5 FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* 4 */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF 960C 0E06 0200 0002 080D" /* ......... */
- $"29EB FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ) */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF 850C 0E07 0200 0003 080E" /* ......... */
- $"22E0 FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* " */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF 760D 0E06 0200 0003 080F" /* v......... */
- $"1BD3 FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* . */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF 650E 0E06 0200 0002 080F" /* e......... */
- $"14C7 FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* . */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF 580E 0D06 0200 0002 070F" /* X......... */
- $"11B9 FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* . */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF 4E10 0D06 0100 0002 070F" /* N......... */
- $"10AB FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* . */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFF8 4211 0D06 0200 0002 070F" /* B......... */
- $"0D9B FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* . */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFF1 3513 0D06 0200 0002 080F" /* 5......... */
- $"0C8D FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* . */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFE9 2E13 0D05 0100 0002 070F" /* .......... */
- $"0D81 FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* . */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFDF 2914 0D06 0100 0002 070F" /* )......... */
- $"0E73 FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* .s */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFD4 2215 0C06 0100 0002 070F" /* "......... */
- $"0F64 FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* .d */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFC9 1C16 0C05 0100 0002 070F" /* .......... */
- $"1058 FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* .X */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFBD 1A15 0C05 0100 0002 070F" /* .......... */
- $"114F FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* .O */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFB2 1815 0C05 0100 0002 070E" /* .......... */
- $"1246 FAFF FFFF FFFF FFFF FFFF FFFF FFFF" /* .F */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFA5 1615 0C05 0100 0002 070E" /* .......... */
- $"133B F4FF FFFF FFFF FFFF FFFF FFFF FFFF" /* .; */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FF98 1515 0C05 0100 0002 060E" /* .......... */
- $"1533 EEFF FFFF FFFF FFFF FFFF FFFF FFFF" /* .3 */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FF8D 1515 0B05 0100 0002 070E" /* .......... */
- $"152F E6FF FFFF FFFF FFFF FFFF FFFF FFFF" /* ./ */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FF82 1615 0B05 0100 0002 070E" /* .......... */
- $"1629 DDFF FFFF FFFF FFFF FFFF FFFF FFFF" /* .) */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FF77 1615 0B05 0100 0002 060E" /* w.......... */
- $"1624 D5FF FFFF FFFF FFFF FFFF FFFF FFFF" /* .$ */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FF6B 1715 0B05 0100 0002 060E" /* k.......... */
- $"1720 CCFF FFFF FFFF FFFF FFFF FFFF FFFF" /* . */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FF61 1815 0B05 0100 0002 060E" /* a.......... */
- $"181D C3FF FFFF FFFF FFFF FFFF FFFF FFFF" /* .. */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FF5B 1914 0B05 0100 0002 060E" /* [.......... */
- $"181C BAFF FFFF FFFF FFFF FFFF FFFF FFFF" /* .. */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FE54 1A14 0B05 0100 0002 070E" /* T.......... */
- $"181B B0FF FFFF FFFF FFFF FFFF FFFF FFFF" /* .. */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF F94C 1B15 0B04 0100 0002 060E" /* L.......... */
- $"181A A6FF FFFF FFFF FFFF FFFF FFFF FFFF" /* .. */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF F544 1C15 0B05 0100 0002 070E" /* D.......... */
- $"1819 9DFF FFFF FFFF FFFF FFFF FFFF FFFF" /* .. */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF F13D 1D14 0B04 0100 0002 060E" /* =.......... */
- $"1819 95FF FFFF FFFF FFFF FFFF FFFF FFFF" /* .. */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF EB3A 1D14 0B05 0100 0002 070E" /* :.......... */
- $"1819 8EFF FFFF FFFF FFFF FFFF FFFF FFFF" /* .. */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF E537 1E14 0B05 0100 0002 070E" /* 7.......... */
- $"181A 86FF FFFF FFFF FFFF FFFF FFFF FFFF" /* .. */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF DF34 1E14 0B05 0100 0002 070E" /* 4.......... */
- $"181B 7EFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ..~ */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF D930 1F15 0B05 0100 0002 070E" /* 0.......... */
- $"181B 78FF FFFF FFFF FFFF FFFF FFFF FFFF" /* ..x */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF D32D 1F15 0B05 0100 0002 070F" /* -.......... */
- $"191C 71FF FFFF FFFF FFFF FFFF FFFF FFFF" /* ..q */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF CE29 2015 0B05 0100 0002 070F" /* ) ......... */
- $"191D 6AFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ..j */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF C828 2015 0B05 0100 0002 070F" /* ( ......... */
- $"191D 65FF FFFF FFFF FFFF FFFF FFFF FFFF" /* ..e */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF C328 2015 0B05 0100 0002 070F" /* ( ......... */
- $"191E 61FF FFFF FFFF FFFF FFFF FFFF FFFF" /* ..a */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF BE28 2115 0B05 0100 0002 070F" /* (!......... */
- $"191F 5DFF FFFF FFFF FFFF FFFF FFFF FFFF" /* ..] */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF B827 2115 0C05 0100 0002 070F" /* '!......... */
- $"1920 5AFE FFFF FFFF FFFF FFFF FFFF FFFF" /* . Z */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF B427 2115 0C05 0100 0003 0710" /* '!......... */
- $"1A21 58FD FFFF FFFF FFFF FFFF FFFF FFFF" /* .!X */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF B026 2115 0C05 0100 0003 0810" /* &!......... */
- $"1A21 55FB FFFF FFFF FFFF FFFF FFFF FFFF" /* .!U */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF AC26 2116 0C05 0200 0003 0810" /* &!......... */
- $"1A22 52F9 FFFF FFFF FFFF FFFF FFFF FFFF" /* ."R */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF A826 2215 0C05 0100 0003 0810" /* &"......... */
- $"1A23 4FF7 FFFF FFFF FFFF FFFF FFFF FFFF" /* .#O */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF A426 2316 0D06 0200 0003 0811" /* &#......... */
- $"1B24 4DF6 FFFF FFFF FFFF FFFF FFFF FFFF" /* .$M */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF A126 2316 0D06 0200 0003 0911" /* &#........ */
- $"1C25 4CF5 FFFF FFFF FFFF FFFF FFFF FFFF" /* .%L */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF 9F26 2317 0D06 0200 0003 0912" /* &#........ */
- $"1C25 4CF5 FFFF FFFF FFFF FFFF FFFF FFFF" /* .%L */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF 9E26 2317 0D06 0200 0003 0912" /* &#........ */
- $"1C26 4BF4 FFFF FFFF FFFF FFFF FFFF FFFF" /* .&K */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF 9D27 2317 0D06 0200 0004 0912" /* '#........ */
- $"1C26 4AF3 FFFF FFFF FFFF FFFF FFFF FFFF" /* .&J */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF 9C27 2417 0D06 0200 0104 0912" /* '$........ */
- $"1C26 47F2 FFFF FFFF FFFF FFFF FFFF FFFF" /* .&G */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF 9A27 2417 0D06 0200 0103 0911" /* '$........ */
- $"1B27 37D1 FFFF FFFF FFFF FFFF FFFF FFFF" /* .'7 */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" /* */
- $"FFFF FFFF 7329 2316 0D06 0200 0003 0810" /* s)#......... */
- $"1A27 2F59 B7C6 C6C7 C7C7 C7C7 C7C7 C7C7" /* .'/Y */
- $"C7C7 C7C7 C7C7 C7C7 C7C7 C7C7 C7C7 C7C7" /* */
- $"C7C7 C7C7 C7C7 C7C7 C7C7 C7C7 C7C7 C7C7" /* */
- $"C7C7 C7C7 C7C7 C7C7 C7C7 C7C7 C7C7 C7C7" /* */
- $"C7C7 C7C7 C7C7 C7C7 C7C7 C7C7 C7C7 C7C7" /* */
- $"C7C7 C7C7 C7C7 C7C7 C7C7 C7C7 C7C7 C7C7" /* */
- $"C7C7 C7C7 C7C7 C7C7 C7C7 C7C7 C7C7 C7C7" /* */
- $"C7C5 C689 372D 2015 0C06 0200 0003 070E" /* Ɖ7- ......... */
- $"1723 3037 3C46 4C4F 5050 5050 5050 5050" /* .#07<FLOPPPPPPPP */
- $"5050 5050 5050 5050 5050 5050 5050 5050" /* PPPPPPPPPPPPPPPP */
- $"5050 5050 5050 5050 5050 5050 5050 5050" /* PPPPPPPPPPPPPPPP */
- $"5050 5050 5050 5050 5050 5050 5050 5050" /* PPPPPPPPPPPPPPPP */
- $"5050 5050 5050 5050 5050 5050 5050 5050" /* PPPPPPPPPPPPPPPP */
- $"5050 5050 5050 5050 5050 5050 5050 5050" /* PPPPPPPPPPPPPPPP */
- $"5050 5050 5050 5050 5050 5050 5050 5050" /* PPPPPPPPPPPPPPPP */
- $"4D49 4138 352A 1D13 0A05 0100 0003 060C" /* MIA85*......... */
- $"141E 2934 3D44 494C 4D4E 4E4E 4E4E 4E4E" /* ..)4=DILMNNNNNNN */
- $"4E4E 4E4E 4E4E 4E4E 4E4E 4E4E 4E4E 4E4E" /* NNNNNNNNNNNNNNNN */
- $"4E4E 4E4E 4E4E 4E4E 4E4E 4E4E 4E4E 4E4E" /* NNNNNNNNNNNNNNNN */
- $"4E4E 4E4E 4E4E 4E4E 4E4E 4E4E 4E4E 4E4E" /* NNNNNNNNNNNNNNNN */
- $"4E4E 4E4E 4E4E 4E4E 4E4E 4E4E 4E4E 4E4E" /* NNNNNNNNNNNNNNNN */
- $"4E4E 4E4E 4E4E 4E4E 4E4E 4E4E 4E4E 4E4E" /* NNNNNNNNNNNNNNNN */
- $"4E4E 4E4E 4E4E 4E4E 4E4E 4E4E 4E4E 4E4D" /* NNNNNNNNNNNNNNNM */
- $"4B46 4039 2F24 1910 0904 0100 0002 050A" /* KF@9/$........ */
- $"1018 212B 3339 3D40 4142 4242 4242 4242" /* ..!+39=@ABBBBBBB */
- $"4242 4242 4242 4242 4242 4242 4242 4242" /* BBBBBBBBBBBBBBBB */
- $"4242 4242 4242 4242 4242 4242 4242 4242" /* BBBBBBBBBBBBBBBB */
- $"4242 4242 4242 4242 4242 4242 4242 4242" /* BBBBBBBBBBBBBBBB */
- $"4242 4242 4242 4242 4242 4242 4242 4242" /* BBBBBBBBBBBBBBBB */
- $"4242 4242 4242 4242 4242 4242 4242 4242" /* BBBBBBBBBBBBBBBB */
- $"4242 4242 4242 4242 4242 4242 4242 4140" /* BBBBBBBBBBBBBBA@ */
- $"3F3B 352F 261D 140D 0703 0100 0002 0407" /* ?;5/&........... */
- $"0C12 1920 272C 2F32 3233 3333 3333 3333" /* ... ',/223333333 */
- $"3333 3333 3333 3333 3333 3333 3333 3333" /* 3333333333333333 */
- $"3333 3333 3333 3333 3333 3333 3333 3333" /* 3333333333333333 */
- $"3333 3333 3333 3333 3333 3333 3333 3333" /* 3333333333333333 */
- $"3333 3333 3333 3333 3333 3333 3333 3333" /* 3333333333333333 */
- $"3333 3333 3333 3333 3333 3333 3333 3333" /* 3333333333333333 */
- $"3333 3333 3333 3333 3333 3333 3333 3332" /* 3333333333333332 */
- $"302D 2924 1D16 0F09 0502 0100 0001 0305" /* 0-)$........... */
- $"080D 1217 1C1F 2223 2425 2525 2525 2525" /* ......"#$%%%%%%% */
- $"2525 2525 2525 2525 2525 2525 2525 2525" /* %%%%%%%%%%%%%%%% */
- $"2525 2525 2525 2525 2525 2525 2525 2525" /* %%%%%%%%%%%%%%%% */
- $"2525 2525 2525 2525 2525 2525 2525 2525" /* %%%%%%%%%%%%%%%% */
- $"2525 2525 2525 2525 2525 2525 2525 2525" /* %%%%%%%%%%%%%%%% */
- $"2525 2525 2525 2525 2525 2525 2525 2525" /* %%%%%%%%%%%%%%%% */
- $"2525 2525 2525 2525 2525 2525 2525 2524" /* %%%%%%%%%%%%%%%$ */
- $"2221 1E19 1510 0B07 0402 0000 0000 0103" /* "!.............. */
- $"0609 0C10 1315 1718 1919 1919 1919 1919" /* ............... */
- $"1919 1919 1919 1919 1919 1919 1919 1919" /* ................ */
- $"1919 1919 1919 1919 1919 1919 1919 1919" /* ................ */
- $"1919 1919 1919 1919 1919 1919 1919 1919" /* ................ */
- $"1919 1919 1919 1919 1919 1919 1919 1919" /* ................ */
- $"1919 1919 1919 1919 1919 1919 1919 1919" /* ................ */
- $"1919 1919 1919 1919 1919 1919 1919 1918" /* ................ */
- $"1716 1411 0E0A 0704 0201 0000 0000 0002" /* ............... */
- $"0305 0709 0B0D 0E0F 0F0F 0F0F 0F0F 0F0F" /* ............... */
- $"0F0F 0F0F 0F0F 0F0F 0F0F 0F0F 0F0F 0F0F" /* ................ */
- $"0F0F 0F0F 0F0F 0F0F 0F0F 0F0F 0F0F 0F0F" /* ................ */
- $"0F0F 0F0F 0F0F 0F0F 0F0F 0F0F 0F0F 0F0F" /* ................ */
- $"0F0F 0F0F 0F0F 0F0F 0F0F 0F0F 0F0F 0F0F" /* ................ */
- $"0F0F 0F0F 0F0F 0F0F 0F0F 0F0F 0F0F 0F0F" /* ................ */
- $"0F0F 0F0F 0F0F 0F0F 0F0F 0F0F 0F0F 0F0F" /* ................ */
- $"0F0D 0C0A 0806 0402 0100 0000 0000 0001" /* ............... */
- $"0103 0304 0607 0708 0808 0808 0808 0808" /* ................ */
- $"0808 0808 0808 0808 0808 0808 0808 0808" /* ................ */
- $"0808 0808 0808 0808 0808 0808 0808 0808" /* ................ */
- $"0808 0808 0808 0808 0808 0808 0808 0808" /* ................ */
- $"0808 0808 0808 0808 0808 0808 0808 0808" /* ................ */
- $"0808 0808 0808 0808 0808 0808 0808 0808" /* ................ */
- $"0808 0808 0808 0808 0808 0808 0808 0808" /* ................ */
- $"0707 0605 0403 0201 0000 0000 0000 0000" /* ................ */
- $"0001 0102 0202 0203 0303 0303 0303 0303" /* ................ */
- $"0303 0303 0303 0303 0303 0303 0303 0303" /* ................ */
- $"0303 0303 0303 0303 0303 0303 0303 0303" /* ................ */
- $"0303 0303 0303 0303 0303 0303 0303 0303" /* ................ */
- $"0303 0303 0303 0303 0303 0303 0303 0303" /* ................ */
- $"0303 0303 0303 0303 0303 0303 0303 0303" /* ................ */
- $"0303 0303 0303 0303 0303 0303 0303 0303" /* ................ */
- $"0202 0202 0201 0100 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 0000 0000" /* ................ */
- $"0000 0000 0000 0000 0000 0000 6963 3038" /* ............ic08 */
- $"0000 5CBD 0000 000C 6A50 2020 0D0A 870A" /* ..\....jP .‡ */
- $"0000 0014 6674 7970 6A70 3220 0000 0000" /* ....ftypjp2 .... */
- $"6A70 3220 0000 004F 6A70 3268 0000 0016" /* jp2 ...Ojp2h.... */
- $"6968 6472 0000 0100 0000 0100 0004 0707" /* ihdr............ */
- $"0100 0000 000F 636F 6C72 0100 0000 0000" /* ......colr...... */
- $"1000 0000 2263 6465 6600 0400 0000 0000" /* ...."cdef....... */
- $"0100 0300 0100 0000 0100 0000 0200 0200" /* ................ */
- $"0000 0300 0000 006A 7032 63FF 4FFF 5100" /* .......jp2cOQ. */
- $"3200 0000 0001 0000 0001 0000 0000 0000" /* 2............... */
- $"0000 0000 0001 0000 0001 0000 0000 0000" /* ................ */
- $"0000 0000 0407 0101 0701 0107 0101 0701" /* ................ */
- $"01FF 5200 0C00 0000 0101 0504 0400 01FF" /* .R............ */
- $"5C00 1320 5058 5860 5858 6058 5860 5858" /* \.. PXX`XX`XX`XX */
- $"5850 5058 FF64 0011 0001 4B61 6B61 6475" /* XPPXd....Kakadu */
- $"2D76 352E 322E 31FF 9000 0A00 0000 005B" /* -v5.2.1.....[ */
- $"D000 01FF 93CF C100 1507 F18D 1991 E793" /* ...... */
- $"D8B4 6B7C 459C 4F68 E4BF E0FF 0D3D C2DF" /* شk|EOh.= */
- $"FC16 8F7F 6C3A 7FEA ACD5 8632 D1AD 37A6" /* ..l:.Ն2ѭ7 */
- $"22E3 4753 734F 3BFA 0372 1596 A8F1 7183" /* "GSsO;.r.q */
- $"2F17 0A65 C5C2 6A8E C0F9 1000 39CE 9180" /* /.ej..9Α */
- $"AE4A F551 B521 2839 FEE4 4D31 9F98 9F17" /* JQ!(9M1. */
- $"29F2 C91D 3B35 397E 15A1 8246 C3EA 3107" /* ).;59~.F1. */
- $"5630 A744 5105 404A C843 0AE4 304B 4FE9" /* V0DQ.@JC0KO */
- $"81E4 4C91 DF64 6885 8D23 6517 B254 DE23" /* Ldh#e.T# */
- $"6101 3C94 9245 923D 4F4C 0F02 784C F319" /* a.<E=OL..xL. */
- $"CFC0 FC11 7EC2 D9C4 3907 5FDC 553A F1E1" /* .~9._U: */
- $"F2BC 6420 59D8 7D25 F42A 5BA5 8E8E 7166" /* d Y}%*[qf */
- $"AD5D 5C91 CC75 1452 ACDA 64CA 3249 CCE3" /* ]\u.Rd2I */
- $"6874 83E2 633E 64E7 8159 4AA2 FD3C 638D" /* htc>dYJ<c */
- $"F978 C3ED 328F C0F2 1F81 A80C BB81 9421" /* x2..! */
- $"980D F457 0EA7 7782 676F 2AB3 EE8F 99C2" /* .W.wgo* */
- $"2221 9D95 8C80 C3A8 91F3 4C08 6A03 DE45" /* "!èL.j.E */
- $"A985 9B7B 9ED3 A9A4 D929 A97F A125 FE22" /* {ө).%" */
- $"A893 77F3 EF0F C15C 3969 A153 3A7C 3110" /* w.\9iS:|1. */
- $"7A9C 9227 D2F6 BCA8 1A04 0219 8F36 21B7" /* z'....6! */
- $"B37C 2AB6 678A 1675 BA9E 03B4 53BA 33B9" /* |*g.u.S3 */
- $"06AD 96D8 BDBC BFC8 5134 C040 7EBA B756" /* .ؽQ4@~V */
- $"E619 DC67 BC83 BB39 AA42 65E1 5BBC 45B4" /* .g9Be[E */
- $"ECB6 E6ED D098 3C9F E17B 876D A039 553E" /* И<{m9U> */
- $"5CF9 2D3F 6F47 4854 7085 62C1 C65D C07C" /* \-?oGHTpb]| */
- $"86A0 3E43 500F 90D0 4787 8CE8 726C 5109" /* >CP.GrlQ */
- $"FD68 8099 E8FE 2A66 2F02 78F5 C78B 6A34" /* h*f/.xNjj4 */
- $"0A9E 25FE 0DE3 E3C8 BD7B 3530 98D5 CF03" /* ž%.Ƚ{50. */
- $"CE64 A57D 620C 87C5 65B4 7BE1 34BC 3058" /* d}b.e{40X */
- $"572A 9EBF 5E0C 5A01 80A3 B334 DF5A E1B8" /* W*^.Z.4Z */
- $"08C3 5C30 2CC4 C1F5 1341 F516 40FA 8A00" /* .\0,.A.@. */
- $"477D B516 AD2F 4DD3 BE8C 58F0 7C77 A236" /* G}./MӾX|w6 */
- $"DD43 6611 D582 F050 DC31 59D0 194D A6FD" /* Cf.ՂP1Y.M */
- $"652E FA16 4BA7 25FE 0DE3 E3D9 B950 06E2" /* e..K%.ٹP. */
- $"3A8A DA86 827A 4C68 5798 55FC FD46 A583" /* :چzLhWUF */
- $"064D 8FB0 29D9 8DAD 53CC 5229 B675 ACAB" /* .M)ٍSR)u */
- $"8EED 34BC 2F12 142E 446C 0DF7 0BC3 D6E7" /* 4/...Dl.. */
- $"A086 8D72 6AE7 9270 B97C D981 C7F1 C38A" /* rjp|فÊ */
- $"47EE E585 FC19 FCE3 668C C7E0 471F 813C" /* G.fG.< */
- $"3F02 0005 B422 0345 FC66 9A91 446D DDCA" /* ?...".EfDm */
- $"449B CCDB 8E8F A0B8 3942 A8FC 6409 F7F3" /* Dێ9Bd */
- $"ED01 353A 2B01 1B0C 2939 619B 9890 94E7" /* .5:+...)9a */
- $"5FDA 75F2 7323 BF3A 7AED 757E 42D6 C336" /* _us#:zu~B6 */
- $"E74E 6B5F 2D43 4780 CA1C C462 6507 4801" /* Nk_-CG.be.H. */
- $"EDEF 5B2A 7297 8FC6 1E13 E7FA 56B5 4279" /* [*r..VBy */
- $"5BB4 B307 F4DE E273 4FC3 E9B1 72C3 EDA2" /* [.sOr */
- $"A3F0 A9E0 FB5D C018 B35C 8B45 CD63 99FE" /* ].\Ec */
- $"11FB 8993 21D1 BA8B 69EB 5CB9 F258 468F" /* .!Ѻi\XF */
- $"73D4 6804 C6E6 045E AE54 954C D0E5 D836" /* sh..^TL6 */
- $"EA0D DB9A 2806 36FA B3E9 5973 789D 6591" /* .ۚ(.6Ysxe */
- $"1EC2 F271 E9E2 5681 C542 A2FC F4EF 8111" /* .qVB. */
- $"59D5 FC91 9749 52A3 EA37 B239 4939 8625" /* YIR79I9% */
- $"F248 18D2 075A 80A1 8005 9ED2 437F C705" /* H..Z.C.. */
- $"2BFD 308C F1F0 E1BC 8FDA F5D5 50D9 9770" /* +0ἏPٗp */
- $"7EF5 213F 91F6 5B8B 189D EE67 70EF F40A" /* ~!?[.gp */
- $"2E24 C54B F37D 4941 FCD2 7779 5C8B 59CC" /* .$K}IAwy\Y */
- $"F284 3377 A496 0399 6F17 47AC B5EA 3A84" /* 3w.o.G: */
- $"844E DC13 D058 BE9F 1BBE 8CE0 E615 D2E1" /* N.X.. */
- $"88A5 9DA6 9FB4 4EDE B804 ED14 A7EA 54E0" /* N޸..T */
- $"5A87 311B 5E69 70F5 EDA3 2E78 8862 7603" /* Z1.^ip.xbv. */
- $"7761 094D 4A69 5AB0 A9BB 3F4F 92BE 205B" /* waMJiZ?O [ */
- $"A226 24D5 C8B2 CCF7 E064 31C7 E727 6E2C" /* &$Ȳd1'n, */
- $"D6A1 347F 41CD 5F70 E1C0 1AFC 4FBC 81A9" /* ֡4.A_p.O */
- $"A884 F03A CD84 B581 1F03 A523 838B 8038" /* :̈́..#8 */
- $"02F4 6DE8 98FC EDD6 B331 21F7 4AC5 A31E" /* .mֳ1!Jţ. */
- $"9EB4 E770 D465 386E 18A6 D1BE EF6D B008" /* pe8n.Ѿm. */
- $"63E6 1066 1374 4D10 3270 8C7F F297 F91D" /* c.f.tM.2p.. */
- $"DA61 677B 29FD A878 B122 E33C 17E3 8ED1" /* ag{)x"<. */
- $"FB8E 4407 8B82 32AD 1B50 09DF BDA8 C80E" /* D.2.P߽. */
- $"7E28 ED9D A005 4297 B9C1 8D66 CA77 C41D" /* ~(흠.Bfw. */
- $"41C5 E3B3 F94D 96E5 1308 7C59 1EB8 0871" /* AM..|Y..q */
- $"C7A4 FED7 47F2 F800 6889 A21D 1FF4 9E93" /* ǤG.h.. */
- $"1321 7377 D96E 86F5 A0CB EB17 C77A 81C0" /* .!swn.z */
- $"7C8D A01F 0E91 00F9 1D00 94FD 4D32 E5DB" /* |.....M2 */
- $"0482 DEB8 CF1C 792A EA3B DECA 4470 4898" /* .޸.y*;DpH */
- $"81C0 5457 FE66 63DD CAF3 0B98 08E1 DC3F" /* TWfc..? */
- $"CF68 7F31 9BEE 73EF A3A5 8D57 8969 EEC3" /* h.1sWi */
- $"0F13 3ED9 390D FC4C B37F C4F7 01E4 B115" /* ..>9.L... */
- $"E9F9 9526 00FA 10D0 0D64 4CC5 8481 D231" /* &...dLń1 */
- $"DE6D 483E 8046 7F58 5BD3 1FFC CF82 297A" /* mH>F.X[.ς)z */
- $"88A1 7E78 0668 3222 9E8B A287 30A3 DB10" /* ~x.h2"0. */
- $"A77F A842 87FC 164E 92B8 96DF 4920 EEC2" /* .B.NI */
- $"47B6 83F1 F68F 9309 63CE FAAC 3C8F 9FCF" /* Gc< */
- $"A166 9621 ADC0 0ABB 7F1A 7E3C A4AD 3755" /* f!»..~<7U */
- $"E2D8 E26D CAD1 6F24 F808 BC0D E94B EEBC" /* mo$..K */
- $"D601 C1F5 30C1 F53B C0FA 97C0 90E6 901B" /* .0;. */
- $"71C2 1EAB 8A4C 52A4 4431 058C DFB9 4148" /* q.LRD1.߹AH */
- $"185C 1E93 01C6 82D3 C81B 6398 8173 189D" /* .\..Ƃ.cs. */
- $"F73C 4887 5155 0C95 0088 4C69 0A27 3F39" /* <HQU..Li'?9 */
- $"8CCA 32D8 1FD7 A3F4 CDD8 6275 5E7E 3619" /* 2.ףbu^~6. */
- $"8D18 68C9 D2C7 0FCB 18EA FB01 5A68 4A52" /* .h...ZhJR */
- $"3C08 5313 5ED2 9B7D 31B5 953C 2F92 22F7" /* <.S.^қ}1</" */
- $"3764 04E8 A9A6 C747 8DFD 9730 01DD 82E1" /* 7d.試G0.݂ */
- $"B08A FD72 7C33 A9BF AFEA 7188 AC4B 2B45" /* r|3qK+E */
- $"BBB2 7826 6704 5864 9BAF 91FC 6BD3 E9D7" /* x&g.Xdk */
- $"0E30 E428 0FB2 4836 F94F 7CB9 3723 72A2" /* .0(.H6O|7#r */
- $"AB4C C0EB ED8F 823B B8D6 C4A6 E4B5 B41C" /* L폂;Ħ䵴. */
- $"B0FC 0171 880F E77C 1EF8 9645 A8B4 969A" /* .q.|.E */
- $"5420 86B9 71CE 0DE5 7A40 B41A DD85 6B30" /* T q.z@.݅k0 */
- $"F02A 3B61 92B4 7A95 269E BF9F DDB3 9FB7" /* *;az&ݳ */
- $"746B 1514 C89D 391B F835 73B8 0F1C 2567" /* tk..ȝ9.5s..%g */
- $"A0C2 6B37 DFCE 5F4C 1DCD FD79 5CDA A8FF" /* k7_L.y\ڨ */
- $"0603 9014 308F AEB3 EDB7 D721 1709 3897" /* ...0!.8 */
- $"D3AB 181E 53BE 4025 3492 41C2 5EC7 BFC0" /* ӫ..S@%4A^ǿ */
- $"EA12 19D0 6158 530B A57B 8A2B 8DFF 18AF" /* ..aXS.{+. */
- $"7651 65CF CD26 3F05 987E 0760 9C3C E3A6" /* vQe&?.~.`< */
- $"86C0 DAB4 C6ED 7F19 8034 85FE DA7E 7963" /* ڴ..4~yc */
- $"AFF2 9CBE 6AAA B6BB B2D3 6F41 BB45 B1EB" /* joAE */
- $"9CC2 8803 907A 5CE1 F2D9 AF69 FF22 7DE8" /* ˆ.z\ٯi"} */
- $"D328 C2A1 0F97 2EE2 9575 E0E6 A665 B85A" /* (¡..ueZ */
- $"C5D7 6FA0 FE24 BC68 9D74 6CEB C4F9 615C" /* o$htla\ */
- $"4F34 48B3 7A64 2540 B64F EFBE 8D0F E427" /* O4Hzd%@Oヘ.' */
- $"4CCA 6DB3 83AC C5F6 EE52 7A43 8172 41E4" /* LmRzCrA */
- $"2CE3 DF2F 1496 97DE 6AD1 2FFF 7E52 D993" /* ,/.j/~Rٓ */
- $"8AF9 AAA3 B192 0991 BFAE 4829 001E 963B" /* ƑH)..; */
- $"019C 8A5D 78E8 6A56 F78C B81A F4D0 6312" /* .]xjV.c. */
- $"C0C4 A9BF 7CA5 75D9 9C23 F3EA 4F39 B325" /* ĩ|uٜ#O9% */
- $"F6DE 6EF4 7D48 A279 8EA9 5395 0FBC C63F" /* n}HyS.? */
- $"679F CE93 2206 ECA9 079C 2BB7 D094 6A7B" /* gΓ"..+Дj{ */
- $"1077 277F 88A6 21AE 84C3 EDD4 38FC 36B2" /* .w'.!86 */
- $"1F86 8F00 8F56 8825 7713 9061 800A A4CD" /* ..V%w.a¤ */
- $"E3D3 0F3C B0AC 0C87 E368 8544 F251 5C39" /* .<.hDQ\9 */
- $"7D90 1BEF 7805 D624 7380 0A19 E093 3058" /* }.x.$s.0X */
- $"1C90 467F 5C70 4932 3947 4A95 A450 36C8" /* .F.\pI29GJP6 */
- $"D4D5 CA85 9922 FA12 D0D8 96CA 9A2F 40A2" /* ʅ".ؖʚ/@ */
- $"F105 054F 8C56 C164 85B5 C4E6 3EAB D76A" /* ..OVd>j */
- $"A227 4F09 072C 4682 9B0F 995C 7551 94E7" /* 'O.,F.\uQ */
- $"419A 0098 0283 19E8 0489 687B 4F66 B74C" /* A....h{OfL */
- $"7F59 C07A A552 B04D 628F E401 E55C A4ED" /* .YzRMb.\ */
- $"390F C34D 81BB 9F88 0C50 F50F 9FBD A377" /* 9.M.P.w */
- $"F538 3F9C E243 FF47 D346 87F2 444B C479" /* 8?CGFDKy */
- $"F6B3 1C76 5125 F487 0FAF 294A DA20 EC56" /* .vQ%.)J V */
- $"07AB DE07 14C2 1721 F3E0 D687 1F67 039D" /* ....!և.g. */
- $"461F 0D82 9CAA B2D4 DFC6 6AA5 D31E 4D01" /* F..j.M. */
- $"5AC2 B2BD FD97 7D6E 00D1 7ADF 377C 15A7" /* Z²}n.z7|. */
- $"9681 C7B2 8168 D706 425B 35EF 7298 C053" /* Dzh.B[5rS */
- $"E198 B5E2 B835 712B 1AD8 BA77 CF86 83A3" /* ᘵ5q+.غwφ */
- $"B0B9 C5E6 F37A A3DE D93B 8EC8 132F A52A" /* z;./* */
- $"AB20 E166 F719 7130 6482 5BE2 605B D78E" /* f.q0d[`[׎ */
- $"672D 7AE6 3906 DA75 0E3D 1962 8A60 9294" /* g-z9.u.=.b` */
- $"1FC8 C0F3 216D 815D 4DDE 5DDE D8AB 3F9C" /* .!m]M]ث? */
- $"7F9F 24B3 7BBF CCB9 2F80 19B6 70AE 1B3D" /* .${̹/.p.= */
- $"C71A 1F7C 81D2 639F 0D03 24EA D4B1 D351" /* ..|c..$ԱQ */
- $"DD10 FBD5 EA3F 4957 A7ED 04C6 384D C10F" /* .?IW.8M. */
- $"8A55 0C03 694F 0D18 70D8 0AC3 33C0 17D1" /* U..iO..p3. */
- $"73BB E85F 5204 090F FDFE 8AC5 9AD6 22D5" /* s_R..Ś" */
- $"CA31 A6DE EF44 D910 B34A 0E59 7866 536F" /* 1D.J.YxfSo */
- $"9B0B A341 3AB8 C06C C64F 3F86 8160 DFB9" /* .A:lO?`߹ */
- $"A709 59D8 88C3 3316 9FFA F83F 5120 E40E" /* Y؈3.?Q . */
- $"4DEA C88F C418 37F6 4C0B 7606 9632 EEC5" /* Mȏ.7L.v.2 */
- $"6380 FB25 A69F AAE2 0888 B722 008F 35CB" /* c%.".5 */
- $"F6A7 90BF D0DB 6367 A14B 5A86 EE98 FD18" /* cgKZ. */
- $"A629 1BAB 3BE2 920D E99D BEC2 88B4 F909" /* ).;.靾ˆ */
- $"66B1 535D 3940 AF78 8200 0C46 142A EA2A" /* fS]9@x..F.** */
- $"A991 95E8 FD2B D30B 0E4A 76E2 A97B FAA7" /* +..Jv{ */
- $"97E2 9B30 54FA 5E97 962A 7E83 5711 A707" /* 0T^*~W.. */
- $"2A21 3729 2046 9C41 8282 A161 E5F6 AB24" /* *!7) FAa$ */
- $"3324 74CF 1AF6 C935 D884 0008 DC18 663C" /* 3$t.5؄...f< */
- $"3A00 25E4 92D7 8F23 4C07 3C63 DB6E 4924" /* :.%׏#L.<cnI$ */
- $"7362 34C9 2F1D 105B 97E2 03BF 648F C21C" /* sb4/..[.d. */
- $"C6AC 3657 2C72 ADAA 2889 0623 6A5D ACEC" /* Ƭ6W,r(.#j] */
- $"3210 738F 51F5 CC65 9EA9 7AD3 95CB B265" /* 2.sQezӕ˲e */
- $"D54E 6E1D E2A7 2673 E6C2 C247 2FFD C10E" /* Nn.&sG/. */
- $"5FC5 C1E1 2511 5C8F 6063 92AB E4B9 8212" /* _%.\`c乂. */
- $"3643 6D53 2492 3E58 3E71 15E3 A3B7 AB2A" /* 6CmS$>X>q.㣷* */
- $"A998 FE5A 74DB 537A CE3D CD46 49B6 DB6D" /* ZtSz=FIm */
- $"B6DB 6DB2 8EE9 1D6F 6480 8613 D8D2 7D8F" /* m.od.} */
- $"5615 3EAB B25B 722D ECB8 ED12 70F2 BA06" /* V.>[r-.p. */
- $"E5A2 45C1 547C F861 A7D5 8E1C 08BC 346B" /* ET|aՎ..4k */
- $"2730 C670 2FD8 F159 6ABE 2092 ED98 AC34" /* '0p/Yj 혬4 */
- $"B4CA 8565 90CF 0034 6E68 F777 9672 F29D" /* ʅe.4nhwr */
- $"4621 6E73 9C90 5C3D A8DB F5B0 CACF A63E" /* F!ns\=Ϧ> */
- $"861E 8B9E F490 8E15 69BC A01D EF59 E898" /* ..i.Y */
- $"7040 B817 5AA9 BFB1 09A0 FE74 D2F7 BEA8" /* p@.ZƠt */
- $"A4F3 FEAC 38A4 409E B504 9CC9 EAA3 533B" /* 8@.S; */
- $"153D F710 FC9E 2055 A395 C374 2AF9 E7C5" /* .=. Ut* */
- $"E1E8 7F74 3CDB D568 B606 A9D5 B7AE E207" /* .t<h.շ. */
- $"947E 2E65 1C27 336D 927A 4F86 5422 0E04" /* ~.e.'3mzOT".. */
- $"42C7 668A 9403 EAB7 21A3 C9F1 18BC 5380" /* Bf.!.S */
- $"BED7 07B5 F9B1 B798 8727 D54A 7A6E E493" /* .'Jzn */
- $"5271 F27D 7C35 DCEE D0BC CB31 C1FB 879F" /* Rq}|5м1 */
- $"E074 9EB9 D7BE C9ED D2C8 BD00 C7FC D05B" /* t׾Ƚ.[ */
- $"2B2C 9647 A924 9F22 A06D 62B4 A946 77B7" /* +,G$"mbFw */
- $"AD6D 60EE C841 997D A7E8 7AD2 AFA8 EEC4" /* m`A}zү */
- $"D61F FC06 FD7A E761 AA33 0F74 A08F 8E5B" /* ..za3.t[ */
- $"B7C0 7C9A 1201 F0F5 6403 E4D0 60D8 92D9" /* |..d.`ؒ */
- $"84ED 064F 1B29 D7A7 1D77 F4B3 61D6 2651" /* .O.)ק.wa&Q */
- $"329E 2CA5 53B4 956D 1061 3A3A A73B FC8E" /* 2,Sm.a::; */
- $"DD3C 60C9 F855 32FB 3C04 6287 50F7 6BB3" /* <`U2<.bPk */
- $"B84A 05A6 3145 A832 3BBC CA56 115B 9D7F" /* J.1E2;V.[. */
- $"8ADB 5660 429D 1FF6 4E6D 4899 EFDA 592F" /* V`B.NmHY/ */
- $"19DC 9790 802A 1C17 2250 ADEC 0312 2C23" /* .ܗ*.."P..,# */
- $"223B 1EC8 482C 6E26 DD67 528F 7CDC 1841" /* ";.H,n&gR|.A */
- $"DBCB CF9E 6D26 B564 4FD4 0AB5 DA0B ADE2" /* Ϟm&dOµ. */
- $"C129 D895 00FF 105B 0D0B F4DB 286A B347" /* )ؕ..[..(jG */
- $"A261 30A9 0A9B 7A0D 585B 3991 3217 6FF7" /* a0›z.X[92.o */
- $"A368 D6A8 E862 161A 3584 613E 04D9 DBCB" /* h֨b..5a>. */
- $"4D96 66A3 B736 F802 D67A 309F 04E6 AFD8" /* Mf6.z0. */
- $"888E A8A5 4461 F1F0 1B6B 2DC4 0DFE C676" /* Da.k-.v */
- $"8D4E 3750 C3E6 C233 EFC5 368B 6113 5B53" /* N7P36a.[S */
- $"08E0 C259 1B88 AA0C 74B0 862E 1024 BB3F" /* .Y..t..$? */
- $"2816 B320 715C 5DFA 9FF0 CBC3 6A85 777A" /* (. q\]jwz */
- $"23CB F89B D813 6706 313E 2CF5 A163 0848" /* #.g.1>,c.H */
- $"94C9 3288 B556 53DD 2A45 2302 F28E 7ED1" /* 2VS*E#.~ */
- $"B5A0 67C8 53BB 4CE4 45D9 317F 92AB B13B" /* gSLE1.; */
- $"7246 F6DE 5348 49C9 42A1 CA62 64B0 209E" /* rFSHIBbd */
- $"43F2 DF7C 9BBC 097F C94A EA52 8D01 ADEF" /* C|.JR. */
- $"5241 7C9B 2876 75F4 D748 AF9D 6FBB 3306" /* RA|(vuHo3. */
- $"0AD1 3953 6C99 5BB7 F1F5 1C1F BCE7 CA83" /* 9Sl[..ʃ */
- $"08C1 6811 FBC5 AE18 343C C6F5 E515 F9CF" /* .h.Ů.4<. */
- $"FE48 C6E9 956E 6712 DDCA D62C 7F37 6DFE" /* Hng.,.7m */
- $"2465 A8EE 1BAF E106 CA62 101F 0144 31DC" /* $e..b...D1 */
- $"029E ED0F 9E47 F22E 0C17 0D31 E60B 1662" /* ..G....1..b */
- $"C1F5 5C90 7D5A 6D03 EAB6 C0C8 1653 E821" /* \}Zm..S! */
- $"5860 ED0B C711 39E5 E5C8 268D 2246 E3FB" /* X`..9&"F */
- $"68A4 3B12 A487 350D FE94 3722 65AC 949B" /* h;.5.7"e */
- $"2526 7CD5 0E28 E093 CFE8 314C BE18 5B60" /* %&|.(1L.[` */
- $"827E 154B 9609 2536 F890 A361 BA29 8211" /* ~.K%6a). */
- $"AF42 BEC6 1BCB CE6D 2910 8083 C890 D7FF" /* B.m).Ȑ */
- $"6F04 CEF4 F47C 0D92 00BD D90F 4095 0A48" /* o.|...@H */
- $"4DC6 210C 351D 34A5 5FDA E576 1E1B 1684" /* M!.5.4_v... */
- $"F2A0 B30A 589C 1DBC 4831 E906 0D67 0CDD" /* X.H1..g. */
- $"876B 994F 6D66 47DD AF40 7158 4385 738E" /* kOmfGݯ@qXCs */
- $"82F8 E637 9B5C 7389 0AA5 2A04 D105 5E88" /* 7\s¥*..^ */
- $"C2A2 2943 E125 6C2F 0AD1 1E5C AF1F CFF6" /* ¢)C%l/.\. */
- $"B39B C799 0F39 6151 6625 BB66 C3C3 418B" /* Ǚ.9aQf%fA */
- $"90A4 F6F7 BD30 7A04 88E6 0F8A 3F0B FF2C" /* 0z..?., */
- $"D18B 1D88 1442 EB54 A6FC D226 251A 015D" /* ы..BT&%..] */
- $"4DA8 32CA 371B 86EB 4E89 1415 9A41 6AD2" /* M27.N..Aj */
- $"1F0F 7656 41E5 B874 72E7 5F88 ABDA 28D7" /* ..vVAtr_( */
- $"37D5 EE40 567F F751 2591 01A3 03B9 EFCD" /* 7@V.Q%.. */
- $"E0A8 8CC8 8C8E 0945 3036 453A 1787 59C4" /* ਌ȌE06E:.Y */
- $"B99C 02D2 D5F6 1B5E E34C 551E 8C43 9A20" /* ..^LU.C */
- $"981D 0B44 C6D1 E6AA 2B92 5F33 8016 C4F1" /* ..D+_3. */
- $"7AA6 E605 4676 A533 1D38 6ADA 9BC6 2C13" /* z.Fv3.8jڛ,. */
- $"385A 3DCE 7E2E B9A1 81BB 27C6 AFF8 FF5D" /* 8Z=~.'Ư] */
- $"A511 4C25 DC70 082C B597 3EC4 004C D4B8" /* .L%p.,>.LԸ */
- $"BE6A B79D EF70 2610 B57B FEFE 6ACC 9EEE" /* jp&.{j̞ */
- $"B94A 73A8 4B30 C207 7391 789E C0FE 6992" /* JsK0.sxi */
- $"AB13 E2AA FF53 4B22 A338 0EA3 B476 D732" /* .SK"8.v2 */
- $"EDA3 2009 3422 B4AA 64DE 26C3 5894 D6DD" /* 4"d&X */
- $"F7A9 5A3B 6F31 5D2C EC22 1FAC 928B 647F" /* Z;o1],".d. */
- $"1600 A961 11C3 FD11 E594 81F9 E0AC 20D4" /* ..a..唁 */
- $"0DCA 9CE0 FF14 3BE3 3010 00E1 9DFE F0C8" /* .ʜ.;0.. */
- $"70E7 D3A5 A7F9 884E 6941 CBCB FEBE 0C27" /* pӥNiA.' */
- $"B3F5 BAA4 3068 BFC1 DB20 1E5F 9E83 BF7D" /* 0h ._} */
- $"8EA3 8FB0 F355 FF02 DED2 5CC8 2B4D 4DA5" /* U.\+MM */
- $"8122 C96A CDAB B130 2D35 B73E 2EE9 0AA9" /* "jͫ0-5>.© */
- $"7DB8 B81D 7B0A 776B DFF3 2B02 1F6A EF5B" /* }.{wk+..j[ */
- $"E6A6 177F D8C0 1C3B A88C 2154 18F3 BFB3" /* ...;!T. */
- $"F7EF 1249 860B F87F 60D6 AE06 B5B2 7824" /* .I..`֮.x$ */
- $"E601 91D7 1436 80CF 054C 9691 1321 B299" /* ..6.L.! */
- $"11F3 2BA3 51F6 447E 1BC0 28CB 666B 9BA0" /* .+QD~.(fk */
- $"425A E39B 066C 1B7C 340B 950A BDCC E05D" /* BZ.l.|4.½] */
- $"C8DC 568C BDC6 54E9 0AA2 2D89 6E22 37E4" /* VT¢-n"7 */
- $"3508 39CC EE8F 8EE6 F926 626B E33F 4A06" /* 5.9&bk?J. */
- $"4CD1 AE16 9063 3119 5554 58CA BB53 4A73" /* LѮ.c1.UTXʻSJs */
- $"AA2B 2A71 B86B 3E95 BED6 D9D2 9D59 3E60" /* +*qk>ҝY>` */
- $"C5D1 FA4C E6A7 880F 30D8 A679 6467 697E" /* L槈.0ئydgi~ */
- $"F327 EAA4 E0D1 01F9 9B74 AAA1 6CDD 7DA7" /* '.tl} */
- $"D2AB C9CB 63D6 D3DF C778 C6ED 71A5 0571" /* ҫcxq.q */
- $"C7E1 4EC7 E16C 43F0 75B1 3C9E 91EA AAAC" /* NlCu<ꪬ */
- $"9A2E A47E 8DF0 873E 2275 3F71 F986 DF3D" /* .~>"u?q= */
- $"DBE5 1F4C 0D83 C3F5 F2D4 5A7C 0BFB E4FC" /* .L.Z|. */
- $"C83E D8A4 FAF4 F589 09F2 4909 40AA 2AA8" /* >ؤI@* */
- $"C190 BE4D D484 1408 6EAD 722F 6BA6 7502" /* MԄ..nr/ku. */
- $"A53F 1B9A BE86 841A FC60 53F3 8AE9 2E4C" /* ?..`S.L */
- $"4B8E 1D09 F47C 3BAA CFB7 80DE 6A41 F007" /* K.|;ϷjA. */
- $"80A3 413A C568 5C02 6166 E8AF 9B6C EF86" /* A:h\.af诛l */
- $"F178 273B A803 89E9 520A ACFC 0E98 6198" /* x';.R¬.a */
- $"6ECE D094 76D1 8AF8 1035 D0C8 B9E5 ECC9" /* nДvъ.5ȹ */
- $"08E6 748A F28B B0E0 F9AB 71B4 7971 9626" /* .tqyq& */
- $"5397 5D5A 31CB 5F9E 7C98 8300 72B1 2C67" /* S]Z1_|.r,g */
- $"A38D 0C02 C603 C0C2 2000 E528 0CAA 9472" /* ... .(.r */
- $"3115 8C05 0EE6 3F33 3F6D B6DB 64C7 AAB2" /* 1...?3?mdǪ */
- $"94EA DD85 D3DF F14E FF3F D3A2 778B 3749" /* ݅N?Ӣw7I */
- $"B31B 6DB6 C5B6 5311 C782 3FCF 2880 6695" /* .mŶS.ǂ?(f */
- $"085A 35C2 3938 420E 8705 50BD 51C3 BD21" /* .Z598B..PQý! */
- $"41B9 C3ED 3A76 367F 40F5 DA53 3618 DF7A" /* A:v6.@S6.z */
- $"EE11 B2D6 D9AD 4351 7D8F BC5A 7217 9352" /* .٭CQ}Zr.R */
- $"D43F 54B9 F618 3E0E 5FF8 1599 CD00 5489" /* ?T.>._..T */
- $"459D 1B65 0538 7A92 D8EC 6AD5 E756 776E" /* E.e.8zjVwn */
- $"5B66 A07C 36D6 A4B0 2E00 21E0 ABFC 2AB8" /* [f|6֤..!* */
- $"F387 5784 0DB9 1978 67FE DEFF 0CCC CCCC" /* W..xg. */
- $"CCCC CCCC CCCC CCD3 5F84 850A F245 C370" /* _Ep */
- $"786E 76C5 56A5 8C9B FC7F 6869 3085 EB26" /* xnvV.hi0& */
- $"6162 A234 8BF4 868D 0BA5 77FA 56D2 31FD" /* ab4.wV1 */
- $"7436 0147 944C 2AAE C8C1 DE46 2A3A 2449" /* t6.GL*F*:$I */
- $"EAD0 8E9E FF0B 129F 7F9C 1436 A6BC 10E6" /* Ў....6. */
- $"3116 7A98 5FF6 97E9 FC84 7136 FEA5 C122" /* 1.z_q6" */
- $"E58F 44D6 D7A4 0AD3 E9B4 7C91 B833 1F91" /* Dפ|3. */
- $"5F0F D8F7 8A80 6560 B332 081A C68D 0FF9" /* _.e`2..ƍ. */
- $"899F 2CC7 E1D6 FC7E 1DEB C3ED EA04 F55D" /* ,~..] */
- $"017D B775 48A1 A844 EAB2 8E3A 5FF2 20AF" /* .}uHD겎:_ */
- $"6231 D1B0 D4D9 D308 999B 09F2 95B1 7071" /* b1Ѱ.pq */
- $"F57C 1F1E 7960 4639 6A62 5BC6 9E5A D45D" /* |..y`F9jb[ƞZ] */
- $"F339 9597 BF1B 62EB D128 B3D8 9BD3 52BF" /* 9.b(؛R */
- $"0703 43F9 E1C7 940E EA41 F4B1 75E4 891F" /* ..Cǔ.Au. */
- $"09A4 D439 7DFF 6AB7 EB4F 1253 A9C0 8BBE" /* Ƥ9}jO.S */
- $"40A0 3CE6 965D F886 A9EF 7E69 712D 41C2" /* @<]~iq-A */
- $"0062 6917 5D06 6548 9FD6 1470 4A0C 8545" /* .bi.].eH.pJ.E */
- $"8417 6C73 0C2D DF44 0E4A D5F9 7443 D629" /* .ls.-D.JtC) */
- $"E62D DE53 CCFA EAEA E08A F0E1 9D37 9616" /* -S7. */
- $"C0DA 1FD4 6A42 6CE6 1D10 AB6A 911A 19D2" /* .jBl..j.. */
- $"47A0 4AC5 6A3C 12FF 0FE8 3AFB 7DFD 3D27" /* GJj<..:}=' */
- $"42C6 E2BA 6DDE D1ED 21CE 1EA0 F444 055B" /* Bm!.D.[ */
- $"122A 41EE D8C1 144C B39C 0EEA 014E 7448" /* .*A.L..NtH */
- $"0B72 7C2C 92B6 0CAC 3CB5 ADA7 8BF8 0C56" /* .r|,.<.V */
- $"1DD5 B763 907F 6B60 8A85 ED4A F87D FBDC" /* .շc.k`J} */
- $"391D 822B CBF5 7266 0E6B B2D4 32DE 606C" /* 9.+rf.k2`l */
- $"014E 64BF F969 E3A5 C8E4 09EC B205 6391" /* .Ndi.c */
- $"3081 96F5 9A80 0599 50D2 38FF 635B 9C35" /* 0.P8c[5 */
- $"97CF A325 D94F B8E1 A794 EABC DA8A 7CC3" /* ϣ%O᧔ڊ| */
- $"8713 2EBB 1EA6 69B0 9A72 A93D 874A 1F30" /* ...ir=J.0 */
- $"4C7B B341 B8CF F61E 7CEE 60CC E9B0 6D85" /* L{A.|`m */
- $"4F96 977D F85D F85A 08AF 46EF F259 FD70" /* O}]Z.FYp */
- $"E364 C54D 1F3D C951 B1DD 2CB4 8B94 9350" /* dM.=Q,P */
- $"8FFC CD4E D39E 2FF5 DC65 9DB7 2133 6E97" /* NӞ/e!3n */
- $"9705 2AA6 2625 534E B2A2 D775 FCFA 60E0" /* .*&%SNu` */
- $"4929 3681 2E72 5087 F3CD FB3A 6386 36A2" /* I)6.rP:c6 */
- $"5E62 8705 57E4 8441 1986 1487 E88F C834" /* ^b.WA..4 */
- $"C59D D57C CCA2 D56F 3889 44AC 0E4D 0E88" /* ŝ|̢o8D.M. */
- $"2592 A50A F98D DF1D 17F2 78BD D4AB FDB4" /* %..xԫ */
- $"4249 FBDE 3E56 BE58 B587 88B4 8D75 299F" /* BI>VXu) */
- $"4C92 6D9A 6B17 6153 9A65 4770 E0EC BBEF" /* Lmk.aSeGp */
- $"2F91 8C35 8FFA 04AF 880C D9B6 204A D65E" /* /5..ٶ J^ */
- $"68DD DBE7 63BC E1C5 CCDD E994 3796 10EF" /* hc7. */
- $"354D C0E7 7A72 E57E EFAC 7C75 E4CE F47F" /* 5Mzr~|u. */
- $"2E82 A8D0 6401 3CC4 1ACC 4513 1211 DCC9" /* .d.<.E... */
- $"BD7A 47CA F093 83C7 38EB 866D 1ED5 AC6C" /* zG8m.լl */
- $"FF01 C348 CFA1 2532 DAD5 2BDD 8CCC 71C1" /* .Hϡ%2+݌q */
- $"1208 75AA 308B 4796 A89E 0EAF AB67 422A" /* ..u0G.gB* */
- $"AA43 8162 68BC 9878 8578 419C AB2E 9518" /* CbhxxA.. */
- $"A9E0 4298 DB46 36D7 ADD0 DE21 DC41 AEA7" /* BF6׭!A */
- $"A05D 795D AB14 E247 6750 3EA8 0A31 5A06" /* ]y].GgP>1Z. */
- $"FAEC AD07 ECF7 C636 A068 22AA E179 7613" /* .6h"yv. */
- $"30F9 831C 0AFA 38C0 E20B 96A9 464E B57A" /* 0.8.FNz */
- $"5AF3 D612 DC70 2A8D 1D09 C7C9 967F 7F7B" /* Z.p*.ɖ..{ */
- $"F47F 4017 A722 9853 37C2 DE55 34CF 104E" /* .@."S7U4.N */
- $"9DD3 35DF DEE2 589C FAF1 07DE 1803 86B1" /* 5X... */
- $"2DE6 6B46 FC45 F24E 8718 3B6E D557 8008" /* -kFEN.;nW. */
- $"FF3B 8EC2 28BD 6146 3EF6 A0FB 0BCA 37C1" /* ;(aF>.7 */
- $"749B 49F2 F419 9EC5 DC0A A6DE 0CFC 1BD2" /* tI.¦.. */
- $"AAF5 4920 1AB3 842A 1813 606E 97CD 0EC2" /* I .*..`n. */
- $"50D4 84CD F427 569F 776D 940A A6F7 68D7" /* PԄ'Vwm¦h */
- $"2A18 4C6D 2056 D254 1226 7F3C 1ED0 7AB8" /* *.Lm VT.&.<.z */
- $"BEFE 2050 50E6 C5FB 173C 1857 FF7F 86D9" /* PP.<.W. */
- $"6CE3 E235 1AFA CBB4 D2BE 4E64 9713 B880" /* l5.˴ҾNd. */
- $"0C41 2E14 401B D14F 5BA4 AD20 7060 C05E" /* .A..@.O[ p`^ */
- $"2011 000E C557 2951 009C A584 6178 50E8" /* ...W)Q.axP */
- $"6E0D 922F BFF7 EC41 A907 0D2B EF09 3CE0" /* n./A..+< */
- $"6344 B3D6 742A 0448 042D 44C3 390B 089B" /* cDt*.H.-D9.. */
- $"B0FF 2877 1C62 BE1E AC48 09B0 4667 19BC" /* (w.b.HưFg. */
- $"319D 1FEA ABB5 1EE9 02D8 C845 A20C 2E3F" /* 1.ꫵ..E..? */
- $"7010 FA38 E2A0 1F01 2933 0557 19BD 9DCD" /* p.8..)3.W. */
- $"5486 F044 5838 C953 CC32 2DF8 6A04 30ED" /* TDX8S2-j.0 */
- $"2C42 0A7D 1B38 7F94 4936 5908 39F1 424F" /* ,B}.8.I6Y.9BO */
- $"2BFF 7F46 F53E 11D3 DA1E 41B4 67AB 296E" /* +.F>..Ag)n */
- $"0B59 6213 9E16 1568 8787 ED75 8822 A102" /* .Yb...hu". */
- $"DAAC D7D6 FA63 ED91 52D2 E98C 6EEB ABBB" /* ڬcRn뫻 */
- $"5465 7C7C 0CEB 3016 0CC6 5793 D7FF 7FFB" /* Te||.0..W. */
- $"34E7 7BDE 794E 6D8C 392D 051A 478B 4AD7" /* 4{yNm9-..GJ */
- $"028C 3119 EDCA 833C 2F1B A23A 5C69 908F" /* .1.ʃ</.:\i */
- $"6F17 C143 83FF 31A8 709D 7BFA B0E4 A884" /* o.C1p{䨄 */
- $"E3DC 88CC DF54 C132 6671 A0D0 B4C3 7721" /* ܈T2fqдw! */
- $"B5F0 84FF 0FDA 1588 5865 1B6B 94E3 9B46" /* ..Xe.kF */
- $"5CA1 7767 09F4 3448 2242 114C 2705 2C38" /* \wg4H"B.L'.,8 */
- $"4565 F286 ABC2 AFF5 809D 0C5B BB5E 009C" /* Ee¯.[^. */
- $"FCBA BC4C 84FF 45EF F42B 3F8E DEE0 A531" /* LE+?1 */
- $"DBBB 2113 7C30 8BB7 76FF 7E55 E6BC 012B" /* ۻ!.|0v~U.+ */
- $"EBDE EF62 0981 DCE1 AC6E 5AD7 D8AD 0560" /* bƁnZح.` */
- $"5B36 3A62 5B57 3E03 75AC 25FB B396 1086" /* [6:b[W>.u%. */
- $"5EF0 4C11 ACE0 90D2 6568 EB55 75AB FF24" /* ^L.ehUu$ */
- $"54B8 0E77 3110 5C67 3138 8369 5BEA 3458" /* T.w1.\g18i[4X */
- $"7FFE 6000 9940 0044 18C6 1A34 14B6 9CD2" /* .`.@.D..4. */
- $"C039 2A00 00CC 8F27 9EFE FF80 1CAA 8000" /* 9*..̏'.. */
- $"0000 0000 D9B1 C1D0 BFE1 D01D 2DD4 E3DF" /* ....ٱп.- */
- $"949B 6DB6 DB6D B83D 6B98 82BC 446D 0CB3" /* mm=kDm. */
- $"55A5 C140 D9E5 5E98 37AF 0E38 4474 B8DC" /* U@^7.8Dt */
- $"FCFA B14E BD14 730B DAA0 4B18 1B4D 81E7" /* N.s.ڠK..M */
- $"B8A8 26E7 EFB0 8272 4619 2A00 0000 0000" /* &ﰂrF.*..... */
- $"0000 0000 0000 060D CD91 05BE 3A07 80DE" /* ........͑.:. */
- $"29D6 2680 7867 5359 9411 F430 48D9 A22D" /* )&xgSY.0H٢- */
- $"DF74 0855 C0C4 C5AA D3F4 FC40 5815 C5FC" /* t.UŪ@X. */
- $"B741 3001 FF7F FDC6 00B8 F1BA FEC9 B662" /* A0...ɶb */
- $"4973 2EE9 5029 E237 296D D4A4 04DE 4DB9" /* Is.P)7)mԤ.M */
- $"5305 FD42 9A82 6842 EF09 9DA2 201D C6EF" /* S.BhBƝ . */
- $"4078 4FC3 038C B201 A1C0 0791 7B09 CF18" /* @xO...{. */
- $"D61B DABD 0409 372B F69D 3CF8 E2E1 31A1" /* .ڽ.7+<1 */
- $"023B B0FD 60B3 3933 16F2 C716 9259 82F8" /* .;`93..Y */
- $"77BB 3A47 46D2 D998 7AA1 01E1 DF78 8000" /* w:GF٘z.x. */
- $"0000 0001 D8FD 4FB2 C620 0000 005A CD78" /* ....O ...Zx */
- $"B755 53CD E910 3B50 96A8 4000 0000 0003" /* US.;P@..... */
- $"FD6F 5DD1 31D8 A087 6BC5 09F3 E81E B49F" /* o]1ؠk. */
- $"5A88 0DB9 2492 4924 9234 EE49 0E46 EE5B" /* Z.$I$4I.F[ */
- $"8D2A E866 7AD0 1F3C 936D 50EF 6EF5 FDE7" /* *fz.<mPn */
- $"BFFE 6EFF 82AD 0EDF 556D B01D C573 CA68" /* n.Um.sh */
- $"985A F307 82C5 D933 4C26 B9EE EEF7 D4C6" /* Z.3L& */
- $"BFB5 4130 F610 4AFE 602E 3723 0C95 0000" /* A0.J`.7#... */
- $"0000 0000 0000 0000 0002 7F7E DE44 DDEB" /* ...........~D */
- $"B8B1 0AB8 BA80 7F79 D59C 851A 0244 B8D1" /* ¸.y՜..D */
- $"6B92 AB1A 4997 5556 C0C7 5935 05AD B380" /* k.IUVY5. */
- $"318D A387 1E5F 1523 0170 B5DB D9FA 0E80" /* 1._.#.p. */
- $"7342 6634 1E36 FB10 615A 1862 FF53 1545" /* sBf4.6.aZ.bS.E */
- $"C795 B42C 8282 534C 3AFD D370 7621 820E" /* Ǖ,SL:pv!. */
- $"9EDA AF3A 476B 3537 E327 52DE 4A99 73D1" /* گ:Gk57'RJs */
- $"0718 7C16 82D5 99A5 32DD 0E83 9C4F 60F8" /* ..|.ՙ2.O` */
- $"0743 325D 2056 84FF 06BC C6BB 338C 64CF" /* .C2] V.ƻ3d */
- $"B7B9 C4C7 9800 E4DA EE0A 6636 DEE8 B8F8" /* ǘ.f6 */
- $"739E 1EBD 408C C620 9790 A337 E987 2E54" /* s.@ 7.T */
- $"DD4A E501 C0BF 44E6 E8EF ACCF 028F 253C" /* J.D.%< */
- $"F466 FA92 BEE6 A066 F4B6 5B41 CA80 3567" /* ff[Aʀ5g */
- $"A079 E31D CEE9 CD64 0AED 265D E591 B98C" /* y.d&]呹 */
- $"DF22 C203 3C43 E1D8 5D64 CA99 E6C7 EF30" /* ".<C]dʙ0 */
- $"68AF F4C9 97D5 F961 48CF 954C 2832 33A3" /* hɗaHϕL(23 */
- $"0088 1417 0D84 DDE1 23FA C81D 487D C9AB" /* ....#.H}ɫ */
- $"F239 ABB4 24E0 6694 291C 885C 23CE F212" /* 9$f).\#. */
- $"29F4 5656 7DD1 182A 2C11 AAEF 7534 24EE" /* )VV}.*,.u4$ */
- $"9886 347F 28AD 6952 0A82 E9A4 6AA9 9390" /* 4.(iR‚j */
- $"06A8 EF47 527A EDF2 894B 5234 A900 82B1" /* .GRzKR4. */
- $"724D 791B 676C BC97 B3A5 94F7 137E FE8D" /* rMy.gl.~ */
- $"50F5 C1EE 0C5B 1F3D CEF4 DD64 709C 095B" /* P.[.=dp[ */
- $"A51A B239 3EC3 C9BA 39EC DBE2 FB9A 3C6F" /* .9>ɺ9<o */
- $"BBC4 DE3E C5AF 0043 DC2D AE64 C0A7 2039" /* >ů.C-d 9 */
- $"A6C9 6079 72D6 0BC7 C501 A3A4 5EF4 A060" /* `yr..^` */
- $"C46E FCB9 1958 AD83 1176 0776 81C2 13C2" /* n.X.v.v. */
- $"DF08 4A76 137F DC5C 4867 0493 EE96 8373" /* .Jv..\Hg.s */
- $"4644 13A4 F789 39FF 813B D226 575A 5A18" /* FD.9;&WZZ. */
- $"3AF5 4B88 2747 3D47 681F 9670 0069 DD02" /* :K'G=Gh.p.i. */
- $"4252 ADB0 D6FB F1F1 1432 C24B D920 7290" /* BR.2K r */
- $"3709 3D60 15D9 0C49 23EC 77F8 F791 F132" /* 7=`..I#w2 */
- $"046E 0D05 9AFA 210A 9992 29D9 7AA6 F18E" /* .n..!™)z */
- $"E245 75E0 018F BCEB 8D1B C2D0 083E 985F" /* Eu...>_ */
- $"B791 554D F5F5 AD71 E064 75E6 1F3A D463" /* UMqdu.:c */
- $"9A59 0A43 3457 BD7C 44A7 5C5E 9D19 C5D8" /* YC4W|D\^. */
- $"5880 C2CC 5DF0 2964 C0FD ABA1 004B 008D" /* X])d.K. */
- $"5205 7F2E 0843 E484 2D37 9C34 2425 7AFF" /* R....C-74$%z */
- $"7021 D907 B6E1 F5E5 02C3 F3DD 44C8 2252" /* p!..D"R */
- $"0649 3C1A 1A80 449A 64D1 1720 76D6 4987" /* .I<..Dd. vI */
- $"B4B1 E749 E899 BF69 5B35 F925 2EE6 6CE6" /* I虿i[5%.l */
- $"B4FD CEB3 54C0 7C9D 4380 F93B 5701 F274" /* γT|C;W.t */
- $"C4F3 CC20 F972 1FD1 56B3 911D 2995 5FC9" /* r.V.)_ */
- $"1F35 BAE0 9AC7 3082 1372 C1D5 4B23 D79E" /* .50.rK#מ */
- $"EF63 A93F 8E74 26FB AC68 CDBE BD3E 9720" /* c?t&h;> */
- $"DF71 956D 5D26 559E 2795 2F1B F798 7821" /* qm]&U'/.x! */
- $"F3CB 1E6F 2351 11BD 0EFF 19B2 40A2 1C7F" /* .o#Q...@.. */
- $"267D D302 F6AE 5410 1E96 40DC 386E CB7B" /* &}.T..@8n{ */
- $"7EA3 5CF7 46BA 8758 D0EE 12B3 34DF 46FE" /* ~\FX.4F */
- $"517B E0F8 7E28 83A5 E93A C06D 7C3F 254B" /* Q{~(:m|?%K */
- $"53DF 91ED F6AB FD0A 53A0 5257 F9B8 E8B7" /* SߑSRW */
- $"5A14 6036 C6DA E3FE C29D 799F 8B43 46D6" /* Z.`6yCF */
- $"94DF 1954 073C 7C30 40F4 A00D 93D4 AADF" /* .T.<|0@.Ԫ */
- $"4839 EF36 F92A 3758 97CE 955A 3521 3CB5" /* H96*7XΕZ5!< */
- $"8269 30A7 2A93 6A40 07BE DCC3 50B6 C86B" /* i0*j@.Pk */
- $"CE9A AF28 3B80 4FE6 873C DB8E A29C 15DC" /* Κ(;O<ێ. */
- $"81A8 F841 4F77 6237 7267 55C4 1289 2DA1" /* AOwb7rgU.- */
- $"8392 424A 398F 9FA7 8DBE 2CC6 44E9 A005" /* BJ9,D. */
- $"0E57 6638 ADDD 9F15 D32E 13A9 F752 67BA" /* .Wf8ݟ...Rg */
- $"9F1D 753C 0023 2BC1 2C48 19AF FF28 66E6" /* .u<.#+,H.(f */
- $"0A05 1D62 536F C372 7DEC 5069 B44D AFD4" /* ..bSor}PiM */
- $"BE3C 9C16 161E 95B4 89E7 B034 4524 E373" /* <...4E$s */
- $"D4A2 2F82 F1BB 8F20 7861 0F95 7CDF C184" /* Ԣ/ xa.| */
- $"5B65 6015 001B F6BD 5D52 D4BC 3A42 FD56" /* [e`...]RԼ:BV */
- $"D48F 3358 7432 09BD FF19 625D 3A11 13DA" /* ԏ3Xt2ƽ.b]:.. */
- $"F222 12E8 5A1B 12BF 9B3B A234 A367 8FB6" /* ".Z..;4g */
- $"4BF2 EE99 DB11 5D13 7021 71B4 2280 A1BC" /* K.].p!q" */
- $"2AEF ECB5 D7EC 047C 0860 9676 78B1 CA76" /* *.|.`vxv */
- $"9AFB C995 D4EB 900A AD98 6423 E572 B68C" /* ɕ­d#r */
- $"A271 A30B D157 8E95 8250 29BB 0323 E26C" /* q.WP).#l */
- $"9223 91C7 0CD4 F0B0 442E 1BD3 1473 C699" /* #.D...sƙ */
- $"2D1C 8791 C699 920E 72C0 0D3E F6E9 9E2B" /* -.ƙ.r.>+ */
- $"60B6 A87F 6CBE 146C 1224 90FC BF7B C6A9" /* `.l.l.${Ʃ */
- $"090E 3EAD C89D 5065 414B 3A1C F271 9327" /* .>ȝPeAK:.q' */
- $"D490 CD2B FBB3 BEFF 768D 4601 635B A746" /* Ԑ+vF.c[F */
- $"8A4B 0981 8B8F EA85 D255 2113 8792 CC76" /* KƁU!.v */
- $"DE84 B950 C5F4 A4C1 D4EF 7D52 CC74 CCEE" /* ބP}Rt */
- $"B40E B94F 9467 15CA 1DE0 3557 BF09 D787" /* .Og..5Wׇ */
- $"ED66 345A E153 B4DC EF7C 2952 3161 5A99" /* f4ZS|)R1aZ */
- $"A193 D5EB 40F5 1300 65FA 8DFD 621A AE94" /* @..eb. */
- $"30CD 6D25 A0FC 942E 37AC 52C8 CEAD 2D1F" /* 0m%.7Rέ-. */
- $"87D5 D078 F173 F5AD 7A56 DD1B 10C3 F9BF" /* xszV.. */
- $"69C1 9E6B E021 A0C7 84BF D87A 8AA8 327C" /* ik!DŽz2| */
- $"7D48 0D97 E584 FF7F AE07 2001 BF6C 2691" /* }H... .l& */
- $"3032 E118 8741 42AD 7709 3086 8488 F9D3" /* 02.ABw0 */
- $"0353 D79E 2E21 8F21 46CC 005C DA8A 0229" /* .Sמ.!!F.\ڊ.) */
- $"A56B A72A C69E FCF7 7558 5D72 0050 2BDE" /* k*ƞuX]r.P+ */
- $"0F36 E4F0 C744 89FC 37F0 7ECA F488 FE8C" /* .6D7~ */
- $"1B6B 0158 B34D 1EA6 9B1F 154E FF79 01D4" /* .k.XM...Ny. */
- $"725F D9CF D9BF CCFF 439D 8F5C A92D D20D" /* r_ٿC\-. */
- $"0613 88F8 5C1C B6BD 07B9 9078 151D 8353" /* ..\..x..S */
- $"0E68 8495 D521 92D8 E92D CF9B 10E6 ABDC" /* .h!-ϛ. */
- $"53D9 DFB2 F2AF F964 14E3 74D6 3D64 01E2" /* S߲d.t=d. */
- $"FAFB 2D0B D303 DCF7 7718 E6CF 30DB 3FAE" /* -..w.0? */
- $"2873 3339 54A3 1E48 04D2 FDF2 E863 6201" /* (s39T.H.cb. */
- $"01D1 182C 4C2A D85D AE26 DE15 9796 494C" /* ..,L*]&.IL */
- $"82EA B4C0 2D3C 3D3E 1732 2ACA AC27 B7DB" /* -<=>.2*ʬ' */
- $"5CED 6F9D 3EDB FF04 5E83 BE60 1636 AE2C" /* \o>.^`.6, */
- $"754D 2928 7128 ACFD 15E8 C1A0 30A5 1063" /* uM)(q(.0.c */
- $"1E6F 10F7 A946 B9B4 D921 5DB3 113F 332E" /* .o.F!].?3. */
- $"61B8 AB3D 2F87 E081 C9D9 32B7 1060 785A" /* a=/2.`xZ */
- $"EFDD F472 0283 E235 4D42 E903 A06B 51CB" /* r.5MB.kQ */
- $"39DC A412 A492 918E 235E F57C E4CE 4E0F" /* 9ܤ.#^|N. */
- $"6BE6 7036 FA8A 7B2C 21FE 60B1 6FCA 7654" /* kp6{,!`ovT */
- $"C9FD DCDF E497 B2A6 D6D5 87ED 9D3B 5B86" /* 䗲Շ;[ */
- $"DA51 6B5B AE3E 520B 1DB3 5A6B 2B4D A777" /* Qk[>R..Zk+Mw */
- $"4F13 A04C 7D4F 819B 1FEB 086D 5F34 6643" /* O.L}O..m_4fC */
- $"0208 693A D70C 55B2 7A07 BC27 3A41 B739" /* ..i:.Uz.':A9 */
- $"C1F5 7425 07D5 D74C 1F56 F680 F1C4 B0CB" /* t%.L.Vİ */
- $"F3E0 DE80 53FC 256D EFD0 6B64 028C EC70" /* ހS%mkd.p */
- $"4973 06D4 242C DAAA 8373 DFAC B0C9 14A1" /* Is.$,ڪs߬. */
- $"BFBC 0BB4 E250 919E 3D2B B388 3A89 FB02" /* .P=+:. */
- $"9796 86E6 20F8 C26C 8120 349C 757A 6875" /* l 4uzhu */
- $"F63E AE68 84C3 03A3 6F64 F9EE F892 2CF8" /* >h.od, */
- $"61C1 B13A E941 0D67 DA36 4C05 9565 DC85" /* a:A.g6L.e܅ */
- $"D7F8 6EB9 D903 D428 F59A 3EBF C73E 5E95" /* n.(>>^ */
- $"764D 15FB 98F2 BECE 0FC8 EA3C 4E51 E1DD" /* vM..<NQ */
- $"5253 CE7A 2D16 8527 AF8E 9A17 757A A42F" /* RSz-.'.uz/ */
- $"6CA9 6BB3 7787 D84F 8E20 EA1F FB2D 15E3" /* lkwO .-. */
- $"0D2C 45A8 8C80 7DA1 89DB 5F46 F3FB 2871" /* .,E}_F(q */
- $"539E 8CCA 5C03 EF20 B6B5 4956 EB82 172C" /* S\. IV., */
- $"AB28 0D6D 4DF9 1F61 6F8D 61FE E962 778D" /* (.mM.aoabw */
- $"0C8E EC55 3BDC EC81 C9D1 E7D5 A811 C69A" /* .U;ը.ƚ */
- $"6186 BC2C 75B4 DD3D C207 1151 4C3B 4175" /* a,u=..QL;Au */
- $"942E 2ACF D3C7 7122 9D89 31B3 0918 EDC0" /* .*q"1. */
- $"9D45 75D8 DE61 5036 6D9F 3373 4827 7ADE" /* EuaP6m3sH'z */
- $"1BD1 16E8 8905 37D4 D811 1077 B359 0FF6" /* ...7..wY. */
- $"0460 F360 20A5 B532 3418 142A B432 C2E9" /* .`` 24..*2 */
- $"A0D6 DB04 317D 28F3 C893 AAE3 19B1 5742" /* .1}(ȓ.WB */
- $"7BF6 615C 0EAC F35E 0CD4 B142 A289 5458" /* {a\.^.ԱBTX */
- $"D699 1584 46FF 7174 758F B1F8 F540 F427" /* ֙.Fqtu@' */
- $"A496 8795 E66B 3DDC FB80 D0B8 9411 7240" /* k=и.r@ */
- $"0374 54DC B2CA C982 BD5E FD06 4B02 5E8D" /* .tTܲɂ^.K.^ */
- $"A958 79AA 5BE6 B5A2 76C3 7C23 0D45 6768" /* Xy[浢v|#.Egh */
- $"D726 8259 FD2E E5CE 9B70 0600 22E7 82A3" /* &Y.Λp.."炣 */
- $"8E14 9626 C4EC EED9 E7D8 13C9 623F 3DEB" /* .&.b?= */
- $"357B E617 A43A C9D4 328A C30A FF45 71BA" /* 5{.:2Eq */
- $"1F8B 3945 8E06 0CF0 4749 0840 6F5A EDDB" /* .9E..GI.@oZ */
- $"29AC E877 27BD 6C8C A131 8A1C 9228 0FC5" /* )w'l1.(. */
- $"A029 D1A1 324D EFCE EB3F 2B92 150D FB8C" /* )ѡ2M?+.. */
- $"5399 1ABD D375 08BF 8F3F E788 684D 3064" /* S.u.?hM0d */
- $"70B4 A733 4AB6 239A DC03 724F C8B8 F1BB" /* p3J#.rOȸ */
- $"8F1F A795 FF18 8256 0050 FF74 EDF1 3D05" /* ..V.Pt=. */
- $"6CB0 E566 9272 E493 C085 3D06 3116 4ECE" /* lfr=.1.N */
- $"402D 329F 4BBB 2598 A7CF BEE1 333D 9019" /* @-2K%Ͼ3=. */
- $"61BB 1A29 2616 E907 2CD6 F64C 456F 9881" /* a.)&..,LEo */
- $"725B 5C38 A40D 60D3 6B4F FDF1 87D7 4786" /* r[\8.`kOG */
- $"29BF CAEB 223A 044D 0F61 FDE6 0A3E 7727" /* )":.M.a>w' */
- $"DDEE 0A95 231F 04AC B6EF D134 C09D 1540" /* •#..4.@ */
- $"0E94 57E2 8418 C208 1F26 7396 96A0 D08F" /* .W...&sЏ */
- $"0CC0 40C8 C596 39BA 0CAE A6ED F8E8 7D6B" /* .@Ŗ9.}k */
- $"A76C 391B 6113 555F 62E0 6E14 5D27 E7BC" /* l9.a.U_bn.]' */
- $"EDB7 D038 DED2 7BEE FC9D 6211 241E 0795" /* 8{b.$.. */
- $"9CDE 1607 B4C7 828E 24D2 4E9F FCA0 36EA" /* ..ǂ$N6 */
- $"004C C960 1680 01CE 7FF6 A201 EDAB 1ADF" /* .L`..... */
- $"80D8 4524 390C 23DD EA8E 062C 5DDB 3C57" /* E$9.#.,]<W */
- $"BAEC 18E5 1ECE 91D7 A40E 08ED 23EA 55B6" /* ..Αפ..#U */
- $"AA2C F48A 7B0E 8CAE 90DD 5840 41FF 7F4C" /* ,{.X@A.L */
- $"47AD E774 87C4 9AB1 9CAD E633 DECD 3E36" /* GtĚ3>6 */
- $"00C2 0E05 134F 4802 3846 3575 1902 676D" /* ....OH.8F5u..gm */
- $"1006 D8AE 0D5F 1934 78F6 0721 F3C4 1000" /* ..خ._.4x.!.. */
- $"8991 FA85 45B5 37A9 5A0C 54EE 014B 297B" /* E7Z.T.K){ */
- $"52F2 5ADD 7422 C97B EAA9 D291 45A7 A44A" /* RZt"{ґEJ */
- $"40FE AE73 5086 C7D3 85FD D734 67F2 8909" /* @sPӅ4g */
- $"506D 36D8 2361 990C 802F A59E B603 9C94" /* Pm6#a./. */
- $"F7BD AED9 8518 8651 DFFE 3D0E E920 E874" /* م.Q=. t */
- $"FEB0 EE3C 3242 C249 4704 EEA8 9EFA DC61" /* <2BIG.a */
- $"49C6 929E 2A9D 51CD FE0A FF02 3DDB 01EC" /* Iƒ*Q.=. */
- $"80E8 630A B0C8 C9FC 7693 C60B 07E8 5D2F" /* c°v..]/ */
- $"B97A 9F04 444E C836 DD68 FF12 EC9C 7E4F" /* z.DN6h.~O */
- $"3CE9 83A8 191A 1E61 05F8 90FF 67E8 011A" /* <部...a.g.. */
- $"71EA 3EE8 AFBD 6328 ED84 9807 788D F3BC" /* q>诽c(턘.x */
- $"2FA0 A210 7FFF 1D02 2519 4EC7 2A80 7FD0" /* /....%.N*. */
- $"2064 A8F4 CC78 5EC8 88AF F1AB 868B 9F8D" /* dx^Ȉ񫆋 */
- $"883E 3FDA D188 FBB7 3AFC 0C72 E01A CEF3" /* >?ш:.r. */
- $"21E1 1718 4FDB 9A43 3767 424A 639B DFFE" /* !..OۚC7gBJc */
- $"CA5F 7BA9 8F82 3EA6 6D4E 6986 6945 80DE" /* _{>mNiiE */
- $"8274 4927 166A 6062 DF1D 0A72 F23B FA5A" /* tI'.j`b.r;Z */
- $"4DE4 5D19 54FC 488B 5237 FF5F 7B81 62C5" /* M].THR7_{b */
- $"F6B7 B580 3016 11B6 22CF 63B8 428A D39A" /* 0.."cBӚ */
- $"5AC3 80FF 7310 8386 FF54 F361 304F 3BB5" /* ZÀs.Ta0O; */
- $"A7EB 0419 7DFB 6E56 20A8 3670 9018 9CB3" /* ..}nV 6p. */
- $"4B35 7082 32A7 E917 9CF8 FF7F FF80 0A6C" /* K5p2..l */
- $"A48C 447E 3ECF 411D 89E4 F923 373B DCBE" /* D~>A.#7;ܾ */
- $"2CE8 6580 0F87 1A23 1D93 62AE 48EF DEB8" /* ,e..#.bH޸ */
- $"5DE8 DB68 1CA3 8D4B D3FE A476 7B3D ACAA" /* ]h.Kv{= */
- $"284F 83EB 428F A201 D122 CB1A CCB2 C1FE" /* (OB.".̲ */
- $"367F 60D3 155D 8C00 22D8 ED33 D56B 1DE2" /* 6.`.]."3k. */
- $"98B0 A4A9 E041 2BF1 AA58 E78D 47E5 929F" /* A+XG咟 */
- $"85DA 699E C45A 0064 B931 CF2B 4169 44F0" /* iZ.d1+AiD */
- $"4B4F 083B 3D7C B2B2 D87B 785E 91A8 C614" /* KO.;=|{x^. */
- $"6EE6 A63C C8A7 B9E3 839D E245 4128 3BF9" /* n<ȧポEA(; */
- $"98CD 0C23 72EB E3A9 D21F 1BC2 4E13 274B" /* .#r..N.'K */
- $"19C8 CB39 5E7A D218 FBDB 0C42 51A1 1203" /* .9^z..BQ.. */
- $"C0EB CDC2 9249 E461 1DE4 3DB6 FDFE 1334" /* ’Ia.=.4 */
- $"1952 8231 CD71 A170 C55B 1FD0 6706 57F0" /* .R1qp[.g.W */
- $"282D 09A2 0893 A5BA 0314 43DD 32AF 3478" /* (-Ƣ...C24x */
- $"EF6C 15F0 55C9 6A47 ECFE 3F3F 4DB4 5ED8" /* l.UjG??M^ */
- $"EFF8 8CA5 71F9 6669 078C 550C 943A 7046" /* qfi.U.:pF */
- $"C031 6CE2 4681 4177 2913 CFE7 D857 C62A" /* 1lFAw).W* */
- $"4652 88E2 8830 DF42 9C3D 2D76 E710 A8F1" /* FR0B=-v. */
- $"3626 45F2 55CC 008C EAB8 B891 A5F3 1AD2" /* 6&EU.길. */
- $"AB11 6C48 3F18 40C0 51F0 DB88 0BD1 168C" /* .lH?.@Qۈ.. */
- $"2E54 2DA6 CC60 BB05 4700 2C4E 179B 271B" /* .T-`.G.,N.'. */
- $"688C 1EE9 4D9A C781 8108 296B FE4F 028A" /* h.Mǁ.)kO. */
- $"63D6 6EDF 6FEB FC17 BDFE 7A70 B48E D94E" /* cno.zpN */
- $"D985 3384 1BD2 B4C9 5213 B0D1 041B 876C" /* م3.ҴR...l */
- $"131C 4A9C 947B A79C A466 9779 E7C9 D2E1" /* ..J{fy */
- $"4E9F 0509 30E0 1115 E5C7 CAED 197B 818A" /* N.0...{ */
- $"324D 8F8E ED44 BF44 5340 D647 1776 B983" /* 2MDDS@G.v */
- $"6D8C 88B1 6976 F7EB AFDB 6638 CAD3 F275" /* mivf8u */
- $"D93A 6CD3 9D6E C617 3969 D8E5 3059 947B" /* :lӝn.9i0Y{ */
- $"6AFA 0E9B A19C 24C9 E1DC 089D 3545 89E4" /* j.$.5E */
- $"E860 FB54 068C B464 EE9B 66B7 F267 34CF" /* `T.dfg4 */
- $"1276 C6B2 47E6 8284 300B D1A9 1409 0C93" /* .vƲG悄0.ѩ.. */
- $"E36A 8095 409A 7352 FF7A 0F50 A5E2 E678" /* j@sRz.Px */
- $"C195 0898 E51E EB15 8D7A E918 29A6 D5CE" /* ...z.) */
- $"4DBC 978B 2CAA 9BA7 8727 EA1C 1C7A 6CC2" /* M,'..zl */
- $"D172 DDF5 4BD4 9C69 607B 609F AEC8 FD84" /* rKԜi`{` */
- $"1DDA A076 C7E1 A7B1 F86C BC7E 1720 EB83" /* .ڠv᧱l~. */
- $"095B F1C8 7239 10FD 6A26 D10E 534B E257" /* [r9.j&.SKW */
- $"B691 5D92 6949 E7D8 7470 AA8C 421F F945" /* ]iItpB.E */
- $"99F6 9492 B806 E264 47B0 4EF5 6206 734E" /* .dGNb.sN */
- $"944B 102F A688 23A4 EAB0 CCEA 0017 0156" /* K./#...V */
- $"A8C9 2A3F FF49 4137 E23A 09D0 97BB 0E5F" /* *?IA7:З._ */
- $"E2A2 2247 4980 6A20 B443 3E0B 0465 B9EF" /* "GIj C>..e */
- $"C490 B954 3AEA ABB7 3D53 111D 8897 551C" /* ĐT:꫷=S..U. */
- $"B865 1EA2 33F2 AD50 D488 1D6D 9733 27F3" /* e.3PԈ.m3' */
- $"78AC C946 FB3C 4D2F 6580 1B3A 3368 3D54" /* xF<M/e.:3h=T */
- $"55DF 6B52 1A54 9010 C4D2 12C8 D497 9CDB" /* UkR.T..ԗ */
- $"173A 0609 66F1 C6C0 FD02 47A0 B2E2 D2E6" /* .:.f.G */
- $"096E F870 0776 4898 2F2B 84CF BA83 D656" /* np.vH/+ϺV */
- $"7F77 79FF 0F1D 2A6E 03C6 4D0F E3EF D23B" /* .wy..*n.M.; */
- $"6F82 5F72 6701 98DF 5A63 DA7B 0ABC 75E2" /* o_rg.Zc{¼u */
- $"382D 0D93 3C8C 5308 19EA EF8D 7922 CD36" /* 8-.<S..y"6 */
- $"ED21 EB4D 3D77 5A8A 1380 E238 22E5 84AA" /* !M=wZ.8"優 */
- $"4488 7DCE 91A0 CB4B 67FA 74AF EA3D 1C8E" /* D}ΑKgt=. */
- $"9279 611D FD02 D08F D952 B05D 2C11 B545" /* ya..ЏR],.E */
- $"5F17 FF5C 1E9C 6A77 DA2F A474 B20C F5A2" /* _.\.jw/t. */
- $"B2D4 176F 97E4 CE9E B576 C3E0 0F3D ECB9" /* .oΞv.= */
- $"7B35 DEBB 5ABA 9738 36F8 524D 74D8 08FF" /* {5޻Z86RMt. */
- $"29A7 9B08 5B43 7C17 FB53 234E 4806 B0C3" /* ).[C|.S#NH. */
- $"AF3A FF38 CCAF FEAA C60F D103 32AC 7D7F" /* :8̯..2}. */
- $"D2B8 51C1 7B7D 56FD 7CFB D2B5 C55B 7C7D" /* ҸQ{}V|ҵ[|} */
- $"7D30 10C2 4181 3358 5DD6 4625 4FFC EA30" /* }0.A3X]F%O0 */
- $"3402 194F 6D0B 53D8 3C64 54AE E8DA 7874" /* 4..Om.S<dTxt */
- $"7FF1 DE25 3147 0AF0 D5B6 7BF7 88DD 5199" /* .%1Gն{Q */
- $"611E 526D B6DB 6DB6 DB69 9C6E 7A40 821D" /* a.Rmminz@. */
- $"4416 6952 04BB 9C0A F19B 2C62 E698 A4F5" /* D.iR.,b昤 */
- $"9B83 3C59 8217 0000 0034 8080 DB92 4924" /* <Y....4ےI$ */
- $"9249 247D 32D0 9B20 73FF 7E44 A49A 44BB" /* I$}2Л s~DD */
- $"EB45 3E31 A4A0 C0CC BBC0 B29E 7771 4FDE" /* E>1̻wqO */
- $"1679 23F1 DE12 5574 68E3 60A1 9C00 CBEC" /* .y#.Uth`. */
- $"9C44 9009 0000 08DE 28C3 2776 AAA2 829A" /* D...('v */
- $"05E0 47E9 0001 48A9 672C 0775 EE58 F075" /* .G..Hg,.uXu */
- $"7458 B48A 5455 DB33 3524 BE73 1D7C E223" /* tXTU35$s.|# */
- $"4EC4 732C EC4B 128D 341C 790C 00A2 1309" /* Ns,K.4.y... */
- $"2D0B 5EA7 B07B C82C 976B 68C2 642A F095" /* -.^{,khd* */
- $"A1C4 010E C94E D8A9 34BB FD3E 2B2F 92EC" /* ..Nة4>+/ */
- $"30E1 A7B3 040B C920 3FFF 7FA1 317B 90F7" /* 0᧳.. ?.1{ */
- $"C744 40B8 8325 4036 82FB 0C6C D800 19C4" /* D@%@6.l.. */
- $"2631 C4B8 3160 8649 2492 4924 9248 A747" /* &1ĸ1`I$I$HG */
- $"3D41 A17D 23A6 9AC7 9000 0000 0000 0000" /* =A}#ǐ....... */
- $"0000 0019 1A70 8823 BB21 7C62 4556 F257" /* .....p#!|bEVW */
- $"62C0 CF0B 72EE F37E 64EC 43C2 AE04 9F58" /* b.r~dC®.X */
- $"94DC E128 91EC BAA2 DADD 57A7 D5F7 1972" /* (캢W.r */
- $"7543 9A9A 0DB3 C3FD 42E0 19A3 8F45 7FDF" /* uC.B.E. */
- $"CEB1 A7E5 8A09 5B4A F9E6 294B C5DC 80C9" /* α[J)K܀ */
- $"9AEE 0729 374F 04FD 79D6 7170 D940 14F0" /* .)7O.yqp@. */
- $"830F 0B71 50E7 3C76 97AF 0F71 A32D DC5A" /* ..qP<v.q-Z */
- $"28A9 FE90 6CC0 9484 30D1 FCCD 4991 0758" /* (l0I.X */
- $"BE36 B1DE 3A2E B6F8 2756 C568 2A7F D038" /* 6:.'Vh*.8 */
- $"2397 6E8F 32E0 C1AC 3736 32A3 C18E 13C4" /* #n2762. */
- $"D298 8703 F9AF E24B A630 0627 6E63 ED70" /* Ҙ.K0.'ncp */
- $"0662 A833 6515 7225 C79D 8C1F 7410 45BF" /* .b3e.r%ǝ.t.E */
- $"5019 F088 7C6C 43FC AE88 B794 5847 505F" /* P.|lCXGP_ */
- $"2B73 6E58 E20E 18A2 01B4 DF7F F5BD D4BC" /* +snX....Լ */
- $"B259 706B 754E 9740 BBF2 54FC FCB8 B293" /* YpkuN@T */
- $"4CEA 3670 D04B 8C42 B7C2 314D 1F53 956B" /* L6pKB1M.Sk */
- $"CB14 9D05 8288 E7F0 D4FF 70AE EFB7 A10B" /* ..p﷡. */
- $"EDDE 3CFE 1B9D 7DBA 7B7D BD13 DF6F 45B8" /* <.}{}.oE */
- $"FE1A 077D B444 FAB6 46FB 75FC E8AB DECC" /* ..}DFu */
- $"AF0D 6C8A C695 8734 8A7A 5A21 F65D 05F6" /* .lƕ4zZ!]. */
- $"A417 27AC 998E 3646 07A8 0055 19DC B524" /* .'6F..U.ܵ$ */
- $"D2F2 842C DF9F BECA C26B C9C9 D0FD CA3B" /* ,ߟk; */
- $"DB1B 3F81 F6A7 4465 001E 5552 4D0D 3BF3" /* .?De..URM.; */
- $"0140 A2E9 7D63 8456 F9C7 665D F7FC 2DBF" /* .@}cVf]- */
- $"1B41 0667 7939 1B16 4997 5584 3CFE 81B9" /* .A.gy9..IU< */
- $"C4A8 B346 EC6D E726 2560 5CB8 8B84 7699" /* ĨFm&%`\v */
- $"3999 2CA0 91D9 A05A C96C 660C 267B 74A0" /* 9,٠Zlf.&{t */
- $"B935 73EB D464 D860 2694 7584 A4D4 DC52" /* 5sd`&uR */
- $"D136 D49A 1BEA 53F5 AE2F C19E 44E9 BA0A" /* 6Ԛ.S/D */
- $"5D83 6587 7792 3DCB 449A B33E 4632 A395" /* ]ew=D>F2 */
- $"57A3 0EC0 B3A3 969D 9DF0 6ACC 859F FF7F" /* W.j̅. */
- $"FF27 DAA0 AF8E 216C E5D8 874A 530F 555E" /* 'ڠ!l؇JS.U^ */
- $"AF3F E231 5BAF F7B6 8E73 5742 2717 4031" /* ?1[sWB'.@1 */
- $"175D 5FDA F402 B756 AEAE 7E7E BFEE CE68" /* .]_.V~~h */
- $"7878 870D 01C2 C2A4 61D5 64E3 E195 B914" /* xx..¤adᕹ. */
- $"A45F FF52 DC14 F5E9 E037 65E3 5477 62A5" /* _R.7eTwb */
- $"3EEC CA32 6558 5965 8B6E 3F13 9DB2 1361" /* >2eXYen?..a */
- $"8426 9FD7 B329 4E75 FF1D 9B78 9735 4B1B" /* &׳)Nu.x5K. */
- $"D80E 1781 192F 6777 8F94 F6A2 5016 726D" /* .../gwP.rm */
- $"1E0D D2CB 6F87 B3C6 09A2 1FE3 915E 8943" /* ..oƢ.^C */
- $"FE6C 6743 4733 D5BC A9DD 5338 C9E1 AF50" /* lgCG3ռS8P */
- $"3634 C26C 0C1F 94E7 50B2 4310 DD62 4F09" /* 64l..PC.bO */
- $"ABCD 7821 8B7B 7B87 2EEA 25A1 9D3C 55CC" /* x!{{.%<U */
- $"0644 1B14 3456 2E32 C013 815C 66C7 0526" /* .D..4V.2.\f.& */
- $"E24D CE15 B8FB 5D8B 0506 E30A 1D6A E2ED" /* M.]...j */
- $"6145 D124 0EC9 1FAB 4E50 06C2 9DA5 8F6C" /* aE$..NP.l */
- $"C072 D11E BFEE DFE6 F6C7 12F4 E89C 35B7" /* r..5 */
- $"097E 2E25 393F CEA3 03C6 D3C7 DED5 3882" /* ~.%9?Σ.8 */
- $"ED26 A3FD 9130 95B5 F3FA D31A 691F 8E09" /* &0.i. */
- $"BFA8 7D7B 85BD B179 5C20 2855 1268 F9AF" /* }{y\ (U.h */
- $"553D 939E 6FC6 C67E 4611 F88C BBD4 773C" /* U=o~F.w< */
- $"5F16 D598 D5C5 E649 B66E FD8D A2D7 9807" /* _.՘Inט. */
- $"EDA2 4621 2CF5 DDE3 C078 6455 1C29 3A07" /* F!,xdU.):. */
- $"E992 C5DE 8D33 041B 83C6 56F6 7C95 168E" /* ލ3..V|. */
- $"6127 40D2 DE11 CFF2 3379 DC22 20E3 5E1B" /* a'@.3y" ^. */
- $"DE83 DBB5 5B8A 8572 3DF2 2890 DC56 BE6E" /* ރ۵[r=(Vn */
- $"D15F 9396 ECD4 725F 2E18 7616 394A 64C3" /* _r_..v.9Jd */
- $"FDAA E6F2 3D6D 46BC B270 5B8F ACB4 9CAE" /* =mFp[ */
- $"0D0D 3F29 6A02 1E92 347A E406 A52D 111A" /* ..?)j..4z.-.. */
- $"2E79 0340 1D82 C861 0C40 1963 3397 A4FD" /* .y.@.a.@.c3 */
- $"A998 0B63 E30A 7AA3 A5BC 8A8E 9CD0 4795" /* .czG */
- $"7538 7FB2 EC9A 952C CE29 C80F 369C 4E8D" /* u8.욕,).6N */
- $"8000 1C55 D5F3 E2AD 812E 4FAA AC2C D9BB" /* ..U⭁.O,ٻ */
- $"F4CD 5568 5643 826F 3A38 91BD 6F70 92D3" /* UhVCo:8op */
- $"23EC DB91 0FC4 C3BB 7542 023B 85F0 36C3" /* #ۑ.ûuB.;6 */
- $"8BF6 F6F8 4E77 EEE5 851F 219A CF99 7D9E" /* Nw.!ϙ} */
- $"856D A687 BC63 8E39 0407 B007 D184 10BD" /* mc9...ф. */
- $"D9EF ACB1 B75A 46FA F95E 42DF 377B E2F7" /* בּZF^B7{ */
- $"BEF2 357A 861C F486 B3F7 57E1 D39B 095B" /* 5z.Wӛ[ */
- $"40C0 925C 0CA1 7885 CFEA 48B7 33E9 E8DE" /* @\.xH3 */
- $"D178 1E15 91D1 F6C5 BC87 CB7E CCC6 DEDE" /* x..ż~ */
- $"B017 A4C1 0B0F DD17 660E CB97 C098 C773" /* ....f.˗s */
- $"8A0A F4DB 59BD A218 055E 5348 05D8 B304" /* Y..^SH.س. */
- $"9F23 E1B1 0754 6DA2 FF33 34CB 2B12 7114" /* #.Tm34+.q. */
- $"62D2 4CA8 8091 CD34 8467 2752 B77A AA5B" /* bL4g'Rz[ */
- $"15FC 2E56 7A29 9351 B6A4 AEE5 B56D 354D" /* ..Vz)Qm5M */
- $"3ED2 FA71 25E9 F887 B187 BADB B11B 2E01" /* >q%۱... */
- $"93B3 4206 45ED 7238 3F80 1441 50CA CCBA" /* B.Er8?.AP̺ */
- $"EF59 3BC5 4236 2ABF 9150 7335 49C5 0216" /* Y;B6*Ps5I.. */
- $"F97B D5A5 1EF5 A69D 8B34 C25B 73E1 DA52" /* {ե.4[sR */
- $"79E5 9EB1 9CB1 0952 B3F5 E221 D426 4759" /* y垱R!&GY */
- $"D5CF 2D18 CC2A 270A 859D F10C 8108 52FF" /* -.*'…..R */
- $"2A7D D39E EFFD 568C 2DB3 7BD5 62D0 2403" /* *}ӞV-{b$. */
- $"69D1 A4B6 2D24 E485 973D F6A5 E6DC 1DB5" /* iѤ-$䅗=. */
- $"BF0B E185 5592 E3A0 6046 E050 5151 9546" /* .U`FPQQF */
- $"17F7 0CF6 222F 17E0 40E5 3EF5 74EE BAB6" /* .."/.@>t */
- $"55BD 76C1 DD80 39C8 BAE0 37B8 398A B370" /* Uv݀9Ⱥ79p */
- $"D400 0C29 5DC9 94FF 069B 36E2 CD79 195F" /* ..)]ɔ.6y._ */
- $"5B9B 1237 1F18 C560 C901 F9A4 184B 7570" /* [.7..`..Kup */
- $"433E 75BE 0297 C641 7D9B 7092 8D64 96F5" /* C>u.A}pd */
- $"D70C 9B66 71D3 09B1 F635 0FC3 0B49 7D6E" /* .fqƱ5..I}n */
- $"660C 8E1D 0257 672B 97EE C2A5 7B84 729E" /* f...Wg+¥{r */
- $"6516 585E 354F 2E22 88A7 A515 B945 3745" /* e.X^5O.".E7E */
- $"F6A5 5CB2 E212 10AD AB6F 07F5 FDA3 09EB" /* \..o. */
- $"A053 313B 9A8E 757D E132 D483 DC78 0882" /* S1;u}2ԃx. */
- $"A63C 95E0 036C 4626 F66B 5F6C 39A1 9401" /* <.lF&k_l9. */
- $"7276 4DCE 4487 7D8C 12A3 B713 9139 AC0A" /* rvMD}..9 */
- $"18AD 4DFD 2A3D 69E7 E76E 593C 8DAB FD56" /* .M*=inY<V */
- $"F959 BA6B FBA3 2853 D610 4DB0 7A30 3A09" /* Yk(S.Mz0: */
- $"916B DFF7 B3B4 F8D3 9619 0FD9 8FBC FC6B" /* kӖ..ُk */
- $"D73D ABD2 4C41 6AD0 6584 AF19 3074 AF6E" /* =LAje.0tn */
- $"369C BEB1 76D5 D311 6172 F157 D522 DDED" /* 6v.arW" */
- $"D4ED 0230 0BB5 E881 0E6B 9C4F 111F 4F6E" /* .0..kO..On */
- $"7CAD 4745 7BBF DA70 A9C4 051E FDEA 206C" /* |GE{p.. l */
- $"9983 0E2D 4A4A A4DE 82E9 DAAF 5748 37AE" /* .-JJނگWH7 */
- $"4046 DCCB 0D1A 80DA 1804 20E2 F7CF AD69" /* @F.... ϭi */
- $"F9D8 5106 D02D 16E9 4437 9560 B618 1126" /* Q.-.D7`..& */
- $"95A2 4B23 89C4 78EE 898E D80C 8E49 5201" /* K#x.IR. */
- $"2095 ABAF 9CA5 0F8E CB22 00D4 4289 59B3" /* .".BY */
- $"1835 1395 8AE5 3A88 7185 E7DD 57F3 4CE4" /* .5.:qWL */
- $"1465 C878 6B72 7146 2AF1 F053 5B31 7697" /* .exkrqF*S[1v */
- $"7300 A777 3919 099E BD1C 79C3 24C4 A355" /* s.w9.ƞ.y$ģU */
- $"0C88 C727 1831 D498 E513 47A5 F25F DDBE" /* .'.1Ԙ.G_ݾ */
- $"46E7 40B5 EBCC 080F 6915 3FDF EDB9 A9B1" /* F@..i.? */
- $"39ED D794 60E1 A5A2 0EEC 7A09 46BF 201E" /* 9ה`ᥢ.zF . */
- $"311F EEEE 88EF C6C1 C10D E238 50C9 7F01" /* 1..8P.. */
- $"DFF1 17BA D8F4 0017 47E7 75F2 4D82 679E" /* ...GuMg */
- $"6867 60A4 6222 77B9 319B 186D FCB3 168A" /* hg`b"w1.m. */
- $"EAF3 C227 1082 D7ED 2C70 E619 8676 0186" /* '.,p.v. */
- $"8C23 5DE5 D4A0 61CB CDE4 AED5 E008 6F3C" /* #]Ԡa.o< */
- $"D894 AC14 6FEC 5D4C C2FF 3A6C 512F E475" /* ؔ.o]L:lQ/u */
- $"FCB8 DFA4 EB46 2DF4 E133 5858 364B 54E1" /* ߤF-3XX6KT */
- $"A6E1 5D0C 157E D987 DF95 B1FB 3723 4F2F" /* ]..~هߕ7#O/ */
- $"C9BF C6D4 D979 412E D0EB B285 8DFF 7CAC" /* ɿyA.벅| */
- $"F1BF 1825 8B89 9992 3848 C666 4184 4906" /* .%8HfAI. */
- $"0D61 6B58 9355 A5D9 C940 B6F2 6918 82E1" /* .akXU@i. */
- $"FF7D 4F5F FE94 5208 650B B780 0D2B DD4F" /* }O_R.e..+O */
- $"5874 3627 2353 6328 06B9 908C 6C95 D898" /* Xt6'#Sc(.lؘ */
- $"8C24 1D0F 641B 7763 CFBE E88A BB05 8639" /* $..d.wcϾ芻.9 */
- $"D91C 4A38 3A3F 75C6 61BD BFED CA10 2A73" /* .J8:?ua.*s */
- $"E3C5 E85C BF5B 0346 2105 4286 300D D812" /* \[.F!.B0.. */
- $"8BE4 DAE4 292B A765 338E 7E42 50F1 8046" /* )+e3~BPF */
- $"3FDC 1A85 4616 61E5 7321 18D9 5AB9 8903" /* ?.F.as!.Z. */
- $"90BD 6F89 E7D0 35D1 0AA3 BBAE 3CF8 A7B7" /* o5£< */
- $"73C8 8B94 B409 16EC 60A6 E819 BCA7 BA66" /* sȋ.`.f */
- $"2245 524C 718C 635D E4F7 ACA0 02C3 E0A7" /* "ERLqc]. */
- $"B542 0FF5 7029 FF4D 1D88 E3B3 D657 802B" /* B.p)M.W+ */
- $"8068 9BD4 B17F 9A6B CC1C 4B53 246F 81E5" /* hԱ.k.KS$o */
- $"9168 48EC 4B44 3FFF 7B8B 5777 5677 134E" /* hHKD?{WwVw.N */
- $"1B8E 8C91 429F CE85 86EF 62B4 71AF EAE7" /* .B΅bq */
- $"E333 7BD3 2825 7230 C950 0000 1B8D 8BA6" /* 3{(%r0P... */
- $"04C1 56DC 30F0 619E DD6C D196 C91E 1ED4" /* .V0alі.. */
- $"1285 94A8 F775 05A9 3440 78FF 7E52 8833" /* .u.4@x~R3 */
- $"E8A1 A4E4 4580 38DD ADE1 3BD5 AD19 74E6" /* 衤E8ݭ;խ.t */
- $"EEA1 B4B1 0B0B 9BE9 08EC DB78 E6AA 37E5" /* ...x7 */
- $"AD06 72A6 51FC 0004 4737 BF1A 89FF 7E11" /* .rQ..G7.~. */
- $"0A68 EAD7 BDA5 4D5B 2C8D 0C7A 952E 2190" /* h׽M[,.z.! */
- $"8451 1B38 CEFD 2835 5ADD BDA2 01C2 A3D6" /* Q.8(5Zݽ.£ */
- $"6046 4BD8 41DF D8B6 D9B1 1F96 5FF8 CC56" /* `FKAضٱ._V */
- $"A63B 6E14 5035 26D6 946D 1F59 4D17 5507" /* ;n.P5&֔m.YM.U. */
- $"85F7 2DAF A737 4E30 9097 2E2E DAF8 37D1" /* -7N0..7 */
- $"D987 4E59 ABFD CDF3 AAC3 30D1 8616 FAB3" /* هNY0ц. */
- $"2914 92AA 6913 C36F 66DA 4B0B 18FE DD55" /* ).i.ofK..U */
- $"1D2A 3F00 D80C 2423 D923 95C6 E11D 0069" /* .*?..$##..i */
- $"B5C9 0803 0907 B950 13DF 48EC F794 3D36" /* ...P.H=6 */
- $"5249 2492 4924 9249 2489 9EF6 DC36 9A6B" /* RI$I$I$6k */
- $"1751 415E A37F 47EC A4EA 67AC A222 733C" /* .QA^.Gg"s< */
- $"467D 1FFE C727 E6AA 6E99 C584 A87E DFFF" /* F}.'nń~ */
- $"7FC3 7592 8204 71A2 6088 C38B 6E65 868E" /* .u.q`Ëne */
- $"5A3F FF7F F919 4069 CF10 A302 5125 525C" /* Z?..@i..Q%R\ */
- $"A443 88AF 4104 7807 1410 84BA E955 76E8" /* CA.x...Uv */
- $"5F35 B612 A668 5694 9249 2492 4924 9249" /* _5.hVI$I$I */
- $"2492 4924 4C25 1941 A4EB 1996 7A28 19C1" /* $I$L%.A.z(. */
- $"A1B0 01D7 ACB2 3F83 42DC D154 27C9 F11F" /* .׬?BT'. */
- $"FC46 90B1 89C4 F78A 4C6F 5C2A 833D 8425" /* FLo\*=% */
- $"D837 CA14 E4C7 7F8A 9833 99B7 E589 1376" /* 7..3.v */
- $"C867 FF1D 200A 4C9B 624E 68E3 11AE C8AF" /* g. LbNh.ȯ */
- $"1723 C741 CEAC 16CE C548 72FF 15CD 3E67" /* .#Aά.Hr.>g */
- $"AF2C 323F 0FD0 6752 4973 55BD CC10 05B4" /* ,2?.gRIsU.. */
- $"AB3F 9302 00C3 EE70 1BA4 B650 FAB2 5821" /* ?..p.PX! */
- $"3856 3872 1B02 7D70 F1F9 0B28 A9DC CAE7" /* 8V8r..}p.( */
- $"D9E7 6252 A768 A7DE 0FB1 FCB1 F54B 98C4" /* bRh.K */
- $"7B6E 5E24 BC53 F945 741F 66A0 A51E EE5A" /* {n^$SEt.f.Z */
- $"2A0D B951 4EEE A88B 4F2F C326 F326 1D12" /* *.QNO/&&.. */
- $"524A 9E48 CC53 44EF C54F 1737 8505 46CF" /* RJHSDO.7.F */
- $"351E 4354 05C7 C832 2A7D 8899 D009 E617" /* 5.CT.2*}. */
- $"0334 305D 9497 D845 E6D3 2CD2 178F 1316" /* .40]E,... */
- $"65AD 239E 2ED5 ECCB 402A E728 09B5 E847" /* e#.@*(ƵG */
- $"65BD 3F31 CAC5 F9D8 6606 B8AF 4F84 89FE" /* e?1f.O */
- $"9004 4730 30BC E58F 5FB3 38CF 36B9 38FC" /* .G00_868 */
- $"FB9D 07EA D13F 9DB9 7185 0E88 0E3B 06E5" /* .?q..;. */
- $"D476 CFCA 1587 3067 9257 B5DF 1E83 E7FF" /* v.0gW. */
- $"7FFF 7FFF 0E68 E181 AC15 B980 2AFB 1D80" /* ...hၬ.*. */
- $"C5BB A88D E36A 4DC5 94CF 6DB2 0694 F977" /* ŻjMŔm.w */
- $"D708 02D1 F380 6773 016A CA84 3B1C 6A33" /* ..gs.jʄ;.j3 */
- $"5AAC BA2D FEC5 7542 51FC 68D0 CDDD EA44" /* Z-uBQhD */
- $"788E 2F96 D80C F159 FF45 3316 1494 A7F5" /* x/.YE3.. */
- $"98B4 FC39 0062 D59B 52A6 32CB F97C ABD6" /* 9.b՛R2| */
- $"42AE AE46 6AA7 D986 0A4E DCDD 717E 8B7C" /* BFjنNq~| */
- $"8FB8 B396 65A6 83FF 6A4A A5C1 597F 70AF" /* ejJY.p */
- $"DC96 E2EC 0C1D 7A00 3428 2C60 DE32 8DB8" /* ܖ..z.4(,`2 */
- $"1604 C249 5E82 1F5B 6C23 E562 B2D4 754E" /* ..I^.[l#buN */
- $"7F73 442A 25D3 C42A 6A6D 5D09 0E8C 2E67" /* .sD*%*jm]..g */
- $"95EC 08FE B505 8B5A A4A8 0000 0000 0000" /* ..Z...... */
- $"0000 0000 6121 26B3 27C3 AEC0 FF52 2FEE" /* ....a!&'îR/ */
- $"D4F3 92BB 06E2 ABE4 35DC A278 9084 B2F0" /* .5ܢx */
- $"EE1A ADB2 F770 3D4E 120A FD01 B042 CD00" /* .p=N..B. */
- $"B9C2 B661 40B0 E5FC DC59 59F0 61C5 53A7" /* ¶a@YYaS */
- $"7AC1 7EDC 77B7 1C84 0F9A E321 389C E693" /* z~w..!8 */
- $"AC98 5160 DDD0 C9A9 BE17 ED52 A10A 300C" /* Q`ɩ.R0. */
- $"88ED BB5A 80DA C23B 1196 0C7C 6BA8 D4EA" /* Z;..|k */
- $"4FAB 08A9 EBE3 1CC9 6782 F6A9 85A4 1829" /* O..g.) */
- $"48BB D188 41E8 65BA 28BB 8AC1 8368 DC2F" /* HшAe(h/ */
- $"B2DE 61FE 95C0 BD88 C027 9CD9 3819 8A81" /* a'8. */
- $"20FF 616C DEAE C6EA 15A3 D12F 764A B4E2" /* alޮ./vJ */
- $"ECA3 AF32 36FF 29B0 E3CD 5046 527E 39B7" /* 죯26)PFR~9 */
- $"921A ABF8 F0CB 7040 5FCD A182 4C57 986D" /* .p@_͡LWm */
- $"1115 DD94 687C 3663 7CFB 6C40 642D C8CA" /* ..ݔh|6c|l@d- */
- $"1117 B5A9 8025 123D 9406 58F9 96B5 321E" /* ..%.=.X2. */
- $"7646 4BFD 48DE 0B9B DBEF B79F B6C7 031E" /* vFKH.﷟.. */
- $"1D3B 1D18 B35D 2813 5601 3924 6AE1 FC21" /* .;..](.V.9$j! */
- $"60B9 0B9F 6B4B AFB9 15D8 C57A 5345 7461" /* `.kK.zSEta */
- $"0EF9 4B6B 88D1 7833 02DF 4FB8 DBEC 836A" /* .Kkx3.Oj */
- $"BEA7 3972 93C0 F973 37B5 C84F 1655 031C" /* 9rs7O.U.. */
- $"674D 741E 308E E3BA 6684 5BB0 4506 AB40" /* gMt.0f[E.@ */
- $"14DE BFF2 9B38 4026 C5C2 3A44 FDFF 25CB" /* .޿8@&:D% */
- $"072E 1D99 62E3 22B8 DE8D 9CF1 79FA 1D38" /* ...b"ލy.8 */
- $"8900 17CB A72B 8124 7EAF CF2F FC8D 34D6" /* ..˧+$~/4 */
- $"E0AC 58ED 8BC1 0DAA 7964 FB91 BF08 EFA6" /* X.yd. */
- $"42FF 7FFF 7FE3 AF13 7C4B 1CF4 D643 3CD3" /* B...|K.C< */
- $"5F1A 08BB 7C56 5CFB 6D27 04DE C66A 9AF1" /* _..|V\m'.j */
- $"2053 D4B2 EE60 44FF 2A89 1FFC DFCC 57C1" /* SԲ`D*.W */
- $"3800 1290 7854 7902 FF7A 9A36 D71E F8D1" /* 8..xTy.z6. */
- $"D439 471B D02F 4A39 E5BC D25F FDF0 8B54" /* 9G./J9_T */
- $"AE0A 3677 2625 B286 7DEC 8FF7 2457 2B25" /* 6w&%}$W+% */
- $"C066 2A4E A605 EE16 7244 CCFD D3D3 FDA1" /* f*N..rD */
- $"F3B8 76C3 1C5F 491C 0165 8735 D71D 19AD" /* v._I..e5.. */
- $"9BB1 A40D E5BA 9D1C E34B B71C 9CF0 EC7A" /* .庝.K.z */
- $"5E87 C4F0 A326 0913 9E2C 6517 50A3 E72B" /* ^&.,e.P+ */
- $"87FE D348 2E5D 0A00 0000 0000 0000 0000" /* H.]......... */
- $"0002 2C86 A73D 4030 2FE4 D32C 2B56 C74C" /* ..,=@0/,+VL */
- $"0869 A5C9 151A 69B9 9390 DA50 4411 8FFF" /* .i..iPD. */
- $"4938 4E36 F9DD 09FB E4A0 C339 2431 ED8B" /* I8N69$1 */
- $"793D 6354 12C0 97F9 C379 ADA9 7DEE E5EF" /* y=cT.y} */
- $"2366 FF4F E2A2 F01A C90F 02E3 51CD B477" /* #fO...Qʹw */
- $"2230 690A B47C E28B 463C 2E88 7579 7943" /* "0i´|F<.uyyC */
- $"5055 6D0A EEC5 F3BF 2404 37D8 EFE1 71AC" /* PUm$.7q */
- $"6AFE A3E4 A7EB 28BF BFFE 4373 E5FF 7E4A" /* j(Cs~J */
- $"2D5D 1ED3 6D78 1657 9914 A061 7958 972C" /* -].mx.W.ayX, */
- $"56FB D5B0 1FFD A18B 7A29 0C81 295B DF7C" /* Vհ.z).)[| */
- $"83E3 CD36 0E66 7E2B D8FA 3096 AA44 7F9B" /* 6.f~+0D. */
- $"F0B9 EA48 8CC7 0FFF 7E1C F394 CC5B 6A25" /* H.~.[j% */
- $"FD4C CECC 630B 38B7 D621 F081 73EE 9D40" /* Lc.8!s@ */
- $"7FAD FADD 8111 6492 599E DD2C 3600 FF6C" /* .݁.dY,6.l */
- $"5A8D B0B8 2AE7 668D C5A0 826B FA0D C5B1" /* Z*fŠk.ű */
- $"6873 D749 B533 9627 C2F6 4922 63F7 8944" /* hsI3'I"cD */
- $"15C5 A1F9 8539 A21A 1CEB 1C2D 7D1B 0516" /* .š9...-}... */
- $"FD6C 5D4F 92A3 14D9 126F C5FC 4116 B499" /* l]O..oA. */
- $"D878 D889 9123 D3C8 4637 36E3 8644 6F0B" /* x؉#F76Do. */
- $"D2C6 A599 B793 1367 B548 23BD 8836 11E5" /* ƥ.gH#6. */
- $"C323 7AD5 0534 3D05 A4E6 70B3 0376 2B0C" /* #z.4=.p.v+. */
- $"A964 173B F0BC 2A52 7FE4 2A53 85C2 22B2" /* d.;*R.*S" */
- $"B83F 7185 FB4C 3769 5B3E 4A24 E7E1 D0FD" /* ?qL7i[>J$ */
- $"9B17 8737 FE8B E4C7 9FC1 0E30 D904 D0C5" /* .7ǟ.0. */
- $"D2F5 05E4 3CD6 5FA7 B9AF FB98 755E 0BAF" /* .<_u^. */
- $"E4EE 408D A8BE 5E58 07A6 059D 1B33 37F3" /* @^X...37 */
- $"8D14 871A 7FC6 43ED 6A6F 8F41 9681 095E" /* ...CjoA^ */
- $"EE46 5BA4 1E15 F5F2 3063 E524 A62A 7C7F" /* F[..0c$*|. */
- $"0E38 5D00 A378 8F6D 3861 2088 EDD7 AC24" /* .8].xm8a ׬$ */
- $"D3B6 B052 DE10 357D B65A 1414 4596 8E3D" /* ӶR.5}Z..E= */
- $"97E3 D838 9ACC 3C84 AF82 EA8D 8BD3 0180" /* 8<ꍋ. */
- $"1582 0654 BB61 1047 ACA1 29D3 7CFA 00C8" /* ..Ta.G)|. */
- $"BABC 146B 250C 8D19 8A4E A8B3 50D6 B986" /* .k%..NPֹ */
- $"2AD6 CEFA 02D6 AE11 FF7C B0A2 E6E0 30E9" /* *.֮.|0 */
- $"D904 4C03 3BC1 8B68 5892 30B8 7D69 C2D6" /* .L.;hX0}i */
- $"A9F8 56A2 7417 1E31 186F 09A1 4C11 6DCA" /* Vt..1.oơL.m */
- $"A62E 5FCC F59A CCE8 6A29 B0DF E2BC E8BF" /* ._j) */
- $"92DF 70C1 8B09 21DF 1440 1684 4413 2A60" /* p!.@.D.*` */
- $"E033 6D92 8573 E63C 2746 6F40 D8F0 D0C9" /* 3ms<'Fo@ */
- $"10AF 85A2 CFBF 373B B250 85E4 C1D3 85D2" /* .Ͽ7;PӅ */
- $"E167 1222 DF4A 67D9 B3D6 55B4 B047 8675" /* g."JgٳUGu */
- $"C803 6AE5 E5AE AF92 C4B7 591A A040 98AC" /* .j宯ķY.@ */
- $"4412 45F8 BBC8 6482 F7BD 81B2 98FE 9D0B" /* D.Ed. */
- $"DAB1 2959 952C 9115 3504 9A24 BBA4 A04C" /* ڱ)Y,.5.$L */
- $"4125 5810 54F5 C268 63C2 1DB9 11CF 85BB" /* A%X.Thc..υ */
- $"D941 F5A1 0239 DED3 856D BBE5 7CF3 49C3" /* A.9Ӆm|I */
- $"C9CF 1BD1 A953 F58A F9AF E704 E70E 43B7" /* .ѩS..C */
- $"2B51 BE14 4FF3 262C 914B 90AF F2A9 E060" /* +Q.O&,K` */
- $"6A24 6553 B776 C48D 19AD ECD3 2DD3 8ECF" /* j$eSvč.-ӎ */
- $"9EC7 8A0D 97F4 3C69 6E56 0881 1136 C147" /* NJ.<inV..6G */
- $"E7D3 6FE5 A0C6 D7DC BCB0 76AC C4F8 DD65" /* oܼve */
- $"A5F9 02BF 2BFD 9A2C 354D 24C2 E088 6B63" /* .+,5M$kc */
- $"E514 C014 E8F4 F5C2 B529 74FB EC02 032B" /* ..µ)t..+ */
- $"A54B 696E B602 7D58 4542 824D BD8C 40FA" /* Kin.}XEBM@ */
- $"F675 5CD4 71C9 058E 7062 0E1B 10CC 72A9" /* u\q.pb...r */
- $"95B8 C5FD 7EAF 995C 62ED DDE4 6579 3181" /* ~\bey1 */
- $"8BA1 A02B 1559 F5BC E9C9 914D 8CEB D7D8" /* +.YɑM */
- $"7D81 20C0 A609 18D2 B679 7C08 FB00 E4C6" /* } .Ҷy|.. */
- $"2797 518E 32CE 67CE 3C8E 6796 A832 F712" /* 'Q2g<g2. */
- $"0037 059C 96CD 85A0 98E6 5D20 05F2 EC61" /* .7.ͅ] .a */
- $"335D AFFF 14BC 3EF9 0779 7A53 BAA4 F47A" /* 3].>.yzSz */
- $"6926 DAD2 72F9 5D4B 1014 8BD5 A4FA 68EA" /* i&r]K..դh */
- $"D9F9 F684 BFD5 F2ED FB9E 4C18 91C3 FF17" /* L.. */
- $"2D17 D99A DE29 FE6E 63A4 C901 8642 9357" /* -.ٚ)nc.BW */
- $"3120 4386 1938 E7D2 572D 0C59 E3C9 7FED" /* 1 C.8W-.Y. */
- $"30FA E54A CEF8 A94C F92D AF19 76EA 3372" /* 0JL-.v3r */
- $"B4E1 E7C5 8239 A4AC A247 4838 55E8 EB9B" /* ł9GH8U */
- $"DE7D 94E9 DBD7 07FB D488 1672 E61D 9E4C" /* }.Ԉ.r.L */
- $"6DF2 97D5 4936 F89A 5CBC D37A 8C2C F7ED" /* mI6\z, */
- $"9755 19F2 0350 AB2E D851 F0B7 78B5 9770" /* U..P.Qxp */
- $"4DF3 4212 9C9C CA3B 403A BA7B D497 9410" /* MB.;@:{ԗ. */
- $"04C6 288B 5058 5DC9 EB79 AB85 622C 9A55" /* .(PX]yb,U */
- $"2DA7 C113 9315 7CAE D84E 6B50 4062 AE94" /* -..|NkP@b */
- $"8F5E 7969 4BA5 56B2 E881 8C02 ED3B 5259" /* ^yiKV职.;RY */
- $"24CE C98A 4348 12B1 314F E3E3 B6A3 4E61" /* $ɊCH.1O㶣Na */
- $"A426 6350 E380 B0B5 DEFF 64CF 72D6 D4B9" /* &cP〰drԹ */
- $"907C 9BE0 7E4D 39F9 2BB7 C3DE D7C3 DCD8" /* |~M9+ */
- $"1F93 775F 0F44 DF0F A717 C3E9 D603 F269" /* .w_.D...i */
- $"FBE1 D36F 87B3 6F87 B280 E8AB DECC AF0D" /* oo̯. */
- $"6C8A C695 8734 87EB A75F 5130 05EC 9BA8" /* lƕ4_Q0.웨 */
- $"78DB 85A2 680C 75A0 EDD1 4AA2 7E1B BAFF" /* xۅh.uJ~. */
- $"5AFC FD6C 3E36 A6D9 923A 2DCE 24BC 35EF" /* Zl>6ْ:-$5 */
- $"27F4 8813 7CC4 0141 3CD9 9568 BFE6 BBB3" /* '.|.A<ٕh滳 */
- $"219B 0442 5227 3796 635D 0DE7 499A A701" /* !.BR'7c].I. */
- $"7F74 FB13 F9DF E737 08AB 0A91 3D9E B77D" /* .t.7.‘=} */
- $"E616 57BB 8BAF 7A0D 1B28 42E6 D653 6BD3" /* .Wz..(BSk */
- $"D7A8 9A2B 0905 6198 8809 E5D0 D0A4 F589" /* ר+.aФ */
- $"3D04 8161 C4CB 7BC9 96E2 9DA4 1C59 C982" /* =.a{ɖ❤.Yɂ */
- $"4705 B1BE 1E05 E391 5E89 43FE 6C67 4342" /* G...^ClgCB */
- $"636F 80C5 6A98 16E6 6B80 27C8 D0D9 B28C" /* coj.k'ٲ */
- $"6FD4 E109 61AB 8FCB D4CB 19ED 2BE7 B510" /* oa.+. */
- $"C0E8 5883 0642 92A1 6094 7E45 5D3F 819A" /* X.B`~E]? */
- $"4B6F AE8E ED0B 4B30 ABB1 2789 5C58 EEFD" /* Ko.K0'\X */
- $"06C9 EF2B 2A12 1731 7581 4428 C72D 2501" /* .+*..1uD(-%. */
- $"2C14 0DA4 2C98 035F FEA8 51A2 0E61 4C50" /* ,..,._Q.aLP */
- $"4A65 60DE FA1C F36C 62D9 A3FA 93A6 4CAC" /* Je`.lb٣L */
- $"C1D0 079D 912F A133 724B 13CC AFF4 1382" /* ./3rK.̯. */
- $"D61F 8AF2 A48B CCA6 5D66 4F61 E6BE 657B" /* .̦]fOae{ */
- $"7F5B 6F20 397A BBC2 3F23 86DF 2355 4A18" /* .[o 9z?##UJ. */
- $"15DB CB3E 201F FF7C 4AC9 C764 B098 CA46" /* .> .|JdF */
- $"C2CF 44C6 42E7 D30A FD05 380F 6BD3 24C1" /* DB.8.k$ */
- $"3998 C5C1 E7D5 0E2C 8D50 7FBB 7A11 6CB7" /* 9.,P.z.l */
- $"B80F 5A84 44BE E746 C43C 6B5D F055 7A3B" /* .ZDF<k]Uz; */
- $"77CB BFA9 2B73 06AF 9C8B AF37 F600 E568" /* w˿+s.7.h */
- $"EE70 09D2 B0A7 C201 94D9 AC58 E9A2 9D53" /* pҰ.٬X额S */
- $"94C0 D1C9 E379 E453 E4C7 27C5 C3F8 1161" /* yS'.a */
- $"D631 3F3C 0CFE 13A3 F6EB 3048 F049 CF11" /* 1?<..0HI. */
- $"5962 65AE 5D8E F911 A2E2 7787 6C78 F63C" /* Ybe].wlx< */
- $"E24C ED5B F634 B2B9 9DDF 51B0 94B9 1ABF" /* L[4Q. */
- $"BE93 4236 35A6 613E 3D1B C8FD 0587 27C7" /* B65a>=..' */
- $"F936 55E0 D0CE BF1A 50D8 51CE 6253 0293" /* 6Uο.PQbS. */
- $"1958 3FA2 BF6C 54A5 B158 4236 7F88 7DE4" /* .X?lTXB6.} */
- $"C231 6D0B 62F1 2C6C 1A1D F8AA 0317 C52D" /* 1m.b,l....- */
- $"D9D5 0B61 312B A074 B2B8 1905 FCF9 A102" /* .a1+t... */
- $"6188 616D 74E6 8232 245D 9C8A 4FD8 E2FD" /* aamt2$]O */
- $"0C6C 8F2E 5C82 5724 C542 3AE5 BA0A EE0B" /* .l.\W$B:. */
- $"2A14 BCDE 8005 4446 25B1 CF8A 6744 9F5C" /* *.ހ.DF%ϊgD\ */
- $"9B09 6571 3003 9F52 A42A 7669 CCAA 7A75" /* eq0.R*vi̪zu */
- $"F807 2530 7BA9 1474 F318 5A7B E64A 5DD7" /* .%0{.t.Z{J] */
- $"A6F2 13B0 AFA5 7BF8 46DC CABF 4D80 CC26" /* .{FʿM& */
- $"5838 4016 3C05 4550 C62F 1504 5B79 0816" /* X8@.<.EP/..[y.. */
- $"556C 8524 5DDA E914 92F1 3124 5C5B 3213" /* Ul$].1$\[2. */
- $"7851 D9B8 EE79 46CF 3F06 1EAB 662A FD9E" /* xQٸyF?..f* */
- $"E7D8 2E8C 938F 43FA B1B1 34B0 9207 34EC" /* .C4.4 */
- $"7A09 46BF 201E 311F EEEE 88EF C6C1 C10D" /* zF .1.. */
- $"E238 50C9 7F01 DFF0 2170 EDD1 7471 8C14" /* 8P..!ptq. */
- $"FB17 6678 A8B9 6611 9713 D8BB 8840 427C" /* .fxf..ػ@B| */
- $"8E5E 1608 D5E6 79B6 0BD7 3592 5D97 3864" /* ^..y.5]8d */
- $"71DF 6137 C0E6 2EB0 F71D 466C CFFF 50EF" /* qa7..FlP */
- $"FE99 2E4D 0DBB 537F 32F1 DECB D5D4 39DF" /* .M.S.29 */
- $"4FCC 2FC2 C399 8EB9 FC8B 2806 3FB7 F227" /* O/Ù(.?' */
- $"BA12 A288 9858 9159 B6ED 0DBF 3DCC 8FA1" /* .XY.=̏ */
- $"9CF5 836D 499F B9E7 DB4E 497F D3A4 57BF" /* mINI.ӤW */
- $"9F0A EECE 8E29 127A 82FF 4222 75AC 32D4" /* Ύ).zB"u2 */
- $"6540 8040 4137 9EB4 EFFF 7FEC 9D37 60B4" /* e@@A7.7` */
- $"184A 9567 71E4 F5FE 1C55 BB95 9FD8 BE6D" /* .Jgq.Uؾm */
- $"037F 052C 035B 91D7 903B 6EEC 1642 3D18" /* ...,.[א;n.B=. */
- $"0B05 FEC5 4C0C 9ED3 BFA5 94AF CBB1 E725" /* ..L.ӿ˱% */
- $"DFC3 AF74 2485 D5A2 7F79 1275 C7DD ADE1" /* ït$բ.y.uݭ */
- $"3BD5 AD19 74E6 EE9F 6846 7900 C09D 090B" /* ;խ.thFy.. */
- $"C17C FB0F 2C9F 4DEB B9FE 7152 A47E B1CB" /* |.,MqR~ */
- $"FB0E 7108 21C7 EFAB 8FA3 8AF0 2FDC 17A9" /* .q.!𢡊/. */
- $"2565 5082 BEBF 4DDD 0699 3265 82AE D421" /* %ePM.2e! */
- $"3776 341F C56C ECDA B302 0306 AE5F 37FF" /* 7v4.lڳ..._7 */
- $"7FB7 1192 8D68 5475 EE0B 4D80 6149 DEBB" /* ..hTu.MaI޻ */
- $"F9A7 D7E7 A35D 9515 8000 4F04 C4D6 670C" /* ]..O.g. */
- $"54B7 93BB D264 43E0 E8D4 2D4D D3E2 AEB0" /* TdC-M⮰ */
- $"FBAE F5BD A155 A8F2 07B4 AAA6 CE0A 84CC" /* U.„ */
- $"907F D5C4 9900 8FE2 0E0D F385 55A0 CDFF" /* .ę...U */
- $"7FFE D776 193F A5C4 0334 DD15 7A6A 0890" /* .v.?.4.zj. */
- $"DE98 5707 7799 9A5B D638 31B9 982B 5623" /* ޘW.w[81+V# */
- $"3AFA A84A 20E7 417C F56E 7776 0C54 0765" /* :J A|nwv.T.e */
- $"91DE A19E 3DD2 4D8B F9F9 0D61 6343 0746" /* ޡ=M.acC.F */
- $"7D72 600B 4E15 FC8F 60FA A273 4348 A86E" /* }r`.N.`sCHn */
- $"E11A CD6B 3FFF 7ED1 E486 AAAA A380 045A" /* .k?~䆪.Z */
- $"70E5 3753 4FFF 7FC6 ADBE 8E71 66FF 8165" /* p7SO.ƭqfe */
- $"D782 24E8 7399 0C15 03BF 29B5 5685 FDA1" /* ׂ$s...)V */
- $"5BAD 5751 6D53 799A A7C6 572E 6A37 B46A" /* [WQmSyW.j7j */
- $"B9BF 05BF 3131 F7DB E3B8 8F11 EE2F 13D6" /* .11㸏./. */
- $"7DE9 D552 0B25 FEAF AEFE F0A7 FBE9 487F" /* }R.%H. */
- $"9085 0FFA 23FE A9DB 0494 B0E1 FEFD 1D50" /* .#..P */
- $"15B4 6548 AAA0 0182 C5FF 7D24 05C8 B15E" /* .eH.}$.ȱ^ */
- $"E45F A508 3C68 CA73 3A57 A35E 462D 9213" /* _.<hs:W^F-. */
- $"9D19 A4FE F266 C323 64FF 7B71 19F7 0BC3" /* .f#d{q.. */
- $"062C 20C4 9745 F075 6FFF 31F0 A3AD 4C84" /* ., ėEuo1L */
- $"00F3 104C 0064 3899 0DB9 8128 CB5F FF46" /* ..L.d8.(_F */
- $"7184 41CB 7E58 4C0B ADD5 CBB2 1A61 E3D6" /* qA~XL.˲.a */
- $"B45F 489E 7FE9 D915 2B77 0776 98BD B3A6" /* _H..+w.v */
- $"230E B817 1D5A D937 3251 2449 6B0A 5A13" /* #...Z72Q$IkZ. */
- $"C4E0 BB45 CB72 9758 9E56 158D B1E6 9590" /* ErXV.敐 */
- $"4FC4 0611 EDBC 426F 6D2B D932 D595 A74E" /* O..Bom+2ՕN */
- $"8728 58CD BD02 9746 DBA2 7EAB 0F07 363C" /* (Xͽ.Fۢ~..6< */
- $"BAB3 1228 E02A BDB4 373F F3FB FF7D 8D0D" /* .(*7?}. */
- $"2193 09F4 7603 A017 98B1 421E 7A47 D126" /* !v..B.zG& */
- $"82FD 5449 B97F F864 5CD5 19F6 A8A4 F216" /* TI.d\.. */
- $"A4B3 FF7F E820 4C58 DE4B 944B 6FD4 F4DA" /* . LXKKo */
- $"596E A688 456C 3F0D 7844 1596 2BED 0D5D" /* YnEl?.xD.+.] */
- $"FAFB 8D2E D7D0 ABCB B2BE 8D80 E74D 9EDC" /* .Ы˲M */
- $"7FFF 7FC9 2FB9 3BDA F47A B9C2 E1B8 5CC8" /* ../;z\ */
- $"14AB D534 7208 32FE 73D2 EF23 862E 10F8" /* .4r.2s#.. */
- $"C16F 1FFF 6FBB FA97 5167 CDAD 4886 8FC2" /* o.oQgͭH */
- $"BFFF 7FFE 2B73 126E 1EC8 C82A 3F6D 6CC3" /* .+s.n.*?ml */
- $"D98A D501 1DC2 82FD FF57 9731 B866 2A7D" /* ي..‚W1f*} */
- $"C983 5F41 893F 2D09 F81C E373 42C2 5963" /* Ƀ_A?-.sBYc */
- $"7E9F C269 2B8B C21A 8247 D433 0DF7 491E" /* ~i+.G3.I. */
- $"D1BF 3D9E F4BD 1B50 8034 4EE9 4A69 B155" /* ѿ=.P4NJiU */
- $"849A B0F7 8CEA 3FD0 E4A0 C339 2431 ED8B" /* ?9$1 */
- $"793D 6354 12C0 97F9 C379 ADA9 7DEE E5EF" /* y=cT.y} */
- $"2366 FD9F 7F36 9703 7BCA 1455 6A98 F02E" /* #f.6.{.Uj. */
- $"1EDC 4707 C9A6 B325 A6E4 637D 612B B3DD" /* .G.ɦ%c}a+ */
- $"1E5A 3660 EEB0 BEFA 2C50 307B 5887 6D39" /* .Z6`,P0{Xm9 */
- $"0EC7 2D81 C32E 6B72 8546 30E4 133F 3D3B" /* .-.krF0.?=; */
- $"0A76 21AA 4387 8F29 03C8 1C32 755C F553" /* v!C)..2u\S */
- $"5CA1 C16A 02EC 4654 97C8 6F10 BA2A 16E0" /* \j.FTo.*. */
- $"DB18 605E 8A18 8A6E 4F35 1EF7 8C57 F8B2" /* .`^.nO5.W */
- $"0020 4D0A 1739 2287 ADE2 B0C2 D816 17D2" /* . M.9".. */
- $"21F8 3104 FEA8 38E3 8644 6F0B D2C6 A599" /* !1.8Do.ƥ */
- $"B793 1367 B548 23BD 8836 1143 D5DB 2720" /* .gH#6.C' */
- $"73BB 1485 DEAF C96F 24E8 AA26 56B9 89D3" /* s.ޯo$&V */
- $"8F8D 2F3E 5EA5 466C BE3C 6879 6C0A 5891" /* />^Fl<hylX */
- $"974E 6F22 0E47 66D4 BD1F 6A7D 1885 42CC" /* No".GfԽ.j}.B */
- $"7E13 126E AC98 74B7 B093 BDFF 37DB E527" /* ~..nt7' */
- $"E6D0 CF2A D7E6 E7EB 1095 05AF 6407 BB9B" /* *..d. */
- $"0227 D5EB 260A C844 340F B249 E84F 58A7" /* .'&D4.IOX */
- $"FA14 9D34 7614 73A6 BE73 ED76 B2CD 4515" /* .4v.ssvE. */
- $"F26C 3AD7 7C32 5480 5A3A C4DF 123A EA95" /* l:|2TZ:.: */
- $"D2B4 A3D8 F88D E685 6505 A999 DD9E C8D1" /* Ҵe.ݞ */
- $"A073 3702 5A8F 3598 F7DC A36F 0058 065E" /* s7.Z5ܣo.X.^ */
- $"65E6 B5AC 2A85 0F1C 43BF 8A10 43A0 BB10" /* e浬*..C.C. */
- $"4C3A 8F4F 95AD 253D EEE9 FBE8 4023 4647" /* L:O%=@#FG */
- $"7A75 8F1C 9245 3C51 3FF5 BD2B DFD3 57EF" /* zu.E<Q?+W */
- $"1FB4 900F 4546 6EFA A7AE 45EB EAE9 7B9D" /* ..EFnE{ */
- $"6408 1DCB F7AC BE44 7D08 1482 2257 A9CF" /* d..D}.."W */
- $"8B78 3610 9816 9518 A64C 215A 4569 6C5F" /* x6...L!ZEil_ */
- $"57E0 4F89 F77C 88D6 ADFC 8E42 9299 A2C9" /* WO|֭B */
- $"0F7C EA0A 7E98 B7AF 70ED 09A8 0759 B1A7" /* .|~pƨ.Y */
- $"C18E 2CC9 883F A788 A2F1 57B9 7A0E F384" /* ,Ɉ?Wz. */
- $"F0CE 46F0 E10A ED6F CE17 2BE1 25D5 3A36" /* Fo.+%:6 */
- $"5C6A F3AA F2D1 7225 6C5C 514F 8F1F 64A5" /* \jr%l\QO.d */
- $"B08E D05D 3E2E B3E4 DE48 12A9 7DC6 6E03" /* ]>.H.}n. */
- $"05B3 2AD0 EF87 EFB1 6D03 06E4 85AB 36C6" /* .*m..䅫6 */
- $"9BF6 8382 74F2 F321 62DF 269C 8D95 8FBD" /* t!b& */
- $"C4CA 7278 FDBA C51B A4FC C224 BD43 5F76" /* rx.$C_v */
- $"F9D9 0970 5EAA 5F05 FDCB 50DE 35E7 A82E" /* p^_.P5. */
- $"1E7E 584D 33D8 EF90 B221 622F 778E 460D" /* .~XM3!b/wF. */
- $"6DC9 383F CF41 7B89 7414 97EF EFE2 CC75" /* m8?A{t.u */
- $"8895 6AFD C6E8 610E 5E29 7AE1 FAAF 9FD5" /* ja.^)z */
- $"435F 3F61 6F9F AC78 7EAD 62BE 7DF7 7CFD" /* C_?aox~b}| */
- $"D3FD 5BAF 83F5 5B37 CF6D BE7E 9DDF 3F4D" /* [[7m~?M */
- $"80E8 ABDE CCAF 0D6C 8AC6 9587 348A 7A5A" /* ̯.lƕ4zZ */
- $"21F6 5D05 F6A4 1727 AC99 8E36 4607 A805" /* !]..'6F.. */
- $"1CA8 FB12 6979 4216 6FCF DF65 6135 AFF9" /* ..iyB.oea5 */
- $"5A1E 01C1 15A0 4F38 E547 6F65 858D 0788" /* Z...O8Goe. */
- $"49E3 07A2 D476 B767 EC21 FF65 559D 3B3F" /* I.vg!eU;? */
- $"B8A5 C1A8 6496 5183 24E6 93A6 DF2F 52F1" /* dQ$擦/R */
- $"19CA BFD7 1479 8040 2F9C 0DB9 00F0 49C5" /* .ʿ.y@/..I */
- $"3D32 5B0C 9453 8D1F 452F D9E7 75FD CD61" /* =2[.S.E/ua */
- $"44A9 62C3 F0C8 BAF0 6A66 A4D4 AA8B 73B0" /* DbȺjfԪs */
- $"C942 686A 4A1E E3A7 2343 A0ED D595 9AFC" /* BhjJ.#CՕ */
- $"5546 0ACB FD23 6F2E DCEE ABBD 70E7 FA93" /* UF#o.p */
- $"3FFF 7FC5 7D31 FA1C D910 1C70 6CDC 3362" /* ?.}1...pl3b */
- $"B0A1 C6F3 16D1 BE51 73D2 4697 37CA 8197" /* .ѾQsF7ʁ */
- $"A8C6 89C1 FF78 99EB 31B8 5F88 7B08 C557" /* Ɖx1_{.W */
- $"5483 A35C 0713 94D5 D2DF B84C 36CA D9EC" /* T\..߸L6 */
- $"8FC7 A305 814F 8B04 07D2 E391 5E89 43FE" /* ǣ.O..^C */
- $"6C67 4343 91DB DD56 C1D2 FEA6 9F1F 346F" /* lgCCV.4o */
- $"714B 79E1 7AC7 53A1 9934 69F4 E886 5A9C" /* qKyzS4iZ */
- $"6F9A D26F DD48 5F60 A72A 7E20 77F8 1BE8" /* ooH_`*~ w. */
- $"91B9 9018 8124 7694 3664 4202 7B94 1007" /* .$v6dB.{.. */
- $"4234 15FC 04A2 6DE0 DC6B 5EDE 4332 F592" /* B4..mk^C2 */
- $"779A A3BD 8E84 5464 DE08 6BAE AE2F 6EEF" /* wTd.k/n */
- $"CB75 5862 59D8 1362 5D60 79D2 137C 7606" /* uXbY.b]`y.|v. */
- $"F2B1 06DE 8A2F B76A A7D9 84DB 8F52 1107" /* .ފ/jلۏR.. */
- $"A42C 9803 2476 0448 42C9 A9E5 D0F5 9110" /* ,.$v.HBɩ. */
- $"2FAB AAF4 0752 81C9 6064 B8F7 6CEB 438E" /* /.R`dlC */
- $"DC4B 916C 21F0 1C8F 2A6A 1919 9E26 2B36" /* Kl!.*j..&+6 */
- $"3E51 F543 F7C5 2549 66D0 2F14 D18F 42F1" /* >QC%If/.яB */
- $"397B BA52 99ED 853C E07D 629B 92A1 2589" /* 9{R<}b% */
- $"B3A9 B812 DC8D A368 3204 F8AA 7549 AF2B" /* .܍h2.uI+ */
- $"2DE7 529C 1ECB 9747 A4B8 F6EC 8DDC 0AC4" /* -R.˗G */
- $"2C31 F042 C407 3F18 FD32 9280 60E4 60D8" /* ,1B.?.2`` */
- $"77B5 C019 A5FF 6E0D 8E35 A78E C7AA E95B" /* w.n.5Ǫ[ */
- $"D37C D883 5DD2 756B 385A 08BB 7708 AA5E" /* |؃]uk8Z.w.^ */
- $"5B89 0628 F831 7775 3555 A523 BF2F 721A" /* [.(1wu5U#/r. */
- $"099B E6B4 5128 9EA6 41E1 9B8B 18C1 928C" /* ƛQ(Aᛋ. */
- $"72A0 BD1E 84D6 836A C947 0982 284A 9238" /* r.փjGƂ(J8 */
- $"A06F E390 1BD5 BBFD 323F BA86 2091 BAD5" /* o.ջ2? */
- $"351D 16C5 1D44 E8C7 66C7 D469 047D 5548" /* 5...Dfi.}UH */
- $"7049 7B42 B682 DF4C 68DE B5D2 2EDC C105" /* pI{BLh޵.. */
- $"4047 9A7E 0403 F48B 6215 C3ED 8DBA 12E9" /* @G~..b.퍺. */
- $"EEFB B61B 906E F6F6 DDFD D030 CD1C 47FD" /* .n0.G */
- $"7C37 E7C7 DC08 213E 3C33 08E6 74A0 F400" /* |7.!><3.t. */
- $"7CFC 3B85 1A2E 5ACA 573F F24C 7D2C 0E3B" /* |;..ZW?L},.; */
- $"2A6D CEDC 6C9C 6E97 A572 915F A892 3833" /* *mlnr_83 */
- $"A08F 0070 A602 FB49 0EA6 62FC 4237 C568" /* .p.I.bB7h */
- $"E937 1DC1 1FC2 C3F1 AA30 AC4D DDB8 E747" /* 7..0MݸG */
- $"5EE4 FD73 8124 56EB ADBE 6DB3 F27B 80C0" /* ^s$V뭾m{ */
- $"E536 971B 511B C76B AB20 8BA4 4DCD BFCB" /* 6.Q.k MͿ */
- $"4A0C 34DC 3DDC 9BEF 5122 89D0 99D1 9BE7" /* J.4=ܛQ"Йћ */
- $"8840 002A A77A 25E2 9C2C F9BC 78F9 FB0E" /* @.*z%,x. */
- $"0DB7 4F14 B07A 12F6 65D3 ABE1 660D A84A" /* .O.z.eӫf.J */
- $"EFF9 A799 1852 8ED0 9582 B79A D812 1BE6" /* .RЕ.. */
- $"F3D0 D5FA 9C76 5EBD DBFD 42A9 F7B3 885E" /* v^B^ */
- $"4A68 DBE7 9663 FB7F 1AC4 5004 197F 97F0" /* Jhc..P... */
- $"F57B 135D 19ED E0E0 1C84 139C BA3B 2493" /* {.]...;$ */
- $"D997 333D B6A7 9E83 619C FCE9 9875 134D" /* ٗ3=au.M */
- $"4B31 FCB3 5808 B917 C8BB 0B67 4564 488E" /* K1X..Ȼ.gEdH */
- $"3554 8125 C3A4 DB4A 0BB2 E501 244C 1F49" /* 5T%äJ..$L.I */
- $"C6A7 51E4 6C51 A134 3DF4 CE21 2993 FF3B" /* ƧQlQ4=!); */
- $"80F6 AE0B B9F8 D1D5 8853 4531 6806 4F3E" /* .ՈSE1h.O> */
- $"D2B6 5F62 796A 683C D3C9 A22B 6D56 C497" /* Ҷ_byjh<ɢ+mVė */
- $"D854 2E14 C281 0F94 0220 BEE7 3754 D077" /* T.... 7Tw */
- $"EDB0 0F0E 95C1 A40B 55C9 B5AE 4DA8 A8A6" /* ...UɵM */
- $"ADD6 4A11 DE81 B148 70D3 FA4F 795C 9171" /* J.ށHpOy\q */
- $"C72E 7EF2 454C 0336 BE4A EE68 960E 25BA" /* .~EL.6Jh.% */
- $"E686 01F4 6FF5 3C7C 8B33 60D8 24D3 70A1" /* .o<|3`$p */
- $"06C6 E616 29D4 63D6 3334 379F 743E 745D" /* ..)c347t>t] */
- $"4EF5 ECB5 072E 9F62 0750 F7BA 6FDE B6B0" /* N..b.Po޶ */
- $"0BD0 4FCC 8F59 9B13 0C77 0A30 9BAE DF36" /* .ȌY..w06 */
- $"B13D D861 E92A 12C7 EC7A 0946 BF20 1E31" /* =a*.zF .1 */
- $"1FEE EE88 EFC6 C1C1 0DE2 3850 C97F 01DF" /* ..8P.. */
- $"F021 605A D52A 570D 7089 0C1B B3FE 8B4D" /* !`Z*W.p..M */
- $"E441 70AC 5F71 3FCE 527F EBF4 048A A307" /* Ap_q?R... */
- $"CEFD 4EB0 87ED BFE2 A36C 51B9 EAD3 37C6" /* NlQ7 */
- $"E8F0 9A3D 8F78 8747 81D4 33F0 9EEB 5EA0" /* =xG3^ */
- $"6FE0 A580 6B6B C126 1CE3 F1B2 DC9C CFCE" /* oीkk&.ܜ */
- $"42EE 7E91 EF2F 0DDF CFDE 75EB 554D 6941" /* B~/.uUMiA */
- $"07A5 21BE AD52 7CC1 49B5 FE74 AE40 F70F" /* .!R|It@. */
- $"AB3B 0C16 98F5 7742 3DCE 842D 0B2B 2FEB" /* ;..wB=΄-.+/ */
- $"5E90 DEBC 8BA9 81AC 40CC 0030 2853 FE9C" /* ^޼@.0(S */
- $"6FC2 569B 2CD1 6200 2881 802D 7697 8442" /* oV,b.(-vB */
- $"92C8 666B BC90 3252 F4D3 9BD2 AD14 0027" /* fk2Rӛҭ..' */
- $"CE11 F5A4 437B 3F80 B250 AA4C 23B6 AD83" /* .C{?PL# */
- $"277E 5EF0 8132 6331 9325 D1A3 CFB6 6F73" /* '~^2c1%ѣ϶os */
- $"D37D 780F 91CC CD40 6234 2FE2 F097 1681" /* }x.@b4/. */
- $"6097 88BD BFFF 18F5 2CBB FF67 FDBC 2F07" /* `.,g/. */
- $"67FF 7FFF 1946 84C7 A551 03FF 7F52 A7C2" /* g..FǥQ..R */
- $"8AC8 1080 56FF 0C48 1804 A884 A5A2 08FF" /* .V.H... */
- $"7FF5 3220 8043 9005 C25D DE15 02FB 7F2B" /* .2 C.]...+ */
- $"8205 5CA8 40BE EFB1 78F0 2656 2AD4 14FF" /* .\@x&V*. */
- $"7505 20CD 8BE2 8B15 47BB 9E26 105E 15DD" /* u. ͋.G&.^. */
- $"21A7 82AE E19D FE27 5D8B DDAD E13B D5AD" /* !']ݭ;խ */
- $"1974 E6EE 9F68 4679 00C0 9D09 0BC1 7CFB" /* .thFy..| */
- $"0F2C 9F4E 082C 2CB4 569B A7B0 0009 E098" /* .,N.,,V. */
- $"9AB0 9892 B1FF 6957 1D78 2613 4289 24C6" /* iW.x&.B$ */
- $"12BC E2EF C9AE E6D9 784F C157 77AB 3470" /* .ɮxOWw4p */
- $"D8C7 C746 1978 322D D4E9 FA24 B8B2 5054" /* F.x2-$PT */
- $"D643 8270 9090 D6D8 0C24 16E5 1146 421C" /* Cp.$..FB. */
- $"D6A2 40D9 1864 A800 0000 0000 0001 4554" /* ֢@.d.......ET */
- $"031E 793B 33D3 FD4A CE0A 3D8A 9D46 37B0" /* ..y;3J=F7 */
- $"4D2C 6F04 2BFF 071C 023F E153 6688 1815" /* M,o.+...?Sf.. */
- $"BA20 BF61 DDDF 2979 84E3 3348 50F6 E9B8" /* a)y3HP */
- $"634A 8937 FF7F F1AE E84B C95A 771F 4C9C" /* cJ7.KZw.L */
- $"3FFE 0734 7D7F 6E35 4A2E 21E0 E52F FF7E" /* ?.4}.n5J.!/~ */
- $"8532 8513 7869 A6E6 495D 3E58 F349 1EF5" /* 2.xiI]>XI. */
- $"886C 6441 9091 82E8 0C24 1507 0E02 A105" /* ldA.$..... */
- $"95C5 1409 096C 9A37 F758 F13A 5ABF 149E" /* .l7X:Z. */
- $"DA31 52E9 0DA9 0BFF 45EB 20C7 1A1C E54C" /* 1R..E ..L */
- $"29D1 6C8E D1EC 9D59 F945 4303 373F FF7F" /* )lYEC.7?. */
- $"CE95 B027 88F7 AB06 28B9 92E7 D540 BC2B" /* Ε'.(@+ */
- $"7167 8C6C C87E 32B0 C904 7D7D 278E E519" /* qgl~2.}}'. */
- $"707D 2C42 1714 C425 F9D0 DC01 D910 23DB" /* p},B..%..# */
- $"E7F3 391C A4E6 FAE1 C850 5A1F 456A 6690" /* 9.PZ.Ejf */
- $"3F37 F970 3841 73D3 1095 39CF 10A3 40F8" /* ?7p8As.9.@ */
- $"4CCC 4985 E3D5 127F 7CF4 92BC DCE9 2335" /* LI..|#5 */
- $"43FB 7460 8D5C C121 CFF2 1165 1CCE BBB2" /* Ct`\!.e.λ */
- $"5EA8 0279 2C97 E45B A43D 328C 7A6C 5EBC" /* ^.y,[=2zl^ */
- $"61DD BB2C E34E 25E4 1725 3C6B EC12 BFEF" /* aݻ,N%.%<k. */
- $"3E5E 0ACF 766D 9D4E 8978 2AC5 F138 755A" /* >^vmNx*8uZ */
- $"CBDD 8421 F74E 9A07 A070 16ED 100C 769A" /* ݄!N.p...v */
- $"6571 1FA0 4D62 8ADC A3F1 0AAA 2253 1A39" /* eq.Mbܣª"S.9 */
- $"0006 DF51 B09A 2267 BA13 3AD9 0120 8520" /* ..Q"g.:. */
- $"7375 BB11 0715 9FFF 7FFF 276F 9A44 4D02" /* su....'oDM. */
- $"9DF2 BE32 729A 8C71 FBC9 4C73 FA4B 1D24" /* 2rqLsK.$ */
- $"4115 B69E 4FFF 7FFF 45B5 7091 9925 CEBD" /* A.O.Ep%ν */
- $"6A4E 1AA3 BFFF 7FFD AA3B 4043 EE5A 76B0" /* jN..;@CZv */
- $"A073 CF17 7A58 3A06 649C B972 3CB8 897B" /* s.zX:.dr<{ */
- $"31E2 637A 05AC 83FA B94C 0F75 7113 FF7B" /* 1cz.L.uq.{ */
- $"E690 225A FB16 A961 626A B7FE 22EF 864B" /* "Z.abj"K */
- $"F464 1D62 4127 02B3 DB08 1C01 3ECE 1326" /* d.bA'....>.& */
- $"CF03 BF05 5771 4992 75FE 29FC 5FFF 60D5" /* ..WqIu)_` */
- $"DCC3 1B1F 40FF 6990 DC69 3E47 D09A 6E6A" /* ..@ii>GКnj */
- $"2866 9BA8 D74C BAAA 204E 05F9 DBFE E679" /* (fL N.y */
- $"E76C 383D 9F92 BB32 1E14 2CA1 CBD5 E93C" /* l8=2..,< */
- $"6C00 DFA2 B04F D650 3F14 60FF 7F73 29C3" /* l.ߢOP?.`.s) */
- $"E20E 5672 C31B 6D72 FDCF 8097 B8B0 1482" /* .Vr.mrπ. */
- $"C37E 4C4A 28FA 6E67 F061 E00C 371B 8655" /* ~LJ(nga.7.U */
- $"BDCB 2942 6AB1 0E31 38D3 6948 0D3F 6FEF" /* )Bj.18iH.?o */
- $"C2AB 669A E502 2490 C158 FC07 05F0 348A" /* «f.$X..4 */
- $"0505 F0B2 E7E3 F934 19DA 2DB9 9686 603E" /* ..4.-`> */
- $"C2C3 4B2F EB95 FB4E 62D2 F085 4364 9DCA" /* K/NbCd */
- $"A6E8 94F8 CC41 2603 5BFC 4E90 C05F 068D" /* A&.[N_. */
- $"414C 618C 8860 58B1 7059 0B4C 39E8 FB58" /* ALa`XpY.L9X */
- $"C413 43C6 BF39 CC12 6E5B F65C F671 DD29" /* .Cƿ9.n[\q) */
- $"8A03 BC15 FF06 2028 49E4 BF04 E6FC D4FD" /* ... (I. */
- $"401A CB9C 5F7F EFE7 8F41 E707 7803 9F1A" /* @.˜_.A.x.. */
- $"715F 951E E63A 9B4C 1404 32AA B5B7 98B0" /* q_.:L..2 */
- $"D5F4 CD69 DD15 9E81 D2FD 09F7 462D AF3E" /* i.F-> */
- $"31DA 85C4 5053 8460 C06C 7018 908C 4821" /* 1څPS`lp.H! */
- $"D8AB AC44 7666 44D1 EA04 8979 3A4A A0FE" /* ثDvfD.y:J */
- $"27D7 B0C3 DBAA 5233 F376 3CA8 4968 DF8A" /* 'װ۪R3v<Ihߊ */
- $"874C 2117 6A15 4664 03FF 7FFF 7F7C 2D12" /* L!.j.Fd...|-. */
- $"B28B 8A4C 6D72 1106 16E0 BF7F 9822 2424" /* Lmr...."$$ */
- $"3C1B CBC8 2F76 1AC7 FF7F FF7F EB42 22AA" /* <./v...B" */
- $"F30A 0C9D 6086 E561 E1BC C1D9 4E7F FADF" /* .`aN. */
- $"A85C B34C E2D4 FCF6 1A29 34F3 3B42 1DFC" /* \L.)4;B. */
- $"C6BD 370B D203 B0C4 1C7D C348 1EE7 EAD9" /* ƽ7...}H. */
- $"3145 E7FB 36CC 8E64 AB70 81DC 65E1 2C1D" /* 1E6̎dpe,. */
- $"9CB5 18A0 1C95 7DE2 96DF C185 7A40 50C7" /* ..}z@P */
- $"E32C FCC1 FF6B 14F5 05FE 0E1C 8757 8D82" /* ,k....W */
- $"3A41 284E 2906 8316 564F F479 4DCF FF7E" /* :A(N)..VOyM~ */
- $"5F11 3745 AC7F ED8D BC93 4205 7E12 E036" /* _.7E.퍼B.~.6 */
- $"0BE4 4B4F F99C F369 6B38 263E 63EC 6311" /* .KOik8&>cc. */
- $"D577 8B5D 7957 D24D 7D64 A2B5 1107 4625" /* w]yWM}d..F% */
- $"E1EB 2460 41A2 E878 5967 CEAE AE16 D8D5" /* $`AxYgή. */
- $"F960 B484 0B49 7253 26F2 714E 6A13 03E4" /* `.IrS&qNj.. */
- $"A0C3 3924 31ED 8B79 3D63 5412 C097 F9C3" /* 9$1y=cT. */
- $"79AD A97D EEE5 EF23 66FF 15BD C854 5DFB" /* y}#f.T] */
- $"5921 E05C 6A39 B68E 6444 6D55 3B7D 6DDA" /* Y!\j9dDmU;}m */
- $"9003 8F53 5C49 D978 31CD 41C5 DD62 7DE4" /* .S\Ix1Ab} */
- $"2F24 5932 A14F 9C9C 97B6 2652 5988 7970" /* /$Y2O&RYyp */
- $"F890 8A5C 9614 EBF4 DAC8 15D1 6F3C 07E4" /* \..o<. */
- $"7B8B F763 6803 394F 2291 8D88 EB1B 3136" /* {ch.9O".16 */
- $"10C9 5077 060A 7DB0 A890 CB7B 947F AD8B" /* .Pw.}{. */
- $"0AAF 67FF 5D78 615A E459 013B 6923 5E0E" /* ¯g]xaZY.;i#^. */
- $"900D BA9C DFF2 37D0 0508 B5F3 EA48 FADE" /* .7..H */
- $"D348 3F2F 8E71 E6CD B6BE 8941 8773 0E17" /* H?/qͶAs.. */
- $"E97A B699 5A4F 21C1 0766 538B B29A B8CA" /* zZO!.fS */
- $"FBAE 21FA 76A0 B197 C613 E523 B127 1FE4" /* !v.#'. */
- $"0AA8 798D 688E 8F27 E386 446F 0BD2 C6A5" /* ¨yh'Do.ƥ */
- $"99B7 9313 67B5 4823 BD88 3611 E5A8 8054" /* .gH#6.娀T */
- $"3C15 C120 1B02 5B2A 2195 DD25 F90A 48A6" /* <. ..[*!%H */
- $"BF92 56B9 4639 F2BD AC5F 3350 9699 14A7" /* VF9_3P. */
- $"30A2 4B91 C33D 3175 F806 15AA 4B01 558F" /* 0K=1u..K.U */
- $"400B 8148 DAF5 29FD 0561 1CA8 7239 51F4" /* @.H).a.r9Q */
- $"A169 A92B EE2F 4F3D 2F96 029B 186B 7219" /* i+/O=/..kr. */
- $"C673 0E85 6FAC 9889 C64A 90AE DBAF E8E3" /* s.oJۯ */
- $"6607 DF2A C332 C690 840A 817A ABFF 3302" /* f.*2Ɛz3. */
- $"1464 A65F E1B3 04B0 90C6 51E5 6A2E 7EA2" /* .d_.Qj.~ */
- $"9222 EABA 0632 2F13 B1A3 2337 85B4 E390" /* ".2/.#7 */
- $"766A 98DB BDDD 9813 F7BD 8AEA 1AB2 BEEC" /* vj۽ݘ.. */
- $"BEE3 F4B7 EE35 6BB8 ADE1 E772 AEB0 7E66" /* 5kr~f */
- $"3F99 05C1 3339 69B2 C1D5 4CC7 DB0B 3C67" /* ?.39iL.<g */
- $"7F80 43C8 7B29 FA49 8C64 3FEB 6406 35FE" /* .C{)Id?d.5 */
- $"FAEB 4922 9410 5352 D4C0 00CB 72EA 56CE" /* I".SR.rV */
- $"22F8 673A D3E8 AAFA E992 5B7F 827C A83D" /* "g:[.|= */
- $"586F 54B4 69F8 C6B7 FF14 CFD4 4069 C50F" /* XoTiƷ.@i. */
- $"9E23 797E DE78 5B86 FCAE BDE5 B920 9551" /* #y~x[ Q */
- $"22EC 4155 0582 10F4 BF8C 144A 3251 97F3" /* "AU...J2Q */
- $"2E7D 1E04 969B 4C15 8BDB FAC1 9743 2B6C" /* .}..L.C+l */
- $"6EF5 C95E 47CB A380 A635 C17D AD97 42EA" /* n^Gˣ5}B */
- $"88A1 A63E FC76 A19C AE08 C868 115F 098D" /* >v.h._ƍ */
- $"A1BE 16D4 3BF4 91C9 6CF1 DBE0 E0CA 0DAA" /* .;l. */
- $"EFCB 2A06 908B 7BAC CCF3 4CF8 179A 615E" /* *.{L.a^ */
- $"590D AB18 CB49 E032 B8ED 2A8E 584A ACDC" /* Y..I2*XJ */
- $"4797 F732 B8C9 24A4 0E5C 85A0 FED8 E30A" /* G2$.\ */
- $"ECBF 08FB CDC1 E09D 9556 837A E086 95AC" /* .Vz */
- $"BA2C E411 756E F132 9CE6 EDC4 6C90 B09E" /* ,.un2l */
- $"3C59 DE78 44D0 E445 BCA0 3AE0 05D9 7440" /* <YxDE:.t@ */
- $"F09F 10EA E0BA 4596 84F5 81A2 550E 57A7" /* .EU.W */
- $"F2A8 B2DD D612 A18F D74A 671D B70C 994A" /* .Jg..J */
- $"9441 8E10 12B8 80F0 6249 2075 CD39 3667" /* A..bI u96g */
- $"6632 AFDD 5E48 6B22 15CC 179A C6FA 47AE" /* f2^Hk"..G */
- $"66AF 7AFB 033D 03F1 B829 B852 F1BF 55DB" /* fz.=.)RU */
- $"17F6 E1EF A955 F266 ACFE 75F4 34FC 38B0" /* .Ufu48 */
- $"0068 7DD6 016E 98D4 57DB 6220 D269 4BE9" /* .h}.nWb iK */
- $"8007 22E8 9D82 8FCE EB41 317B D0FA 323B" /* ."蝂A1{2; */
- $"B2C0 06D3 99E3 ED9A 2423 78CD AE34 CF5B" /* .ә$#xͮ4[ */
- $"58DA 8F69 9604 4804 8682 B58C C1DA 1E21" /* Xڏi.H..! */
- $"0E4E F709 83E1 B335 F208 6565 C882 70A0" /* .Nƃ5.eeȂp */
- $"2F58 5379 3999 7F2E E63D 81E4 C2EB 58E3" /* /XSy9..=X */
- $"4605 35E7 76D7 C7D0 AEDA 26C5 8BB6 0F99" /* F.5vЮ&ŋ. */
- $"77C0 D3D6 9870 8279 4C2E 29C6 518F 13E6" /* w֘pyL.)Q. */
- $"1373 FCB8 FD55 3D8F 8322 F8F4 CD80 3C09" /* .sU="̀< */
- $"1496 931A E1BF 0AE6 2842 6FF7 6986 6AEE" /* ..(Boij */
- $"1AE9 FF0A 947D E3F6 D93F B59B F6D5 5FB6" /* .”}?_ */
- $"AAC7 EDD1 1FDB 5A5F 5549 7D55 2E1F B6A4" /* .Z_UI}U.. */
- $"FDAA F7D4 DF7D 4E80 F173 72EC 2AD6 46CC" /* }Nsr*F */
- $"6653 9F8A F548 8CD9 F7CC 0758 DFBD 1976" /* fSH.X߽.v */
- $"0832 03BE 1A6C 242F 4978 025D 37A6 D46A" /* .2..l$/Ix.]7j */
- $"B859 037D 5250 D0D6 8FC0 4C05 AAAB 7F38" /* Y.}RP֏L..8 */
- $"799B 43F9 E370 D367 B412 8CC2 F941 E270" /* yCpg.Ap */
- $"A967 1978 577B 7A22 541A 7DDD A593 75E5" /* g.xW{z"T.}ݥu */
- $"6B05 D950 D953 DA5E 7EBF D5D3 4314 5006" /* k.PS^~C.P. */
- $"8EC3 8474 6B41 83B3 7B16 9C95 721B 5405" /* ÄtkA{.r.T. */
- $"F4AE A41F 92D8 56DA F2C9 4BF8 5B0A EBC6" /* .VK[ */
- $"29D5 F4F3 36B9 A6D7 3BC4 75D7 972C 7465" /* )6;uח,te */
- $"CCBE 21FA 6EAF 6B26 465B 4676 356D E640" /* ̾!nk&F[Fv5m@ */
- $"04C3 0E39 C431 FBA5 2B53 E001 8F9D 37F5" /* ..91+S.7 */
- $"F289 EC84 85B8 5FC3 F74A 734B E0B1 ED8C" /* 섅_JsK */
- $"5DF4 6678 22E4 887C A45B 1478 DFC3 A9E9" /* ]fx"|[.xé */
- $"F234 5723 01B3 2685 2754 8133 8699 21C8" /* 4W#.&'T3! */
- $"180A 27F8 174C FED5 8F71 4082 C4E8 DB83" /* .'.LՏq@ۃ */
- $"BDA4 4506 3FA4 5286 5D63 00F7 905D A740" /* E.?R]c.]@ */
- $"5251 07FA 22F8 1334 FBA6 5640 7199 FA41" /* RQ.".4V@qA */
- $"A3C7 3CC1 ECF5 7F43 A9AE FBD5 C1F0 18B3" /* <.C. */
- $"7072 4809 0A4C 8127 6E10 5F7C 335C CC28" /* prHL'n._|3\( */
- $"B723 3D12 724D 3DE5 37B3 1C2A 136D 2258" /* #=.rM=7.*.m"X */
- $"DCE6 BFA4 0DAD FB6E 72C1 70F7 6D71 785D" /* 濤.nrpmqx] */
- $"BC75 69CE CE3B CF7A 170E 8343 CBA9 DE66" /* ui;z..C˩f */
- $"06ED 779C AA9F F28D 943D 5E3E DEDE 4769" /* .w=^>Gi */
- $"289C 5523 9792 EFAC 19A6 A945 B504 9446" /* (U#.E.F */
- $"A4DF BAA6 B5EB BAEF 7B92 3E08 6D17 870F" /* ߺ{>.m.. */
- $"9E0A 487E 8A60 90B5 E555 CD4F D2F1 FE67" /* H~`UOg */
- $"88DE BB6A E653 A2B6 F9C7 B226 2544 A167" /* ޻jSDz&%Dg */
- $"5DF7 5F35 F38B DB99 30F8 C210 AF41 C7A4" /* ]_5ۙ0.AǤ */
- $"167B 30B4 8B8D 0821 4ADB EFC6 5728 A86D" /* .{0.!JW(m */
- $"99A8 2A1D 51E2 4CE5 AEA5 7ECC 23CB 628B" /* *.QL宥~#b */
- $"E438 F41A A280 CF2E 8E51 5004 A9BA 64AB" /* 8..QP.d */
- $"B0AA 608C 8C19 38F7 567B 0C45 B7C5 0E2D" /* `.8V{.E.- */
- $"0F3D A192 B0F5 A567 4EE1 9FF5 F085 979A" /* .=gN */
- $"13DA 6FC3 89D0 0370 C986 5F44 AADD CAB9" /* .oÉ.pɆ_Dʹ */
- $"FBD0 8CDE 18D9 8FED 715E 264F 0D69 2CEF" /* Ќ.ُq^&O.i, */
- $"63F0 7A64 D65B 094A 6976 E6D4 E3DC 1583" /* czd[Jiv. */
- $"FE8C BD22 992E 3FDB AF18 03A7 0A74 8333" /* ".?ۯ..t3 */
- $"76E3 5195 C7FA A180 5123 7E0C 544B 9C8C" /* vQQ#~.TK */
- $"928D 3DF6 F330 4D6E 8049 11AF 064E 4E3B" /* =0MnI..NN; */
- $"B937 EE03 A4D2 F530 4513 47F0 5E98 E060" /* 7.0E.G^` */
- $"72C6 46EC B761 FAB4 B0FA 9A80 FF78 5408" /* rFaxT. */
- $"9152 452E 0111 2383 5E5F 6C4F FC53 0EDE" /* RE...#^_lOS. */
- $"1092 66D3 5F38 1AC8 1412 561A 4017 9110" /* .f_8...V.@.. */
- $"CA19 3E6F 8803 0908 5F57 A2E2 4744 E3C4" /* .>o.._WGD */
- $"F1BF 49F6 836F E294 610B 4098 2761 1502" /* Ioa.@'a.. */
- $"CCB2 0C11 81DD 05B4 ACD8 8F28 C5DD 1DD8" /* ̲...؏(. */
- $"58E0 C1E1 70A8 42BF 456F FE20 1261 1F81" /* XpBEo .a. */
- $"08AC FEB1 F89C 3576 EF94 A20C 255F 3B3F" /* .5v.%_;? */
- $"5E6B B0C0 4B3F EADC 8536 55E9 8144 C946" /* ^kK?܅6UDF */
- $"7613 8662 DCB1 C761 2BDA 412D C7D6 2D5C" /* v.bܱa+A--\ */
- $"BCC0 F84E 54E4 9B0B BDF7 4F45 FCA6 D6AE" /* NT.OE֮ */
- $"1754 31D1 E6CB 94F4 D163 2B1D 017D 4171" /* .T1˔c+..}Aq */
- $"ABE0 0285 395D 3D23 42D7 E641 348A 0C2E" /* .9]=#BA4.. */
- $"9C16 42C9 8E99 B654 8046 C365 EA71 CE64" /* .BɎTFeqd */
- $"B762 0E4D 7C48 617B CDB9 6264 2C81 4A9F" /* b.M|Ha{͹bd,J */
- $"8600 50B2 B985 EB73 DB96 82EA FF7D 1E50" /* .Psۖ}.P */
- $"6A49 AEA3 78E3 2DFD 0D59 3013 F257 AAA9" /* jIx-.Y0.W */
- $"0E5D 81DA E983 8D48 41BE DF0B FB34 AEA5" /* .]郍HA.4 */
- $"07B6 B0AA 1E53 1D9F B9C7 4CE5 8D46 6151" /* ..S.LFaQ */
- $"8000 0C24 1D66 1946 1073 4456 2361 E486" /* ..$.f.F.sDV#a */
- $"120F 29F0 6121 2D6A AF51 0C82 F68C B571" /* ..)a!-jQ.q */
- $"77AD BE59 9145 D105 DE8C 9500 0000 0000" /* wYE.ތ..... */
- $"0000 0032 BC9A BD52 00B4 6C6F 3753 1A96" /* ...2R.lo7S. */
- $"9B00 FCD3 F055 A11A AFB1 FB95 1610 88D0" /* .U... */
- $"8D32 9653 FC10 55FD B965 C1A9 B6BD 2245" /* 2S.Ue"E */
- $"D48B 8230 2EF5 56F1 6618 9F91 FEC4 4106" /* ԋ0.Vf.A. */
- $"F23B 7C8A 0320 79EA D7A0 D75F 09BD B985" /* ;|. yנ_ƽ */
- $"C22B E2F0 0508 64BA AA2F 2414 19D7 311D" /* +..d/$..1. */
- $"F709 E05C 809B 9E62 83F8 FF13 2DE3 01D6" /* \b.-. */
- $"8ADC F118 5A80 77C8 DABC 2FB5 CEF6 FCFB" /* .Zwڼ/ */
- $"7A94 2773 6CEC FAE2 7865 753C E612 E4AF" /* z'slxeu<. */
- $"657C 5C67 8FB3 1E56 A319 1ED1 FE48 0D8D" /* e|\g.V..H. */
- $"2431 B10B 8E15 0A4B FF7F 7EB8 D068 5015" /* $1..K.~hP. */
- $"151E C37C 0390 F6CC 64A8 0000 0000 0000" /* ..|.d...... */
- $"0000 0002 5991 79E8 2B17 082C ABCB DA90" /* ....Yy+..,ڐ */
- $"CE92 8CB0 E992 0710 2B8F CAAB D217 C4E9" /* Β..+ʫ. */
- $"E55E 11D2 6200 B530 5EF4 6932 1CBF EA6C" /* ^.b.0^i2.l */
- $"E58D 2AA9 68C2 89FF 7903 A6ED D674 F1FC" /* *h‰y.t */
- $"A256 3564 F7E0 4DDF CDA1 2729 F7FF 6EB2" /* V5dM͡')n */
- $"9D35 70A9 5447 924B B8E1 71D3 4A8A DECB" /* 5pTGKqJ */
- $"93E1 8FA0 140E C9B7 6124 8020 D660 3D22" /* Ꮰ..ɷa$ `=" */
- $"C708 222E 7289 B890 0002 00E1 2BC6 84B9" /* .".r...+Ƅ */
- $"25DF 442F 97FF 7FEF 68EC 7325 B92C A150" /* %D/.hs%,P */
- $"EE19 48C3 2540 0000 0000 0000 0000 0749" /* .H%@.........I */
- $"DD4A 9891 375B B0E0 C176 A698 672E F295" /* J7[vg. */
- $"0311 7B3E 2B87 B4B8 7FB3 5DF7 9C67 CBEA" /* ..{>+.]g */
- $"6A19 4107 C9F4 2B19 6829 179A 3FFF 7E8C" /* j.A.+.h).?~ */
- $"44A2 15E8 8E37 B422 F825 1862 58FF 7FFE" /* D.7"%.bX. */
- $"8EA1 D38C 727A 3071 1FF0 541F 6AB4 EA83" /* ӌrz0q.T.j */
- $"44A0 086A BAD7 6966 FC5D 0E72 A66C C301" /* D.jif].rl. */
- $"3E1F B82C 9192 20D5 0322 858F 224C 87F5" /* >., .""L */
- $"E940 85ED 7B36 EC96 D05C 21FF 7B10 59E1" /* @{6\!{.Y */
- $"E125 6C79 7852 2031 F3BA 34FB 6E57 BC3B" /* %lyxR 14nW; */
- $"69F0 C303 3A2A A573 D1E0 9836 C703 D02C" /* i.:*s6., */
- $"58CC 3DA7 FF0D 4301 F607 07C1 31FA 7F66" /* X=.C...1.f */
- $"89BD A759 90CD 107A E5BD 6398 D7BE F7BB" /* Y.zc׾ */
- $"E273 D09A F8EE D21B 1015 A513 18F5 5C7D" /* sК.....\} */
- $"FD20 E7C9 C6BE 3105 7A4B 831D 251B 4C36" /* ƾ1.zK.%.L6 */
- $"2A49 3EAC 1A86 9F87 09CC 0B00 2CF4 643C" /* *I>...,d< */
- $"7012 8574 D28F 952D E959 1093 FE7E F021" /* p.tҏ-Y.~! */
- $"028C 74ED 0E90 8DCD 5F06 B4BE EA1A 4C53" /* .t._..LS */
- $"A47F 3706 93CB 8FAB 7864 D123 4A39 B6BA" /* .7.ˏxd#J9 */
- $"CDCB 8AA9 2128 54FA CFB5 C4E1 F470 AD6E" /* ˊ!(Tϵpn */
- $"6A05 07C9 72AA 562E F22F C922 BCF9 7DDF" /* j..rV./"} */
- $"3565 1AD4 F707 7DC0 1038 129E 4EA0 297E" /* 5e..}.8.N)~ */
- $"1037 3516 64BB FF75 539A 5C03 F7A3 C14D" /* .75.duS\.M */
- $"C617 50C8 14F1 7C95 0372 1443 C3F0 7ED4" /* .P.|.r.C~ */
- $"EFDA FA88 BDD2 E947 7A43 A4A3 2339 CD58" /* GzC#9X */
- $"526C 8407 8211 1949 6431 DB89 390B EB27" /* Rl...Id1ۉ9.' */
- $"9975 F04F D507 AC80 5D51 95B0 992A 1AC6" /* uO.]Q*. */
- $"8699 86CC E64E 441C 2EFD 4F8C 70C1 DB2A" /* ND..Op* */
- $"5395 8DF7 E279 AA65 BA32 2FD1 48C9 F400" /* Sye2/H. */
- $"D0EA 663D 92FF 053E 130C A1A9 491B E583" /* f=.>..I. */
- $"6133 2EE1 AFBE 86B8 D218 B698 906D A5B9" /* a3.᯾.m */
- $"ACD3 9DC7 8720 C668 E134 1A1C 9C71 EA49" /* ӝLJ h4..qI */
- $"7AE9 9276 56E9 78BB 5679 18E2 6044 2763" /* zvVxVy.`D'c */
- $"2342 64F4 3952 2712 F704 B2E8 C1D2 35CC" /* #Bd9R'..5 */
- $"F0AB 5ABD 61A0 1CD5 5316 0E78 22E6 B807" /* Za.S..x". */
- $"8774 CA36 91EF 0BFF D969 6330 3900 00D1" /* t6.ic09.. */
- $"2300 0000 0C6A 5020 200D 0A87 0A00 0000" /* #....jP .‡... */
- $"1466 7479 706A 7032 2000 0000 006A 7032" /* .ftypjp2 ....jp2 */
- $"2000 0000 4F6A 7032 6800 0000 1669 6864" /* ...Ojp2h....ihd */
- $"7200 0002 0000 0002 0000 0407 0701 0000" /* r............... */
- $"0000 0F63 6F6C 7201 0000 0000 0010 0000" /* ...colr......... */
- $"0022 6364 6566 0004 0000 0000 0001 0003" /* ."cdef.......... */
- $"0001 0000 0001 0000 0002 0002 0000 0003" /* ................ */
- $"0000 0000 6A70 3263 FF4F FF51 0032 0000" /* ....jp2cOQ.2.. */
- $"0000 0200 0000 0200 0000 0000 0000 0000" /* ................ */
- $"0000 0200 0000 0200 0000 0000 0000 0000" /* ................ */
- $"0004 0701 0107 0101 0701 0107 0101 FF52" /* ..............R */
- $"000C 0000 0001 0105 0404 0001 FF5C 0013" /* ............\.. */
- $"2050 5858 6058 5860 5858 6058 5858 5050" /* PXX`XX`XX`XXXPP */
- $"58FF 6400 1100 014B 616B 6164 752D 7635" /* Xd....Kakadu-v5 */
- $"2E32 2E31 FF90 000A 0000 0000 D036 0001" /* .2.1.....6.. */
- $"FF93 CFC2 DC03 54F9 36EC A8DC 2A8C 3701" /* .T6*7. */
- $"118B 95C3 F2B2 5A7A 0428 C30A 2C64 B704" /* .Zz.(,d. */
- $"5C3C 6DED 8696 4890 6404 5638 430C 59C5" /* \<m톖Hd.V8C.Y */
- $"D913 B06B 0B08 E00E 1802 6D82 7225 E695" /* .k.....mr% */
- $"9F1E E7B0 D1DF 323C 61DC 1F25 E3FF 83E2" /* .2<a.% */
- $"A49A DED4 4495 A948 5B70 9E5A 01F1 2431" /* DH[pZ.$1 */
- $"8EE5 2B54 2863 9041 FAE9 9E9F 1B85 E206" /* +T(cA鞟.. */
- $"4104 106C 5027 632A 8716 C3A5 F047 B3D5" /* A..lP'c*.åG */
- $"EE2B 19CD 2B75 17D8 DFB6 E2BF 491E A41F" /* +.+u.߶I.. */
- $"BC48 3493 DEFB 453D 64DE DEA0 68DB EF5B" /* H4E=dޠh[ */
- $"1E69 8F3F C55C 1FF6 1823 1543 F483 DF20" /* .i?\..#.C */
- $"F5B4 08F4 5D20 4DF0 7D7D 2007 2ACA 5B5E" /* .] M}} .*[^ */
- $"159F EF4A 505D 811D A8A3 5476 5539 B45B" /* .JP].TvU9[ */
- $"3113 1AC7 00F3 F1A7 E9E3 9E88 5D91 6CD5" /* 1...㞈]l */
- $"2CC0 F92B 2063 FF29 4B0E 775A 06EE 75CC" /* ,+ c)K.wZ.u */
- $"DA54 AC2F B72D 1C25 1E46 A4F8 C3E1 7D8D" /* T/-.%.F} */
- $"85AE BBE6 3DBE EC4A 35F7 3B36 1FBF BC38" /* =J5;6.8 */
- $"2DC1 785C D644 2BED AB51 1950 2643 8730" /* -x\D+Q.P&C0 */
- $"2AE9 E4EB 1B8E 8F90 BA0C FF2F 6F65 5F28" /* *../oe_( */
- $"1A3F 9398 FF20 01A2 69A0 02C9 8D1B C3EA" /* .? .i.ɍ. */
- $"A600 6417 3CA3 9E84 93EF 063D 59DC 702C" /* .d.<.=Yp, */
- $"959D C3A6 B1ED DEF1 F321 5BA6 FCCD 7762" /* æ![wb */
- $"6C23 7398 AA59 4BBA 0052 B8A7 0608 1AAC" /* l#sYK.R... */
- $"5B2E AF60 17F4 278E 6433 6F75 7839 CED2" /* [.`.'d3oux9 */
- $"F32E 5D7D 9D40 B145 4CFB A25C D8D7 4BCB" /* .]}@EL\K */
- $"956D 88DD 4B92 64BF 4CD4 AFD5 6E56 9859" /* mKdLԯnVY */
- $"ABEF BB40 AD0E 6E1F 9B3B 16A3 D9D3 58DF" /* @.n.;.X */
- $"584E C303 1DAD D18B 6082 9C29 88EB 5163" /* XN..ы`)Qc */
- $"A42D 061A 1570 64A9 0F1C E00D 56D9 E0CB" /* -...pd...V */
- $"7C66 799C 8EB4 BFCA CF5C CFC2 B611 4F0C" /* |fy\¶.O. */
- $"AFDE 008C 3580 A270 0C1A 3737 50A1 9A89" /* .5p..77P */
- $"2546 BB2C 62A0 57BE 59CB C00A 1EE9 0F1D" /* %F,bWY... */
- $"C528 40D4 EA69 D281 AED4 B078 F27A 0B42" /* (@iҁ԰xz.B */
- $"7AD2 DADD 146B 7FFF 223D 6A74 2041 4FCF" /* z.k."=jt AO */
- $"46E1 60C8 9ABE 841E E18D 1712 DB6D 902B" /* F`Ț...m+ */
- $"7BE6 56DA 7E4B 1704 A373 2802 B120 0184" /* {V~K..s(. . */
- $"0681 4499 2739 CE73 9CE8 99D8 C352 337C" /* .D'9sR3| */
- $"06AB BB71 6257 16EF B535 4972 8C2F 2EE0" /* .qbW.5Ir/. */
- $"85CC 8431 D867 47EE CC43 6E87 A485 2316" /* ̄1gGCn#. */
- $"4927 AE22 C12D 49CE 739C E61C 97D0 99CC" /* I'"-Is.Й */
- $"3DC5 F26B 1A31 E742 3E56 464B 2944 108E" /* =k.1B>VFK)D. */
- $"CB0C F4C7 E144 47E1 47C1 F6BD 8089 21DB" /* .DGG! */
- $"8279 4533 01BF B9CC C444 AD53 5F75 D706" /* yE3.DS_u. */
- $"3FDD CA27 5D6C 9F54 1CCF F838 38E4 B2E4" /* ?']lT.88 */
- $"F9FF 429F 59FE D27B 4A5E A69F 2C21 38F6" /* BY{J^,!8 */
- $"5A74 D405 2FEE 50B8 E5F1 C489 2693 5B33" /* Zt./Pĉ&[3 */
- $"D2C2 9DEC 68ED F55C 1FAC 1401 8D66 795A" /* h\...fyZ */
- $"F5F3 27A3 5874 6681 9AC6 F41D A4E6 40DA" /* 'Xtf.@ */
- $"3EE5 CCEE 340C AF72 87FD 6B2A EB94 88EC" /* >4.rk*딈 */
- $"A61D A536 7AC2 C6B8 85D9 CEBD 146C 83B5" /* .6zƸν.l */
- $"F5E0 A3C7 B524 BC64 B6B5 91A6 BF91 C547" /* ǵ$dG */
- $"BD87 811F D58E 8E51 BB89 FA6C 5257 33D9" /* .ՎQlRW3 */
- $"A964 A4AB 3BB9 9608 BECC 0D9C D6B9 3D3A" /* d;..ֹ=: */
- $"CB64 28BE 3B07 6318 DF9D C134 9F16 567A" /* d(;.c.ߝ4.Vz */
- $"8127 5FFD F396 BA0C B86F AA17 2301 022A" /* '_.o.#..* */
- $"3742 CE95 B1AF F858 C503 8156 35E0 8F2C" /* 7BΕX.V5, */
- $"67D7 2D41 1F0B 5284 1535 AF16 6540 FB65" /* g-A..R.5.e@e */
- $"65BC 5F6B 136D 73A5 1C5D 3D92 FF5F 8494" /* e_k.ms.]=_ */
- $"FDBF E0C5 821F 072A 0EEB B855 6B42 CEE8" /* ł..*.UkB */
- $"ABEE 381E 894E DF1E 29DD 4B78 3F0A F5EB" /* 8.N.)Kx? */
- $"B9F8 61B8 8266 3BD8 A2AC 5BC1 38F4 5098" /* af;آ[8P */
- $"3951 2437 1798 7BF9 EA00 12BF CF3E 9166" /* 9Q$7.{..>f */
- $"8253 6FF0 B942 70D7 C729 0866 33F7 3484" /* SoBp).f34 */
- $"ADF8 C3D2 4EF6 1DF4 0E6F 8E64 B470 1D5E" /* N..odp.^ */
- $"F311 9BD1 EDE1 BA5D 7601 2053 D70A FDCD" /* .]v. S */
- $"82C0 1BDA A35C FAD2 67AD E569 7851 10A7" /* .ڣ\gixQ. */
- $"EF9A 3533 EC03 E813 08B6 D984 1A1D 3DC0" /* 53...ل..= */
- $"7C8E E03E 4A44 03E4 7894 FF1F 080E 2BFD" /* |>JD.x...+ */
- $"EEB4 E64A C757 389B 5780 3AF8 248C 580D" /* JW8W:$X. */
- $"461B D417 66BA CEB2 2042 3C84 DAF9 C127" /* F..fβ B<' */
- $"63E9 168C A9E3 D418 61E8 C46C CF01 F59B" /* c..al. */
- $"4518 8833 3E62 5B14 BFD1 41A8 45D6 D311" /* E.3>b[.AE. */
- $"8431 80DB 1FD5 5839 DE81 BCD9 EAFB EE26" /* 1.X9ށ& */
- $"33DD 9E73 0B6F F957 26EE E7BA E0DA FF22" /* 3ݞs.oW&" */
- $"EA50 24BF A182 089D 749A 6AAF BFF2 224D" /* P$.tj"M */
- $"30D4 11D0 E07A A012 587A 0633 92B4 CBFC" /* 0.z.Xz.3 */
- $"8E1B E5AC 9025 A74D 2819 3F9D 8132 B795" /* .嬐%M(.?2 */
- $"458E 4651 1589 158D D24C A5B0 CBFA 359E" /* EFQ..L5 */
- $"BDB0 E4FB BFE3 5854 3E88 A646 71B1 9CB2" /* XT>Fq */
- $"BB4E BA8E E170 8CBF C1F5 3141 F537 C0FA" /* Np1A7 */
- $"9780 6448 BA3B 94D6 3E8B 7AF0 0B5A C7A2" /* dH;>z.ZǢ */
- $"4D05 C6BB 7F47 7102 F66E E4E8 3681 1C97" /* M.ƻ.Gq.n6. */
- $"0996 4491 F713 2A24 3756 2715 4B55 762F" /* ƖD.*$7V'.KUv/ */
- $"78CB 2608 0563 73F7 5626 9F35 0C54 6822" /* x&..csV&5.Th" */
- $"F061 792A 4AFC 163A 9F83 8F82 638B 524D" /* ay*J.:cRM */
- $"C21C 3735 DB76 6F4B 01F2 3E7E 5755 5945" /* .75voK.>~WUYE */
- $"6149 AAEE 1A88 7748 DC47 79E4 0660 318C" /* aI.wHGy.`1 */
- $"AA94 E92D 9879 C9C1 AC17 C828 7BBB 997A" /* -y.({z */
- $"315E 858F F31D 3522 A6D2 B3BD E548 DBA2" /* 1^.5"ҳHۢ */
- $"3274 749B 11C1 9570 D715 0350 4CC4 6820" /* 2tt.p..PLh */
- $"560A 8542 A38D 913B 3863 FF5C 97F2 9BA5" /* V…B;8c\ */
- $"893F 6C9B 15A2 EE40 BCD6 2676 80A9 AC89" /* ?l.@&v */
- $"9054 849D 859C 8DCD 181B 64F4 6D7B 71B4" /* T..dm{q */
- $"FBD3 0C84 21D4 CC6C CF84 F40A A3CD C958" /* .!lτ£X */
- $"928E 97E5 346C 6497 2888 7903 5B0B 3277" /* 4ld(y.[.2w */
- $"B4D6 9AA4 86C3 C691 CA1A 3C92 FCFB 02DE" /* ֚Ƒ.<. */
- $"A25E 5C5C C6A8 1CE2 F5B5 88AB 3673 F912" /* ^\\ƨ.6s. */
- $"96AF E6BC 67FF 40CC 068D C6E3 8435 48AF" /* g@.5H */
- $"B929 F509 0F59 3410 A9A6 1087 8352 11EC" /* ).Y4..R. */
- $"23CF CD2E 3F05 487E 0740 9BE7 236F 56FB" /* #.?.H~.@#oV */
- $"D0F4 677F 9514 C6E9 50BB A61A 6135 73FB" /* g..P.a5s */
- $"37AA FA5C 0967 671C 8485 5326 6EB5 4955" /* 7\gg.S&nIU */
- $"1AAE 5FCE C271 D992 9E8C B0DF 7795 E0F2" /* ._qْw */
- $"A17A B50F E53A FE12 756F D1A1 5CE1 7C9B" /* z.:.uoѡ\| */
- $"D185 2C1A 9224 BC62 5C98 FA35 1649 6EA7" /* х,.$b\5.In */
- $"4C7C C191 DF92 9D7A 6FE9 71D9 9A11 5A19" /* L|ߒzoqٚ.Z. */
- $"214D F951 38FA C459 E39A 6DAE 1253 31DF" /* !MQ8Ym.S1 */
- $"B335 3337 39D2 7591 BFC1 31E6 887A 8BAB" /* 5379u1z */
- $"ECCD 7A58 8E4A AD65 A7E1 5FC6 8EB0 DA82" /* zXJe_Ǝڂ */
- $"0F81 6849 5CE5 AB32 B763 1227 3F4C 5691" /* .hI\2c.'?LV */
- $"43C7 DD24 E8D9 C4F3 7BB0 4666 7A24 1C5B" /* C${Ffz$.[ */
- $"F57D 719F 2BDB 3794 66BA BBB6 9D8D A662" /* }q+7fb */
- $"CF99 4DDC E533 96D6 EEE0 3FC7 BFB8 B1B7" /* ϙM3?ǿ */
- $"9AE3 57C7 E1A8 B1F8 6C5C 3F0D 19C1 812D" /* Wᨱl\?..- */
- $"8D31 C88B C396 B5E7 3CE0 4E2C AE73 7876" /* 1ȋÖ<N,sxv */
- $"0436 A295 BEC6 BDF1 C604 C41C 94E6 E7C1" /* .6ƽ.. */
- $"AC78 356A B92A DB37 3360 3372 6638 0C5C" /* x5j*73`3rf8.\ */
- $"F388 7CDE 4045 060F E713 C4C3 321E E08B" /* |@E...2. */
- $"0810 71EE A6AB C032 2B85 C34C 2671 8143" /* ..q2+L&qC */
- $"AFDE 07D1 A40C D86A ADBE B961 EAA3 54BD" /* .Ѥ.jaT */
- $"804D 6FA9 AA3F 7FBE BCD9 E785 A230 EA4E" /* Mo?.煢0N */
- $"1C08 1DF6 8373 7754 5039 7854 1192 1512" /* ...swTP9xT... */
- $"B956 E9A7 575E E3DB F5F9 4B02 F739 F2BB" /* VW^K.9 */
- $"91B2 73E1 3D19 EBB6 AD2F 291C 5BAC 5EEA" /* s=.붭/).[^ */
- $"EEDF 8DA7 5FCA 8E8C 952D 8FD0 441C 5BA4" /* ߍ_ʎ-D.[ */
- $"8AF6 21BE 1FAF DAE3 DADD EA91 EF73 58A0" /* !.sX */
- $"29E6 89B2 E279 B02A D092 DD08 6187 9095" /* )扲y*В.a */
- $"5C85 C903 0DD2 9ED3 538B D9BB E936 8ABB" /* \..ҞSٻ6 */
- $"E203 DD03 2944 5317 7BC3 0297 2125 F198" /* ..)DS.{.!% */
- $"D117 8DDB E382 71F8 D0A7 14B1 6D7A A0EB" /* .qЧ.mz */
- $"7C6F 7651 D2EC ECA7 F670 D09F 6CF6 30DB" /* |ovQpПl0 */
- $"0830 39B5 BC45 3915 4054 4490 A7BA 5CEC" /* .09E9.@TD\ */
- $"D37B FBC2 7890 B18F DEEA 4966 D46D 5FD2" /* {xIfm_ */
- $"7811 AAD0 8EBF FB40 0F30 D8A4 2B71 5A03" /* x.Ў@.0ؤ+qZ. */
- $"636A C360 C889 891D D420 A828 E337 41CC" /* cj`ȉ. (7A */
- $"3314 5473 B91F 7B78 2B3B AC7A 1127 F2DE" /* 3.Ts.{x+;z.' */
- $"E997 2101 6008 26AE 43D5 7CE7 8532 B9CE" /* !.`.&C|2 */
- $"A81A 710E 5D87 49D7 3EF6 65A3 D533 977E" /* .q.]I>e3~ */
- $"7BE9 0CA7 8B28 9ADA AF4F 45A5 99BD E21D" /* {.(گOE. */
- $"D4B1 BB33 2508 C8D1 31E5 E9FB F917 A8E1" /* Ա3%.1. */
- $"2955 9008 F531 9010 575A 3AFB 59F4 CD63" /* )U.1.WZ:Yc */
- $"3EEE 2409 BCD4 E5F1 1418 6155 B6D7 A94B" /* >$Ƽ..aUשK */
- $"1D48 79A8 2F32 0770 476B CE28 023A DC86" /* .Hy/2.pGk(.:܆ */
- $"E008 813B E64A 39F5 58CE 3E75 DAA6 BD7A" /* .;J9X>uڦz */
- $"1528 FF50 0738 C132 5569 3C99 C4BC A20F" /* .(P.82Ui<ļ. */
- $"6DED 9310 6FE1 8BE4 BF4D D0B1 993E 0FD3" /* m.oMб>. */
- $"4938 1302 E4A8 FDA2 A7D2 4615 CD89 1E52" /* I8..F.͉.R */
- $"4160 51F8 BABB FEED 4281 0E0C 31CD 91D7" /* A`QB..1͑ */
- $"C7CF E302 E155 4188 0F06 097F 6906 2EC9" /* .UA...i.. */
- $"BE00 A1FB 0D99 8FB1 3B3D E3D3 70B8 4296" /* ..;=pB */
- $"F199 E066 15B5 920C 38A2 695F F2E8 81E1" /* f..8i_ */
- $"E0EC 34E5 97B3 9580 459F A2D9 E267 B847" /* 4嗳EgG */
- $"E302 3AA0 8631 8C61 5F8E 88DE 2FBB 394B" /* .:1a_/9K */
- $"B9EC 234B 6515 BDF3 BA80 AA30 3D50 2F90" /* #Ke.󺀪0=P/ */
- $"C26A D743 2198 707A 2DC1 9C64 1647 1FA3" /* jC!pz-d.G. */
- $"43A2 B1C7 C95D 1E19 9650 E616 F24B C118" /* C]..P.K. */
- $"FB68 CE23 485E BF50 ACF8 F669 B5A3 92AA" /* h#H^Pi */
- $"5625 BF48 8584 A6E7 DAC0 E203 2AF0 89A0" /* V%H.* */
- $"DB92 4924 9249 1BF5 D855 0470 51D0 AAE2" /* ےI$I.U.pQЪ */
- $"A1E5 FBC9 CB80 1798 2EB3 EB1E 9FD4 46E7" /* ˀ...F */
- $"63DB F02E 204B D35F 54DE 0FD3 2F81 FB63" /* c. K_T./c */
- $"9CEC 37F1 C9FF 5B63 B13D BFBD 1169 0415" /* 7[c=.i.. */
- $"0E97 DA89 25E3 92C7 01F5 50E6 2181 A536" /* .ډ%.P!6 */
- $"4020 C49B 1977 1BF5 5226 FD7D 668A D76F" /* @ ě.w.R&}fo */
- $"2954 58F1 F44F 2935 F136 18BD C844 05FD" /* )TXO)56.D. */
- $"E325 9012 9E92 6EC3 E822 D06F A958 C54C" /* %.n"oXL */
- $"6A4D 0A98 093C 481D 1424 7964 E810 7A60" /* jM˜<H..$yd.z` */
- $"F2C0 8287 A7F4 B307 FBDF 2550 567E 01EA" /* .%PV~. */
- $"2C45 4614 9A0A 04E8 397B 3DEC 6CDA CA95" /* ,EF..9{=lʕ */
- $"B754 699A FF29 B46B D6E3 BB8C 153C AEC0" /* Ti)k㻌.< */
- $"BEFF 46AD 744B B945 4C07 F7F7 178D 059E" /* FtKEL... */
- $"2E80 10C4 6DD6 F19E B649 73D6 8C57 7A6C" /* ..mIs֌Wzl */
- $"45DE 3D43 22DE C54A DFCD 64EA 9D77 1AC6" /* E=C"Jdw. */
- $"E15E A9A7 0D83 D53C 100B EC25 2B93 1D27" /* ^.<..%+.' */
- $"367A 864E D9C4 F0B9 DF5C 538D B2C0 24EE" /* 6zN\S$ */
- $"46E7 424C 2127 6BED B492 3354 86C9 D855" /* FBL!'k3TU */
- $"317B 6BE2 8205 C07C 9A42 03E4 D6B0 0F93" /* 1{k.|B.ְ. */
- $"4400 AFF0 AE8C D6D6 6729 AEBE 9CDE 5C69" /* D.g)\i */
- $"D95C 01A0 28AF 1E57 B12C CA6D F010 ED89" /* \.(.W,m. */
- $"4C46 38AA BAFC D67E 9E98 C6CA 85E4 433E" /* LF8~ʅC> */
- $"C450 03B7 E8DE 17B3 9CE7 02E1 BE72 100B" /* P...r.. */
- $"2EF5 787D 0D12 FC3B 855A 3F97 1850 05EF" /* .x}..;Z?.P. */
- $"A05D 7CC2 405B BA6D 9175 7C99 BE1C 2370" /* ]|@[mu|.#p */
- $"1F57 2085 13F8 B672 728D 1152 8232 1EE4" /* .W .rr.R2. */
- $"A666 BFD0 06A8 6CFF 3D73 D895 5968 A54A" /* f.l=sؕYhJ */
- $"3219 63AB D4CD 8E7D 52F3 D260 CE4D E329" /* 2.c͎}R`M) */
- $"F554 C837 34CC 2866 FA1E 1F34 B209 B8C3" /* T74(f..4Ƹ */
- $"097B 8DBC 8788 F621 2A57 5468 5FD8 852B" /* {!*WTh_؅+ */
- $"08A9 45F3 71A8 A26B F63C 2DB1 750F A833" /* .Eqk<-u.3 */
- $"4767 6D8A B551 FF10 9E54 AD5D EE2E 2207" /* GgmQ.T].". */
- $"44EA 0D21 75D4 779D E96D 49FF 47CE D775" /* D.!uwmIGu */
- $"D7B0 2380 5F1C 4185 EF0B BECB 1A55 9696" /* װ#_.A..U */
- $"81B8 94F2 4F5B 07D8 D5EC 9E2A 049D 5E87" /* O[.*.^ */
- $"2601 FB44 4AD5 C57B A7B0 8088 B723 134E" /* &.DJ{#.N */
- $"0B8A 375E B972 F34F F25A 2B68 3F15 4496" /* .7^rOZ+h?.D */
- $"5734 FE10 D742 67F9 9FFF 639C FAFD 23DB" /* W4.Bgc# */
- $"B90C F402 17F0 81C6 2656 EFD0 E011 C866" /* ...&V.f */
- $"15C8 4927 3415 BEC1 7876 E693 74CB DBEA" /* .I'4.xvt */
- $"7206 2246 23EC DCCA 51CD 72C1 8C41 1B85" /* r."F#QrA. */
- $"AE9B 6FA5 4286 03FB 7000 D94F 5A8B 8A85" /* oB.p.OZ */
- $"2F34 7575 E7AB 08FF 3CBD 328D D95D BDF5" /* /4uu.<2] */
- $"8070 0FAD B573 A91E 5F83 D32D 3337 A5B7" /* p.s._-37 */
- $"C6A7 3048 8D7C 3F01 F6BF 1BAB D684 0585" /* Ƨ0H|?..ք. */
- $"798A A28D 68A6 4993 22BC F35C E3A7 BABE" /* yhI"\㧺 */
- $"0D5B 7E43 2B91 5DA6 6821 0495 4B22 33C0" /* .[~C+]h!.K"3 */
- $"1217 1302 A7EB 1093 C8BD 3622 F0FD 14C3" /* .....Ƚ6". */
- $"EDBA 60FA B4C2 07D5 6D80 C177 9C23 24FE" /* `.mw#$ */
- $"C9E7 77A7 1945 4C1A 8945 129A 2581 498D" /* w.EL.E.%I */
- $"F2BD 5AD6 EF89 4D80 3EC2 DA29 E093 A726" /* ZM>)& */
- $"88F1 0796 E9F0 8F36 D342 7AD3 DEC2 2CCA" /* .6Bz, */
- $"45B9 35A0 DE31 D18B 2954 C38C 4B3A EEA2" /* E51ы)TÌK: */
- $"5CD5 333D 6C59 23C7 17B3 C98C 65EE 8117" /* \3=lY#.Ɍe. */
- $"22A2 574D D223 581B D09B 6473 3F85 6E2A" /* "WM#X.Лds?n* */
- $"81B5 F600 CAB6 1A02 3B24 D726 4344 536F" /* .ʶ..;$&CDSo */
- $"99AB 09C8 96EA B41B 01C9 7AC8 9478 B8AB" /* Ȗ..zȔx */
- $"69E3 1BF1 1100 AFF3 C59C 01FB 8EF9 047D" /* i...Ŝ..} */
- $"21EF 11DE D2CA BEE2 8372 5DDB C39C DE6E" /* !.ʾr]Ün */
- $"B652 35FE FDFB F1E8 2E91 778A 86C3 3117" /* R5.w1. */
- $"87D8 A7D5 7862 68B7 30C1 3B32 D209 0256" /* اxbh0;2.V */
- $"2BF7 DFEF 17C3 FC30 EF1D 9327 7041 FC3C" /* +.0.'pA< */
- $"674F 3069 DAB2 0EA5 BB48 DC2C DC66 F660" /* gO0iڲ.H,f` */
- $"9C9B C7C8 3734 C68B 7D5A 60A1 DF3D D3A8" /* 74Ƌ}Z`=Ө */
- $"E60C D15A 11C7 FB3B F75A 358E A7F7 16CB" /* .Z.;Z5. */
- $"67B5 097E E2A2 DE6C E40A FD52 8F75 43EF" /* g~lRuC */
- $"F5DF 5A51 BBF5 A074 791F F54F 9724 23C3" /* ZQty.O$# */
- $"F5E6 C4A3 E22C 1E06 3B71 A9A2 1C17 0109" /* ģ,..;q... */
- $"1B59 2742 AB03 0497 3E5A AD73 7FD3 DA51" /* .Y'B..>Zs.Q */
- $"9F17 A10E B9CF 7503 3395 8788 9D9D 4A58" /* ..u.3JX */
- $"F9B8 4A61 3DDA 7489 8086 9EAC 4D7D 62DD" /* Ja=tM}b */
- $"BF8B 9462 1CC0 6912 69BE 3BFE FED7 3174" /* b.i.i;1t */
- $"CAA6 A806 FF59 B963 ABEE 508B F428 D15C" /* ʦ.YcP(\ */
- $"82FC BA30 6907 C572 F2BD C0DB E9A2 44AF" /* 0i.rD */
- $"EED6 81F7 C602 F802 0374 CD1D 0F41 5E2E" /* ց...t..A^. */
- $"F54F E7AB C492 54F8 C570 48A6 1603 35D3" /* OĒTpH..5 */
- $"EA1A 6A6D FD79 27E3 F928 4E16 3A2D 43FE" /* .jmy'(N.:-C */
- $"6C3D AFC6 FA1C 578C 7BA9 7343 5B2C 7BB9" /* l=.W{sC[,{ */
- $"0614 915A 24C4 CAC1 A2D3 0EAF EAE8 7257" /* ..Z$.rW */
- $"EA2D 1ED2 3FFE 26A7 3E28 28D0 1AE1 D790" /* -.?&>((.א */
- $"A25D 1C6C BA20 E196 1EEC 9720 92EE 6E62" /* ].l . nb */
- $"E218 5609 944E 9A2E 9228 117A 6065 93FF" /* .VƔN.(.z`e */
- $"2B32 B2C1 7876 E657 E39E 8641 F202 62B4" /* +2xvW㞆A.b */
- $"20C5 99D9 F9E5 7D83 D807 EDB7 9A34 475B" /* ř}.4G[ */
- $"4F45 9AE8 ACD6 3098 A0C2 8D14 CBDB 9A2B" /* OE0.ۚ+ */
- $"0EF7 CB30 8B49 169F 1ECD 6F33 F063 65DA" /* .0I..o3ce */
- $"2A2F F0B0 EE29 91F7 CA11 748C 5E4E A447" /* *.).t^NG */
- $"0F7F 4B32 DB7A 366C 27C4 F178 33B7 5E9B" /* ..K2z6l'x3^ */
- $"BAAF 29CD A3EF 39BB 5FAD AD2B 5DCA 09E8" /* )ͣ9_+] */
- $"DB9A DD07 84DD 870E 2A4C 850B BD04 7F9A" /* ۚ.݇.*L... */
- $"1354 1DAA 0819 F583 1F47 5905 6597 5F07" /* .T....GY.e_. */
- $"7ED6 DFFA BA65 FA6C D01D F65F F833 D479" /* ~el._3y */
- $"BFD3 F3D8 57BB 3718 EBC8 5A2D 732E 464E" /* W7.Z-s.FN */
- $"6B46 9512 778B 8066 D5DA D21A 819D 5384" /* kF.wf.S */
- $"A84C AE56 92E2 2E9A 4D27 8A21 E02D 67FC" /* LV.M'!-g */
- $"EAA4 B3D5 9306 1D06 CC9A 84C8 D6C4 C7E1" /* ꤳՓ...̚ */
- $"4F47 E168 43F0 6EB1 9276 ED11 2C29 F1CB" /* OGhCnv.,) */
- $"90AB 1975 3405 422B 78EC 7776 FA5C 0A2C" /* .u4.B+xwv\, */
- $"F4B1 4F40 32CE D338 8911 EAB4 4CFC 7765" /* O@28.Lwe */
- $"D9ED C10E 114B 0909 1122 6832 A41E 3365" /* ..K."h2.3e */
- $"96EF FC81 A398 2FE8 0464 5D18 0C9F C1AF" /* /.d].. */
- $"8E6F 42CA BDC9 1DC4 770E 1C2E 01BD 62DB" /* oBʽ.w....b */
- $"7798 4167 FC4F B27D D7E6 32CE 7F95 954F" /* wAgO}2.O */
- $"653C 833E B4F1 C6C2 307E 0796 686E 6F5C" /* e<>0~.hno\ */
- $"6EE2 6260 4C0B 5329 36D8 839E 5F08 319C" /* nb`L.S)6؃_.1 */
- $"4CAE 85DE 6B64 F427 1358 C9FF 57B9 AF78" /* Lkd'.XWx */
- $"332B 82A6 0EBF 0F83 7A3C 8004 1402 6A12" /* 3+..z<...j. */
- $"FEE8 1612 2D8A 47FE 5BDE 2714 B393 E32F" /* ..-G['./ */
- $"013E BD7E 14FA 285D BF61 7CDA 3A92 734A" /* .>~.(]a|:sJ */
- $"520E 978D 8736 6AA9 847B 05C9 F28B 3D9A" /* R.6j{.= */
- $"9B2E 721C 9082 3EC1 362C D516 D306 1EB9" /* .r.>6,... */
- $"A95C EC63 3111 4ED2 054A EFF8 F26A 0E36" /* \c1.N.Jj.6 */
- $"7445 26A0 464F CEDC 924D B183 FAEF 28F7" /* tE&FOܒM( */
- $"AF76 2DBA F15C 4F45 4BFD E003 CDC1 A878" /* v-\OEK.x */
- $"6FB4 207C 2A45 1ED9 CE49 2495 F6A9 77E8" /* o |*E.I$w */
- $"E7FF 7FFF 7FFF 7FFF 70EC F373 E872 28BA" /* ...psr( */
- $"A0BB 38E4 AC79 94DA 6562 832A 9A7B EEA8" /* 8yeb*{ */
- $"6B09 FEA7 9249 2005 E7D1 D721 4761 B6DB" /* kI .!Ga */
- $"6DB6 DB6D 98C5 C208 FD98 41AA F430 3EAE" /* mm.A0> */
- $"7118 7229 50B1 07D8 C5CA 010D 4AB4 DE82" /* q.r)P...Jނ */
- $"53D3 E184 6561 DE5F 7236 BBF5 550D 4A83" /* Sea_r6U.J */
- $"555B 5C0F 9C0E F052 0080 F4AC 3912 DD30" /* U[\..R.9.0 */
- $"47C9 B77E C632 15D7 8EB6 CD51 0454 A805" /* Gɷ~2.׎Q.T. */
- $"2DAD F687 6CB7 B37F 2289 759F F7D5 8839" /* -l."uՈ9 */
- $"B3E6 BCA5 AA89 9D9D 599A 5BDD 54B9 7F7D" /* 漥Y[T.} */
- $"2770 11ED 2217 C539 0204 16FF 728A C52A" /* 'p.".9...r* */
- $"2D24 5FC7 E1D7 C47E 1DE8 C3F0 EA38 E730" /* -$_~.80 */
- $"2D9D 0AC5 991A F5DD 38EC 007B A963 8B4D" /* -ř.8.{cM */
- $"51BA A9FC AE25 908A 1B70 9145 EBA2 38C4" /* Q%.pE8 */
- $"168F 70BB 10A5 CAA5 A249 1974 03F3 AB57" /* .p.ʥI.t.W */
- $"3611 30C5 1F14 529F 040A A8EC EBDF F2FF" /* 6.0..R.¨ */
- $"232B 83FE C2D0 59D9 93C2 2A8A F86A 997F" /* #+Yٓ*j. */
- $"3207 03A7 C406 E96C C96F 23F1 1490 95DF" /* 2...lo#. */
- $"4024 67DC 3DE6 E1B1 EB60 1026 8786 531C" /* @$g=`.&S. */
- $"9A51 378D EE86 881F 496C 8854 9459 7799" /* Q7.IlTYw */
- $"11EC 4196 0C22 0F05 3762 D8F4 C348 7299" /* .A."..7bHr */
- $"793E 0718 14D3 D09C C192 80E1 9F7C 5CFA" /* y>...М|\ */
- $"429C 7960 2F8B 9063 C7E1 1447 7F52 D850" /* By`/c.G.RP */
- $"B80A F1D8 BE98 DC3C 9C44 3AB7 3DA7 E08C" /* ؾ<D:= */
- $"E7B6 07CE 2B69 C0E9 0C21 6133 1EC5 DAB5" /* .+i.!a3.ڵ */
- $"B079 413B FBA4 0259 78B8 DA3A E6D1 4AAC" /* yA;.Yx:J */
- $"2459 93C8 AD9A D69C AC40 5CF7 7385 1B18" /* $Yȭ֜@\s.. */
- $"D67D 82BD 5E44 3DF8 5D2F E6D3 CE47 0191" /* }^D=]/G. */
- $"6E57 0F2F E8E8 9FF0 14BC 21F1 7720 6F34" /* nW./.!w o4 */
- $"1EEE 5EF6 F8FD 5481 44E3 AB6B B06E 2556" /* .^TDkn%V */
- $"6F07 AD65 FC95 7C32 7487 10A0 3C20 9CA7" /* o.e|2t.< */
- $"B0EB F703 2D09 F0A6 D3FD 55F6 354B EDB0" /* .-U5K */
- $"179B B267 B9EB 8DA1 ED8E 7D0F 1AFF 4D50" /* .g덡}..MP */
- $"C1C7 A686 586C 6A26 3B0B 4292 60A0 A804" /* ǦXlj&;.B`. */
- $"04F6 5FDB 0F76 E2BC D680 20B5 46AE 399D" /* ._.vր F9 */
- $"CC54 82A4 1DCA 08E7 E2B4 6710 ABD8 FC18" /* T..g.. */
- $"949B 7076 11CD 598E 2A8B 99FC CC28 EC17" /* pv.Y*(. */
- $"451C DE31 F7F4 C47E 3ABB AF03 FDC6 D875" /* E.1~:.u */
- $"BD0C AB3E B78F F942 A53E E5F8 CA09 414D" /* .>B>AM */
- $"7544 D5B4 8367 3256 6D8C CB66 6DE7 E99C" /* uDմg2Vmfm */
- $"88E9 FCDC EB55 F67B 20E7 F44D 7616 6B29" /* U{ Mv.k) */
- $"124A C9AB 95C7 E9A8 209D EDA5 499F 2D2F" /* .Jɫ I-/ */
- $"20E5 DE8C 2EEE 92AF 4BD6 484B 7E18 2D81" /* ތ.KHK~.- */
- $"0502 F439 C742 BA21 693B 43C5 60DF 8BA0" /* ..9B!i;C`ߋ */
- $"9EAC 0A98 DFE4 DB4B 0BE1 E526 9B74 5982" /* ˜K.&tY */
- $"1817 EA6B 067A D3E4 8786 883D 26DB D361" /* ..k.z䇆=&a */
- $"C40F 89F4 B31F 2AF3 1369 FDA9 889A 5620" /* ..*.iV */
- $"9AE7 4384 7184 9D7F 6C37 F79B 9422 ADF3" /* Cq.l7" */
- $"2BEA A620 14CF 0267 110E AB20 594B F1DA" /* + ..g.. YK */
- $"9D7F DB53 3723 1A4E 0DEC DF68 3A10 078F" /* .S7#.N.h:.. */
- $"8CA5 471B 4400 0975 92AA A351 8C66 5DDA" /* G.D.uQf] */
- $"0E4E C7B1 286F 2F7C E0EB 24CC 0A8B CAF8" /* .NDZ(o/|$‹ */
- $"4F0F 75E5 CACF 26F5 0FFE 86A8 1E77 5F03" /* O.u&..w_. */
- $"A8B5 A544 F04B A521 B3FA 854A 64FA 70CD" /* DK!Jdp */
- $"526F 97AE 807A 05FC 3F67 2471 61E5 2715" /* Roz.?g$qa'. */
- $"5774 E452 7E4A CDDA 6E48 0DA2 04B3 3A29" /* WtR~JnH..:) */
- $"DE10 8F75 3A3A 559D A881 B948 74F3 AB92" /* .u::UHt */
- $"B154 0F88 A11B A00B 25ED 9A59 B894 618E" /* T...%Ya */
- $"AD45 3D59 9C08 49EA 076C CD63 8F49 B714" /* E=Y.I.lcI. */
- $"32B3 8743 2506 F55A C011 CBEF C94A 8606" /* 2C%.Z.J. */
- $"EDE4 BE7D 2DC9 8830 6C23 91E0 0209 440C" /* }-Ɉ0l#.D. */
- $"9409 1457 6CA0 2201 8FF4 7573 54F8 CCEC" /* .Wl".usT */
- $"D201 4A3A 66A6 B191 4E14 4CB1 08B4 2100" /* .J:fN.L.!. */
- $"BCF2 3A0D 696F 4582 F8B0 3A60 2D09 E9A7" /* :.ioE:`- */
- $"8E83 CF44 A16A 6516 31C1 B51E 2DFE BDAC" /* Dje.1.- */
- $"356B F402 856C BEA0 109C A125 A759 E580" /* 5k.l.%Y */
- $"3501 F500 F252 9533 F180 6E7D 30A8 FD62" /* 5..R3n}0b */
- $"7FD6 B4EB 9120 8504 493A DD87 D79A 0CB1" /* .ִ .I:݇ך. */
- $"B674 7010 830D 8A38 5B44 B11D 3632 3FA5" /* tp..8[D.62? */
- $"CE31 CE9A 1670 AF20 16F6 BDA6 4980 002E" /* 1Κ.p .I.. */
- $"3E9E 8AB0 8B1F 63C5 28C3 7914 2833 137F" /* >.c(y.(3.. */
- $"0915 DD39 7D38 49A3 6054 B5DC 2509 EE11" /* .9}8I`T%. */
- $"D68A 5C2A C75B 5B9F 7A9A FF3A D06F 3331" /* ֊\*[[z:o31 */
- $"29E6 A9F4 8AD5 E0D9 7FB9 84B1 F403 8910" /* )... */
- $"1168 1270 19E2 E385 0353 0FFF 697F 96BE" /* .h.p..S.i. */
- $"EF55 21CA 25A1 CE5E 0CD7 03A9 094F 51FE" /* U!%^..OQ */
- $"5314 E59F 90EB 907A E37A DD9D 182A E41C" /* S.埐zzݝ.*. */
- $"CFFB 7262 0D9E B904 8D95 2DE3 E02B F5CB" /* rb..-+ */
- $"BF61 6012 924E 50D3 2D8D 6C25 FC60 8D19" /* a`.NP-l%`. */
- $"9855 8BF2 5400 0000 04E3 7684 B40E 9EE7" /* UT....v. */
- $"21F8 CB76 250B 7CE0 2605 7C84 7E9F F226" /* !v%.|&.|~& */
- $"6B94 0DB5 02AA 61E7 A9FF 5D9F A9F2 B546" /* k..a]F */
- $"2417 2E4D B238 ADDF 9233 5911 1D61 D35A" /* $..M8ߒ3Y..aZ */
- $"8788 DF34 284A 9664 B91E 7A11 4568 B395" /* 4(Jd.z.Eh */
- $"7C74 C891 2A46 C056 EE92 0459 D81C A41F" /* |tȑ*FV.Y.. */
- $"CA5E 4752 3ADE 89AB 995B 2BF2 D070 41B1" /* ^GR:މ[+pA */
- $"EBFE 65BF FF61 55F5 5460 A4E0 33CF 7F1E" /* eaUT`3.. */
- $"691A 0DA4 9372 4DCD 4A7C FF30 7DA5 4AD0" /* i..rMJ|0}J */
- $"1236 3C90 00C2 4517 FF78 771E DA05 952D" /* .6<.E.xw..- */
- $"1085 D433 FD50 1E6F D583 2585 CBD6 5CFC" /* .3P.oՃ%\ */
- $"9EF2 539B BE7A CCA1 ABF6 5AED 484B FF78" /* Sz̡ZHKx */
- $"D6BD 435E E56E 5510 3047 49DE C511 72CF" /* ֽC^nU.0GI.r */
- $"72A0 B2CE 5E4D E2DA 0AFA FEDE BDFD 3167" /* r^M޽1g */
- $"02FE 3FBE A1B9 7A5F 205B 7D60 1BA3 C975" /* .?z_ [}`.u */
- $"5949 A641 5A3E 5AF2 F237 53BE FCAC 71F1" /* YIAZ>Z7Sq */
- $"E3E3 6AEB 35B9 41BD C4B6 3400 DBA0 4B7F" /* j5AĶ4.۠K. */
- $"FF79 17FD 23F9 918D E532 F6BD F949 B633" /* y.#2I3 */
- $"6A36 7600 17D8 C912 DB72 6F48 869C 0D66" /* j6v...roH.f */
- $"1410 074A 8F5B 629C 5B8B F293 6DB6 DB6D" /* ...J[b[mm */
- $"B6DB 6740 B8F8 BF85 2938 ECDA 6390 6537" /* g@)8ce7 */
- $"5986 A2A6 B52C A20D F057 C41F 660A C203" /* Y,.W.f. */
- $"E5C1 68B0 9D56 DAD8 F20C 665C 5D04 4BA2" /* hV.f\].K */
- $"46FF 7DB5 4880 6121 2EA3 5D2A 82F4 B18A" /* F}Ha!.]* */
- $"50FC 2D12 DEFE 1F4D 01BF 3315 10D3 5D94" /* P-..M.3..] */
- $"11B1 0221 28B8 56D9 4CED 012D D9C9 4005" /* ..!(VL.-@. */
- $"316F E887 29A8 3E83 9E25 FF1F A4C1 5D25" /* 1o)>%.]% */
- $"8893 36E0 73BE DE25 456A 4678 B7C5 AD7A" /* 6s%EjFxŭz */
- $"90C9 3950 942F 1459 C737 31EF 991F 241B" /* 9P/.Y71.$. */
- $"C294 7CFB 9461 B43A 8D37 8A6D BBC8 D7F6" /* ”|a:7m */
- $"A128 281D DF2B EAC5 A154 E6D9 FF53 984D" /* ((.+šTSM */
- $"550E 9C70 3F64 0E0E 0940 0AFC 5CC9 CF43" /* U.p?d..@\C */
- $"7184 3D0F 9FDE 08DF EC31 B86E 0D38 AF71" /* q=..1n.8q */
- $"29F1 A21D 7847 7150 6DCA 9211 C778 F1A4" /* ).xGqPmʒ.x */
- $"26AA B90D 1A39 DB92 4924 9249 2493 36D2" /* &..9ےI$I$6 */
- $"4924 9249 2492 49FE 069C E7B9 CB0D 4E87" /* I$I$I..N */
- $"7D9E 9D29 FC64 8A6F 6185 2BD9 806F 760B" /* })doa+ـov. */
- $"464D 4732 BD90 0E7D CABF 2B6F 2A78 8608" /* FMG2.}ʿ+o*x. */
- $"DEF5 406F D401 3FD4 AE82 058D D6C8 B980" /* @o.?Ԯ.ȹ */
- $"FECA D9B9 E7B6 3982 9FD3 81EA 544B 30BD" /* ٹ9ӁTK0 */
- $"7E56 FD78 66FD 5A41 D0BD 7714 5FAF 2A1E" /* ~VxfZAнw._*. */
- $"8FDA B705 EAAE F6F2 D69C 9812 7194 A56E" /* ڷ.֜.qn */
- $"DB55 BF75 C4E4 BDCD 9FC2 ACAD C428 829F" /* Uu͟¬( */
- $"2409 3BB2 A894 8020 A8E7 FC16 F4FF 4E84" /* $; .N */
- $"C06E 889C 1C74 96AD 5420 F825 1A2B 015C" /* n.tT %.+.\ */
- $"6BC2 31EE 64AB 7A44 15E5 3458 8040 AEEF" /* k1dzD.4X@ */
- $"F6BD 7D58 6478 8344 018F D3C6 2E33 69A4" /* }XdxD..3i */
- $"E5E8 721A 5B2F 777B C0D8 0A05 2CE7 EEC8" /* r.[/w{., */
- $"69EF 417B A960 D320 842E 84DE D442 AB2F" /* iA{` .B/ */
- $"3B31 84FE DCFC A608 2E09 AA42 60F6 DB2E" /* ;1..ƪB`. */
- $"DA5B C95D D10A 77BE AD48 B5FF 0557 A5AC" /* []wH.W */
- $"327B F763 FDA1 32BF 7308 3EFC 0C2B 2D22" /* 2{c2s.>.+-" */
- $"584A F9CA BFB4 78FF 6E67 42CC B491 492B" /* XJʿxngB̴I+ */
- $"17C3 C746 9966 5780 BA6C 2798 472E 1CFF" /* .FfWl'G.. */
- $"6A32 69A0 86E0 44C6 1679 08F9 9928 48D9" /* j2iD.y.(H */
- $"3DA0 CBA0 1E5E 2618 7162 51C9 DEF0 56A0" /* =ˠ.^&.qbQV */
- $"1924 F126 CAAD F248 A1A4 2816 13A7 FE76" /* .$&ʭH(..v */
- $"594E 647C 36C4 C014 CDC7 5C89 DBAB 9854" /* YNd|6.\۫T */
- $"9094 FC96 5FED 7476 AA3C DF0B B47B C123" /* _tv<.{# */
- $"BE6D CD5A BA07 CC19 94FC DC37 B85C 0FD2" /* mZ..7\. */
- $"9FED 62E6 F910 2F49 529E CE10 9738 D296" /* b./IR.8Җ */
- $"A81C 1A0D 0FBF 7CAE DB93 40C0 3BC9 5A0C" /* ....|ۓ@;Z. */
- $"B23D FBD4 3863 C520 03A0 D966 5327 A0A2" /* =8c .fS' */
- $"DD06 B7A1 942B 0A75 CB23 8664 4159 8647" /* .+u#dAYG */
- $"2725 DAF6 693A 58D7 7A7D B34A 393D FE7A" /* '%i:Xz}J9=z */
- $"C105 C374 193C 123C 130E 062C 8AB2 32FD" /* .t.<.<...,2 */
- $"80E0 72E3 6AEA 2078 5D7C D3E5 4E20 D927" /* rj x]|N ' */
- $"157E 9DC5 1A29 2F0F C326 AFE3 3ACF C361" /* .~.)/.&:a */
- $"8C45 D79C EB27 7441 E4C7 8BFD 5832 DB93" /* Eל'tANjX2ۓ */
- $"78F5 B9DB BA4E 329E A262 C467 88DC C540" /* xۺN2bg@ */
- $"78E0 4E55 34F3 806E 2DEA B371 E9B5 D8DF" /* xNU4n-q */
- $"5EDA B5B9 1C48 5A11 ECAB E4F8 67B7 C76E" /* ^ڵ.HZ.gn */
- $"460F 8E6A C7BA B5F8 75F2 9105 1480 FD1A" /* F.jǺu... */
- $"80EB DB48 6115 AA6E 9AEA A07C 57B0 1A7F" /* Ha.n|W.. */
- $"0CBF D5DE 47A7 89BE 4CAE 19FE 7B79 5839" /* .GL.{yX9 */
- $"232D 495E 476C E267 D9D2 5257 F0E6 3EB5" /* #-I^GlgRW> */
- $"F140 AAAF 1E36 BA04 086A EEC5 3232 7958" /* @.6..j22yX */
- $"72E3 FCC3 9488 B44C 0C15 EF6B 811B CF97" /* rÔL..k.ϗ */
- $"0532 2B88 663D 8675 6050 AB94 A435 C0FC" /* .2+f=u`P5 */
- $"9E08 9873 92AF 6859 F7F5 64B0 0BA5 FA68" /* .shYd.h */
- $"3557 0898 9E0D 5795 BF67 2866 5FB6 63C6" /* 5W..Wg(f_c */
- $"4F82 42CE A682 DC8D CB18 D4FE 6252 95D1" /* OBΦ܍.bR */
- $"C85C 6B2C 0FC0 7C9D 5A80 F93B 8900 F93A" /* \k,.|Z;.: */
- $"8EE6 7513 4AFA 1609 3CEE D5EB B420 A1CE" /* u.J.< */
- $"318D 6F67 720A 7F84 4127 C0F2 9193 35CE" /* 1ogr.A'5 */
- $"6D97 9682 5E5D B9FC 5A97 3B71 AB1F 64AA" /* m^]Z;q.d */
- $"3383 1F0E C0E9 26BE E6EB 24CD 499F F2BA" /* 3..&$I */
- $"997D E886 6FF8 C6B5 0607 1259 7715 7539" /* }oƵ...Yw.u9 */
- $"4B57 F7A9 56A7 A04B 031F 0786 6C02 E7BC" /* KWVK...l. */
- $"8256 7F27 A39A B66D 6B95 6C11 CDE4 C580" /* V.'mkl.ŀ */
- $"54DE 7E26 129C EB67 ABC8 455E 6CC3 453E" /* T~&.gE^lE> */
- $"F9A8 3ED5 9B43 4EB8 384E 0F7B 28E0 16FF" /* >՛CN8N.{(. */
- $"1342 18B1 31B6 EAEF 4C40 36F7 0CFF 6AFF" /* .B.1L@6.j */
- $"8059 5D1C 275B 4F7D B392 4DB0 5E5D 4304" /* Y].'[O}M^]C. */
- $"4848 2A3A C93F BAD6 638D 315A 8771 1150" /* HH*:?c1Zq.P */
- $"1D41 B6A7 C9B8 782E 19D8 F8E7 07EB ED20" /* .Aɸx... */
- $"7D4E AFFF 5FD2 4FA0 2B48 B549 6A50 AD81" /* }N_O+HIjP */
- $"F11D 357F 7CB2 4B8B F28B 6C97 2C23 58A3" /* .5.|Kl,#X */
- $"92E8 2BFB 77F2 1ECE 7A2A C437 47E3 A833" /* +w.z*7G3 */
- $"D60C C3CA 168A 85B8 620C 109C 4134 35BF" /* ..b..A45 */
- $"ECCB 3629 944F AD29 444A C4B6 F019 F19B" /* 6)O)DJĶ. */
- $"4189 B1D3 8F28 65B9 85D8 C715 2E1A 267D" /* Aӏ(e...&} */
- $"A7DB 4C90 9829 BC86 E14C 9F44 757D 5436" /* L)LDu}T6 */
- $"9C38 979D 3654 9A63 E572 7864 E513 A083" /* 86Tcrxd. */
- $"C943 97C5 A88B 23A2 4ECC E4F1 AEED F3EC" /* CŨ#N */
- $"C57D F254 B087 7E1F 81B3 59E6 E2A0 E5CB" /* }T~.Y */
- $"B710 EF71 0598 01BF 1400 3814 0759 EDA8" /* .q....8..Y */
- $"386C 3DF0 F1C5 CA93 612F C58D 71BA 6ED6" /* 8l=ʓa/ōqn */
- $"FE35 90B4 9C10 A938 33B6 6987 E407 AE7B" /* 5.83i.{ */
- $"5B1A 8E0E BE53 1C94 D747 9303 2ED9 13FA" /* [..S.G... */
- $"226C F38A 7134 3CF6 1923 B85F A254 0048" /* "lq4<.#_T.H */
- $"A765 B678 FC9C 1E2C E183 FC80 CA83 9572" /* ex.,ʃr */
- $"E573 B224 9894 7316 C931 4A49 C28F 6E33" /* s$s.1JIn3 */
- $"B579 EE14 84BC 61CC 351B 41FB 7095 5F8C" /* y.a5.Ap_ */
- $"1B15 6DAF FF7F F8EA 5A11 5453 6ECA 1C02" /* ..m.Z.TSn.. */
- $"C8A4 F40F AD00 7BC9 EDFD AC3A 28E4 546F" /* Ȥ..{:(To */
- $"1E36 BE45 897E F5D5 BE25 E84B 57C6 9080" /* .6E~վ%KWƐ */
- $"B6C4 79B8 153B 110F D90B 215D 401C 0453" /* y.;...!]@..S */
- $"8243 BF4A CDAE 9270 0658 462F E0C7 82A8" /* CJͮp.XF/ǂ */
- $"E155 C547 D144 EBAD 74EC EAFF 7799 6D50" /* UGDtwmP */
- $"D0F9 6BA4 D8B3 0FBB B75B BC48 D5BA 8EAB" /* kس.[Hպ */
- $"FF7F 3A2A 820F D817 FB8B 7590 ED4A 3D7B" /* .:*..uJ={ */
- $"DAF8 C05F BDCF 1B7C 8862 53A8 95D6 C0DF" /* _.|bS */
- $"4069 36DA 0739 783C C432 1E0C 7DA6 2D70" /* @i6.9x<2..}-p */
- $"B33A C5AD 810A FBBD E9BB B776 6463 9FDC" /* :ŭ黷vdc */
- $"B401 211D 81BA A9FA 8761 ED36 A1EF 439D" /* .!.a6C */
- $"9880 BE88 E045 3068 F59F 7AD7 EFFF 7FFC" /* E0hz. */
- $"5562 1F00 0818 22D6 5002 F762 7A20 0DC0" /* Ub...."P.bz . */
- $"3ADD FF5D 1851 D391 F011 0000 0000 0000" /* :].Qӑ....... */
- $"0000 0000 0138 5715 ED61 F2C5 2C28 30C0" /* .....8W.a,(0 */
- $"F669 9389 6153 3A95 E010 CCA0 2FEF B36F" /* iaS:.̠/o */
- $"9576 F8C0 F17B 27F6 F6FA 412C 70C7 CF14" /* v{'A,p. */
- $"7625 6871 7FE2 16C9 B6E9 5BF1 1A16 E2F0" /* v%hq..ɶ[.. */
- $"945D E51E CCF9 0970 E586 517C 475F 8856" /* ].pQ|G_V */
- $"CA0C 1DD9 E001 D7BC 1876 745C 8077 672D" /* ...׼.vt\wg- */
- $"CECA FF0B 01D1 76FA 32F5 C047 26FB 451F" /* ..v2G&E. */
- $"5261 79B6 5990 79C9 4DF7 5B69 D548 E894" /* RayYyM[iH */
- $"F249 0C84 D3F0 9555 7B99 EA27 FA38 184E" /* I.U{'8.N */
- $"F863 AFA1 CE80 AEBC CB89 DD99 B8E2 0BEC" /* c΀ˉݙ. */
- $"2F74 E534 3FF4 B50A 4B04 02B1 C178 B189" /* /t4?K..x */
- $"D30F 77DC 8A15 8C9E AF87 1DCD D545 AC6B" /* .w܊..Ek */
- $"CAFB 832B E240 6752 8EF2 9BDF 76E8 621D" /* +@gRvb. */
- $"892E 384C 7BF0 4DE8 F910 7689 C3F0 E7E9" /* .8L{M.v */
- $"E401 C781 F341 A84F 6922 E97B FC22 E259" /* .ǁAOi"{"Y */
- $"6B26 9B03 14A7 DFA1 B7BD CBED 9539 5DE3" /* k&..ߡ9] */
- $"2041 2F5F A37A 2F23 00FC 6424 D7F8 902E" /* A/_z/#.d$. */
- $"7261 227B B4EC F4D1 9C18 22C3 8CA5 EFF8" /* ra"{ќ."Ì */
- $"5701 6734 9110 8B4E D9E0 EE8F 7FEA 202F" /* W.g4.N. / */
- $"CFF7 5CC7 6107 0B22 B0BE A87B 32EF 0FA8" /* \a.."{2. */
- $"3D2D 794E 556E 6089 ACBA D46C 17EC A9DC" /* =-yNUn`l. */
- $"0F4E D57D B8C8 EED1 F9D4 F96A 7BEE 3794" /* .N}j{7 */
- $"49DE 3AA7 EE2E 0B25 A47C 966A D90D C792" /* I:..%|j.ǒ */
- $"6304 7C05 C6EB A26D 83B8 3E0C AAF5 AFFE" /* c.|.m>. */
- $"FDC3 F7C4 C0A3 C3ED E8D2 0FAB AC58 1F56" /* .X.V */
- $"FF40 F44B 4289 C6D7 CC17 A019 AD4A C889" /* @KB..Jȉ */
- $"67AD 0673 32A0 B6BA 087E 7279 19C2 025F" /* g.s2.~ry.._ */
- $"DB0E 0E97 02D9 2268 5BCA CDE6 B94E 8D9B" /* ..."h[N */
- $"03EB D786 1698 2D8A 2ECD 432E D615 931F" /* .׆.-.C... */
- $"452B 5D40 0950 5BBE A70F BD95 9F0E 8B95" /* E+]@P[.. */
- $"86B7 47DE 0757 BFE4 9775 3082 9D22 863A" /* G.Wu0": */
- $"E404 B84C 5E88 8424 31DD 689A D234 88E2" /* .L^$1h4 */
- $"971F 9E59 429C 6C7E 3670 8F7C 8F86 A80D" /* .YBl~6p|. */
- $"848E E78B 5331 058E E444 FEC2 269A 7E23" /* S1.D&~# */
- $"608D 0502 E075 F7A4 DACF 515F AA08 31C1" /* `..uQ_.1 */
- $"1275 02C0 F37E F465 ADE9 1918 F1F0 0E4F" /* .u.~e...O */
- $"E5A4 41A5 F655 22D9 946A 7FEC 0720 3D3A" /* AU"ٔj.. =: */
- $"4961 05B2 F02D 51D2 1212 084B B3EA 5DC9" /* Ia.-Q...K] */
- $"F986 5763 A2AC E2AC 1144 5DC3 E6A5 D092" /* Wc.D]В */
- $"3654 3737 A598 21C2 34FF 097C B8B8 5934" /* 6T77!4|Y4 */
- $"C947 05C9 B4BA F52B 99FF 3AFE 6B15 2CAE" /* G.ɴ+:k., */
- $"06CF D962 CCDE D937 D4AE B3D9 7E92 E2AF" /* .b7Ԯ~ */
- $"8F4E 31CE 06E7 0AD8 71DB 4456 7101 E221" /* N1.qDVq.! */
- $"74AC 1159 9EDF 9841 CFA3 E04F DECF 6FD3" /* t.YߘAϣOo */
- $"90CC C22F 63B0 45CC C98B 3125 33C0 CFBA" /* /cEɋ1%3Ϻ */
- $"4CE7 3FAD F2E4 85E7 0C74 35A5 97E9 8672" /* L?.t5r */
- $"9180 E059 EF0F C416 E25F 0E83 095A 36AA" /* Y.._.Z6 */
- $"8E74 F1F7 11A8 49DD C47E 5098 D576 DC41" /* t.I~PvA */
- $"D6FC 7C37 E307 A2DB 997E A046 C114 CF04" /* |7.ۙ~F.. */
- $"FD8E 32D1 2AC6 3A81 C8B6 C680 6E60 7826" /* 2*:ȶƀn`x& */
- $"9A40 9C80 BA1B 4DE8 854B 09D9 33B3 95BE" /* @.MK3 */
- $"7CE5 CCA3 C463 5D1C 1F2B A160 E208 AA0A" /* |̣c]..+`. */
- $"D00F 1933 5FB5 2705 4E9C 3733 0FD0 2AA0" /* ..3_'.N73.* */
- $"D116 F240 05EA 53BB 5A5A 0A4B 3D9E FCB7" /* .@.SZZK= */
- $"FE35 1D0B 1E56 C4AA 9B6C 8CE6 10CA DAA5" /* 5...VĪl.ڥ */
- $"6DF1 6F74 C332 BD93 556E 89F5 A94A 232D" /* mot2UnJ#- */
- $"E9EF C950 666C 7D3E D1BA C98F 4489 3C5D" /* Pfl}>ѺɏD<] */
- $"F7FC 88D4 C90E EE9D 7691 C976 2CFE 6BA0" /* .vv,k */
- $"B53E 5C59 749E FEBC 4AB4 490C A3B6 5187" /* >\YtJI.Q */
- $"4A10 1076 6348 AEC1 054B 0A98 9196 29C3" /* J..vcH.K˜) */
- $"F995 50E4 E003 F099 9495 7ECC 1C78 C536" /* P.𙔕~.x6 */
- $"AA8D 7305 BE7F FF72 99F7 25ED 4C38 0896" /* s..r%L8. */
- $"A1BE F2D4 016E B744 CBB7 9CEE 1C88 5E3D" /* .nD˷.^= */
- $"1B9E E3CB 29D2 AAA7 C3F6 41F4 B6C0 5861" /* .)ҪAXa */
- $"93D3 4773 858E 3470 E670 4F94 E206 FBA3" /* Gs4ppO. */
- $"7050 2A3D 6DC0 004E 32D7 6043 4E5E C44F" /* pP*=m.N2`CN^O */
- $"284A 3214 97B7 19DE 41C4 6204 56CB 1695" /* (J2..Ab.V. */
- $"BAD8 C308 0FFE BEB7 FE14 C6AC CEE8 5022" /* ...ƬP" */
- $"C27A 2CCA 4714 4C52 3975 615D A1C8 62BF" /* z,G.LR9ua]b */
- $"C477 FF7E 2637 3B89 8C43 6E09 285B 2D1A" /* w~&7;Cn([-. */
- $"8E9E 4110 CE7B E30A E21C A140 02C8 D0AD" /* A.{.@.Э */
- $"630B 5488 7CE7 B884 393A 6FDD 5A68 7FB9" /* c.T|縄9:oZh. */
- $"60EC C73B 143E 3F61 3E31 1A3E 8438 7944" /* `;.>?a>1.>8yD */
- $"B652 14AE 63CA 803C 9B67 C6FE 2F5D 4CD0" /* R.cʀ<g/]L */
- $"3A63 1328 8809 A4AB B4A1 8664 FE90 F03E" /* :c.(Ƥd> */
- $"18E2 7982 7DDC A444 1306 4546 61B2 A710" /* .y}ܤD..EFa. */
- $"CCED 529C 92CB D547 22F5 0DB0 B10F 8450" /* RG"..P */
- $"E5AC 253A 6937 BFBD D0C6 8AED 14C7 787E" /* %:i7Ɗ.x~ */
- $"21E7 860D 8567 633D A9E6 0466 93A5 6789" /* !.gc=.fg */
- $"D643 2EEE 7542 7B02 086A 83C4 AD3C 785C" /* C.uB{..jĭ<x\ */
- $"E3B4 BFC0 C27C 3762 1D98 0A0C B43D 8107" /* 㴿|7b..=. */
- $"3003 FF74 C626 1BC1 44AA 08A0 7A68 0ADE" /* 0.t&.D.zh */
- $"E9BD 94DB 3644 AA13 CFCA A9CB 0E8F 9061" /* 齔6D.ʩ.a */
- $"73BC 6A23 359D C129 F184 4EBA BE0F A772" /* sj#5)N.r */
- $"9AB6 7DDC C179 81DB 9FDC EDA3 E6C5 21E2" /* }y۟! */
- $"7049 87BC 00E3 34F5 8066 3FFE 7CA7 A588" /* pI.4f?| */
- $"6277 30DE 8FC1 950A A652 5B12 B0A4 B8BE" /* bw0ޏ¦R[. */
- $"2297 4261 CB90 AEBB F3CB 2BEE 2FA8 149E" /* "Baː+/. */
- $"11E6 487B 3EFA 45B9 E4A8 17DF DF8E D5FF" /* .H{>E.ߎ */
- $"750C 2E52 4F3F 5960 B3B7 3DEB CFE3 4EC3" /* u..RO?Y`=N */
- $"676F D76A F8C3 67EB 383B 042A C000 1CF5" /* gojg8;.*.. */
- $"FB57 51DF 4E0F 9709 4A58 F371 8A53 79CD" /* WQN.JXqSy */
- $"B935 29C8 5953 BBFB B216 24F0 FF5C F1BE" /* 5)YS.$\ */
- $"1649 C9BE 754A CC45 62C3 44A2 3E12 A872" /* .IɾuJEbD>.r */
- $"736B 05DD F77C C7C6 F33D 8224 147E D163" /* sk.|=$.~c */
- $"02B4 0BC6 297A FA75 03A7 BFDD 709A A878" /* ..)zu.px */
- $"734A 7236 791A BFF6 9F21 CC67 268D 160D" /* sJr6y.!g&.. */
- $"A6D0 7988 72CF 6475 146C 81EB 8249 518A" /* yrdu.lIQ */
- $"49B7 0389 FDB6 9CEB DCA2 41ED 085D 4E85" /* I.ܢA.]N */
- $"03E4 3F4E D8CF 25E1 658D 38F6 8F88 A499" /* .?N%e8 */
- $"B64A DD79 FDF2 39FB 5CEC F29B 714A 733B" /* Jy9\qJs; */
- $"76E4 94E5 F567 3A71 28F0 13A6 7A74 CD91" /* vg:q(.zt͑ */
- $"5804 065E D3C7 09B7 ED19 51E5 0913 4436" /* X..^Ʒ.Q.D6 */
- $"9791 BB58 10F3 7183 5DB6 4874 65D2 AAD2" /* X.q]HteҪ */
- $"DBA2 C761 A70F 3EEE 9256 2EF0 945D E52D" /* ۢa.>V.]- */
- $"34CF 10DF B2AF 8E14 A5A4 E24F 0051 F63E" /* 4.߲.O.Q> */
- $"F11C 5DAC 6D8D DEDD A585 96FC A2AB A5FF" /* .]mݥ */
- $"5298 6349 DB41 9276 C1C6 F1E2 9ABF 822B" /* RcIAv⚿+ */
- $"346F 8679 726C 666A 9638 246A EABE 54A9" /* 4oyrlfj8$jT */
- $"49DD F22A BC62 5867 51F2 FDBD B33B 40E0" /* I*bXgQ;@ */
- $"220F 075D 031C EAAE 3CDE 67CF 2269 E26D" /* "..]..<g"im */
- $"BEF3 1873 E610 D43E 8F03 A14F F04F 980B" /* .s.>.OO. */
- $"69FF 1E4A 1925 DDE6 B473 84B5 6F53 75DD" /* i.J.%soSu */
- $"CF71 C4C0 72DC 5403 7E7B 1A9B 6F16 BA87" /* qrT.~{.o. */
- $"A44D D4A2 8029 E15A 8C17 BE55 A30B 87B3" /* MԢ)Z.U. */
- $"DC5B CED9 2E4C A8F3 939B 6F82 8885 9BD5" /* [.Lo */
- $"905B 6EE2 E3C9 D45E DE91 DD46 7EDD 23BB" /* [n^ޑF~# */
- $"6852 2BD3 3D31 2755 2D1B 7431 35EB 6CBD" /* hR+=1'U-.t15l */
- $"638C 9E5D F0EB 9AE0 49BC D327 7536 BCB3" /* c]I'u6 */
- $"65F1 992B E073 9D25 980D A244 7F9E 749F" /* e+s%.D.t */
- $"53BD D08A C5EF 64A2 D672 7A55 9146 5CAD" /* SЊdrzUF\ */
- $"7839 E1B6 7543 4556 146E C347 33E3 2798" /* x9uCEV.nG3' */
- $"4752 6F78 AAA5 AE5E 7B02 CD92 D5F1 FD30" /* GRox^{.͒0 */
- $"F78A 7BFB 03AB CF34 58BF 3810 B8A7 CDAB" /* {.4X8.ͫ */
- $"A573 658E 260A 7C50 000F 00AC D13F 618E" /* se&|P...?a */
- $"A241 9458 3945 9D59 3F9B 13C5 04CC 600E" /* AX9EY?..`. */
- $"FC51 8C8D FBA0 4150 5832 4539 730B 4631" /* QAPX2E9s.F1 */
- $"0598 EE14 817C B560 97C5 B953 64D4 980D" /* ..|`ŹSdԘ. */
- $"C379 6FFF 3E63 6746 7BE8 D3AB 5215 B47F" /* yo>cgF{ӫR.. */
- $"3CAE 42E4 D4BF B7BF 6580 3319 6A71 C2E9" /* <BԿe3.jq */
- $"48AA 2C5E 9D78 B9C3 F8DA B858 D5AB 99F4" /* H,^xڸXի */
- $"B04F EAAC D0DE 2302 F874 7E64 A69B 89CE" /* O#.t~d */
- $"AEAB A73F F815 0D06 B24E 39EC D8E9 EFB7" /* ?...N9 */
- $"ED32 55A0 8E21 B52A E55C 17AE E07B 42F4" /* 2U!*\.{B */
- $"D451 CB7C E941 1578 3EE3 9565 087E 9A05" /* Q|A.x>e.~. */
- $"B5FC 403A AAA2 25CE 5AC1 B658 1EE9 9A53" /* @:%ZX.S */
- $"4000 51DF 95E8 C605 97AC C7E1 A8B1 F86C" /* @.Qߕ.ᨱl */
- $"7C3F 0BCC E410 8FA7 78C0 7964 BDD0 E341" /* |?..xydA */
- $"5DC5 D977 EF99 460C FC48 A51A B5CD DE47" /* ]wF.H.G */
- $"F9E2 194D 1F2D B2B6 556B 0F68 BD1B 5BEA" /* .M.-Uk.h.[ */
- $"9FDD 1280 92A3 EF96 132C 22F6 CA8A 1C20" /* ..,"ʊ. */
- $"54DA F163 6119 BC02 7AE6 10CA A16B 993A" /* Tca..z.ʡk: */
- $"E22B CC58 D181 40E6 EA99 0897 5166 4C1F" /* +Xс@.QfL. */
- $"6D58 D092 5119 1AF5 0C2B 1DC6 029D F0E8" /* mXВQ...+.. */
- $"1F6F 9F5C 17D8 68A0 F600 5C68 5C16 4269" /* .o\.h.\h\.Bi */
- $"F5A9 4D97 32DE 3A9C 6609 86C2 1D0F BA56" /* M2:fƆ..V */
- $"3C8C 1046 E0DC 2ECB 9BDB D61E 6955 CE38" /* <.F.˛.iU8 */
- $"DB97 859B 9E73 78BF FDEB ED74 0C4E 4203" /* ۗsxt.NB. */
- $"431D 69C4 635D D1EA 1A9A 6462 BE48 DDB9" /* C.ic].dbHݹ */
- $"6E63 C4D8 8886 51CB 19E6 A7C9 5941 8443" /* nc؈Q.YAC */
- $"57E5 8C3B B907 FF17 4B41 08DA 7AFC 1B8B" /* W;..KA.z. */
- $"9B05 622E 1F81 91D8 2C60 9C6A 3B23 608B" /* .b..,`j;#` */
- $"F2EC E527 70F9 D963 D302 D7AC 18E2 2692" /* 'pc.׬.& */
- $"AE0C D915 7E30 5B09 305C 8F5D 1346 3FF2" /* ..~0[0\].F? */
- $"8635 ECEC 1CB7 962D 0846 3FA9 5920 C1B0" /* 5.-.F?Y */
- $"5582 FF3A 24E0 FAAE 8FAE 3843 DFCF B74F" /* U:$8CϷO */
- $"CAEC 5602 D1C5 1760 5ECD 92C8 1DD1 4ABE" /* V..`^͒.J */
- $"2336 8A90 E444 6753 D3E0 0F02 8E99 7393" /* #6DgS..s */
- $"8B26 6C9F BFB4 64DE 7867 73F7 10F0 477A" /* &ldxgs.Gz */
- $"8383 ADA5 49C3 722B 1FD7 0BB5 4118 4714" /* Ir+..A.G. */
- $"D5F9 6C20 CDD0 8151 EAB4 457F FF4E 314C" /* l ЁQE.N1L */
- $"6E7F 04DB DE0C 611B 62AC 2A4E 869C 06FB" /* n...a.b*N. */
- $"DB81 F238 C4FC 149E 8176 3F0C 4B83 0DFF" /* ہ8.v?.K. */
- $"7FB4 A5F5 80C7 E4F0 47AD 8D3F 5426 B12A" /* .G?T&* */
- $"8678 11E1 A0EF 5439 31D8 E97E 3AE9 E4DD" /* x.T91~: */
- $"3DB7 4A94 7FFF 7135 0C02 ACE2 70F5 626B" /* =J.q5..pbk */
- $"271A 4401 DF00 AE70 E43B D3F8 75AD 0DAB" /* '.D..p;u. */
- $"794A C0C7 928F 8621 BE61 DA60 A89F 8E95" /* yJǒ!a` */
- $"64E1 4B82 9CA5 D1CB 26FA 3B49 2FDF 8007" /* dK&;I/߀. */
- $"60B1 1C23 B192 973E 87DD 9323 E697 CA76" /* `.#>ݓ#v */
- $"03D6 B09A 33FA 5CEC 856D 1D12 5249 2492" /* .ְ3\m..RI$ */
- $"4924 9249 2492 4924 9231 8B0A C6C2 C882" /* I$I$I$1Ȃ */
- $"FC66 E59C E646 38B0 B26F A097 FEA2 30FE" /* fF8o0 */
- $"F5B9 90DC 3FEF 3116 73C4 7B20 6C09 EA40" /* ?1.s{ l@ */
- $"AB90 6257 8BAD 951C 002E 138D 7274 121D" /* bW....rt.. */
- $"B91E 66F5 6038 8257 FD9A 18C9 0155 522C" /* .f`8W..UR, */
- $"D6CC 0F6A 6A4A 09F3 0C4A B702 47FF 7FFC" /* .jjJ.J.G. */
- $"B504 0034 6682 CE19 CA7C 50BE F8B0 9DCB" /* ..4f.|P */
- $"0092 4924 9248 F298 B4D2 A612 6CEE 878F" /* .I$HҦ.l */
- $"FF7F FF5F 8F59 B3E0 FE9F A74E 506D C924" /* ._YNPm$ */
- $"9249 2492 4924 9249 2492 4924 924D 57A2" /* I$I$I$I$MW */
- $"2CC8 426C 393A 96E4 50FB 0ACE 8874 7A86" /* ,Bl9:PΈtz */
- $"2B20 84D4 0F34 1532 DFF0 D633 0231 0F65" /* + .4.23.1.e */
- $"91D1 8E19 A917 CD2A 8D35 89BE F64E D1A8" /* ю..*5NѨ */
- $"926C AE06 3A49 80F9 C1FE 0E81 52D8 5A8C" /* l.:I.RZ */
- $"7A00 5EF2 9F04 3659 74EC D695 94B6 5B90" /* z.^.6Yt֕[ */
- $"89C0 E661 DFC4 5E69 965B 4D1D 4B76 7C0E" /* a^i[M.Kv|. */
- $"89D2 C1E8 B1EF CF9E 5E96 3977 AEA6 532B" /* Ϟ^9wS+ */
- $"68B1 BD73 2BE6 BB5B 766E FA91 5C36 628C" /* hs+[vn\6b */
- $"F45F FEEA C7DF 49F0 278F F459 E9B6 BDAC" /* _I'Y鶽 */
- $"1A28 F485 45C5 2761 DC37 C72A 8A17 2D08" /* .(E'a7*.-. */
- $"5130 E9D5 E1BD 2D59 07B5 2290 00F9 F737" /* Q0-Y.".7 */
- $"C1F4 5C78 1058 C4C6 13AB AE5C 45DE ACB4" /* \x.X.\Eެ */
- $"7DC9 03C4 0F82 7850 6F9E 5FD3 9223 36FE" /* }..xPo_Ӓ#6 */
- $"8A1D 1D99 FBB3 646B 206B FC7E 668E 4730" /* ..dk k~fG0 */
- $"7C8C 79D9 A37A 427B 1E91 E7A1 DED2 E57D" /* |y٣zB{.} */
- $"E167 967A 8B9F A6C0 A36F 68E8 D03C 84C6" /* gzoh< */
- $"E952 3CAF 039F 18CD 236C 4AE1 FB74 D7F6" /* R<..#lJt */
- $"DFBF B7A4 AFDB D27E 2FB7 7BBF 86F0 DF6F" /* ߿~/{o */
- $"4F9F C3A7 EC7F 0D0F BEDB 1EFB 77AA FB77" /* Oç....ww */
- $"2CED 1CDE F39E A2F3 567D 91E9 4703 B8A2" /* ,.V}G. */
- $"5006 2494 6271 81F3 3B95 0B89 EDD5 7FE8" /* P.$bq;.. */
- $"B864 3D84 75CD 7478 A5D6 28C8 D483 39EF" /* d=utx(ԃ9 */
- $"86CA 5763 87CA 97CF A9D4 AFA9 0450 6744" /* Wcʗϩԯ.PgD */
- $"16E3 8C0B 0015 88DA 5244 1AB2 9790 35B0" /* ....RD.5 */
- $"0489 B911 D871 2BB4 6576 C185 22B7 1F86" /* ..q+ev". */
- $"230A 3CD3 ECB5 20A6 23BA A068 A53E 8EAD" /* #< #h> */
- $"3793 46B5 BA07 96A8 DF28 6A66 CE05 73CE" /* 7F.(jf.s */
- $"1938 F9A6 9CBC 0D7F F193 E0D5 09CC 3426" /* .8..4& */
- $"4BB1 52B9 F337 0537 FA01 B010 5471 B015" /* KR7.7..Tq. */
- $"754C A1A6 E071 800C 1A26 243D 172B 1497" /* uLq..&$=.+. */
- $"E5DF 1EB1 6A6C 6761 3BA6 52C0 C0B4 69BD" /* .jlga;Ri */
- $"E6B4 275E EB6E 42BF D693 8928 15A4 9DB2" /* '^nB֓(. */
- $"D8FA E273 6C04 CBB5 06A9 8096 5E97 5D11" /* sl.˵.^]. */
- $"0B1B 8E93 BDCC 1AE8 4CBA 9413 A729 F6A7" /* ...L.) */
- $"F24D 467F 0316 BF60 F777 C2E3 7FAA DC07" /* MF...`w.. */
- $"148F 5C26 91C3 20B8 F3A0 9088 F893 6D47" /* .\& 󠐈mG */
- $"7AC1 A0D9 5483 8281 5B98 28AE 9EAB 94F0" /* zT[( */
- $"9B68 08E3 E3DA 7E3A AA84 9EED F083 117F" /* h.~:.. */
- $"FE75 781E E394 EEEC F9AC 21D6 FF5E DD57" /* ux.!^W */
- $"96CF A7DF 3C0D 7E2F F9E7 F212 83EE E629" /* ϧ<.~/.) */
- $"9543 AA61 C10A 4B12 1DD8 6835 405A D739" /* CaK..h5@Z9 */
- $"DBD7 1628 2816 909D 1DEB 81F2 16AF 8953" /* .((...S */
- $"9239 B79D A64A 3275 E506 BFD3 0198 776C" /* 9J2u..wl */
- $"F4C2 39CD 4CF8 2482 D781 526A 7D82 0B83" /* 9L$ׁRj}. */
- $"120C B2AB 1FC0 2DAA 4A72 ACD9 B4C7 926A" /* ...-Jrٴǒj */
- $"CE69 46FA C67E 904D 12D4 D6EC 2F77 AC43" /* iF~M./wC */
- $"0A82 A09A 8FAC 59F0 D192 4F8F E6D1 A8B3" /* ‚YђOѨ */
- $"26FD EAD1 7727 E253 F826 580D 8786 8EAD" /* &w'S&X. */
- $"4561 33FC 6C93 72E4 3F53 3E92 5E78 9597" /* Ea3lr?S>^x */
- $"895F 61B9 D382 514D 839E D4E8 A40B 6F99" /* _aӂQM.o */
- $"0BEC 889F F976 6F24 AEAC 2A18 479B 9CD0" /* .숟vo$*.G */
- $"A58D E4A8 4940 D7A9 26A7 8649 C387 22EB" /* I@ש&IÇ" */
- $"10F3 AB7F 805D 57F4 6918 508A 429D FC32" /* ..]Wi.PB2 */
- $"0E49 3480 E5A6 0267 54A6 D677 422D 1B62" /* .I4.gTwB-.b */
- $"4DFB C3A4 2E01 8C0D 029D D238 87B0 230E" /* Mä....8#. */
- $"AB6E AEFD 64F3 F7AE 7BD7 DA13 2BCC DCFB" /* nd{.+ */
- $"13EC E7EE A36F 86C6 A2D8 DD70 6174 04FA" /* .oƢpat. */
- $"B7F7 A3BF 9C4C F99C C177 9B27 9148 3998" /* Lw'H9 */
- $"013A 4B0C E3A5 6905 6ADC 739C 3586 7009" /* .:K.i.js5p */
- $"38DA 0496 C25E DFB2 F2AB 34C0 F138 4F81" /* 8.^߲48O */
- $"7240 2774 4588 B153 267B DBBE DFDE AEAD" /* r@'tES&{۾ޮ */
- $"1D90 BA71 2B83 D108 1CDB 8B36 7837 8AAA" /* .q+..ۋ6x7 */
- $"299C 2916 D66C CC2E 2FCF B0E3 228A 88C1" /* )).l./ϰ" */
- $"568F 12D8 D599 AB3F 29DE 1FA6 9336 132F" /* V.ՙ?).6./ */
- $"521E 8EB9 9BD4 30E4 362E 349E 209A 6EB6" /* R.06.4 n */
- $"D5CC 985B E51E 8A74 B9A0 1718 2753 A1E0" /* ̘[.t..'S */
- $"BDCC 77CC 5697 641D B916 AB08 C12F 102F" /* wVd..././ */
- $"59A0 4283 27A8 9F9E 1980 381A 4785 E896" /* YB'.8.G */
- $"B9C8 A383 0C1E EBDE A8DC D1A0 00FB 61C2" /* ȣ..ިѠ.a */
- $"70F1 84C8 8368 337E DA6C 7A1A 014F 77C3" /* pȃh3~lz..Ow */
- $"EFFF 0CCC F88E E539 B4FF 3187 54EA 4B2E" /* .91TK. */
- $"27BF 1121 0DCD 456F 5AB4 E115 9E30 8B1C" /* '.!.EoZ.0. */
- $"FCFB 8634 E35F E3F0 2A65 8EC0 775F C0EE" /* 4_*ew_ */
- $"37B2 6C5A AA44 2B7C 889A 5854 FBB4 DC29" /* 7lZD+|XT) */
- $"E875 94AB D4F4 19C2 5989 594D 6B55 CB5E" /* u.YYMkU^ */
- $"012C A350 BF1C 322E 6DC6 6CFB 052A B48D" /* .,P.2.ml.* */
- $"2FFE D908 D443 2FB2 706F 13A8 B2BF 2E97" /* /.C/po.. */
- $"D7EF 6FE2 7D0B 4D6C 89E6 24BB D547 A266" /* o}.Ml$Gf */
- $"3B92 FF58 BE83 0D95 D587 B51D B83A B360" /* ;X.Շ.:` */
- $"DF16 A55F 5D17 5ED7 C7D7 88FD D24B 89C4" /* ._].^׈K */
- $"17FF 1CE0 2FC5 E332 79FF 6532 D599 2C36" /* ../2ye2ՙ,6 */
- $"7360 56F2 6017 1165 F8CD AC09 6435 530F" /* s`V`..eͬd5S. */
- $"8E48 0152 06AE 7F31 9D5A A12E EC4A 26BD" /* H.R..1Z.J& */
- $"1D28 2D81 EBF2 625A 03C8 8240 FAB0 343C" /* .(-bZ.Ȃ@4< */
- $"3460 4650 A369 CBAF D533 EC55 DB4D 46F7" /* 4`FPi˯3UMF */
- $"45C4 1B75 581D CC26 9E29 8B0F C424 5512" /* E.uX.&).$U. */
- $"9417 F11C 77C1 F3FD 57B1 487F D8F8 A086" /* ..wWH. */
- $"E60E 2356 E9E1 F3EC 7F31 52E1 E3DB C75E" /* .#V.1R^ */
- $"7A4B 2D19 8F06 AB86 5A88 F23D C312 C565" /* zK-..Z=.e */
- $"1AF0 4B35 F0D9 D100 6634 A377 90C1 A69A" /* .K5.f4w */
- $"1C64 495A BEF2 5A5C 1714 0504 2639 71A2" /* .dIZZ\....&9q */
- $"5989 FF6E F887 5ADD 9843 A719 60CC 5185" /* YnZݘC.`Q */
- $"B308 2551 F63A 7543 2A92 3949 FCC5 5023" /* .%Q:uC*9IP# */
- $"5A92 FE32 A26E FF00 9CFC 0CFF 4A08 60C7" /* Z2n..J.` */
- $"F76C 480A E682 3C58 66B8 7045 CDBA 616C" /* lH<XfpEͺal */
- $"9995 BEC1 809B 0892 A7EC 43EC 7FE8 F49F" /* .C. */
- $"9E4B AFD6 66BB 0B88 38ED B165 9C1D F096" /* Kf.8e. */
- $"64EC FD43 9A7A BC84 8CEF 2E65 F99B 4B43" /* dCz.eKC */
- $"7D47 3AE8 D0DB A066 308B 201D FF3F ABC1" /* }G:۠f0 .? */
- $"CD0D B822 3734 A23E AF05 D1E1 F9F5 AF09" /* ."74>. */
- $"6428 F517 1201 C3F1 1B80 0DD2 DCD9 CA31" /* d(.....1 */
- $"B022 DAFB D990 A8B1 6FF1 004E 4847 E5C8" /* "ِo.NHG */
- $"0580 DA86 704F E2FF 7E83 5167 5C3F ADB2" /* .چpO~Qg\? */
- $"4C44 A9D9 DB84 C360 68ED 1BF0 068E 04BF" /* LDۄ`h... */
- $"D16E B55F 0701 3739 42FA E15C 0EA2 BF81" /* n_..79B\. */
- $"31C1 F1A3 A766 CAB8 C82E C96B 4868 D491" /* 1fʸ.kHhԑ */
- $"5ACB 6EED 4027 0C73 AACA 730C ECA6 DE42" /* Zn@'.ss.B */
- $"38DA E07E CE64 BC49 7FDD FCCB 07B3 45BF" /* 8~dI..E */
- $"B9DC FF13 039F D40E 43BB ACE4 B8F8 31F5" /* ...C1 */
- $"6743 9390 0B87 C9B1 194A 0200 FB53 29CD" /* gC.ɱ.J..S) */
- $"3141 15F5 3C38 9F70 2B7E 0E46 B5A7 5C94" /* 1A.<8p+~.F\ */
- $"AED4 E415 1639 7B49 20DA 1541 9742 A3A6" /* ..9{I .AB */
- $"B873 4C7C 9112 1322 7D7F 5F6E 14AB 57FC" /* sL|.."}._n.W */
- $"A01D 94EC BC05 F45B C4C4 1FC3 D61B F5D3" /* ..[.. */
- $"0E62 9C2F CAE6 C609 B0D2 803B AF5F CC7F" /* .b/ưҀ;_. */
- $"4085 5B49 F81B 0AB3 DB0C 27C1 7A95 45D6" /* @[I.³.'zE */
- $"CDDD 4F06 1A20 A7FE 22F6 EA13 EB6E C723" /* O.. ".n# */
- $"87B9 A058 CAF9 9F59 C9C9 6AAD 8358 5147" /* XYjXQG */
- $"2B3E 2FD8 506F A48B 305C 97C7 5D25 5C75" /* +>/Po0\]%\u */
- $"C5B1 E7B4 CBC7 C76A 2FE5 1669 302C 2318" /* űj/.i0,#. */
- $"CB1D BB38 5B47 3563 F041 0F00 C23A B1E9" /* .8[G5cA..: */
- $"1972 D9C9 2F2F 4013 F8EF A6CA 7E8E 705C" /* .r//@.~p\ */
- $"0CB6 1301 5ED4 25E6 F7D9 999D AB8F 4CAC" /* ...^%ٙL */
- $"6FF2 04C8 8307 016C 6E46 645B 5488 79C0" /* o.ȃ..lnFd[Ty */
- $"C0E5 8A2A 46EB DB4C 65A0 27FC 6230 781C" /* *FLe'b0x. */
- $"EDB8 4666 1604 1937 9603 A2AA D8C3 43A6" /* Ff...7.C */
- $"E254 D745 866F D24A DD91 397E C575 F187" /* TEoJݑ9~u */
- $"193B F5F5 819B 7D57 EC83 0871 ED1B 64F6" /* .;}W.q.d */
- $"E47A E1B0 65F9 67DF 5680 3642 52AA BB4B" /* zegV6BRK */
- $"BA52 D8BA 8AF7 0A96 412A 92B2 045F 9739" /* Rغ–A*._9 */
- $"3A52 D961 6BC6 1D2E D90D 29A7 E9DE 2651" /* :Rak...)&Q */
- $"CE3F 9921 03BC 7A7A CBFD 63E2 4C7C 9025" /* ?!.zzcL|% */
- $"BCC3 D509 745E 9AE4 1675 0242 26EE E4F6" /* t^.u.B& */
- $"B04B CFB3 E37F EADB 2840 E47E 0209 C8C5" /* Kϳ.(@~. */
- $"56FC 6228 BB57 F43A BE32 0753 73FB EAE2" /* Vb(W:2.Ss */
- $"55B4 D581 42C8 10B8 AEA9 67C4 F685 982C" /* UՁB.g, */
- $"3104 095F DCBD 3701 8749 9CBA A7A5 B714" /* 1._ܽ7.I. */
- $"FDED FAA3 F034 54D8 728F 8640 4A61 560C" /* 4Tr@JaV. */
- $"50D4 B224 A5F1 6715 6C8B 7EC6 BF5C 120D" /* PԲ$g.l~ƿ\.. */
- $"8797 B25E B0E1 C57E 69AF 1FF2 99C3 44B5" /* ^~i.D */
- $"0508 0061 1F44 795F 27C0 511E 0796 9740" /* ...a.Dy_'Q..@ */
- $"14FF 4C51 5651 34F3 658D 4CA8 3FBF 43CC" /* .LQVQ4eL?C */
- $"8813 D372 1723 7DB5 6D44 4524 4E91 B644" /* .r.#}mDE$ND */
- $"4B7D CDEC E0E0 8468 622D 87FE 80E3 E097" /* K}hb- */
- $"303D 8894 1FFF 7FA6 9AAB C6E0 0B83 3EDD" /* 0=...> */
- $"86A5 43D3 C650 0008 D364 A800 0000 0000" /* CP..d..... */
- $"0000 07D7 8F92 61B9 E6E0 BCBF CD4A AB76" /* ...׏a༿Jv */
- $"5B6E 246A 8DFB D274 41F9 3583 773D 5165" /* [n$jtA5w=Qe */
- $"2139 B773 476E DF91 33F0 8CDA F420 613F" /* !9sGnߑ3 a? */
- $"9B35 33C9 8298 A661 A5DB 2CEF 1A1C BC3E" /* 53ɂa,..> */
- $"09B4 5415 8511 4FE5 3FF8 B88C 339D C169" /* ƴT..O?3i */
- $"9608 FF62 B2D6 285A 80A2 22C9 E4AA 5A99" /* .b(Z"Z */
- $"B3F5 E9D4 7FFF 7FF4 7D5C 4CC0 788F 0EB6" /* ..}\Lx. */
- $"8024 0000 0A1E 1F40 0000 0000 0000 0000" /* $....@........ */
- $"CA54 CF6A 897B B6D7 9C90 87E9 FF6A 22A0" /* Tj{לj" */
- $"0765 4AE8 B827 B7A1 C412 4000 0000 0000" /* .eJ'.@..... */
- $"0000 2222 DAB7 AEED C4EB AFCB FF79 6610" /* ..""ڷyf. */
- $"A362 D5F2 1401 DA9F 8978 3FC3 FF60 341C" /* b..ڟx?`4. */
- $"524C CBF3 AF64 9BA4 637F F217 CA8C A4CE" /* RLdc..ʌ */
- $"A881 46DE C63F CB0B 4C86 F71C CDFF 6CDC" /* F?.L.l */
- $"3C86 AFD6 02EF 25B3 E392 0238 14ED F9FF" /* <.%.8. */
- $"71EA 1A7B 7848 281D C18D 83C1 F0D1 C115" /* q.{xH(.. */
- $"C525 7E38 9E60 32A4 CED2 A5DE 8006 1212" /* %~8`2ҥހ... */
- $"7136 14A1 74D1 9C7D F74C 708E 43DE 4154" /* q6.tќ}LpCAT */
- $"2939 179A 87BB 2AAF 7401 4404 CB30 458F" /* )9.*t.D.0E */
- $"F1B7 EE42 3E46 458F B220 6F30 EE24 7D86" /* B>FE o0$} */
- $"2D28 3CA7 C184 60D3 4EBC 9C79 C402 02FC" /* -(<`Ny.. */
- $"553C C62D DDC0 3D0C F12B C1FF 546D A4FF" /* U<-=.+Tm */
- $"5885 6B1B 9EF6 2206 8FB5 1CB0 2D3D B922" /* Xk."..-=" */
- $"644F D104 0152 70F8 BF41 4D6E 4F05 B928" /* dO..RpAMnO.( */
- $"396A 4A92 9B1B 24AB 4611 6D95 87D6 2D7C" /* 9jJ.$F.m-| */
- $"7546 B839 A3B1 C612 0F2A 796E 7911 5FF9" /* uF9..*yny._ */
- $"03C4 D13E EF00 2DEF 9CFE FDDE 3A2C FF3E" /* .>.-:,> */
- $"4567 F432 3673 3F84 8787 B65C 7A4F 2007" /* Eg26s?\zO . */
- $"FF7C D894 A762 3872 8FA4 9563 D178 5039" /* |ؔb8rcxP9 */
- $"C4BD 2EB4 0491 2A80 0000 0000 0000 0001" /* Ľ..*........ */
- $"F172 6FA1 09F2 9F35 F3BC 2E0B 8E46 2557" /* ro5..F%W */
- $"67C5 4F12 D1CF F08C BC61 0F89 E4A4 9249" /* gO.a.䤒I */
- $"2492 4924 9249 221B 4708 65ED 84CA FDD2" /* $I$I".G.e */
- $"D193 7C69 0CA3 95EF DDF2 33FF 556E D976" /* ѓ|i.3Unv */
- $"2E4D FDCE E0FC 8669 83FF 768E 3CBB 179B" /* .Miv<. */
- $"DBB9 253D BFFF 79F1 5006 27BF 5548 40B9" /* ۹%=yP.'UH@ */
- $"BADC F963 10BA 8BD9 367F E03A 6E29 5908" /* c.6.:n)Y. */
- $"0000 0000 0000 0000 0028 8080 0000 000A" /* .........(... */
- $"6370 D000 0142 83C0 0000 0011 CD3F D940" /* cp..B....?@ */
- $"0022 C990 C912 501C 14FC 1926 5412 0E88" /* ."ɐ.P...&T.. */
- $"C32F B2ED E7A4 9249 2492 4924 9249 247E" /* /礒I$I$I$~ */
- $"FB2C 999E D2ED 6DFF 783B 4C3A 3DB7 14A5" /* ,mx;L:=. */
- $"872C 2B85 8FC2 72EA 3412 FCA8 32E0 7A2E" /* ,+r4.2z. */
- $"B109 F66C 3F99 7C32 2761 1522 7B9C 1851" /* l?|2'a."{.Q */
- $"B3CB 5373 0652 CE79 D8C5 B721 03D7 CD81" /* Ss.Ryŷ!.́ */
- $"A03A CD5F CECF B58A 4122 7ED2 9FFF 7FFF" /* :_ϵA"~ҟ. */
- $"1575 DF0B 430B 0A6C 6108 B421 B33F E9FA" /* .u.C.la.!? */
- $"AC06 391C EB01 17F4 3BF4 4CDA 87DA 516F" /* .9...;LڇQo */
- $"EFA3 E7F9 651A 6902 C269 AF79 2EA4 D861" /* e.i.iy.a */
- $"CBC1 7F37 146D 4163 38BB B16B AAD4 9AC2" /* .7.mAc8kԚ */
- $"424A B3CE 1368 78EF B4B0 FE68 2FBA 0CB2" /* BJ.hxﴰh/. */
- $"E672 A89D 999E 64CD 417A 98A3 8458 0603" /* rdAzX.. */
- $"C03D 9F9E B15E 8418 0FC6 F3E0 BA39 A3C1" /* =^..9 */
- $"9929 0547 9C29 FC76 57CA B1E5 F887 AE73" /* ).G)vWʱs */
- $"78AA BA9F FF7F C07C 00F0 28E9 7533 0FC1" /* x.|.(u3. */
- $"097C 4ABC F3CB 6604 EEC2 5194 A1F2 A201" /* |Jf.Q. */
- $"D6B0 C5F3 4AA3 8FD8 34DC A382 0CD4 134E" /* ְJ4ܣ..N */
- $"8275 37F5 2388 74C6 1A6C F889 1037 A348" /* u7#t.l.7H */
- $"ACB4 EFF5 B446 564C C6DC 75F7 8445 013F" /* FVLuE.? */
- $"79FF 407B 05EE 9C66 8A53 FF7A 367A 6D06" /* y@{.fSz6zm. */
- $"9ADF CBDD 25B5 0629 78A0 A071 35BA EE49" /* %.)xq5I */
- $"64E9 3EA3 9A07 917A 66E3 090C B916 3BF5" /* d>.zf..; */
- $"10D7 77D5 7281 248E 3F09 0C0F 319E 7F71" /* .wr$?..1.q */
- $"98DA A34A C823 06A4 6BFD 8EA1 8C71 EB25" /* ڣJ#.kq% */
- $"E5FC 0BA1 DB35 9514 A229 56F0 7E42 9FD0" /* .5.)V~B */
- $"5435 3CB7 AED9 0A4F 625B A493 D1B2 C654" /* T5<Ob[ѲT */
- $"F691 87F9 F8E9 7459 1823 E06B 57D6 C638" /* tY.#kW8 */
- $"7EE2 8CA0 1D79 4000 0000 0000 0000 0000" /* ~⌠.y@......... */
- $"0000 0000 442A 0D8C 8522 4E1A 3752 5040" /* ....D*."N.7RP@ */
- $"E53D EE69 0B70 A6BF 9D0D D725 D66E 8D50" /* =i.p.%nP */
- $"10DB 966B 649B 0CA3 958B 6457 90CC 214A" /* .ۖkd.dW!J */
- $"C4C0 27A2 95F4 98AD 14C2 1892 EBE7 864B" /* '..K */
- $"18AA 55C7 50D2 4A15 7F4E 566A 9C13 9C52" /* .UPJ..NVj.R */
- $"AC77 FE86 B3A2 5D92 D112 516C BA99 60EE" /* w].Ql` */
- $"221A F194 D9DF FF5F FF6B 77F9 4B01 4F8F" /* "._kwK.O */
- $"F681 8614 2F3E 31E3 EABB 7C34 6025 A491" /* ./>1|4`% */
- $"9BC1 A348 628D 34AE 751A F8F7 7521 7F48" /* Hb4u.u!.H */
- $"68A4 6B9C F66F 252D 6021 9C97 39AB B637" /* hko%-`!97 */
- $"3B5D E8FB 56EE 824A F65D C84D E23C 7BF2" /* ;]VJ]M<{ */
- $"5400 0000 0000 0000 0000 0000 0014 080D" /* T............... */
- $"B05B 4688 1F60 376D 2209 1DE1 7E75 CD30" /* [F.`7m".~u0 */
- $"5D2F 627B A077 8D86 2001 62AF 1031 6853" /* ]/b{w .b.1hS */
- $"2A8E 0308 16F6 C4EC E5B6 814A 1DF2 23EB" /* *...嶁J.# */
- $"8C16 64F9 A1ED 8A1F 346E 2E1C 5ACB 4376" /* .d.4n..ZCv */
- $"5014 B885 5212 5294 8F4F DF56 7339 8A5D" /* P.R.ROVs9] */
- $"03C0 A05F D60B 5D58 2677 CD67 A4EE 3803" /* ._.]X&wg8. */
- $"B2B1 9AD5 A41A C3EF 3281 3FFF 780A A5BD" /* դ.2?x¥ */
- $"861B 62F7 456F 1021 93CD A115 BD61 7E4C" /* .bEo.!͡.a~L */
- $"2306 D6BF D5D9 18AF 12BB 22D9 E32E 6976" /* #.ֿ..".iv */
- $"9282 5E47 A842 7983 2C87 64C5 6215 A0D9" /* ^GBy,db. */
- $"E45A EFAE 74F3 E5E5 7679 A7C0 D366 649C" /* Ztvyfd */
- $"9EF3 D763 2D6C D0AD 48E5 7A2A 9454 8B34" /* c-lЭHz*T4 */
- $"B7FF 7FCD F604 90E4 2716 1C40 DD8A 8B1A" /* ..'..@݊. */
- $"24C8 2F0C 06AC 999A 58B7 C15E E6B1 431B" /* $/..X^C. */
- $"73D1 FEC5 5182 4A2D 33CB E920 AFBE 9F5A" /* sQJ-3 Z */
- $"0478 C2F3 80D7 241A 2E07 8BF3 FD3F 471A" /* .x$...?G. */
- $"7C53 1C79 2F17 C32F D5C6 B977 E2F9 9D80" /* |S.y/./ƹw */
- $"558B 7336 75BC 5945 3986 BD1C CE95 EA07" /* Us6uYE9.Ε. */
- $"7152 C778 65AD 73E9 F1B7 24D4 BDB0 7F24" /* qRxes$Խ.$ */
- $"BACD 3C51 D344 33D7 21C7 BE9A 915D 2808" /* <QD3!Ǿ](. */
- $"3E68 3F1B 43AE 8F30 CE7F FF67 1C78 8498" /* >h?.C0.g.x */
- $"08D8 E1D9 3F1A E50B EB7C E564 6F4C 57F3" /* .?..|doLW */
- $"9E60 5F9B 244E 83A9 33C9 668A 3951 7E33" /* `_$N3f9Q~3 */
- $"31D7 01E7 0342 6BC0 7FD1 7488 2BE1 9AD1" /* 1..Bk.t+ */
- $"1938 BBD8 7710 BAD3 BB92 2C80 A162 B2EF" /* .8w.ӻ,b */
- $"3FEA 6FC2 47D2 0D0E 28AB 03DA 4B34 4027" /* ?oG..(.K4@' */
- $"7FFD 87BC 9D96 E076 3C00 0000 0000 0000" /* .v<....... */
- $"0000 0000 0000 136C 1721 95F0 1991 3F80" /* .......l.!.? */
- $"65DC 1F3F AEA0 BE5C 71D2 94CE C7FF 7FFF" /* e.?\qҔ. */
- $"7917 BEAD D458 935A 563C CC9C 6C0D CFFF" /* y.XZV<̜l. */
- $"55DA 93C2 F199 3D1E C4C2 3C5F A7BC D48E" /* Uړ=.<_Ԏ */
- $"4980 037B 9FCC F7BC 6E1E 78CD 2838 DC58" /* I.{n.x(8X */
- $"F156 C827 88EA BFF7 BD95 BBD6 FE11 C305" /* V'.. */
- $"A1D2 FA2A EA0B E56B 285B 91FE 551E F5E2" /* *.k([U. */
- $"687C 5A51 1A67 64D3 BD76 4937 F455 4C94" /* h|ZQ.gdӽvI7UL */
- $"6A7E B888 CB40 7AA3 DDEE 8BD8 2D9F 1EB6" /* j~@z-. */
- $"48DF 9C66 6BF3 A26A 3CC4 2D4D E47A 6D9A" /* Hߜfkj<-Mzm */
- $"DAB1 1DA4 083A D994 4416 C0D2 2E63 539E" /* ڱ..:ٔD..cS */
- $"7274 3C04 85F4 D7B5 EDEF 507A B2B7 1832" /* rt<.׵Pz.2 */
- $"6615 A186 4A80 0000 0000 0000 0000 0000" /* f.J.......... */
- $"07CF BF6C 3626 7453 BF7D 8B57 26C9 F556" /* .Ͽl6&tS}W&V */
- $"1F12 0BB9 5DC4 797D 3C69 7DB2 2FFF 7F33" /* ...]y}<i}/.3 */
- $"81FC E4ED 4BF8 9180 3FD2 0142 3F2D 1DF0" /* K?.B?-. */
- $"097B D61C 019A C409 B506 26FC D55D 7AE9" /* {..Ƶ.&]z */
- $"3464 6C57 13E7 565F 2553 70C3 3EC7 87AC" /* 4dlW.V_%Sp>LJ */
- $"3161 5289 3A6A FC0B E254 CAFA 6A32 2F8C" /* 1aR:j.Tj2/ */
- $"8B76 FA87 DADD 0333 2250 0058 F5C6 21CD" /* v.3"P.X! */
- $"D094 5CD5 10DD 2FA0 B74B 06FB AA9B 2B62" /* Д\./K.+b */
- $"E36D 708E B8F5 0739 3097 7F03 47BE 48F5" /* mp.90..GH */
- $"D079 1641 CA5D DF28 C92B 0EFA B18F CE6F" /* y.A](+.o */
- $"6648 DB26 DE5C 1D17 2BD3 28AF DD89 801C" /* fH&\..+(݉. */
- $"AB0D 40D1 9016 D542 63A0 8222 9D7A F0F5" /* .@ѐ.Bc"z */
- $"A171 2D28 3D2C C22E 09AB 3AA9 C50B 7545" /* q-(=,.ƫ:.uE */
- $"4C64 18E8 8E67 3A7D DDBE 36CE 2F97 5AD0" /* Ld.g:}ݾ6/Z */
- $"E4F0 8AFB 6071 6268 E5F6 09EA 245F 9F87" /* `qbh$_ */
- $"E304 242C 234C 9FF7 1D0A 11C7 4FE7 20BC" /* .$,#L..O */
- $"EC58 1A4B 5A8E DE45 0E5F 4A03 4C8A 5051" /* X.KZE._J.LPQ */
- $"E410 4405 321B BD82 AC69 94F7 AA5E 5C65" /* .D.2.i^\e */
- $"436F 861A C95F 1AB0 2E2B 9689 AA43 B247" /* Co._..+CG */
- $"6DE3 4E9E F205 F221 D175 86BB 4434 C0EE" /* mN.!uD4 */
- $"C472 EA2B 499D 63FA B4C8 FAB3 91F3 060D" /* r+Ic.. */
- $"C203 A636 1D98 6B00 D678 0D3C BE92 309E" /* .6.k.x.<0 */
- $"759A 11D4 B514 24FB E4D2 7089 76DE 42DD" /* u.Ե.$pvB */
- $"5338 4798 5943 4A6B 500A 472E 77BE AEBD" /* S8GYCJkPG.w */
- $"93B0 117A 0E2D A8E4 DFED 5A76 1775 2BFF" /* .z.-Zv.u+ */
- $"1A84 CBE1 B007 D3EA 11B0 9BB8 4B3F BB56" /* ...K?V */
- $"33F6 B242 4C5C A63D 638F 1BA5 0AC5 698D" /* 3BL\=c.i */
- $"45B3 D343 D769 FEEE C45D 50B0 9AAA 4146" /* ECi]PAF */
- $"0BFA F8CC 694B A42D FC1E C3F1 54F0 D3F9" /* .iK-.T */
- $"F051 5182 D373 5210 38AA F9B0 D3F3 6B07" /* QQsR.8k. */
- $"C944 7FCA 2126 D17A 01B1 7763 CDE8 D5FF" /* D.!&z.wc */
- $"00F4 08D7 4060 339C D8E2 7EA4 B00D 3171" /* ..@`3~.1q */
- $"ABB0 7F47 D146 13B9 398E 14B3 C55D 10AF" /* .GF.9.]. */
- $"8D0A 2444 26A0 EFEA 6CB2 51FD EA28 0FD7" /* $D&lQ(. */
- $"4E2F F54F 0066 62F2 66F3 334C 5D9D 77ED" /* N/O.fbf3L]w */
- $"F3D0 12ED 7A95 89A1 B928 8429 DCFB 8C68" /* .z()h */
- $"C35C 3C77 5D7D 5180 A012 ADA3 AE60 AAE0" /* \<w]}Q.` */
- $"0D88 09A4 4F7B FAC4 A2FD 327D E109 4F0B" /* .ƤO{Ģ2}O. */
- $"3343 C0ED D985 7402 93E2 7A2E 09B4 09A6" /* 3Cمt.z.ƴƦ */
- $"5348 2E51 C037 BE62 C1A7 15C4 B9C8 7F4B" /* SH.Q7b.Ĺ.K */
- $"FC22 3596 D989 C701 6701 5488 1001 22B2" /* "5ى.g.T.." */
- $"C06A A5D5 2C94 6BA9 D1C6 2B33 5910 8B1F" /* j,k+3Y.. */
- $"0B0D 5531 BE0F 3E72 9C60 75A8 2669 220D" /* ..U1.>r`u&i". */
- $"E140 D538 7CD4 5763 D708 6D5E 45C0 AE61" /* @8|Wc.m^Ea */
- $"EC8B E180 1D9C 712C 4DB9 F177 6733 0F76" /* .q,Mwg3.v */
- $"9A72 7AD0 D18D 2BE6 9DCE 6294 4092 CE8E" /* rzэ+b@Ύ */
- $"ACED 8B00 B050 AE53 C09C 98D6 CFD1 4208" /* .PSB. */
- $"DEB2 AF01 5ED7 E1F4 4EAA 0B09 2263 FE09" /* ޲.^N."c */
- $"2771 6EB7 9181 1DFE A5DD 9A12 4592 02FD" /* 'qn.ݚ.E. */
- $"5F2D D4D6 5C15 B454 B07C 9B6A B9F9 AEC2" /* _-\.T|j */
- $"D883 1F5F B9B1 8258 6732 C7E3 5C90 DB16" /* ؃._Xg2\. */
- $"42EC D875 2B9D FEAF 1FED BD80 261D BAAE" /* Bu+.&. */
- $"3799 FDC7 DBE5 E769 A11C 3304 5D3B 419C" /* 7i.3.];A */
- $"5844 E615 EE7A 5DCE 272E D055 121D 1F84" /* XD.z]'.U... */
- $"2EC6 E6B1 A7DA D03A D600 6D58 4FF0 9196" /* .汧:.mXO */
- $"FBCA CDDC 1B8D 9D1A BB7B 3782 0F3F 626C" /* ..{7.?bl */
- $"26AA AF34 6A20 8210 1E96 ED21 5A26 EF04" /* &4j ..!Z&. */
- $"5F66 5C2D A8A4 F3BC 1871 AD1D FE4D 8C8B" /* _f\-.q.M */
- $"F1E5 A382 654B 08C7 EFC4 BFBA C29B 5C73" /* 壂eK.Ŀ›\s */
- $"2420 9390 3B75 6DE6 0208 6F4F BB53 B2AA" /* $ ;um..oOS */
- $"AD28 4360 1A8A 4301 088C 6F17 68CC 9180" /* (C`.C..o.h̑ */
- $"D757 7012 3BE3 C4AB DF05 97B9 4B57 B6FC" /* Wp.;ī.KW */
- $"7693 36DE 89E8 E2AB 4352 A782 4520 DA28" /* v6މCRE ( */
- $"F1F2 34D6 2EAE E401 ED61 1E2E 4E74 D4EB" /* 4..a..Nt */
- $"98A9 94AD F856 8EE1 E3D0 06FC AA37 31E5" /* V.71 */
- $"1047 113E C151 CE86 B6A4 0F82 E5D9 CE50" /* .G.>QΆ.P */
- $"57A8 8F86 AFAD 21D1 2C4C F181 8BD7 106C" /* W!,L.l */
- $"3C77 649E 038E 3C63 66F4 EE1A 2906 755C" /* <wd.<cf.).u\ */
- $"EDD8 6093 6868 531C 9FA3 C5C9 3F3C 7786" /* `hhS.?<w */
- $"BCC4 440C 13F9 0BCB 76BA 9364 A3CC 344F" /* D...vd4O */
- $"128B D594 CB9D A2DC 6C03 CA48 2D9E 9706" /* .Ք˝l.H-. */
- $"A281 5170 A91B 0033 4552 2A9A BF6F D4A9" /* Qp..3ER*oԩ */
- $"61B6 F6C1 7959 FDD2 8F3F C94B 2B90 29BB" /* ayYҏ?K+) */
- $"9FAA A83B FEFF 80A3 1EC2 B2D9 77CF 963B" /* ;.²wϖ; */
- $"85FF 5728 5CDD 2F01 7556 8155 F8AA 7984" /* W(\/.uVUy */
- $"7543 0C18 A1FC 0353 DF5F D368 41E9 E0EF" /* uC...S_hA */
- $"C363 A78F 3FE9 41E9 5F77 19A4 A811 FF43" /* c?A_w..C */
- $"8EE8 3FBA 00FA 54F6 15F5 CF3B 39A6 0984" /* ?.T.;9Ƅ */
- $"CC99 7AE1 8E5B 71A9 1575 DB95 F166 D52F" /* ̙z[q.uەf/ */
- $"A270 08D4 9515 3B89 2EA1 A097 12A3 B4E9" /* p.ԕ.;.. */
- $"5BFB AE47 8FD7 60F0 33DA E91B 234B 5D2F" /* [G`3.#K]/ */
- $"7C4B 00C2 60F1 7260 B78A 1835 B440 611B" /* |K.`r`.5@a. */
- $"042D F768 F9C9 8785 50AD 8421 77D4 B97A" /* .-hɇP!wԹz */
- $"6B02 828C E758 8B31 1E92 DF7F BE67 3DAB" /* k.X1..g= */
- $"E5F8 F1FB FD8C 34F4 4B2F 98BF 24A9 4DF2" /* 4K/$M */
- $"32A9 A661 B01E F960 12E1 9C18 F197 CEA7" /* 2a.`..Χ */
- $"E1C4 4AB4 7CEB 2CE2 33F3 C23C F3FD 2CF9" /* J|,3<, */
- $"F132 8395 3D39 FD9D 983D 4454 9758 856B" /* 2=9=DTXk */
- $"6556 B234 72B0 C2CA 71CA 9CEB 7AE4 FD7C" /* eV4rqʜz| */
- $"0E3F 1930 6B17 7074 C216 3D9C 24BF 5B97" /* .?.0k.pt.=$[ */
- $"A7EA 25F0 9DCC AFA5 BBEF 47E9 D7E6 7B0E" /* %̯G{. */
- $"E02F 87A2 EF87 68FC 9BF7 F274 5F00 FC3D" /* /ht_.= */
- $"A5F8 7AC7 F0FA A5F8 7D42 C03F 0F42 FE1D" /* z}B?.B. */
- $"ABF0 F7CF E1EE 40ED 1CBC E67A C7C3 33E9" /* @.z3 */
- $"75CE 6202 697A FF68 B299 C0A6 2F39 4F64" /* ub.izh/9Od */
- $"6775 1459 6387 68C9 941E E328 B150 8D7C" /* gu.Ychɔ.(P| */
- $"24C4 D953 4443 9A50 E4CC 4E41 B3A9 F28A" /* $SDCPNA */
- $"BB0E 943C 0DAB C98A 023C 332B AE2D AF60" /* .<.Ɋ.<3+-` */
- $"4D30 BA77 9D1A 93DC CEBB 7560 EA33 084C" /* M0w.λu`3.L */
- $"BCFD 2F47 685E 4CC9 8A76 F1C8 04AB 126F" /* /Gh^LɊv..o */
- $"B9FD 4A34 E181 4147 9F56 2AB4 EB2C 50EF" /* J4AGV*,P */
- $"D652 4543 763B B857 210B 2B4A BB50 0EAE" /* RECv;W!.+JP. */
- $"90BD EEEC F92B DD18 0881 9B3A C6DF A028" /* +..:ߠ( */
- $"45EB 36D7 50B4 D756 FB49 9F08 D74D 037B" /* E6PVI.M.{ */
- $"83A1 001C 0977 1DCC 81D0 B6B9 828A 6851" /* ..w.́жhQ */
- $"3CAC B3FF 572B 543A 4C73 3F35 0561 EC81" /* <W+T:Ls?5.a */
- $"A8D4 82BC 9148 5E30 FF3E 3164 C43E 5461" /* ԂH^0>1d>Ta */
- $"4BD0 139E 6390 0E05 4793 56B8 5080 CBF6" /* K.c..GVP */
- $"9E70 BEA1 FB26 DD1E AEE1 E78D 0D32 FA02" /* p&..2. */
- $"43FC FBC6 7464 2C9A 14AD 2C7C 0969 995F" /* Ctd,.,|i_ */
- $"6363 3037 9C34 C5F8 42DF B339 D2B0 5C45" /* cc074B߳9Ұ\E */
- $"6130 509D 28E7 D3A7 9308 74ED 9265 B7F9" /* a0P(ӧ.te */
- $"0F54 D265 33D9 EB57 07C4 852B E3C8 771F" /* .Te3W.ą+w. */
- $"21F8 ADA3 D807 625C 513A E395 604B 0D6A" /* !.b\Q:`K.j */
- $"A9FC 297E 63AF 7622 23B6 63E1 EF25 F572" /* )~cv"#c%r */
- $"01B0 400D 18C6 C9FA 6AF5 3E26 4199 6E68" /* .@..j>&Anh */
- $"99B5 B3A9 F861 3419 C6C7 B65C D0F6 353B" /* a4.Ƕ\5; */
- $"6551 1B0A 9D82 1F07 4185 8C46 5867 DC22" /* eQ...AFXg" */
- $"BD38 AFF7 27BA 1114 9266 5EF4 1EA9 89B4" /* 8'..f^. */
- $"A634 E917 65E5 502E 8028 D24E 725F 0C22" /* 4.eP.(Nr_." */
- $"1513 7B38 5FEA 3150 520B 6D8A 03D8 F796" /* ..{8_1PR.m. */
- $"D183 D8FA 82E2 C147 B662 593B 9FC8 A2A0" /* уGbY;Ȣ */
- $"C63B D151 D905 072C 02E5 919B 0BE9 6D76" /* ;Q..,.呛.mv */
- $"4BEF 7D51 FF67 C2F2 BB61 DDD2 7981 0B7E" /* K}Qgay.~ */
- $"D406 3679 DFA4 FAE3 A33C 28AC 06C6 93C1" /* .6yߤ<(.Ɠ */
- $"B82F 53DB 1EB8 A6F3 5A24 A44A 1A76 9204" /* /S.Z$J.v. */
- $"6543 FC80 18DA 3C5D 395B 01DC D7E8 C21E" /* eC.<]9[.. */
- $"A66C 9AE3 08D6 DBFC EE95 9E73 F71D 7CCA" /* l.s.| */
- $"2A6A F6D2 11D9 AC28 BEDE 8E1B 65EF A995" /* *j.٬(ގ.e突 */
- $"F7B5 B19D 5F63 F42B D0AD D69A BD47 1EED" /* _c+Э֚G. */
- $"2E5C 0276 3AEA F6D9 6E3F 314C 7F5F 52C3" /* .\.v:n?1L._R */
- $"093D C8A9 23E4 C154 5587 294A 98A9 0643" /* =ȩ#TU)J.C */
- $"AF18 0D20 51A4 6FE1 F326 11E7 5A91 2919" /* .. Qo&.Z). */
- $"DD53 B13B 2CB3 DE77 FAB9 420E BAFB 305B" /* S;,wB.0[ */
- $"E9AB 7A2B 623B 78FE 346D 8BB6 BA40 AE40" /* z+b;x4m@@ */
- $"5B6D 6D53 81A1 076D 7058 E792 E410 3FA7" /* [mmS.mpX.? */
- $"AD06 7E2E 5158 D129 9233 6E1D 6B7C C701" /* .~.QX)3n.k|. */
- $"D61D 42D8 472F D5E2 2710 0B6C 828A 2352" /* .BG/'..l#R */
- $"D400 65FA E227 A938 1832 18CC 2BCE 19A8" /* .e'8.2.+. */
- $"773C 3CB1 C6BD D722 8EE1 8AE2 4D4B 97D4" /* w<<ƽ"MK */
- $"1763 37E4 2F93 8578 534E 0BA9 B493 3B80" /* .c7/xSN.; */
- $"F018 28BE 2A52 15B2 8499 08A8 005F F028" /* .(*R..._( */
- $"ADFD ACEB 238F 922A 75E4 1C65 F2C3 F14B" /* #*u.eK */
- $"213D 7263 4A9A 1C80 12BD 5895 0EC8 B955" /* !=rcJ..X.ȹU */
- $"8CD0 FB81 63CF FF7F B545 85DF E201 36A9" /* c.E.6 */
- $"E524 1BD6 EDDA 7C33 8CD2 E114 BA93 51E0" /* $.|3.Q */
- $"A113 A12A FBEA 8570 B5FE E1B6 7963 5B31" /* .*pyc[1 */
- $"512A 99B1 3A59 E50E C584 DD7F FF7F FF7E" /* Q*:Y.ń..~ */
- $"D3C9 019B 1FBC DB70 2C2A 14A6 E7F1 0147" /* ..p,*..G */
- $"5F3A A36C 6F8A 9038 ABD8 EB8F FF7F FE79" /* _:lo8.y */
- $"6C12 2D6F FD6D F9A0 0392 0E82 0296 3C14" /* l.-om...<. */
- $"FEFA 803C A3D4 1049 CF30 E22F 6542 7ABF" /* <.I0/eBz */
- $"378E 66B2 9091 D396 B953 DCF5 66D3 C5B5" /* 7fӖSfŵ */
- $"7719 028C 5C0F F898 00A1 0C1D E181 F9C7" /* w..\.... */
- $"2E46 06D4 D623 1256 EFAE 89E3 4FFF 7FDD" /* .F.#.VﮉO. */
- $"F00D 4E11 65D5 B8F9 7C0B A045 AC4A 1E42" /* .N.eո|.EJ.B */
- $"221C B512 5480 EF2D CB80 A089 3603 2CA1" /* "..T-ˀ6., */
- $"391C 7925 C817 92E3 8438 C438 08D1 0637" /* 9.y%.88..7 */
- $"9FCD F4C2 C04C 40BB A484 5043 0C1E 7C85" /* L@PC..| */
- $"D7F6 1F6D BFC7 60AA 4D18 A399 9A13 CCD0" /* .m`M.. */
- $"26DA 3F97 24CB E902 0668 67F7 FE63 7A2E" /* &?$..hgcz. */
- $"16D6 987F FF7F AFC1 5C35 E63D BA36 6227" /* .֘..\5=6b' */
- $"FF7C FD39 8B8B 1A5F 6026 831B 0764 8805" /* |9._`&..d. */
- $"E40B 0F19 7FFF 7FFC DEBC DD5B 9008 0000" /* .....޼[... */
- $"0C24 1D44 4641 3BC8 4248 E229 62D2 088D" /* .$.DFA;BH)b. */
- $"117F DE8D 0B52 C3FD 1DD9 3823 F138 4C98" /* ..ލ.R.8#8L */
- $"58A8 2683 519C F914 4961 5226 891F F863" /* X&Q.IaR&.c */
- $"3FF2 B19F 113D BFEF 9D12 30C6 66BD E2A6" /* ?.=.0f */
- $"5D8C BE7E BE19 3D8F 03F2 5D26 FF7F FF7E" /* ]~.=.]&.~ */
- $"A82B 5E03 E7A8 E8F1 8C4D B6F1 F0E2 FC36" /* +^.M6 */
- $"DE7A 2F55 38B1 B436 2E50 7D25 E3F0 82C8" /* z/U86.P}% */
- $"580F 0D19 C280 415C 2A7F FCD9 C720 E649" /* X...€A\*. I */
- $"4064 2624 04AC 0B71 41FD 3937 8359 4137" /* @d&$..qA97YA7 */
- $"8CA9 B642 C318 BD37 82D3 B786 8217 3252" /* B.7ӷ.2R */
- $"44EA 4598 57D2 2F66 957F 39FE D712 F449" /* DEW/f.9.I */
- $"213A BEBB B6CC F551 FF7F EB0A AE45 8497" /* !:Q.®E */
- $"0F4C FD34 4090 01FE CFC8 51AA C32A 7D95" /* .L4@.Q*} */
- $"D414 2609 E22F 1B7D E10E 97BB 05D1 9D04" /* .&/.}..ѝ. */
- $"0592 9271 0D39 AB59 F165 0D09 549C B4E3" /* .q.9Ye.T */
- $"AEE5 555F 00A3 5E0A E4D3 BAFE 1EC6 2FCE" /* U_.^Ӻ./ */
- $"FB04 C9BC 71D8 A42D 2F70 9FE1 EC17 C31D" /* .ɼqؤ-/p.. */
- $"ECB2 0A82 EFB1 914C F6D2 E54C 5316 B6C4" /* ‚ﱑLLS. */
- $"4FFF 653B FD6E 27A6 9959 244B F458 B35C" /* Oe;n'Y$KX\ */
- $"865C EB94 2CD7 7343 B74C C211 8A4D 2A99" /* \,sCL.M* */
- $"732E 3B43 CEAC C300 A520 924D 6F1F 8295" /* s.;Cά. Mo. */
- $"DF36 1FD4 E8F0 9221 6313 1B33 0C98 2721" /* 6.!c..3.'! */
- $"8F55 5BA1 0E46 A755 1D7F A914 458D 9FFF" /* U[.FU...E */
- $"33CF 4CE3 AFC6 3383 BC4D A7E9 F546 FDCB" /* 3L3MF */
- $"8276 7778 2BBA EF7C 3677 6251 58C0 9EFF" /* vwx+|6wbQX */
- $"526C C883 6CFF 7FFF 7D4C 3F9F BD74 6BE9" /* Rlȃl.}L?tk */
- $"B6EB 9003 823B 235D 6AD9 B382 FC45 F10C" /* .;#]jٳE. */
- $"8282 90ED 9D47 E949 FADC 7B04 1C1C 9EF1" /* GI{... */
- $"1ABB 270D 07BE 1943 4E14 70E0 48FF 81EE" /* .'...CN.pH */
- $"CE8A 5AAD 3CE9 090D 3126 F96A AEBA 5853" /* ΊZ<.1&jXS */
- $"D02E ADE8 4614 E2B7 2E7E 3DB6 DE6A 77A8" /* .F..~=jw */
- $"48D0 2DBB BAF4 E94C 735D 27D6 87FF 7F80" /* H-Ls]'և. */
- $"5BCC 3CA6 1168 D9E0 38B4 22B2 2154 02AA" /* [<.h8"!T. */
- $"A1FF 6D87 EB2B F3EB 3814 9F74 DEF3 4D86" /* m+8.tM */
- $"ED68 7E75 9E81 1FD9 170B E013 7E4D 97B3" /* h~u....~M */
- $"51B0 6B2A 42AF EEB4 899B D2A2 6AC9 8EBF" /* Qk*BҢjɎ */
- $"2858 9FFC 5050 3364 8F2D 313E 94A9 5ED5" /* (XPP3d-1>^ */
- $"6213 E9DD 6FF6 5813 72DA FE40 0F70 06C4" /* b.oX.r@.p. */
- $"FF7D 053C 3E69 C976 DDFF 02D9 4688 D8D7" /* }.<>iv.F */
- $"8DEF 5187 FCA3 40EE 3167 B6DD 7EE6 42AB" /* Q@1g~B */
- $"B07A DB20 DC1D 7016 631F 8FB0 C83A 9CC2" /* z .p.c.: */
- $"66B9 304B 74F5 03F7 217C D3E3 6000 ECE6" /* f0Kt.!|`. */
- $"A319 FD9E 4131 7E74 59C6 FB3F 1B51 FE89" /* .A1~tY?.Q */
- $"52D3 C845 1BF0 4BFE 3BAE 4940 9830 8E9C" /* RE.K;I@0 */
- $"F843 F6A2 218E B2E2 8092 8E0E 3889 8137" /* C!‒.87 */
- $"583C 394F CCE6 3D1B 37B8 C9A4 D805 B9E4" /* X<9O=.7ɤ. */
- $"A037 E45D 1167 9627 81E0 538C 1B6D EA0E" /* 7].g'S.m. */
- $"18CD 8E3C EE0C 5E0C B048 8DD2 C804 CA38" /* .͎<.^.H.8 */
- $"8678 CAA9 5EE1 8B6C E7D9 FDE1 5C14 D52A" /* xʩ^l\.* */
- $"67F3 8A12 F698 857A 5692 1FB3 FF27 FE1B" /* g.zV.'. */
- $"7E31 5D25 B4A2 3647 FF07 064A 4D7B F160" /* ~1]%6G..JM{` */
- $"62D7 81CE 0940 AE5F CAEB F1A6 10C4 CB0E" /* bׁ@_.. */
- $"3D77 2C40 0146 8C72 B765 F6A9 3047 E748" /* =w,@.Fre0GH */
- $"0239 A725 8B4C 56F0 7E86 9A24 53D7 4832" /* .9%LV~$SH2 */
- $"7924 73CB 4431 4977 0487 03FC F1B3 A21C" /* y$sD1Iw... */
- $"2792 0B05 8183 8348 8EC0 2635 47D9 B51D" /* '..H&5Gٵ. */
- $"CE40 1FA4 20C5 93A8 BEB4 B8CD 93D8 A79E" /* @. œ͓ا */
- $"62C5 846C 964D 0404 BE21 3AA5 9EC3 4450" /* bńlM..!:DP */
- $"FAEE 938A A428 E4D0 7F1B 46A8 7AEC 97FB" /* (..Fz */
- $"1AFF 71DA F26D B5B1 E6F2 66B4 865E 1F12" /* .qmf^.. */
- $"CE0F 3A8A EDF1 6321 BC5A 22D5 D3D6 BE19" /* .:c!Z"־. */
- $"671A 38C3 11E8 FC9D 93AC 895A 1B84 7C9B" /* g.8.Z.| */
- $"979F 5DC5 BBE6 19A8 5D03 BE83 6FA4 B8F2" /* ]Ż.].o */
- $"AFCD 8115 B21B C1D5 80B4 5E20 3B19 9E48" /* ́..Հ^ ;.H */
- $"29C0 68DA F799 EC0D 56B3 7049 5EC1 11CB" /* )h.VpI^. */
- $"CBAF FA0A 5AF1 22F1 3A4C 6F13 635A C681" /* ˯Z":Lo.cZƁ */
- $"06DA 8B44 A35B CF31 9B6F 57E6 AEC2 8D59" /* .ڋD[1oWY */
- $"1556 A43E A289 74DC C398 B209 31B9 8CD0" /* .V>tØ1 */
- $"07BE D253 76AB 7D79 4F26 D099 7AE8 E52C" /* .Sv}yO&Йz, */
- $"EA35 D7BB E968 CAA0 5F61 EAE5 E9A1 E903" /* 5׻hʠ_a. */
- $"100E ED2C 5A66 21E2 1426 BE74 7A19 8C98" /* ..,Zf!.&tz. */
- $"3D67 A4D2 370F C95D 7131 2D31 0971 6022" /* =g7.]q1-1q`" */
- $"F4F2 359E 1FBD D23A CD94 4467 205E F7B1" /* 5.:͔Dg ^ */
- $"5D18 EE91 9078 176B ADC2 65EB EECF D1A8" /* ].x.keѨ */
- $"F1B3 B999 E7CC 3079 BD9C 82D8 DF6E 29E0" /* 񳹙0yn) */
- $"9502 EC8D 5C13 629B 109E A7C0 F438 6674" /* .\.b.8ft */
- $"C48B E75A 7CAC 28AE 3E9C 0ECF 9ADF F7BF" /* ċZ|(>.Ϛ */
- $"C51A E20D 64F1 B1DD C986 0C6F 6BFF 5102" /* ..dɆ.okQ. */
- $"B233 B826 EBC9 35E2 9799 0A0F E81D 0816" /* 3&5◙.... */
- $"E01C B1A8 E4D9 1CCF 7F2E 4DB3 371B 83C0" /* ....M7. */
- $"9DFD A603 83D6 4412 7DCF 2E2F 85D8 8259" /* .D.}./؂Y */
- $"DC97 798F 2E8A 09F5 C1A7 1E56 55F3 BFD0" /* ܗy..VU */
- $"34CE 311A 98BE C87C 8CCE 6EDF C85C A788" /* 41.|n\ */
- $"AA7E 47D5 72AF 1842 5C5F 9D6A C586 CA4C" /* ~Gr.B\_jņL */
- $"34D3 6315 D6CA 0D6D 5B75 6C85 551B E270" /* 4c..m[ulU.p */
- $"E9DD 6127 C363 1F5A 0AA4 8F55 114F 9ED3" /* a'c.Z¤U.O */
- $"034E A968 1BF1 513A 2F0D 3E61 612A 15E6" /* .Nh.Q:/.>aa*. */
- $"B89F 1877 F38E 8C96 20C3 1952 A559 62AE" /* .w󎌖 .RYb */
- $"20E0 BE7D BF7C FAA3 F56C FF75 6D5E 07E7" /* }|lum^. */
- $"EB87 E7E9 BFE7 EE37 E7EE B60B E7DA F7CF" /* 7. */
- $"A6FF 2B5C 2F9F AC00 ED1C BCF0 084D B6D5" /* +\/...M */
- $"A3F8 3A1B 179B 5659 AE02 A536 8D65 B1A0" /* :..VY.6e */
- $"F806 81C6 9453 B9E5 1E84 EF36 3D8C 9922" /* .ƔS.6=" */
- $"A841 EBC7 584D 175D A8CF 5AE5 52F4 364A" /* AXM.]ZR6J */
- $"CACB F4FA 59D1 6C18 1FE0 5F96 0F70 465A" /* Yl.._.pFZ */
- $"7CFD 0C37 59FF 6248 10C6 4872 8573 D54E" /* |.7YbH.HrsN */
- $"7839 337E D900 4336 CF58 B59C BCC4 602F" /* x93~.C6X`/ */
- $"EA1A 205F CD8D 635B AE0D 5750 3316 72C7" /* . _͍c[.WP3.r */
- $"A765 C2F2 CF8C 52FB 1892 F55E B7A5 6D85" /* eόR.^m */
- $"5782 FAB6 FBB5 CDF3 2DC2 0256 2927 4F4F" /* W-.V)'OO */
- $"1F92 5F99 B540 87DD 7A80 991B 0677 AB00" /* ._@z..w. */
- $"2D82 C5F6 11F7 F21B 2652 B798 75D5 42A6" /* -..&RuB */
- $"7757 E0E7 3C3F DBA5 6106 9F44 1800 E044" /* wW<?ۥa.D..D */
- $"5844 8C9D 83C0 C5D3 6B95 CE2A 3EBC D7FD" /* XDk*> */
- $"B79B E645 6FD3 A5EE ECE2 C9A7 53C7 B2E3" /* EoӥɧSDz */
- $"C659 D5C5 0FBD 7C88 93C3 D3D9 D81F 0AEB" /* Y.|. */
- $"5784 8BF9 DAD7 993D 0C8B 9873 08A4 254B" /* Wי=.s.%K */
- $"2452 F95D 29CA 8B3E D48D 18FB C813 4ECB" /* $R])ʋ>ԍ..N */
- $"D118 E3FA 926C 7A5F E5CC F774 D1DB B5C1" /* .lz_t۵ */
- $"579A 2647 619A 67A0 423D 6C64 B3A6 9357" /* W&GagB=ldW */
- $"B8C6 8FBE A3AC E380 E548 5ED3 D83D 7DB9" /* ƏH^=} */
- $"93E8 9071 F6E0 168F 6BEC F674 6D08 F4DA" /* q.ktm. */
- $"C1F7 11FD DEF8 2420 30DA 71E2 C605 81EB" /* .$ 0q. */
- $"565B D461 AF6E 3127 34AC BA64 C660 14E1" /* V[an1'4d`. */
- $"F6AB DA92 386B 3E7B BD42 90E9 ABA2 6EE7" /* ڒ8k>{B髢n */
- $"8D0D 373C D280 46EC 6746 310C EA41 862B" /* .7<ҀFgF1.A+ */
- $"6D1B 7BE9 93AF 17F6 1D3A E7AB CA55 8A4B" /* m.{铯..:UK */
- $"E867 6EF3 29DF FF5F B839 75E1 FA04 DD81" /* gn)_9u.݁ */
- $"B6C9 DA44 D268 3B1A FF63 60F5 37A5 DDCB" /* Dh;.c`7 */
- $"1AB3 5275 7692 7F15 F8E8 6A96 CEB4 D9E5" /* .Ruv..jδ */
- $"3E5A 0E16 B1D0 B056 D0D2 0360 0900 5773" /* >Z..аV.`.Ws */
- $"BB3F C215 FD55 C9BF E3FC 48A1 CFAB BD39" /* ?.UɿHϫ9 */
- $"CD3D 906E 21CB C3DD E4D3 548C 4731 E777" /* =n!TG1w */
- $"EE15 C0DE CEBC 0F2F 85A6 9822 F1FF 7B2F" /* .μ./"{/ */
- $"2530 48C7 0C39 3659 CD03 06C5 7C8E 3D49" /* %0H.96Y..|=I */
- $"FED5 7B72 4652 772C 39C7 8F1B 63E8 2DC1" /* {rFRw,9Ǐ.c- */
- $"1242 CA35 E396 6103 15DF D939 0597 B8D4" /* .B5a..9. */
- $"8858 ACE3 3C32 6EE5 69A3 8512 3447 2B3B" /* X<2ni.4G+; */
- $"0647 8C1F 2D31 4E57 0D03 BE26 5235 5275" /* .G.-1NW..&R5Ru */
- $"74E8 B8F6 CF32 E077 8C51 41DB ED67 EE30" /* t2wQAg0 */
- $"AD97 7956 D279 B0A8 768D 00E3 F604 A240" /* yVyv..@ */
- $"9656 5BCD B309 D0CD 3ECE C477 31EC F88D" /* V[ͳ>w1 */
- $"782F 8B9E 37FA A741 C636 7B55 D047 64A4" /* x/7A6{UGd */
- $"E2EC C69D F609 F38F 821E 8D20 8709 87FF" /* Ɲ. Ƈ */
- $"3C3A B1ED C420 1F0B 52E3 8999 C684 30F3" /* <: ..R㉙Ƅ0 */
- $"C4ED 7FA9 3A2C D0E7 AE48 1AC2 7196 9347" /* .:,H.qG */
- $"6BC9 BEE1 4112 4209 93CA 307A 7FF7 8B12" /* kɾA.BƓ0z.. */
- $"EE76 8890 A529 33CC F435 A84F 9414 A719" /* v)35O.. */
- $"BFB2 6305 201F 372D 567F 30DF 2E47 D0B9" /* c. .7-V.0.Gй */
- $"C68F 5126 7EAA D95A 12D0 DA8A 8CF4 8A2A" /* ƏQ&~Z.ڊ* */
- $"CBAE 0509 B614 A9E1 2CA2 D0E0 F017 E395" /* ˮ.ƶ.,. */
- $"AF82 85B5 4509 E75C 8E4D 5465 7DF2 CF39" /* E\MTe}9 */
- $"ACFB DD5B C683 62C0 0B1C B7B9 EAEC 049C" /* [ƃb... */
- $"8045 0178 6757 E317 872D ABC2 B077 6EF6" /* E.xgW.-°wn */
- $"3612 4132 3DD7 D39B B49A 04A8 207D 6135" /* 6.A2=ӛ. }a5 */
- $"C64F 3A0F 5028 7B6B 953E 8F19 920A 718F" /* O:.P({k>.q */
- $"08E9 A079 EC51 A08F 4A77 5130 C807 9BC2" /* .yQJwQ0. */
- $"B37B 4C7B 9BAA 40F3 4E94 BE51 C027 32B5" /* {L{@NQ'2 */
- $"751F 4793 7271 226E 82F3 CF14 8BC3 F927" /* u.Grq"n.' */
- $"4C81 7F29 AB70 8B3B E948 86D6 569F FEC2" /* L.)p;HV */
- $"BF6C 92F9 1011 3BE3 9E91 6458 1634 34A3" /* l..;㞑dX.44 */
- $"3042 520F 5D64 6429 32CE 04FD 1B98 0698" /* 0BR.]dd)2... */
- $"3A36 655C 86C7 C272 4B02 E259 0537 4DB8" /* :6e\rK.Y.7M */
- $"C6C2 6980 ECFB 0FC1 C6D9 0A2C D00F 282A" /* i.,.(* */
- $"7A0B D91F 08CA 762C A629 048E 9BCC CFD2" /* z...v,). */
- $"1EBC 8F60 2F64 F24D F1FB 81C6 8AEC CFDB" /* .`/dMƊ */
- $"623A 01A9 35D2 B5E1 B80A 2D32 084E 3857" /* b:.5ҵ-2.N8W */
- $"C025 BCDA 4728 F3AD 35AD 9AAA E054 21B7" /* %G(5T! */
- $"A47E 62C5 9921 02C0 09E3 440D 063A 3789" /* ~bř!.D..:7 */
- $"5072 E54A 4654 E148 AC2E 4A99 C6A5 3923" /* PrJFTH.Jƥ9# */
- $"49B5 6906 6531 FD5E 7CCE 1C4B EEDE 7482" /* Ii.e1^|.Kt */
- $"9E3F 73AE C777 0214 C921 3131 C5CB 9F61" /* ?sw..!11˟a */
- $"64A4 4E70 57C2 5C04 E25B 266E 6887 7477" /* dNpW\.[&nhtw */
- $"FCCB 1F0C 89F2 6CF6 713E 4D08 8AC8 9B0C" /* ..lq>M.ț. */
- $"00AC D9D7 A28A C219 B52B B46A D704 F919" /* .ע.+j.. */
- $"2050 6CCA 215A 299B 9129 9739 DA6F 3A67" /* Pl!Z))9o:g */
- $"FE12 2BF1 4F8B 26ED D21F F727 5B59 22F3" /* .+O&.'[Y" */
- $"2E05 F4A0 9754 F431 9AED 1B65 038C CD7F" /* ..T1.e.. */
- $"8254 E3AE 035C 18D7 0E28 6300 0DF0 998D" /* T.\..(c.. */
- $"0191 85AF C71B B3CF F0D6 3A8F B1AA 5E99" /* ..:^ */
- $"BAB8 7C7F 0214 F864 4744 E747 7248 3C94" /* |...dGDGrH< */
- $"3AC8 CE04 1019 11ED 4BCC 76E9 FE4E 5728" /* :....KvNW( */
- $"5BB0 986C D763 A3C7 AF8A 14E9 D24A AD17" /* [lcǯ.J. */
- $"FF66 611F B77C 0830 9093 A560 06FA E9CF" /* fa.|.0`. */
- $"054B 5846 1681 5DBF 34F9 49A9 45E0 8F20" /* .KXF.]4IE */
- $"7FFD 6264 2193 031D A60F A111 B0B7 CFEE" /* .bd!.... */
- $"DE49 EC80 C0F1 D7F6 A495 900B 4126 40BE" /* I.A&@ */
- $"185B DFFE C7B0 12AC C143 AA85 70E5 81EF" /* .[ǰ.Cp */
- $"79CE 1662 08E4 203F 1706 40FB CC39 CA8F" /* y.b. ?..@9ʏ */
- $"8002 1CFA 3BCC 6B79 5C83 A4D2 7147 E38F" /* ..;ky\qG */
- $"C93B F2E8 6A15 6D30 C314 E898 81E3 FF7B" /* ;j.m0.蘁{ */
- $"5FC5 EE13 0449 1985 2CBC 73C7 C569 DCB1" /* _..I.,siܱ */
- $"8024 F7CA CC7A FE3B CC15 4BCE 5B92 1BBB" /* $z;.K[. */
- $"0048 F291 579F FD20 F11A 1934 CC11 9C3F" /* .HW ..4.? */
- $"CE49 027A 9763 9E57 A2FF 7FFD 53E4 E50B" /* I.zcW.S. */
- $"C747 02FF 7869 0537 1482 221E 0220 79D5" /* G.xi.7.".. y */
- $"45B1 2E48 6A6C 8486 571F E1F1 BF39 0797" /* E.HjlW.9. */
- $"5D21 6964 EA9B 13F1 E6B7 C4B5 A2B7 E2BD" /* ]!id.ĵ */
- $"09C2 B200 0000 0000 003E A392 6527 69B6" /* ²......>e'i */
- $"B189 8365 F55D 7A2B 0398 4196 BB60 D4F0" /* e]z+.A` */
- $"06B6 100C 5B60 D76F 8FEE EFFB D525 0E2B" /* ...[`o%.+ */
- $"3535 B765 22E7 F77C CF5C 8907 7626 62C0" /* 55e"|\.v&b */
- $"3B04 A170 EEA6 A399 F26B CD7E 92BC 9E13" /* ;.pk~. */
- $"9D2D 6907 B06F 6B9A 957D 3C57 DC9F 06E6" /* -i.ok}<Wܟ. */
- $"C3B6 16AD C91B E868 E000 1848 3BE4 5C3A" /* ö..h..H;\: */
- $"1162 2272 401F 600B A973 281E 62B3 2654" /* .b"r@.`.s(.b&T */
- $"74B0 287C C53E A3DA 2A14 E38F 9FFE 3A8E" /* t(|>*.㏟: */
- $"0D69 7E9D 5B07 1396 ED52 69BC 3971 5630" /* .i~[..Ri9qV0 */
- $"7C63 8DA9 7A40 F364 CC6A FCAC DC7C 59DC" /* |cz@dj|Y */
- $"278A 92E3 6FBF F936 7157 2583 232E E558" /* 'o6qW%#.X */
- $"0000 C241 6B90 4DCB 6421 F85A B681 4812" /* ..AkMd!ZH. */
- $"9165 5C06 0195 F213 DB9F 5E2F 4BDE A075" /* e\...۟^/Kޠu */
- $"BD9A 741B 971B 3411 1F73 7FF8 D719 BA55" /* t..4..s..U */
- $"8048 404F FEEA FC74 AEB1 84FD 03F9 5D43" /* H@Ot.]C */
- $"BE42 E61F FF7F F4CA BA56 9654 B757 FF60" /* B..ʺVTW` */
- $"CA39 3290 054C E785 0EA7 F04D AF3E B342" /* 92.L.M>B */
- $"A80A 815D 3954 73F2 871A 51FF 7488 20CD" /* ]9Ts.Qt */
- $"90F3 23B8 80FE C6BF 726C 5426 83F2 5400" /* #ƿrlT&T. */
- $"0000 0000 0000 0000 BFA5 D802 777C F954" /* .........w|T */
- $"286B A586 76CF 26CE 72CA 6FE7 BD43 DB36" /* (kv&roC6 */
- $"A826 870E 2EEF E2C4 2E22 E63C FF7F AF51" /* &..."<.Q */
- $"40C1 B727 22F3 9ACC 894D 0C49 EC7A D998" /* @'"̉M.Iz٘ */
- $"64A9 DD22 2545 B85C D621 0609 B73A 9D9F" /* d"%E\!.Ʒ: */
- $"FF7F FF7F C0F7 00E1 B069 1D76 3BA1 E98C" /* ...i.v; */
- $"5F1B 1E11 B6F6 EB6D 6316 9DBC D1B2 DC90" /* _...mc.Ѳܐ */
- $"5E1D 5EE0 3C65 57D0 B69C 3782 D1BE 3A77" /* ^.^<eWж7Ѿ:w */
- $"436E 462B 45B7 FF61 4FA4 A45B 8C34 39D8" /* CnF+EaO[49 */
- $"1B35 B876 A5F1 F2AD 3F78 D289 1C2E E3B4" /* .5v?x҉.. */
- $"A28B 64FA 1E2C 0CCD 0B1C AD42 8866 DDD6" /* d.,...Bf */
- $"62F0 225B 8DF7 32B3 FC3C 79E9 000B 1CA9" /* b"[2<y... */
- $"2C82 4874 34AB B158 47CD FA9F EBC8 0923" /* ,Ht4XG# */
- $"B291 7229 8C3F E7FD 193C 330B A3B4 6969" /* r)?.<3.ii */
- $"FCF6 E1BA 4C4A E64C B1BC 5BAF F402 C828" /* LJL[.( */
- $"3A51 CC67 A851 E207 5A7C 3733 1031 FD5C" /* :QgQ.Z|73.1\ */
- $"E4D3 B69F FF67 2C6D 3FC7 D5B4 E63F 55B9" /* Ӷg,m?մ?U */
- $"FD5F 3DB1 4589 6ADF 54F0 F42A 498F 61C8" /* _=EjT*Ia */
- $"4872 5CD7 F70D 9C80 8880 EB9A 1FE7 C715" /* Hr\... */
- $"E57A 280F 96CF 014C 0411 EF44 C4F2 C64F" /* z(..L..DO */
- $"F91B A9D6 EB9E F615 096F E5C0 5B30 BB79" /* ..o[0y */
- $"D645 BF4F B70A 2C40 3D24 A4C4 5A01 F3DB" /* EO,@=$Z. */
- $"8879 D458 F558 4C8E 3C87 E83C 9C30 F0C3" /* yXXL<<0 */
- $"F7EB BE6A 2B3B B9CB 4F2E 3B49 CA98 6025" /* j+;O.;Iʘ`% */
- $"D6C7 6B39 ED18 A784 5410 F9CD 4FB5 9E32" /* k9.T.O2 */
- $"EABF F72F 6ECC 217F E295 4BDA F0C8 2678" /* /n!.K&x */
- $"B0F7 3381 2299 1033 5300 BB1C E72F 1EE0" /* 3".3S../. */
- $"75D6 68D0 8C87 A574 580B 4AD8 7BC8 E1C4" /* uhЌtX.J{ */
- $"64D3 76AA A080 1E28 FD04 890B B9A1 7E5C" /* dv.(..~\ */
- $"79E2 31B9 1C3E DBAE 8BC6 DB23 53A4 0F06" /* y1.>ۮ#S.. */
- $"74AA 7920 6233 E3BF B281 AFAA 957D FDFB" /* ty b3㿲} */
- $"216A 3ECE 3139 37DF 8885 620B 5D55 D0FD" /* !j>197߈b.]U */
- $"F796 6A70 CEFD 33D8 B369 178E 99C0 9FFF" /* jp3سi. */
- $"7FD2 27D4 D615 4840 B836 A0B5 1D6F 2A5A" /* .'.H@6.o*Z */
- $"1338 2369 83A0 D409 0FA7 77EF 19B9 21E6" /* .8#i.w.! */
- $"3E21 0CB0 D4D3 362A EA6F 6340 8D73 27FB" /* >!.6*oc@s' */
- $"C3EF 7823 33DF 7A8C 5C69 20C4 5816 72E4" /* x#3z\i X.r */
- $"712C 3345 6755 76F3 FEAF 494B D0B4 3C8F" /* q,3EgUvIKд< */
- $"B83F A050 C3E9 4CA2 6A6E 7AD0 D7FF 5860" /* ?PLjnzX` */
- $"548E 54E7 C3B9 6DDF 462C 54BE 5EF9 1A41" /* TTùmF,T^.A */
- $"6A46 A4FB 1C36 1CA4 77EC 2899 F147 3422" /* jF.6.w(G4" */
- $"843C 7FAE 123E 6894 9B7F 3125 EB0F 3129" /* <..>h.1%.1) */
- $"9DC1 8469 CE90 BB6E 4F2C 385A 0FD1 9AC7" /* iΐnO,8Z.њ */
- $"3318 3BF0 B1AA A51A 9022 A143 29FF 7FC1" /* 3.;𱪥."C). */
- $"0F0F 6570 67C4 7FA7 9906 DE4E 5439 A278" /* ..epg..NT9x */
- $"34E1 3D57 BB0E 086E 4C71 4406 DA9D CA56" /* 4=W..nLqD.ڝV */
- $"3EFD D077 5DA5 CD7D C244 9128 F408 1F03" /* >w]}D(... */
- $"0C8F FF4B 9274 2EC6 E208 13C5 EE1B 3CEA" /* .Kt....< */
- $"C5C0 06F5 0FA1 11FF 7FE3 A446 32E6 F4DA" /* ....F2 */
- $"23EC 5108 3AE0 CD16 AFFF 3965 8196 56E2" /* #Q.:.9eV */
- $"2881 4EB9 CA14 5C4A 8091 B176 8823 BF09" /* (N.\Jv# */
- $"CED5 0D88 E6BB DD95 1B72 36E8 809C D432" /* .ݕ.r6耜2 */
- $"872D C08C 7DCB B30E 548B AE16 0D85 6B49" /* -}˳.T..kI */
- $"9B28 D491 ECD6 F598 691A 0891 135A 63A0" /* (ԑi...Zc */
- $"593C 1FFD 8A54 4FB9 F2AB 20FC 5CF3 1B88" /* Y<.TO \. */
- $"EE7E 8355 45D6 87C8 28CE 7B33 92A2 D8D6" /* ~UEև({3 */
- $"E8DF EF94 500A 0D78 DE9F 8657 F7BD 7F40" /* P.xޟW.@ */
- $"5E07 0789 EDC7 F3A5 A0BF 3929 6B19 A460" /* ^..󥠿9)k.` */
- $"7A50 91FF 42EA 5F12 DFA5 E0A0 84CC E869" /* zPB_.ߥࠄi */
- $"BB1F 6EDA 2238 5DB0 7F22 3521 F04B FF6B" /* .n"8]."5!Kk */
- $"6827 722A DD5F 3C9D D3F4 2BE3 614D 0A3F" /* h'r*_<+aM? */
- $"62C4 E6AC 95CA 5946 37E8 BC76 97FD 5167" /* b欕YF7vQg */
- $"C970 D4C7 0655 C470 5913 DBBD AA8C 87A4" /* p.UpY.۽ */
- $"3C63 0B7F 54CD 391E 574D F2D5 C728 20B7" /* <c..T9.WM( */
- $"9955 DAC8 72A5 DBBB F7ED 4C9F 6FFE 3A4E" /* UrۻLo:N */
- $"E165 1831 C0E5 8285 96C2 3959 1BE7 E884" /* e.1傅9Y. */
- $"E568 89C1 FD03 D443 F6D1 A7C9 4CFE F7B9" /* h.CѧL */
- $"A0BA 5040 19D5 965F 0EB5 E503 4B32 E6C8" /* P@.Ֆ_..K2 */
- $"B9C1 DEBB B8B7 47DC A850 AF44 D3B7 F562" /* ޻GܨPDӷb */
- $"4210 4DFF 42A0 3D9A 7C63 8124 22A9 B258" /* B.MB=|c$"X */
- $"2256 6243 3077 FF57 7389 3FB6 A096 0EAB" /* "VbC0wWs?. */
- $"DD33 EF25 C4B0 7338 F6D7 8730 FF2E DD0A" /* 3%İs8ׇ0. */
- $"BBDA 7A6E EFE8 58EE D64B A09E 2B00 EC04" /* znXK+.. */
- $"09C9 A9F4 82A0 3132 4829 65CA E93B B827" /* ɩ12H)e;' */
- $"E81F B387 132B 5D15 E526 6FEC 2CB1 407F" /* ..+].&o,@. */
- $"8485 FF32 4933 D357 FC45 0E44 EE66 D960" /* 2I3WE.Df` */
- $"5AA3 A13A FC0B D8E2 622E 0BEE 714F 2672" /* Z:.b..qO&r */
- $"3850 26C4 E626 F9BA 418C BC8A 7481 C6BE" /* 8P&&Atƾ */
- $"BFA6 0D72 0603 3452 46C0 9FDB BE63 34D9" /* .r..4RF۾c4 */
- $"9599 7519 804B F1CE 0FC8 7572 F58E EB32" /* u.K.ur2 */
- $"3501 CBB0 C05B 5643 485A 0012 64C2 8022" /* 5.˰[VCHZ..d€" */
- $"BD39 EB39 2B57 0AA3 3931 93D4 885E CDF2" /* 99+W£91Ԉ^ */
- $"818D 7734 36C2 BEE1 4F55 116C 47A9 DC40" /* w46¾OU.lG@ */
- $"A8A8 4532 7C33 9D7E 070A BA9E 36F7 2445" /* E2|3~.º6$E */
- $"074C 181A 07B2 C470 FA15 8CCB C069 AD0F" /* .L...p.i. */
- $"9DD2 8B21 6F22 7300 34B4 4378 25AB D9D2" /* ҋ!o"s.4Cx% */
- $"1D9B B7F7 2F9C C3B1 926F DE61 4463 90BD" /* ./ñoaDc */
- $"BC76 27E7 A5B5 826F 908E 31BA 048F 97C1" /* v'祵o1. */
- $"1884 67A9 C4BA 4B2B 4A58 D0EE 0269 6832" /* .gĺK+JX.ih2 */
- $"E8C6 03AA D2A2 D034 27AA D49E 9C01 069A" /* .Ң4'Ԟ.. */
- $"1BDC C40B 3BA7 5F8D 0468 152D E505 7EC0" /* ..;_.h.-.~ */
- $"6BBF C4F4 2F45 99CB 1872 C713 FA0D 055F" /* k/E.r..._ */
- $"551D 6E4D 5794 CC71 BAB5 C560 4D20 9464" /* U.nMWq`M d */
- $"9F8C 94BA 1C96 0987 1AB4 61BB BA86 751B" /* .Ƈ.au. */
- $"9B79 D06A 7A3D A663 FB31 8B86 E588 5D15" /* yjz=c1]. */
- $"4A09 8B2B 81FC AE85 0D5A 1D8C A5B7 6DD9" /* JƋ+.Z.m */
- $"02F5 50CE 7017 1BDD 3D3D 86CB 250B 491B" /* .Pp..==%.I. */
- $"AA1F 2D21 A416 E8E7 9A53 4299 8CDE CD59" /* .-!.SBY */
- $"C678 B559 D85C C580 6795 AD5F F578 C9EE" /* xY\ŀg_x */
- $"73B2 8F4B 6EEA 6F07 F785 C1B3 374B E51F" /* sKno.7K. */
- $"46DC 728C 05A4 6932 792A DB50 4E9A FD82" /* Fr.i2y*PN */
- $"A8A2 5EB8 024D C558 D6BC 350C 97B0 B2E8" /* ^.MXּ5. */
- $"8F42 92FD 604D 6FB7 74B6 6EBE 97F6 CE03" /* B`Motn. */
- $"0DFA C340 31C3 4C5E 0041 088B E097 383B" /* .@1L^.A.8; */
- $"A236 97CC 8D2B 6F6D 0E58 4E56 1D49 32EC" /* 6̍+om.XNV.I2 */
- $"626C C303 42BB D30B B8DE 5868 3C2F E39B" /* bl.B.Xh</ */
- $"A07A 236D 0F21 C0DD 1A0A 933A 7710 6605" /* z#m.!.“:w.f. */
- $"343E 8D1A 9384 4F16 C01E 5AF7 DF53 0B38" /* 4>.O..ZS.8 */
- $"3615 80D7 428E 90F6 4620 02EA 4590 DF22" /* 6.BF .E" */
- $"4B70 2FB2 CADA A529 F7FA E7C6 BC99 DFCD" /* Kp/ڥ)Ƽ */
- $"5EE7 D677 B5BE F819 6A55 6070 E1A9 DF53" /* ^w.jU`pS */
- $"3F82 0229 B6B7 D247 1967 8313 056F 9D27" /* ?.)G.g..o' */
- $"753E E4DD EB7F 1372 C0F7 D72E 349B 2F9B" /* u>..r.4/ */
- $"686C C9AF 0896 0865 7A3A 5A9D 807F 292A" /* hlɯ..ez:Z.)* */
- $"8DDA A776 4B3C 0993 532D D682 A41B 9DC2" /* ڧvK<ƓS-ւ. */
- $"5113 9D60 934B 2055 D671 C6C4 1252 3CEF" /* Q.`K Uq.R< */
- $"C72F AC19 4BED 185D BC60 5957 F81B 8278" /* /.K.]`YW.x */
- $"20B5 9173 4A1B FDC9 295D 54B7 8AFE 6938" /* sJ.)]Ti8 */
- $"FE49 BA78 3225 49A1 4243 823C 52B9 8489" /* Ix2%IBC<R */
- $"9BDF 0AA1 9A6B 667D DCE2 FE18 C386 4EE9" /* ¡kf}.ÆN */
- $"8AF7 92D0 4405 227C BD4C B9E4 34A7 2533" /* D."|L4%3 */
- $"D3C6 E915 D57B 681B B6DC FF03 D5D4 F1DD" /* .{h.. */
- $"4FB5 BA54 262A 73C2 1CF4 4CD1 D842 E8C2" /* OT&*s.LB */
- $"8169 3555 13EC 6A25 6DE0 3614 EC2E D1BB" /* i5U.j%m6..ѻ */
- $"E597 BFC6 2ACB 6879 11D1 870D E79E 8422" /* 嗿*hy.ч.瞄" */
- $"C01D 4032 8887 6DBA FBEC 3077 F220 49E3" /* .@2m0w I */
- $"8693 0B00 9F45 0F57 0A39 DA8E EAA5 CD48" /* ..E.W9ڎH */
- $"2C93 C3EC BDE0 71D5 5749 0952 441C E3F8" /* ,qWIRD. */
- $"597F C1E6 FB6B BBED AD71 FC34 CFF8 5877" /* Y.kq4Xw */
- $"DB67 5F6D 798F E163 5F6B 1CFA A87B ED7C" /* g_myc_k.{| */
- $"F176 3065 72FF 443D BA6B 8FBD 9E85 806A" /* v0erD=kj */
- $"2A1B 368C 7A9E B1B1 93DE ABD8 263F 31B3" /* *.6zޫ&?1 */
- $"1739 58F1 7233 FE7C 4EC4 32AA CDDB CF11" /* .9Xr3|N2. */
- $"C519 9C61 B756 AF62 D55D 5D48 6AF7 4364" /* .aVb]]HjCd */
- $"205E F14D AAD6 EFF5 2F0D CBE4 0F19 3159" /* ^M/...1Y */
- $"94F4 910E 4217 990B CABE EBF5 2B67 2EF6" /* .B..ʾ+g. */
- $"FE41 0C44 1C50 43EA 69F5 4E73 5569 82A1" /* A.D.PCiNsUi */
- $"C13C 4899 3AA9 5E13 5F76 BF98 2105 1842" /* <H:^._v!..B */
- $"AF34 9AFD CFC8 D1E7 3479 E1F3 C86F D06F" /* 44yoo */
- $"9ED9 9DD8 E2E0 4B44 19F4 03E6 9CC0 3474" /* ٝKD..4t */
- $"DFBD 078F D140 1C06 5F8C B6E2 665C 703A" /* ߽.@.._f\p: */
- $"2841 642E F538 C531 697D 5064 11AD 9E8C" /* (Ad.81i}Pd. */
- $"5A53 3174 7302 762E 9708 BEF5 AD41 0C01" /* ZS1ts.v..A.. */
- $"D744 85FC D963 416A 9A3A 6898 F067 5B1C" /* DcAj:hg[. */
- $"873B 42B6 72C4 FF18 337A 8A24 EDCE 6B8B" /* ;Br.3z$k */
- $"BF06 0EA4 0227 A131 8620 B03C A2B9 729E" /* ...'1 <r */
- $"1242 EC64 E340 5C5C 9BFF 120A BB1B 75E5" /* .Bd@\\.».u */
- $"385B 68AF C7B7 8BA5 1E7B 6FC1 DDB2 F642" /* 8[hǷ.{oݲB */
- $"FF56 4D21 66B3 EA8C 7095 8FBD 92CC 7315" /* VM!fps. */
- $"665F B398 608C ADD4 11E0 DA38 734A C3DB" /* f_`.8sJ */
- $"9249 4640 27D6 D057 426E 651D BF14 F0DE" /* IF@'WBne.. */
- $"9130 2D17 8D66 9689 79BD 9A6D 5AF9 6C7C" /* 0-.fymZl| */
- $"94BF 8531 6507 5621 1C11 8D8F F3A5 83D9" /* 1e.V!.. */
- $"7EE3 1E6D 9B0A 8D44 F466 DE49 E606 E143" /* ~.mDfI.C */
- $"7E77 D417 D49D 9CF2 89AA B0FA 84A4 33A5" /* ~w.ԝ򉪰3 */
- $"8279 A26A 82C5 27CF FB64 D227 994E C6A7" /* yj'd'NƧ */
- $"531C 7B7D D333 20D4 F79E 7C21 CC1E 7ADA" /* S.{}3 |!.z */
- $"F978 DEBB 1FF2 7420 A72D DE6B AB74 8DC6" /* x޻.t -kt */
- $"DD0F 0386 BF57 5F23 4926 C874 D598 47A3" /* ..W_#I&t՘G */
- $"FBC8 E9B0 38BB C695 B7F4 82A1 CC5F 1E22" /* 8ƕ_." */
- $"767C 20D5 E64D 44F1 B2D4 2298 C6A1 1842" /* v| MD"ơ.B */
- $"8139 0CC8 B9C5 284F 9FC8 945B 5342 94A8" /* 9.ȹ(OȔ[SB */
- $"1A57 3351 E00E DB28 D5E3 9712 4346 6DBA" /* .W3Q.(.CFm */
- $"CC9B A1ED CD9B 778D 4523 1E9A AC69 8ED9" /* ̛͛wE#.i */
- $"67C4 C16D A548 A029 0075 0185 8D06 B7F0" /* gmH).u.. */
- $"8258 D26A EB95 D437 F0D2 8E91 D536 F534" /* Xj7Ҏ64 */
- $"30A1 6DE7 E4B8 48DF 246E 6A43 4FE6 AED0" /* 0mH$njCO */
- $"48A0 5E1E C339 6C40 BE36 CEB8 870B F9EB" /* H^.9l@6θ. */
- $"5ED8 3CA2 B3FA 8CD9 2D26 FF79 6468 862D" /* ^<-&ydh- */
- $"6B87 3072 15D5 5640 D5D4 B4BA EAD3 84F1" /* k0r.V@Դӄ */
- $"6A43 F378 100E 8088 A3FE 989B E75B F67F" /* jCx..[. */
- $"5B25 3AE2 C08C 8CB0 08DD A37F 94DD 7F03" /* [%:.ݣ... */
- $"35C9 DF27 9A9A B829 6326 A95D 91F7 0BA3" /* 5')c&]. */
- $"7220 E220 F062 D8DE ADE2 2AD6 DDFD C9E4" /* r bޭ* */
- $"FAAE 543D 3CCB 5230 74F7 3120 02FD 6B45" /* T=<R0t1 .kE */
- $"A2AB 805B 13FB 1879 6060 5600 1847 98E5" /* [..y``V..G */
- $"BF65 2CD4 ACD7 15D0 B77E 5A0F 8095 95CA" /* e,Ԭ.з~Z. */
- $"1847 D25F 7D32 1AE2 89EA 9D49 074D A3E5" /* .G_}2.I.M */
- $"201E 8AC7 CB9C 43BC 0732 70E0 3C4F E625" /* .˜C.2p<O% */
- $"88E3 74DB 6FB7 7BE2 7006 F9E7 1F76 DBF3" /* to{p..v */
- $"C988 D665 F7AA 21E2 A5C1 E969 2917 3BA3" /* Ɉe!i).; */
- $"17BF 925F F835 9827 813E DA4F EE9B 2DF3" /* ._5'>O- */
- $"B640 95E8 70A5 B577 8C1D 99D5 797D D482" /* @pw.y}Ԃ */
- $"E23A 56DD 644D 9623 FEE2 63D2 A3DB E146" /* :VdM#cңF */
- $"FC39 35A7 6C28 63D8 5240 0C80 0000 0000" /* 95l(cR@..... */
- $"0001 4095 99D3 7A7A 0A05 B673 69BC DA9C" /* ..@zz.siڜ */
- $"A108 DDEA EE48 6385 0790 FEA1 1AFC 2CED" /* .Hc.., */
- $"2225 BE73 2ED7 00BB 2301 80FE 09DF E78E" /* "%s..#. */
- $"6FE6 4743 A0EE 0A03 4C9E F046 CDD8 E7F1" /* oGC.LF */
- $"DB3F 1B67 F6E1 1F31 8096 90DF 5110 40B0" /* ?.g.1Q.@ */
- $"0000 0000 0000 0000 C0B9 E0FC 41FB A11C" /* ........A. */
- $"4696 89A0 DE42 F8C7 27D0 3F03 AA51 70FD" /* FB'?.Qp */
- $"DC5F D7B9 AFD3 A0F3 7BAA A910 9E5C 259E" /* _׹Ӡ{.\% */
- $"E4FB 8F8E 01C1 96E2 0768 FE5A 0A43 E2F8" /* ..hZC */
- $"DA74 9500 C241 D1F6 3EFF 3F06 586F A511" /* t.A>?.Xo. */
- $"CCFE 8FE7 61E1 C392 D001 3F52 1CA8 CC23" /* aÒ.?R.# */
- $"93F0 27DF 893F 4AC1 06C3 34DA 8953 BBC0" /* '߉?J.4ډS */
- $"84C0 4843 27E0 067E 5EBF FF7A 1540 4C0E" /* HC'.~^z.@L. */
- $"FA6C 44A1 A7BC DB24 6AD7 C367 EC93 33BF" /* lD$jg3 */
- $"FECB C1DF 83CC 5BF7 A7C0 DF62 2EFA 4283" /* ߃[b.B */
- $"6E49 2492 4924 9249 2492 4924 9246 A4A5" /* nI$I$I$I$F */
- $"7754 9685 B091 D8FF 1549 CF90 2079 3AFB" /* wT.Iϐ y: */
- $"E925 85CC 62A2 E49B 476B 47B9 319B 630F" /* %bGkG1c. */
- $"A6B8 182C E282 D1CD 920A 4EB3 21BF 943C" /* .,͒N!< */
- $"27BF CCDE BD6E 481A 188C F70B C257 8118" /* '޽nH...W. */
- $"FBF7 FF78 F422 A3DB AE81 4980 0000 0000" /* x"ۮI.... */
- $"0000 0000 0000 1EE1 BFBB C300 0000 0000" /* .......Ώ..... */
- $"0000 0000 0000 14FB 3FE1 1B7A D142 E13F" /* .......?.zB? */
- $"5B6F 704A 61CF 957D 258E F744 FB26 8356" /* [opJaϕ}%D&V */
- $"74AD 1DDB 02F2 CF85 7AEB 3A06 6F12 084E" /* t..υz:.o..N */
- $"8E93 D6DA E4FE 9FBE 2D16 1C87 701F 55C3" /* -..p.U */
- $"9966 3E8F 36CB 6D9F F3F6 F8D3 B3B9 E2C1" /* f>6mӳ */
- $"1019 C6E6 8FFF 7FDC 6948 D3AB C944 C64A" /* ...iHӫDJ */
- $"8000 0000 0000 0000 000A B0CB 3806 445C" /* ........°8.D\ */
- $"7110 4CDE 3651 AC94 777C 8AB0 5382 04AF" /* q.L6Qw|S. */
- $"32E5 68C2 122F 8A5B 12A8 FF39 CF5E 72FB" /* 2h./[.9^r */
- $"EFD4 1669 47C6 525E 88EF 0AAC 1EE1 98B6" /* .iGR^¬.ᘶ */
- $"0BFF 7FAF 8A4B 7158 F7D7 1707 DE93 841E" /* ..KqX..ޓ. */
- $"3C82 3260 1FFF 1C8B 6A6E 8C66 0000 0000" /* <2`..jnf.... */
- $"0000 0000 0000 0121 EF03 234C 3124 0000" /* .......!.#L1$.. */
- $"0000 0000 0000 0000 077C 5957 204B A2ED" /* .........|YW K */
- $"59B8 F3C4 CC60 8A58 7E23 0B9F A0FD 1DC8" /* Y`X~#.. */
- $"8E0F FE2B 5F9F 12D8 09B3 57BB 7818 3CF5" /* .+_.ƳWx.< */
- $"D579 D427 5198 BD86 E2FC 8775 915B 37A5" /* y'Qu[7 */
- $"B2E6 6BD8 8404 31D9 4C54 3621 6561 5C3E" /* k؄.1LT6!ea\> */
- $"4A80 0000 0000 0000 0000 0014 D22D 6758" /* J..........-gX */
- $"336C 63A1 C13F 3E94 9877 8E90 4E5D 0C70" /* 3lc?>wN].p */
- $"F80A 4262 C2CC C7E4 DAE8 526F 393F 4558" /* BbRo9?EX */
- $"5CC9 5DDA B2FF 7ED5 F809 3A02 F1EE 2760" /* \]ڲ~:.'` */
- $"FF7E 5037 F054 4A1B 9602 92EA 8D26 A198" /* ~P7TJ..& */
- $"9C4F 8238 A60E 7734 20F8 18FE 478F 5403" /* O8.w4 .GT. */
- $"1658 618B A80F 879F 4A98 E809 DEB2 7CE9" /* .Xa.J޲| */
- $"9724 407B B8C8 A48D 4F33 9126 751B 9FC2" /* $@{ȤO3&u. */
- $"0283 44C3 5AFD 9546 FCE2 4212 4F5B 01D4" /* .DZFB.O[. */
- $"6E53 A032 DA91 40F4 4BDE 0C23 FF1E D5DE" /* nS2ڑ@K.#. */
- $"B543 59DC C0DC 759A 6043 5883 A5FE C785" /* CYu`CXDž */
- $"BA68 9F46 C21A 4C50 20E3 0488 FB34 1043" /* hF.LP .4.C */
- $"FC68 562B 635A EE8D E334 0C6F 25A9 E4C9" /* hV+cZ4.o% */
- $"3484 2AC2 6188 7242 E3F6 AEAC 6F86 2DE2" /* 4*arBo- */
- $"C377 BD02 CB1C 9553 5485 6A5B E118 9BBD" /* w..STj[. */
- $"DC6B 2C92 C6CC C866 6E7F FE63 AB01 FE7D" /* k,fn.c.} */
- $"FF7F BB81 EA94 87BE B101 F468 0E30 F111" /* .ꔇ.h.0. */
- $"7BC9 FA0D F87F BDD0 811B 8588 1AE7 8387" /* {..Ё..烇 */
- $"5C06 B3A9 E2ED 6E5B B524 35AA CBFF 50D6" /* \.n[$5P */
- $"49D9 6918 3837 59BD E7CC 8796 B0AF 2729" /* Ii.87Ẏ') */
- $"0512 5A97 66FF 1A85 E004 1882 0108 EA41" /* ..Zf.....A */
- $"BBCC 15E0 254C 59AF 877D 0722 15FB ADA1" /* .%LY}.". */
- $"84C2 9B83 DD5B C6B1 EE29 084C 08F7 06C8" /* ›[Ʊ).L.. */
- $"4F07 9818 6BF2 66E2 582B 2F7D 29AD BAFA" /* O..kfX+/}) */
- $"8F9E 0AC8 60AE D10E 3E49 17BF E015 0C5E" /* `.>I...^ */
- $"5C51 5D5B 5BC1 6C83 C428 4505 E9BB 61CB" /* \Q][[l(E.a */
- $"D7C2 F3C6 C102 73F5 409E D0CF B43E E497" /* .s@ϴ> */
- $"C1E0 707B 3F6F EAA8 2F10 9285 7D9D 9F81" /* p{?o/.} */
- $"303D 3A70 2B3F 4A45 558D 63F6 EEB9 CF21" /* 0=:p+?JEUc! */
- $"52C1 27C2 8439 0BE2 BE1F A553 A1C7 E44C" /* R'„9..SL */
- $"5422 9BC0 356D 1B40 E53B 3064 AA69 F464" /* T"5m.@;0did */
- $"7AA7 4E56 F7E2 7AE5 CB6E E538 8582 1927" /* zNVzn8.' */
- $"019D B4B0 E6D9 0F0E 9670 7723 62CF C422" /* ...pw#b" */
- $"DD53 ED12 92AE 20B0 6B63 6CB3 C596 4F4E" /* S. kclŖON */
- $"18B6 FD06 93B2 6F73 A740 770D C39F B873" /* ..os@w.ßs */
- $"598F 3667 6F7A 29E9 9E6F 9D04 48DD A175" /* Y6goz)o.Hݡu */
- $"2AFC 61BD D706 2A8E 9789 F513 B8AF B8EA" /* *a.*. */
- $"2426 7EDF 1EFA 1D19 7A50 D22F D15E 76FE" /* $&~...zP/^v */
- $"CD34 19AD 8126 775C A5FB B209 9658 F850" /* 4.&w\ƖXP */
- $"F2FD A65F B487 9F50 7FF0 12FD BA8B FB6E" /* _P..n */
- $"49F5 50DF C349 B4F9 F4D7 EDEB 53BE DEB0" /* IPISް */
- $"7F85 29FB 5DFF 36B9 BEDA 9BF8 3CF2 FDAE" /* .)]6ڛ< */
- $"DFB5 ABBE D3DB ED2B FDBA CFFB 7606 FB74" /* ߵ+v.t */
- $"D3F8 6B96 83BA F7ED EB3F 7EDE AFE0 EECD" /* k?~ޯ */
- $"FB5E 7F6E 807E DB9B F6BD F0FE D32B EA21" /* ^.n~ۛ+! */
- $"EFA8 1EFA 823F 6DCF FB6C 8BEA 6CFD B5AF" /* .?mll */
- $"0774 CFDB D337 FB7A 3F83 BA5D F51F DF55" /* .t7z?].U */
- $"47FB 690F DA86 F791 DDD6 2CCB E6B8 C536" /* Gi.چ,6 */
- $"D512 AD5E 1B08 0B8A 8D03 2F75 60E5 6BF8" /* .^..../u`k */
- $"447B C66A 7EC2 7912 B45F 8E48 277C D8E1" /* D{j~y._H'| */
- $"809C 5755 D718 BAAC F891 2AE5 F97C 3F5E" /* WU.*|?^ */
- $"0116 3A00 99F4 5896 E0EA B189 F5A5 7929" /* ..:.X걉y) */
- $"C491 B57F 2232 B0C2 52F8 89B1 DB2F B284" /* đ."2R/ */
- $"C1EE 0C43 EF76 FD94 F871 4077 7E19 EC36" /* .Cvq@w~.6 */
- $"BBFA 6DFF 3C0B 5A98 89B4 84BB 56DB 5FC2" /* m<.ZV_ */
- $"16C2 351A B46E AF45 AAC7 DD2E 97ED 970C" /* .5.nE.. */
- $"76D8 F8D0 42EB E639 28E8 BE33 A530 3B58" /* vB9(30;X */
- $"2374 6B1C 97B0 1CD5 ACD5 615F FD30 62C6" /* #tk..լa_0b */
- $"899A 977D 4B74 CAB1 E9EE 6588 4E67 8733" /* }KtʱeNg3 */
- $"B359 BCC7 DC7B 9884 E4A8 78CB 77E7 675D" /* Y{xwg] */
- $"FF2D FCE4 7744 BDD1 A833 6BEC C481 2DA8" /* -wDѨ3kā- */
- $"3D1C 5D57 7595 1DEB 2278 31AE 4188 B1F2" /* =.]Wu."x1A */
- $"54E1 113D DA75 96ED 71FF 1577 7820 4D22" /* T.=uq.wx M" */
- $"2BD9 3841 A416 96A4 2549 1A9D 3A55 8E39" /* +8A.%I.:U9 */
- $"A929 4B4E E11F 0F88 8BB6 7E08 2210 9D21" /* )KN..~.".! */
- $"92BF 623B B974 D371 0208 1489 5713 0F66" /* b;tq...W..f */
- $"3C4C 8394 72A6 08A1 3D86 BA0C 198B CE8B" /* <Lr.=..΋ */
- $"FB71 18D8 E044 CE7C A642 F1E5 DC8B F8E6" /* q.D|B܋ */
- $"2405 66E0 B6C5 6A4F B1AE 2231 3060 11D4" /* $.fjO"10`. */
- $"9963 5EF4 BB3D 1F61 0807 0AE1 0DFC 4718" /* c^=.a...G. */
- $"6C97 80A7 D438 6A81 B76A 6E7E 7A64 87A1" /* l8jjn~zd */
- $"1D7A 8744 3227 F565 4B4A E311 FA0F B477" /* .zD2'eKJ..w */
- $"9DD6 0662 8844 7138 BDF8 CBCC 007F BDB6" /* .bDq8.. */
- $"07C4 98CC 226B 9762 33D0 99EF 54D9 5800" /* .Ę"kb3ЙTX. */
- $"509D C37B 39A7 E11B 8771 0999 AB8B AAA6" /* P{9.qƙ */
- $"C463 6C38 7FB0 9121 2CA2 7634 BBEE 41FB" /* cl8.!,v4A */
- $"4F3B B050 3E38 15C4 98A6 216D 31C2 7057" /* O;P>8.Ę!m1pW */
- $"0B3D 429A 6CFB 0819 EB4D B9D2 549F 6601" /* .=Bl..MTf. */
- $"2436 5BEA 9DAC BBDA AB3A AB4F ABFF 768D" /* $6[Ꝭګ:Ov */
- $"E220 E451 7E45 49C5 21FD B2E6 DEFD 2505" /* Q~EI!%. */
- $"836B 3500 54D8 50B8 7538 C5BF B951 7FB2" /* k5.TPu8ſQ. */
- $"F927 CBB1 7AA1 D0BD 51E2 D7F7 C440 5DA0" /* '˱zнQ@] */
- $"89EF FEEE BF2E A5E4 F98A B652 F25A D1DC" /* .RZ */
- $"482A 40CB A288 250A 22CA BCB4 815D 077E" /* H*@ˢ%"ʼ].~ */
- $"229E 59B2 8249 D336 A3C1 5D5B FAE5 483C" /* "YI6][H< */
- $"67F3 255E 1530 AFB1 D900 48FE 254B C54E" /* g%^.0.H%KN */
- $"42DC EE54 066B CE83 B1C9 F021 2031 8DF1" /* BT.k΃! 1 */
- $"FE58 9315 B761 79CA 409A 6CD6 337A 14A9" /* X.ay@l3z. */
- $"8622 90BC 3474 727C 66CE 09C5 61B4 A386" /* "4tr|fa */
- $"7509 819F 6EEB 5FCC C0A7 084A 7742 A6E3" /* uƁn_.JwB */
- $"F69A 90CA 24AD EB53 60AB 5FD0 FD6F 3DE6" /* $S`_o= */
- $"44CF 80FB A400 B71F 1DD4 C690 A3DB 54CF" /* Dπ...ƐT */
- $"F492 7EC7 540C 048F 3D35 FD63 7593 751B" /* ~T..=5cuu. */
- $"F88F 4B7D E355 6685 FD5F 2743 8DF3 D839" /* K}Uf_'C9 */
- $"0894 99DB 1FAA 22B2 8800 8C9F D91F E60B" /* .."... */
- $"0EEE 2870 2932 2AE5 F401 11F0 8B2B 53DB" /* .(p)2*..+S */
- $"8028 E39D 744F E70B 11F3 A220 ABF4 FCD5" /* (tO.. */
- $"37C9 0AC8 8749 215E 1D89 4022 96D0 04FF" /* 7ȇI!^.@". */
- $"0C57 AC3D 351A 8582 EBA4 EA2B B65B A14B" /* .W=5.+[K */
- $"048B E031 DE15 251C 669F 8457 FF38 D131" /* .1.%.fW81 */
- $"0027 BB20 9721 6636 A375 AFBA AF7B BDBA" /* .' !f6u{ */
- $"05F3 3114 E55E DAA9 219F 9516 F3DF 12B4" /* .1.^ک!.. */
- $"DA3F 83DF 13A0 9900 3FA6 17E9 B014 E404" /* ?..?... */
- $"434D 02D4 4283 D73D F4D1 5D95 8B25 6A6A" /* CM.B=]%jj */
- $"CD5E BA93 82DF 1A30 4B0D 0E21 65A1 0001" /* ^.0K..!e.. */
- $"2869 F06A 8949 311F DB03 39EB E8E1 5BFB" /* (ijI1..9[ */
- $"F11C 05C6 2469 BAEA 4516 4CC4 DAF5 927A" /* ..$iE.Lz */
- $"2CEB 3150 DB6F 4DE2 8EED 59C0 604F 9AE5" /* ,1PoMY`O */
- $"E136 83B0 F348 3D1A B44D 3A8E D77A B0DE" /* 6H=.M:z */
- $"5267 1055 24F7 3C3D EB3E 08EF 97F9 4B29" /* Rg.U$<=>.K) */
- $"454F 1B5D 4A6E 56E1 0F90 00A1 4467 7454" /* EO.]JnV..DgtT */
- $"B556 362A 9A19 9E35 19E9 BFDF E2AD 91D6" /* V6*.5.⭑ */
- $"7FB6 95B9 F19D 8D07 2FAF 3162 D880 0AA7" /* ../1b؀§ */
- $"C9C4 94AD C49A 1231 2D9F 780F 6E3E 57D2" /* ĔĚ.1-x.n>W */
- $"8C1C 582C 179A 721C 7063 F056 F938 4EA1" /* .X,.r.pcV8N */
- $"F3E4 E458 D254 280F 92CA ABDC 4ECF 3EB7" /* XT(.ʫN> */
- $"95DF A3B8 45C0 1427 BA54 B2E2 D1BC B67D" /* ߣE.'TѼ} */
- $"5A0F EE12 37D4 BE1C 5785 A90D 2E62 B301" /* Z..7Ծ.W..b. */
- $"F66D A637 374B 17DA 7446 C318 3B11 4F50" /* m77K.tF.;.OP */
- $"ED27 AEB2 D8F6 C3E4 AB48 5E7C 1D46 9463" /* 'H^|.Fc */
- $"E7BA 9296 7BFA FDBB 39F2 7E86 1A5D 8FFA" /* 纒{9~.] */
- $"7E06 FC92 3472 7950 8B67 8329 FA9F 47AA" /* ~.4ryPg)G */
- $"51F3 01AD A6DA 224F E711 AF6F BA8F FA86" /* Q."O.o */
- $"FF61 EBD1 5613 B076 3543 3515 FF1B 1E9C" /* aV.v5C5... */
- $"CE78 6A36 7CCF FD63 E9E3 00E6 EA60 1DBE" /* xj6|c.`. */
- $"42FB 3E66 D69D 8BA6 A0E6 13E1 2087 20D7" /* B>f֝. */
- $"7941 E3C4 C7C6 67FF 2C9C A486 253A C206" /* yAg,%:. */
- $"F961 4A0E D9DD D32A 6D67 A012 B1A2 B549" /* aJ.*mg.I */
- $"3F58 8BA1 CA98 94EB 6099 570C D139 09AA" /* ?Xʘ`W.9ƪ */
- $"8DEB C31A 0812 5DAD 2926 6846 D789 4430" /* ...])&hF׉D0 */
- $"4931 16B5 0804 52F1 040D B0A7 DDD7 7052" /* I1...R..pR */
- $"4269 C765 98AA 3941 F9EE 987A 2EAD 46BE" /* Bie9Az.F */
- $"AA2B DD79 D9F9 7AF7 9318 B633 97CC DB93" /* +yz.3ۓ */
- $"5AF7 23D4 08E5 1FD7 EA45 85E9 4C98 77B6" /* Z#..ELw */
- $"0038 8756 6C8F 1A76 8D36 D67C 0BBD 248F" /* .8Vl.v6|.$ */
- $"8465 4CC4 7B7A C1B7 6348 F763 66A7 F04E" /* eL{zcHcfN */
- $"FF4E 1C72 1053 323F 9E55 F75D 4097 9C24" /* N.r.S2?U]@$ */
- $"AD5D 3C1B 766A 50A8 7252 6563 2687 8251" /* ]<.vjPrRec&Q */
- $"8AE2 2EAE 6AA9 6439 2831 281E 034D 7999" /* .jd9(1(..My */
- $"F46F 47C1 911D 553A D887 0E8F 6E83 1B48" /* oG.U:؇.n.H */
- $"F0D9 C566 C0FF 0F02 5E68 EA76 7381 25B1" /* f..^hvs% */
- $"D388 A375 370B A655 625B B71A 191C CD9D" /* ӈu7.Ub[...͝ */
- $"F3CA 83B2 88D6 3712 B3E3 6CEA 19DC 3295" /* ʃ7.l.2 */
- $"3398 DF4F 1279 B346 1DD8 ED24 186F BEE1" /* 3O.yF.$.o */
- $"8FD4 5FAD EAFF 6960 DE17 A0A4 B89E 7CF3" /* _i`.| */
- $"C360 9DA8 91BF 470F ECC0 C0AA E260 3430" /* `G.`40 */
- $"EF4E CAD6 F964 05B0 8E27 C1F6 7516 4350" /* Nd.'u.CP */
- $"B87D 7D16 703E 7972 1232 2E0F 6577 664C" /* }}.p>yr.2..ewfL */
- $"8FA6 1414 7FB2 A33D A69E FD2F CF21 FC8F" /* ...=/! */
- $"23A5 6AED 3E28 34A0 F73F F7D6 7F7C 5B6B" /* #j>(4?.|[k */
- $"0596 8B6D BACA 52DF 8E72 CDBA E221 7092" /* .mRߎrͺ!p */
- $"A3AB B99D 1EE3 3F21 1AD2 0F0B DC5A 8BE1" /* .?!...Z */
- $"9E35 D891 9A60 EF28 5934 FA3B 8009 DC42" /* 5ؑ`(Y4;B */
- $"11BE 487F D776 AF26 0EBD BF3E 8DCC B940" /* .H.v&.>̹@ */
- $"2523 D6E1 447F EA8A 5F66 DE0B 0962 249E" /* %#D._f.b$ */
- $"165D BB6D 1EBD 1237 021B F903 DEEF 78FE" /* .]m..7...x */
- $"B3F3 76B7 429F 336D 0EFA FF47 5CBC E3DF" /* vB3m.G\ */
- $"FC44 41BA BC9D 67AE 0B43 D817 FBCE 4F36" /* DAg.C.O6 */
- $"8209 CCB5 38F6 712E 7DEA 4E9E 4B38 3B80" /* ̵8q.}NK8; */
- $"7B16 28E3 AB59 340E 93F0 4C65 C281 A4F1" /* {.(Y4.Le */
- $"08E4 26A6 31AA B6A4 F784 BA8E C7FA 8919" /* .&1. */
- $"4B19 FA98 09C8 3C79 27DA CB39 881C 3B0E" /* K.<y'9.;. */
- $"9BEA 1EF3 D655 CFEB B4F7 0888 971D 69EF" /* .U..i */
- $"1105 0EF2 80B8 FF1E F0BE 107F 9AB0 6C52" /* ......lR */
- $"FF78 3AA4 8FE0 3370 40DF C5E8 478A 2FCF" /* x:3p@G/ */
- $"96C5 8D32 8E07 AA93 DA95 4D9B 60C6 2748" /* ō2.ڕM`'H */
- $"C8F4 8347 D2D9 2E35 75E4 333A 6494 B177" /* G.5u3:dw */
- $"C836 6E4F AF08 CDB0 0FA5 D565 A0EC 946F" /* 6nO.Ͱ.eo */
- $"ED5C 03F6 E5DB FA4F D29A BF8F BC7F 12D8" /* \.OҚ.. */
- $"7730 8564 524D 4B31 F681 8C71 C5BC 1641" /* w0dRMK1qż.A */
- $"6988 F9CF 0385 B8EE 4C04 07DB 5AD2 531C" /* i.L..ZS. */
- $"48BA 3E6F E24E AF73 DB5E B729 A4BF 894A" /* H>oNs^)J */
- $"782D E8F2 91C9 E628 322C F20C 2D0C 73DD" /* x-(2,.-.s */
- $"F093 4ED7 63DF E121 E7B9 DB7E 530D E3BD" /* Nc!~S. */
- $"3469 29CE 5768 BE0F 1E91 46B7 00A0 CC2E" /* 4i)Wh..F.. */
- $"183D 7D57 762C 062D 0707 EBA4 177D 73E8" /* .=}Wv,.-...}s */
- $"FA30 83A6 479B AA9A 702E B8FD 9B54 0FF3" /* 0Gp.T. */
- $"8222 1EB0 4CDD 4CF7 F0AB 8972 B655 9426" /* ".LLrU& */
- $"4EEE 3B88 A6D2 F8B9 6845 0467 D606 9DDD" /* N;hE.g. */
- $"C547 A61F 71E7 5A8E 6B83 51FD B2C1 A732" /* G.qZkQ2 */
- $"A6EA A0AA 6D13 E80B 0EC4 5DF4 348F FF6E" /* ꠪m...]4n */
- $"2289 CFB4 1AE2 18D1 340F B29B E1FF 16B1" /* "ϴ..4.. */
- $"0F0F B5AD 260A 7FD9 B1F2 3D0C 404F 75A8" /* ..&.ٱ=.@Ou */
- $"E4DB 52EE 259B D762 E5E5 4FFD 22AC 4856" /* R%bO"HV */
- $"9C62 8DDB F5D8 58F8 4EC7 1110 30EC E0D8" /* bXN..0 */
- $"7FED 0176 FEF2 53B3 75C6 34E1 A3A7 79DA" /* ..vSu4ᣧy */
- $"1FDC 42EC 83B2 F3EB 056C E41B 4E65 3699" /* .B샲.l.Ne6 */
- $"4BD6 1AE3 85A9 DBF6 89D4 39B0 79F9 8877" /* K.ㅩ9yw */
- $"161C 2CB5 3F3C 294B 8CA3 A6F6 556C 4CAD" /* ..,?<)KUlL */
- $"A752 918D 7E61 BA54 02D2 CF5C AEBE 1A0B" /* R~aT.\.. */
- $"B75C A9CA 9876 AB0B 6028 4D8E D46C E479" /* \ʘv.`(Mly */
- $"A186 EA09 496E 0935 04E2 4C25 FA18 270B" /* In5.L%.'. */
- $"A054 DE1C 1BD8 A089 9D95 1335 E93C 7C21" /* T..ؠ.5<|! */
- $"435E A570 3C42 AA88 0075 BB20 20AF 90EC" /* C^p<B.u */
- $"26F9 7E41 5CC7 2154 63A3 D965 075C 1A78" /* &~A\!Tce.\.x */
- $"2A13 753E DDD9 F846 467C EFC6 5308 2B46" /* *.u>FF|S.+F */
- $"5BD9 2BFF 5F26 72DB 523D D0FC CE49 47B0" /* [+_&rR=IG */
- $"D98B 4D36 1B60 7C3A 0707 F46A 8565 4CCB" /* ًM6.`|:..jeL */
- $"5DC1 A50D C039 BF24 7418 78A7 6D4F DE55" /* ].9$t.xmOU */
- $"1CB8 B787 158C 6C4D D840 920F 3130 7A92" /* ..lM@.10z */
- $"1CF4 1B74 BC2B 8954 0A80 9636 BFC3 6330" /* ..t+T€6c0 */
- $"3E7F 7E4E A811 39F2 3D56 10D3 6A76 4E20" /* >.~N.9=V.jvN */
- $"F646 5CD3 9166 D2D6 046F E398 A934 2D04" /* F\ӑf.o㘩4-. */
- $"2E01 C602 1332 8274 6AE2 D5C9 6226 30B3" /* ....2tjb&0 */
- $"07DB FDF3 B3BB 6C31 B162 FF63 0639 8E6F" /* .l1bc.9o */
- $"3501 A54C 1AA6 42EB EDE7 885E EE2F A6D9" /* 5.L.B^/ */
- $"B74A AE20 8FFB 6FCF A537 642D F17F A45E" /* J oϥ7d-.^ */
- $"EE37 DE05 7569 A81E F464 A35B 603B 4F40" /* 7.ui.d[`;O@ */
- $"D00F C3D2 D04A F943 AC3C 37E2 1B2B A1D3" /* .JC<7.+ */
- $"09D6 A92B F7CB B2FA 9FF7 97F2 83F9 BABC" /* ֩+˲ */
- $"E4BE F015 E804 97FC A16F 6E8B 9004 8424" /* ..on.$ */
- $"04F7 1295 0A15 3C1A AA5D 6A75 372A 0BB4" /* ...<.]ju7*. */
- $"4849 DD4A 012F D969 23A9 FBA7 C3EB D29F" /* HIJ./i#ҟ */
- $"5CE0 BD6F 8436 26BB 1B52 3BCB DCAA 0791" /* \o6&.R;ܪ. */
- $"02B3 8EC7 5A89 D402 C9FF 058E E2C8 AD72" /* .Z..ȭr */
- $"01BF D9B3 FA52 B000 0000 3090 8B4E 8809" /* .ٳR...0N */
- $"9E4F 59A7 8021 D030 169B 78E6 55B4 9FB8" /* OY!0.xU */
- $"48A1 D2F4 BE8E A948 A89E 5E3E BE56 AE8C" /* HH^>V */
- $"BF6C 6485 F435 4906 BE37 4D88 589A 85C0" /* ld5I.7MX */
- $"5278 59EC 1FED 3652 3FE0 5229 0524 D686" /* RxY.6R?R).$ֆ */
- $"1E5E 14D9 8C56 8742 9625 36BB 4674 0391" /* .^.ٌVB%6Ft. */
- $"9647 FCC9 30C4 6D0D 5812 1271 E9C8 E89D" /* G0m.X..q */
- $"7F9B 3420 0269 5F58 4554 F964 BDDA E9F3" /* .4 .i_XETd */
- $"973A 5B5F 4C59 107B 2D9E 87CB D896 1F13" /* :[_LY.{-ؖ.. */
- $"AC52 F00D 3600 9104 3FF2 399A 0158 5153" /* R.6..?9.XQS */
- $"139A A5C2 51CC D2C7 D082 C2A0 E35B FE05" /* .QЂ [. */
- $"06C9 DBB4 7036 39DB 80AF 4642 9F53 170C" /* .۴p69ۀFBS.. */
- $"2856 38D5 0FA7 B562 4ED8 3BB5 B48A B1C8" /* (V8.bN; */
- $"B20B 4B42 4499 C5C1 242B A1BA CB74 D8F1" /* .KBD$+t */
- $"1CF1 241E 7A2A B847 111D 13DC CD3C 05A3" /* .$.z*G...<. */
- $"024F 25B5 41E2 0A15 E1C4 1A0E A5D8 0742" /* .O%A....B */
- $"A359 2372 FD88 7447 1DB7 F766 5B7F E63E" /* Y#rtG.f[.> */
- $"26B8 BC6E 7B72 E331 2BE1 73BD 04A0 E941" /* &n{r1+s.A */
- $"45EC 9039 8769 8BFF 1624 8D43 CA24 9D0D" /* E9i.$C$. */
- $"A05B F467 7401 E777 0608 C4A6 A698 9A9B" /* [gt.w..Ħ */
- $"7066 11D3 606F 857E 18D8 D9D3 E226 38C0" /* pf.`o~.&8 */
- $"D89B 09D9 A2F1 0171 BAC9 D7BF AB2E BD58" /* ؛٢.q׿.X */
- $"7178 6CC2 608D 447D D92A 621C 1A82 B764" /* qxl`D}*b..d */
- $"2ABE CBE8 07C0 E2A6 9B83 46A8 1109 FC87" /* *.⦛F. */
- $"F083 9598 26AE 8847 7E22 278D 9311 59FC" /* &G~"'.Y */
- $"2995 1D44 BA58 24BC 2A99 3946 0E00 9144" /* ).DX$*9F..D */
- $"9113 0297 29E3 A7B5 B937 2D23 8405 86ED" /* ..)㧵7-#. */
- $"29F1 5254 6A8C 0FB8 4B13 F6C3 6028 2C14" /* )RTj.K.`(,. */
- $"3B80 E317 225C 7A9B 405C 7E95 A2E4 311B" /* ;."\z@\~1. */
- $"076A D7B8 A4B5 225A 1F29 FAA2 8239 D98F" /* .j׸"Z.)9ُ */
- $"071A F302 DA24 AE80 2AC0 D108 035D EA76" /* ...$*..]v */
- $"2F7E 850F 9E87 6B19 B2F1 F1E5 F5B3 A5AF" /* /~.k. */
- $"35BB D867 8257 8A48 5E4F 6983 E22E 6DAD" /* 5gWH^Oi.m */
- $"D361 1505 ECF2 3F3C DB84 1861 E5AB 6793" /* a..?<ۄ.ag */
- $"910D 8F56 6BB5 FD17 29DB 242A 6946 8022" /* .Vk.)$*iF" */
- $"7DAF 8120 02EB C840 3765 69EC BB8B F2FF" /* } .@7ei컋 */
- $"6031 7BE4 EFC4 BECD 7BD7 CB0A 8B8C 75C2" /* `1{ľ{‹u */
- $"E63A F4E4 B05B 1442 0CB1 BEBD E078 84F5" /* :[.B.x */
- $"3D95 24FA 952F 949B AD72 01B7 1CC7 4CA6" /* =$/r..L */
- $"78C2 BA05 B757 517A 5CB1 A380 0C23 0680" /* xº.WQz\.#. */
- $"3113 0CBA 23B8 AA48 F832 B74F 997E 6E03" /* 1..#H2O~n. */
- $"D16C 577F 968F E9A4 73CA DA79 07B3 A5F1" /* lW.sy. */
- $"2D20 C13D F821 62F9 41A0 A7AA 472A 368A" /* - =!bAG*6 */
- $"28EE 7686 F7B4 D5CF 225E 004E 709F C4E8" /* (v"^.Np */
- $"FCBC B778 C976 A1E0 1968 1EF9 E998 2DC2" /* xv.h.- */
- $"1693 C645 A4F5 787A 5B10 45C0 F010 8596" /* .Exz[.E. */
- $"A0F6 E8AA 1BAC C958 C0F6 101E 0C4D 2E61" /* .X...M.a */
- $"B76E 4019 58DD 3058 000C 2375 6EBC 6599" /* n@.X0X..#une */
- $"BEA3 9ADC 0002 F98F 24B3 B036 EA0D F2FD" /* ..$6. */
- $"6823 E10A 59D7 5D0B F6C0 EFB2 7D9D A684" /* h#Y].} */
- $"3084 4AD6 92F2 BFB2 57CA 7294 FF2D 53C8" /* 0J֒Wr-S */
- $"8D05 254E 2360 582F CE0C E209 240D FAB4" /* .%N#`X/.$. */
- $"C638 2103 7462 2AF1 5461 2036 09B4 294F" /* 8!.tb*Ta 6ƴ)O */
- $"52A6 6553 F6B7 85F6 E77F A8B7 058C F201" /* ReS... */
- $"19BA D75B 6612 0013 CFA6 F54F 8855 C000" /* .[f...ϦOU. */
- $"00BE 57DE C13B 77B0 AF81 F95D 8E88 7224" /* .W;w]r$ */
- $"002F C7BE 1D06 F540 58EF 1909 1D8F 037F" /* ./Ǿ..@X.... */
- $"E973 290F 641E 8849 F996 EA66 D15C CA23" /* s).d.If\# */
- $"C620 3090 94D8 F95F C58C 720B 7FFE 206C" /* 0_Ōr.. l */
- $"A3E0 EE49 AE89 4586 6617 FE87 4D7B D300" /* IEf.M{. */
- $"4CF6 E77F A882 E041 362F 710E AC03 D573" /* L.A6/q..s */
- $"69FF 7480 0018 484B 0D10 C800 0000 0C24" /* it..HK......$ */
- $"183F ADBF D900 0184 8481 E82C C758 1848" /* .?..,X.H */
- $"4840 6806 1212 B020 EA50 0818 484B F6E7" /* H@h... P..HK */
- $"7FA5 E774 6249 2F3D 5FF9 2FC0 0C24 1656" /* .tbI/=_/.$.V */
- $"1B91 8000 1846 D5F4 CA01 40C2 3F26 3D84" /* ...F.@?&= */
- $"7B4A 811F 08D6 B47D 05C2 4402 D57B C1FC" /* {J..ִ}.D.{ */
- $"7D32 E6FE 8125 F24E 514B 2820 7323 F96F" /* }2%NQK( s#o */
- $"B1F9 CDBD 94E4 C9BF 81D6 5A26 1C08 2131" /* ͽɿZ&..!1 */
- $"FF58 608E A4BB BEFD 703F C3EA B596 2AEA" /* X`p?굖* */
- $"48B2 2319 2F7A B9BC A14D EAB4 49CF 89E9" /* H#./zMIω */
- $"D312 5979 1910 6519 C45E 4B88 F709 D65D" /* .Yy..e.^K] */
- $"BF0F 86DC C883 8469 9757 7FC7 FB91 A851" /* .ȃiW.Q */
- $"7834 0232 03F5 F552 B022 E799 431E 3FE8" /* x4.2.R"C.? */
- $"BE7C A37B AAE1 D04F 9795 EA98 CAB0 6816" /* |{Oʰh. */
- $"047F 244A 2BD3 E0CF B862 B172 B1B3 F027" /* ..$J+ϸbr' */
- $"6505 A5AA 6AB2 5F8E B98F 85CB D487 2603" /* e.j_ԇ&. */
- $"BDA4 4C6D 4B74 0A12 117F 6137 6A30 37CE" /* LmKt...a7j07 */
- $"0441 188C 63FC 46ED 5C9A B6A0 9012 6450" /* .A.cF\.dP */
- $"A042 C4D3 8E69 8930 0797 25B3 B70D 5C62" /* Bӎi0.%.\b */
- $"6A83 3964 5EF1 4A28 508D FF7F E847 17D0" /* j9d^J(P.G. */
- $"7C91 F4BC AA82 5462 99EF FF79 5A7A E45E" /* |TbyZz^ */
- $"98FF 5B1E 90FE 7F80 9453 7AD1 4A63 8FFC" /* [..SzJc */
- $"1B61 796C 4B90 7FE9 1959 752B 8579 95F8" /* .aylK..Yu+y */
- $"C5B9 7EC6 2D24 5185 1BCE 12D6 B418 B42C" /* Ź~-$Q..ִ., */
- $"D40F 7AF7 657E 5184 9CAA 8834 B65C 4785" /* .ze~Q4\G */
- $"B934 7C3A 8000 0000 99F5 3F06 3790 6AF7" /* 4|:...?.7j */
- $"0769 9D8E F19F 4FF3 EDE6 D059 B97C A1F0" /* .iOY| */
- $"0CE2 4FAF B846 8CCE 52E4 E898 D2E0 00A3" /* .OFR. */
- $"CB3D F2B1 E7F7 0C30 FF13 DB29 474C C00D" /* =.0.)GL. */
- $"C6B7 6A2D 2F89 8E2F BDE7 F2BA C3DD 591B" /* Ʒj-//Y. */
- $"CEDE C7DD 35BA 492C BB53 2AF6 7315 AC30" /* 5I,S*s.0 */
- $"17D7 1C05 3AE4 4AB3 8D31 0DC9 7A9F 0A76" /* ...:J1.zv */
- $"B4EE 95EE 6CB5 1C6A FE4F D27E 0966 CE51" /* l.jO~fQ */
- $"8607 E144 F4AD E999 5480 05FF 7FC2 C645" /* .DT..E */
- $"D136 BB6E 89FA 9A2D F827 338F FEB9 B248" /* 6n-'3H */
- $"23A6 377D 0E53 BBF3 D290 3AD8 F58B CE4C" /* #7}.SҐ:L */
- $"24CA 8E49 76ED DA48 8856 904D C31F 305F" /* $ʎIvHVM.0_ */
- $"C441 7DAA 86D8 3FE1 5EA7 E20A CDBC 5F2A" /* A}?^ͼ_* */
- $"35DC 107F DDE2 D88C 7B38 D700 4C54 9C81" /* 5..،{8.LT */
- $"B8FD F39D 0F47 DE2B 6E17 7D4F E30F F60C" /* .G+n.}O.. */
- $"0895 5694 3006 1211 EFEC D7F8 F743 3D43" /* .V0...C=C */
- $"6BA5 7C06 9025 9188 E369 0FC8 94CB F38E" /* k|.%i.Ȕ */
- $"DF76 CA67 91C4 D786 F34F 1E56 332B 1404" /* vg׆O.V3+.. */
- $"B66B 2702 B13D 47B8 1FBD 38D7 A2DF 54EF" /* k'.=G.8עT */
- $"FD1C 00CC 5D05 5B28 3EBF 2FC7 7263 5880" /* ..].[(>/rcX */
- $"0364 4A0B 982F 4A13 A55F 5D64 61D2 110C" /* .dJ./J._]da.. */
- $"4319 318A 5BD6 94B7 DBA9 92F0 379B 0E87" /* C.1[֔۩7. */
- $"4561 92A0 0000 0000 0000 12FE B897 0ABD" /* Ea.......½ */
- $"B3C7 FEA8 AE43 B177 DA3F 2BA3 2D59 3358" /* Cw?+-Y3X */
- $"9FAE 567F E53B 2877 9FFF 7FFF 7FFB 4B90" /* V.;(w..K */
- $"C00D FEA3 7DF6 39C4 C825 2952 2C65 8FFF" /* .}9%)R,e */
- $"7E91 DB49 1333 7DEC 6471 1E2E 394E A080" /* ~I.3}dq..9N */
- $"C1C9 0DD4 62C4 4FC9 E332 BC0D F9DD FEAB" /* .bO2. */
- $"9D33 8271 2A01 8484 B009 6058 624E 2736" /* 3q*.`XbN'6 */
- $"529C A0F4 BCBB 846D 32FD 407C FA84 2D52" /* Rm2@|-R */
- $"21DC 1623 210B 0410 4061 212D 0386 04FF" /* !.#!...@a!-.. */
- $"7F72 1DFF 6F83 6A31 2B6E 0A6B D1F1 9A43" /* .r.oj1+nkC */
- $"F340 2C47 D413 DFAC FF76 46AC 4BDD 55F0" /* @,G.߬vFKU */
- $"2F9A 3BC6 613E 2F69 F45C 08F3 3FCB F83F" /* /;a>/i\.?? */
- $"F7D8 DC38 0F99 4764 0309 0948 41C6 1212" /* 8.Gd.HA.. */
- $"293B 5EA3 BE56 F760 BAEF 61FF 43D4 2891" /* );^V`aC( */
- $"A380 672E FF7E 4B98 FBFB 1ACD 90F6 4A7E" /* g.~K.͐J~ */
- $"3B14 E9F4 B1B4 4120 E600 AF42 0056 B131" /* ;.A .B.V1 */
- $"0310 EF4F EA97 E030 9090 A298 F514 CEFA" /* ..O0. */
- $"B200 0061 211A A495 FD76 5850 B8F7 1CF1" /* ..a!.vXP. */
- $"A979 F478 5BFF 7FFB E6D6 F6D8 03FF 7FFD" /* yx[... */
- $"2A36 38D4 BA43 6280 D508 C4BD 735D 1C6F" /* *68ԺCb.Ľs].o */
- $"2444 63E9 1C9A 969F 90A6 F34E D24D 94F2" /* $Dc.NM */
- $"1A09 F86A 2762 886F FBA0 96EA 1DC7 0364" /* .j'bo..d */
- $"6192 A000 0000 0000 0000 0000 0061 BE9F" /* a..........a */
- $"2C25 5C25 4958 1428 AA60 5ABF 5551 6084" /* ,%\%IX.(`ZUQ` */
- $"D319 B739 1DC3 F92F 03A7 CF66 39CC 13BE" /* .9./.f9. */
- $"100A 204E 9A06 CBD9 A8ED 9E4D CEED AE53" /* . N.٨MS */
- $"023D B3BF AC07 F70E F7DD 2601 E2B4 B214" /* .=..&.ⴲ. */
- $"3B1D 74CD 0F60 7063 EFC5 24B8 3B0F DF21" /* ;.t.`pc$;.! */
- $"2929 3755 A800 7D09 63D9 1548 5D89 6D22" /* ))7U.}c.H]m" */
- $"FAEF 37DC EB96 FF52 0018 EBDF 464C 8B34" /* 7R..FL4 */
- $"DF85 2990 1CF1 7C84 CEDC D384 5003 D5A1" /* ߅).|ӄP.ա */
- $"2797 DBDC FDFB 0E8C 3703 470D 1FD5 B974" /* '.7.G..չt */
- $"5A32 CF32 3D2A 0213 FDC8 8A0C B595 4840" /* Z22=*..Ȋ.H@ */
- $"C240 6E40 D585 AF4C 004A F98F FC90 E5BB" /* @n@ՅL.J */
- $"D6AD 2A34 0A6E 1D4D 933D 2221 80B7 C8EF" /* ֭*4n.M="! */
- $"7C61 2953 2991 F91A 61A3 B54E 56D2 77E1" /* |a)S).aNVw */
- $"1DB8 8B5F 5E9C 7D32 80A0 C23F BBE6 A2B2" /* ._^}2?梲 */
- $"D49F C777 4BE6 FDA6 7B0F 2983 E19B 84FF" /* ԟwK{.)ᛄ */
- $"4B7B 0DD6 A35E 60AD 632D D6D7 7030 0A9F" /* K{.֣^`c-p0Ÿ */
- $"0FA2 0820 8451 9624 D0FF 1FB4 9B81 61CC" /* .. Q$.a */
- $"591F 6D98 E1AF 16E4 AF42 1FE0 B7C7 30DF" /* Y.m.B.0 */
- $"CFFC EC14 15A1 B07A 4E11 ED5F BDB3 FD2A" /* ..zN._* */
- $"84B1 6901 4333 27BB 2E8C 3329 2064 A800" /* i.C3'.3) d. */
- $"0001 2FDE 803E 817B C369 A30F FCF0 FF1D" /* ../ހ>{i.. */
- $"89A1 2FD7 FF71 B63D 19EC 98DE DFE2 D9B8" /* /q=.ٸ */
- $"9D39 1737 4722 2A89 D291 623B 279F BF0B" /* 9.7G"*ґb;'. */
- $"E8C0 8AF8 CBE4 0011 5D58 29AB 34B0 335C" /* ..]X)43\ */
- $"36B2 1383 D820 11B8 22DF 56E1 27EF 932D" /* 6. ."V'- */
- $"30DE CC72 58E3 9BDD A88C 229A CBC8 A466" /* 0rXݨ"Ȥf */
- $"7C29 FDE8 E789 F28F 3258 A2DD 897B 1C6A" /* |)2X݉{.j */
- $"C048 306A EEA7 3DF0 F8D4 BECC CDBD 9E43" /* H0j=ԾͽC */
- $"A29D 8052 478B 6470 79B7 B38A 5743 CAE7" /* RGdpyWC */
- $"0BD4 0F4A 23E1 4C85 39C9 DEB0 75AF 151E" /* ..J#L9ްu.. */
- $"45D5 1681 2BA4 74C9 13B5 746A E399 9467" /* E.+t.tj㙔g */
- $"E6B9 D503 7F7C D57D 4D5F 7FC8 DD43 7D9B" /* ..|}M_.C} */
- $"3CDC F9AD 167C 162B 4E6C 2110 DB2C DF34" /* <.|.+Nl!.,4 */
- $"AEED CCE4 05AC 4057 9829 B161 9CA0 8159" /* .@W)aY */
- $"A64F FD15 EC5A 4A51 CA6C FD10 9A25 4291" /* O.ZJQl.%B */
- $"1E90 1FC2 3530 E0DB E4E6 232E CB64 AF95" /* ..50#.d */
- $"9494 656D D395 3D62 9EDA 2EC1 DB02 1FAA" /* emӕ=b... */
- $"6778 0FC0 C4A2 CCA8 EDC0 4DA8 F889 162F" /* gx.Ģ̨M./ */
- $"03F9 A9C1 C635 1DAD 2E22 580B 0B2B 83E3" /* .5.."X..+ */
- $"EC02 5552 3AA8 91BA 45AF 5439 4265 71F6" /* .UR:ET9Beq */
- $"3E7A 4412 5DE5 1863 50E6 C0ED C470 3ED9" /* >zD.].cPp> */
- $"0E3F 48BA 54C5 915E 03F0 D836 6429 2A67" /* .?HTő^.6d)*g */
- $"B7FA 6AF9 069E 8E67 2848 B570 C3AC 7746" /* j.g(HpìwF */
- $"EB48 0A2F 4BE4 8EB3 3F8F 791F 0646 DEDF" /* H/K䎳?y..F */
- $"316B EFDF 6FD8 C0B9 7319 CE94 8930 C6F6" /* 1kos.Δ0 */
- $"6399 C4A9 79AD E967 4783 3F8D C538 3C15" /* cĩygG?8<. */
- $"E5B7 CE98 22B7 5333 A938 B26F 0E1E EF2E" /* Θ"S38o... */
- $"74B9 72EF 9D8A 80B7 FDC1 8334 A5F9 DCFB" /* tr4 */
- $"B891 BB38 373C 9BE8 59F4 6018 6E63 DA65" /* 87<Y`.nce */
- $"9B13 9DC8 28DB 3C15 0D2C 11FC 0E2D 7A0A" /* .(<..,..-z */
- $"F8FF 671F C3FF 7F8E 1210 C212 EA5A 5F0B" /* g.....Z_. */
- $"9727 F770 25A5 236D 9789 75C7 4089 11DD" /* 'p%#mu@. */
- $"E472 3865 B217 B946 CF22 5225 27DE 566D" /* r8e.F"R%'Vm */
- $"6799 4F82 0D46 59F5 E466 F9E7 71C3 FA80" /* gO.FYfq */
- $"7826 E598 FF48 E181 6CA8 5A7E C354 0CAA" /* x&HlZ~T. */
- $"B01C 9EC4 181F 849B 6A13 FB8D C477 70BD" /* ...j.wp */
- $"F46B 278C 4467 B0CF 3E21 805E EF97 9696" /* k'Dg>!^ */
- $"CBB9 E3F6 B62E DC26 001A 408F D7E2 07C3" /* ˹.&..@. */
- $"C1A4 AD97 4235 8863 A088 1980 C505 6E1F" /* B5c..n. */
- $"F392 0B24 B500 20DC 8295 5703 F9B9 FF70" /* .$. ܂W.p */
- $"355C 9B8D BB49 898F 1AAB F65F 7D7E E28F" /* 5\I._}~ */
- $"4300 BDCC FB20 4F67 CA07 0CAE 3BAD AA36" /* C. Og..;6 */
- $"A4D8 3358 4176 1AD6 01FA 0450 0000 0042" /* 3XAv...P...B */
- $"7B49 E0E8 A7D8 4EA9 E1A5 597B DB80 BA6D" /* {INY{ۀm */
- $"8010 25EA 0A26 833F DE77 DBF7 78B9 564B" /* .%&?wxVK */
- $"57B2 AF8C BC92 97D7 46A1 23C1 B595 A2EE" /* WF# */
- $"F8A9 29FA 42C2 3557 6345 80B1 FCFD F322" /* )B5WcE" */
- $"E992 9262 A83F E43D B059 CB12 D425 FEF2" /* 钒b?=Y.% */
- $"9932 1BD8 C65C ED82 D05E E15C 5E9C 76B7" /* 2.\^\^v */
- $"7C64 FCDB A247 D388 3CCB 86B5 C486 2261" /* |dۢGӈ<ˆĆ"a */
- $"BFD1 7213 39C3 0D69 6AF0 2476 B711 7E91" /* r.9.ij$v.~ */
- $"6B53 6A04 4F3C 2781 A090 3118 6C3F 49BA" /* kSj.O<'1.l?I */
- $"B81A 3FEB D686 EFCE F487 8315 E33F 84DB" /* .?ֆ.? */
- $"E2C9 F35F 28C5 10C4 FF7F FA4F E953 89FC" /* _(..OS */
- $"8B32 23C6 0D04 5E49 DADA F0FE BCA7 D2C9" /* 2#..^I */
- $"5869 EAD4 F153 9BF5 A5EA 3298 CC8B 8721" /* XiS2̋! */
- $"F919 680B 3F8C 304A 2849 4970 41CF 0F60" /* .h.?0J(IIpA.` */
- $"76D9 5820 EF21 CD4A 205A 632F 7CC4 EFDF" /* vX !J Zc/| */
- $"33F3 CCA8 EDAF 405B 78E1 8F79 0F66 6573" /* 3̨@[xy.fes */
- $"35A2 AD75 1E18 6018 AF23 7C9D A008 1A01" /* 5u..`.#|... */
- $"C5FE 69AA 2C8E D97E 244D D075 F213 0CC6" /* i,~$Mu.. */
- $"738F 4395 BBC0 5CB6 3ADC 3DA8 ACB8 E018" /* sC\:=. */
- $"BA5B 13DB 0F6A CB18 DEAC 9749 F5B5 361D" /* [..j.ެI6. */
- $"CF3A C107 9606 179F F4C7 F3DE CB0B 1F53" /* :.....S */
- $"F27E 5D3C 11AB 66B4 8037 0644 AE98 19BF" /* ~]<.f7.D. */
- $"D564 973A 0CF2 C96F 56D4 5CB8 666F C68C" /* d:.oV\foƌ */
- $"1E73 E515 8B33 75D2 D3B4 B3A3 8CDE DE0C" /* .s.3uӴ. */
- $"DA37 A3DF 44D2 B57E 2DB2 E891 D36F CC23" /* 7Dҵ~-o# */
- $"ADE8 45BC BB30 78D7 77BD D4A8 087F C83F" /* E0xwԨ..? */
- $"E49A 6873 FAC4 C12B 0056 5E18 C3CB C2E9" /* hs+.V^. */
- $"DCAE F0E8 A75F 18DD B8DD 1DCD B0F5 3A1C" /* ܮ_.ݸ.Ͱ:. */
- $"3816 51A8 0D93 00D0 6FF6 8F07 E4BE EDF9" /* 8.Q..o. */
- $"BF0E 6CAA 5384 5DF0 DF12 4CF4 E3B3 5D6C" /* .lS].L]l */
- $"602A B6F1 C0E0 E520 B0D6 71FB 7996 4930" /* `* qyI0 */
- $"23DD 3601 3653 C40D 1A64 DC2B D5C2 01C9" /* #6.6S..d+. */
- $"5002 6BBE 7338 81EE F87D 7687 0FE6 7CF9" /* P.ks8}v.| */
- $"BAB6 5B35 1A25 421C 5BBA 4D82 4E1F B1D4" /* [5.%B.[MN. */
- $"1907 FF78 F534 4A16 7BB6 B598 51F6 E4D3" /* ..x4J.{Q */
- $"A04B 1198 B926 CFAE FC03 22E3 8360 E696" /* K.&Ϯ."` */
- $"F546 62F9 7178 F327 E245 4520 8D17 41C4" /* Fbqx'EE .A */
- $"9EC6 EF8D 0924 9416 7901 CE87 5EBB 286D" /* $.y.·^(m */
- $"53BF 09FA 41F6 5FBA 8F4C 79A8 75BA 277A" /* SA_Lyu'z */
- $"7D42 642B 38EE 9A49 DEDB F1B3 80D0 E5D0" /* }Bd+8I */
- $"2980 F797 E7D0 F90D 4B2F AFDD 4A69 3389" /* ).K/Ji3 */
- $"1418 EBD0 6DF0 E38D 6E2F D546 C1A8 C8DD" /* ..mn/F */
- $"8977 E053 9C26 053A CF69 97F9 7FB4 9000" /* wS&.:i.. */
- $"0000 0115 0E67 B64C 0015 DD82 643D 6476" /* .....gL..݂d=dv */
- $"ED28 6324 AD72 8124 1AF6 FB1B 21C9 0605" /* (c$r$..!.. */
- $"FAE6 04A6 31BF 6D67 FF7B B889 831A 4FFD" /* .1mg{.O */
- $"6BF5 F098 23AB A490 39F7 6AFC 3832 E2E1" /* k#9j82 */
- $"11B2 ADB0 ECCA 83DE B4FF 3685 5106 75DE" /* .ʃ޴6Q.u */
- $"3047 28A0 EDBE AD29 17CD DA62 698B CE64" /* 0G().bid */
- $"5999 2B8E BB7D C74F F009 A25D B2B5 BDD9" /* Y+}OƢ] */
- $"B852 BFFE 0B74 9C05 22D7 B0A3 2139 0979" /* R.t."װ!9y */
- $"5C29 BAE8 43DA F9E5 5383 AFD2 14EC 64AA" /* \)CS.d */
- $"442C CE71 74ED 5C27 4331 9374 AC77 47EE" /* D,qt\'C1twG */
- $"31AC 4C74 97BC 753C D5DC 3D8B F7D2 C612" /* 1Ltu<=. */
- $"2399 F431 07A1 76CA DAE6 772B 309A C800" /* #1.vw+0. */
- $"9F2F D6DF A44C 48EB 853E 4140 A123 BCA3" /* /ߤLH>A@# */
- $"D096 00DA 0822 DFB3 6887 B31F A18F 59BE" /* Ж.."߳h.Y */
- $"6B25 B5CF CFA3 8806 85B7 ED84 B20B CDA2" /* k%ϣ.턲.͢ */
- $"A0C8 404B 3FFF 7FF3 3816 5BF0 A16B 85D0" /* @K?.8.[k */
- $"B87F E4BB 21F9 A3BB 9103 2944 434A 5789" /* .!.)DCJW */
- $"E3EC B1E3 6F3E 154A 37E4 ACA6 4B02 6C5B" /* o>.J7䬦K.l[ */
- $"D23A D4D4 83CE F291 CD7F 114F 5935 8EE0" /* :ԃ..OY5 */
- $"17EA F0B3 1D93 BC5F 2CF8 511C E99F 21D8" /* .._,Q.! */
- $"E286 EB17 6FC2 C34B 1110 6398 03BF CB08" /* .oK..c.. */
- $"0018 4848 E24D 90A5 63F9 B1F8 6E20 EF6E" /* ..HHMcn n */
- $"25D5 858B 0AE4 2235 581B D4DA E01C B006" /* %Յ"5X... */
- $"E5EB DE78 855B 19E7 4D80 DAC2 1E8F CB2B" /* x[.M.+ */
- $"0EC8 3FFF 7759 B569 0861 20CC 1D71 2121" /* .?wYi.a .q!! */
- $"71A7 FA20 B34B EAB3 4260 A827 6E91 2B3C" /* q KB`'n+< */
- $"5479 449A 3161 D24E 8489 C00A 18A6 3FEC" /* TyD1aN.? */
- $"61F2 4C86 23C1 85DB 6ECA 221D BCC2 C25F" /* aL#n"._ */
- $"EFFF 7891 F475 0E20 DC0A 8F85 8208 4541" /* xu. .EA */
- $"579B 5EE2 24C4 5C60 39B7 D9F1 ECFD 0F0C" /* W^$\`9.. */
- $"3719 72A8 A543 8BF5 94BF BF6C E6F7 E45A" /* 7.rClZ */
- $"C5CF 1FD7 32F5 2D70 041E 3641 2C46 E23D" /* .2-p..6A,F= */
- $"E072 6889 A892 A27F 44A8 564A 74A3 B421" /* rh.DVJt! */
- $"E1CC A0F3 50E2 2711 6919 76BE D84B D2FE" /* ̠P'.i.vK */
- $"AAED 2D64 7C8F 4C55 7FFF 7EFC 2CBF 05DE" /* -d|LU.~,. */
- $"25B2 001C 00EC 6D17 ED17 E559 9DFA F731" /* %...m..Y1 */
- $"B21A 7394 8B35 5948 BA4F 5858 020F FF7C" /* .s5YHOXX..| */
- $"C89D 1CFA F89B 9F9C 841F 19EF D626 E6DE" /* ȝ...& */
- $"DCC3 3148 38A0 C32F 898F BEC3 0AF3 318C" /* 1H8/1 */
- $"5E09 119B 43C8 9FE6 73B2 F4B9 9789 4BFC" /* ^.CȟsK */
- $"99A2 FF7F FF7A 4FD0 8C64 F459 410C 013C" /* .zOЌdYA..< */
- $"1C6C 85B5 1C8F D078 995D 714E 1C60 3090" /* .l.x]qN.`0 */
- $"9058 77C4 BB80 5F57 1871 CA72 B2FD 0016" /* XwĻ_W.qr.. */
- $"BAA7 F84F F4E9 ACDF F766 8CB4 475D 2F0B" /* OfG]/. */
- $"37BC 18C8 6162 79C2 BDD7 8753 204B A536" /* 7.aby½ׇS K6 */
- $"9CBE 4972 316A BCB1 9442 4238 B88F 2F48" /* Ir1jBB8/H */
- $"7A45 5CD1 A306 3A23 5A78 354F CDB6 C0A5" /* zE\ѣ.:#Zx5OͶ */
- $"2A5C 19DA 0B0C CD84 8D85 D2B8 1DC9 059C" /* *\...̈́Ҹ.. */
- $"A8C4 8118 4848 9372 9372 566C 21E5 2665" /* ā.HHrrVl!&e */
- $"D16C 6601 48A8 35CE 7FFF 7F19 B54E 7F04" /* lf.H5...N.. */
- $"10EC 1AA3 13FF 4588 9722 A7AA B011 863C" /* ...E".< */
- $"E4B1 717B 7C2D 21E6 267B 4B48 E790 FF76" /* q{|-!&{KHv */
- $"40CC F425 41CB 289F 809D 8170 A529 2EDA" /* @%A(p). */
- $"A105 B3AF FB44 7951 B87A 0091 5B53 5979" /* .DyQz.[SYy */
- $"CDC6 5976 6393 34F2 21FF 7FFF 7FFF 7D43" /* Yvc4!..}C */
- $"4F4B C77F 73C7 0454 BE9C BE9C 282E 440E" /* OK.s.T(.D. */
- $"0608 A380 6121 2103 DBD2 250B 5D57 9159" /* ..a!!.%.]WY */
- $"B69A 28CF E66A 154F F84F F4E9 99ED 48C4" /* (j.OOH */
- $"CA7E BE76 FC67 A7CD DC26 1C00 0184 8463" /* ~vg&...c */
- $"69A8 C0A9 127C 5830 CC3A 380A C742 E4DE" /* i.|X0:8B */
- $"06F5 7999 556D FD9F 268B 895F FF4B 7BB9" /* .yUm&_K{ */
- $"C201 52B7 B483 0906 65EC 1848 4750 6F27" /* .R.e.HGPo' */
- $"C86C 1F27 9108 6253 0416 4CD3 30E4 7F77" /* l.'.bS..L0.w */
- $"0705 8420 83B6 BCB6 29DE B71E 8DC5 851A" /* .. )޷.Ņ. */
- $"ABB0 83D8 F2E2 5113 55D2 AAF6 B3AB 7679" /* Q.UҪvy */
- $"49FE A1F8 6F30 0EC0 7D91 534C C78C DC5D" /* Io0.}SLnj] */
- $"5A42 CA06 37D8 E0ED 27FA 3E31 C849 D2BE" /* ZB.7'>1IҾ */
- $"847C 0CCF 676F ACFE 91A3 0F62 B711 1897" /* |.go.b.. */
- $"9DC3 8E37 3AF8 907E 0B69 1577 2856 AA36" /* Î7:~.i.w(V6 */
- $"FAC0 D56C 6686 0443 CA96 FDCD 051B 23A7" /* lf.Cʖ..# */
- $"7DAC 8229 C5FC F840 103A 6407 49F7 6B32" /* })@.:d.Ik2 */
- $"254F 2B32 7FC1 F460 D5C0 5EE1 3046 612A" /* %O+2.`^0Fa* */
- $"1BC1 C143 7B76 B9EF ECCB 5EE9 8F0C 3F71" /* .C{v^.?q */
- $"E805 8B9B 17B7 9ECE C237 AF5C 0062 E61E" /* ..7\.b. */
- $"DF6C C1F7 904E 4379 2A9C 92FC 1B04 00A8" /* lNCy*... */
- $"F9D5 DB1B C4C6 9485 ABC2 1199 CCF2 0A47" /* .Ɣ.G */
- $"9693 C097 7AD0 449A FC53 DEC5 6EE8 6BF7" /* zDSnk */
- $"0D7D 4ED8 3426 DA7E ECF9 57ED 9252 9A6A" /* .}N4&~WRj */
- $"2B94 2614 1B6E A495 8261 4D5E DAEF 03FA" /* +&..naM^. */
- $"8A63 9496 E8AB A1A6 5B5C B03E E73E 2889" /* c諡[\>>( */
- $"D257 6C28 080A 68DC 226C 950F F55B E7CC" /* Wl(.h"l.[ */
- $"95AD FDA7 43EA 7489 A545 C0FC E9B0 2A25" /* CtE*% */
- $"719C EE06 9E5A 8FC0 D3B0 0C81 1EB0 C8C6" /* q.ZӰ.. */
- $"25BD B383 33BD B80D D9A9 48F3 7539 D7D5" /* %3.٩Hu9 */
- $"8021 5EBA 94A7 83A3 69FE 8179 9106 BC56" /* !^iy.V */
- $"14A4 427B 8C09 BACB 2FC9 B8F3 CAFA E51C" /* .B{ƺ/ɸ. */
- $"9C07 9A69 033C 6159 163E 6ED8 259D 7AAB" /* .i.<aY.>n%z */
- $"D316 475C F6C7 BD0E 7972 4C59 DF3A D5B4" /* .G\ǽ.yrLY:մ */
- $"44ED 7D01 B0FB 34D4 4C9C BC2D B8A6 5B65" /* D}.4L-[e */
- $"134F 0C96 5CA1 21CC A249 F17D 4660 9835" /* .O.\!̢I}F`5 */
- $"957C 7392 53A9 DE42 E650 604B 10E2 FF12" /* |sSBP`K.. */
- $"B47A 044A 524A B8D3 60B5 A258 CEAB 55E8" /* z.JRJ`XΫU */
- $"5219 EC3E A9F6 0813 A2B4 930C EDE4 3BBE" /* R.>...; */
- $"C0E3 7F93 1A3F 38EB 2DE3 492D A3BD FD00" /* ..?8-I-. */
- $"811C 530E 2FB8 9D68 2466 D288 EC29 9094" /* .S./h$f҈) */
- $"A3C7 2D32 0A25 BA73 2023 08CA C360 2C72" /* -2%s #.`,r */
- $"8BA9 516A 7081 F2FF 1E84 E1C2 F841 77CE" /* Qjp.Aw */
- $"ABDF 6476 30A4 3018 F7F4 F3EE 1A5E 5DF0" /* dv00..^] */
- $"CAAA AA77 C90D 52C4 6AA9 5755 33B9 1814" /* ʪw.RjWU3.. */
- $"3528 E205 C379 648A E627 A23E D5DB 1CAE" /* 5(.yd'>. */
- $"4868 B7D4 F381 2534 1F48 2BCC 5211 3B0F" /* Hh%4.H+R.;. */
- $"9692 B002 4CFB 1F83 3628 D1EB 5416 0648" /* .L.6(T..H */
- $"F0F0 B0F8 C7C7 6E92 8C54 6859 791B 7890" /* nThYy.x */
- $"EBA3 BC74 5F3F C4AD 7C9D 6954 2D0C 15BF" /* 룼t_?ĭ|iT-.. */
- $"F699 82A6 4170 D2F1 02A5 7EF3 6061 C9CF" /* Ap.~`a */
- $"C370 E129 F805 8CC8 C670 CBDC 2D44 D349" /* p).p-DI */
- $"F3E5 C5F9 357E 3DF2 CDF3 DC8A 1F13 5B2D" /* 5~=܊..[- */
- $"C544 448D 1038 8293 4EEA 75A4 0738 7D9F" /* DD.8Nu.8} */
- $"C002 3D68 26D8 7B06 FB10 CCDF C4F3 5364" /* .=h&{..Sd */
- $"2342 154B F8FB 01ED 8893 9160 A3A0 B81D" /* #B.K.툓`. */
- $"47A0 6C82 1CBA FAED 931D E025 BDFF 1535" /* Gl..%.5 */
- $"CADF 68C5 41FD 3896 1AC9 F979 A885 F5AE" /* hA8.y */
- $"EFBE C674 ED92 5FE9 E9AF FF52 D573 A6DD" /* t_Rs */
- $"631B 27E4 62CB B76E 7020 EC65 75E2 DB6F" /* c.'b˷np euo */
- $"0E10 980A 0EA3 2287 4CF8 D402 52B8 1491" /* ..."L.R. */
- $"21C9 BC2B 48BC CBD4 464A C539 6CD5 28F1" /* !ɼ+HFJ9l( */
- $"CAE4 CA43 9CB8 B181 BF06 522B 4D19 8295" /* C.R+M. */
- $"05C8 D7CD 8CFA D3E7 7BC9 630C DCDD 7C7E" /* .͌{c.|~ */
- $"E4C6 D7DC 5E38 67CC 5934 9E8D 9552 B837" /* ^8gY4R7 */
- $"53AE 6D39 FAB1 2EB6 886C 1855 26ED AD08" /* Sm9.l.U&. */
- $"1EBE 9570 EA2F DFFF 06F4 ABF3 4534 2831" /* .p/.E4(1 */
- $"1AE2 0A99 2956 2A90 C2A4 58AC E49E F047" /* .™)V*¤XG */
- $"A9BA C394 E8F4 6427 7966 A79C 4269 9ADD" /* Ôd'yfBi */
- $"AD1D 1A7E 375C D3FB 8C25 0B6B 0460 5EB9" /* ..~7\%.k.`^ */
- $"416C AE82 DFC3 09DA 1F69 8796 6897 8CD0" /* Al.ih */
- $"3E1B FF7D 9AE9 7F6D 4E84 967C 674F CA41" /* >.}.mN|gOA */
- $"44C1 0575 93A9 2599 66D0 AB7B 6260 D32C" /* D.u%fЫ{b`, */
- $"94AF 7FC8 82FD F692 92FE B6ED A660 750F" /* .Ȃ`u. */
- $"80A2 A8AA E6F6 7B9F E894 ED71 D223 6F4B" /* {q#oK */
- $"A203 F64C 7560 DBB1 6F9E EE9F 2945 C994" /* .Lu`۱o)Eɔ */
- $"BA00 D3D1 6414 A300 4296 670B 2350 CDD1" /* .d..Bg.#P */
- $"DF61 29E8 EC17 87B6 BC62 B6BD 5F31 13B2" /* a).b_1. */
- $"48A2 F723 53C7 6955 969B ED83 6A9B 1B06" /* H#SiUj.. */
- $"C7D0 2584 430B 8C52 D00A 736B D6FB AEDB" /* %C.Rsk */
- $"2BA1 5095 759B 0AFF 5138 58EF 3DC2 B14D" /* +PuQ8X=±M */
- $"3B7D 62D0 DE12 CFEF 17A3 32C4 C79A C2DA" /* ;}b..2ǚ */
- $"6BA1 6478 B1D3 2278 3787 6C30 08FD 6095" /* kdx"x7l0.` */
- $"FF65 1DF4 7606 34C3 B4EE E609 A3BF 7085" /* e.v.4ôƣp */
- $"8B3B 2C80 D860 6043 10A4 24B1 2D80 880D" /* ;,``C.$-. */
- $"671A 9A76 E1D4 2304 B4E0 9E47 129D 6316" /* g.v#.G.c. */
- $"33DF C88C 3BB6 5232 475C D19D FA9B 3303" /* 3Ȍ;R2G\ѝ3. */
- $"2956 D8B1 08A5 2735 CD4D F130 C700 DA0D" /* )Vر.'5M0.. */
- $"7BAE 21FA FB1B 35A5 957E 0211 955B 25D0" /* {!.5~..[% */
- $"A3DD B72F 5BCD 8792 418E BCB6 C727 DD0F" /* ݷ/[͇A'. */
- $"2D42 F031 2A73 C1F9 7964 B937 1E77 A757" /* -B1*syd7.wW */
- $"D158 CB02 80D3 C310 E1C5 709C 5C69 7F04" /* X..p\i.. */
- $"4476 F017 3FF2 B891 0160 D681 AEBC F8C9" /* Dv.?.`ց */
- $"8F46 7922 4414 5CEE 0CA8 417B 33BB 5926" /* Fy"D.\.A{3Y& */
- $"B7A6 7094 6363 C5F2 9AD7 1751 2456 3B83" /* pcc.Q$V; */
- $"9BB0 0ECD 1420 6141 A097 DBF4 802A 2377" /* .. aA*#w */
- $"CDAC EFE9 4A16 4B3C 5058 A5DC 1C40 169E" /* ͬJ.K<PX.@. */
- $"3999 F0C2 C418 2E8F 0951 664A 7082 F49F" /* 9..QfJp */
- $"E576 B2B1 5918 E3EE 9B97 1686 6499 A572" /* vY..dr */
- $"B1F6 2F39 A798 6292 DE22 007B 60AD 1D94" /* /9b".{`. */
- $"31BA 068D F15A 06DB 2654 6B52 F692 3C3A" /* 1.Z.&TkR<: */
- $"0DA8 A74B 30F6 3852 76F0 A897 9086 FBD5" /* .K08Rv𨗐 */
- $"1C78 047E 7BF2 08EE 7B45 85C5 6ED5 AA43" /* .x.~{.{EnժC */
- $"F423 8A4E 4111 C68E 172E DD87 AF9E BF19" /* #NA.Ǝ..݇. */
- $"D4D2 020C 6FD5 EE3F F0E8 289E 4E6C 0871" /* ..o?(Nl.q */
- $"1187 D3F1 E458 94F5 4519 BF3C D239 D86C" /* .XE.<9l */
- $"17F1 8916 4206 2346 ACD8 1F08 9A44 0AB3" /* ..B.#F..D³ */
- $"CEE6 441D 78D5 2909 4CEA 46F7 D6C6 D21A" /* D.x)LF. */
- $"6D41 BB64 ADFF 6252 5A80 3556 C459 2845" /* mAdbRZ5VY(E */
- $"C05D C2C5 1F69 4087 0380 C0FF 61AA D5D1" /* ].i@.a */
- $"E5C2 5FC0 CEF4 2D59 B4A3 6BA8 343E 184B" /* _-Yk4>.K */
- $"89CE 81FD AC96 C691 FDE5 F993 B9CB 6302" /* ΁Ƒc. */
- $"B8EE 86B4 A2F7 19EA DAFD D511 B59F BBD2" /* .. */
- $"5D4E F6A3 BC58 51D5 273F 2E2E 2B6A 2755" /* ]NXQ'?..+j'U */
- $"38A3 CA29 BFAB D31D CD53 B29C 7418 40DB" /* 8).St.@ */
- $"FD56 1BF6 9350 5411 CF5C 8D26 B1FA 754F" /* V.PT.\&uO */
- $"E584 8277 6221 6866 257C 9FC9 65A5 6D93" /* 儂wb!hf%|em */
- $"C524 B971 3F1D 34A0 BBF4 6B83 9722 CFAD" /* $q?.4k"ϭ */
- $"8296 103F 53BB 1B22 8A84 2FAC 94DE 4994" /* .?S."/I */
- $"2D31 56A5 DBCD B661 81D7 B360 4958 8FF5" /* -1VͶa׳`IX */
- $"EB02 25A9 6386 8241 D936 A3CB AA88 9936" /* .%cA6˪6 */
- $"1698 4F59 765B 34EA 3741 D2D3 2DAC 854D" /* .OYv[47A-M */
- $"366B C9A0 15F8 D2E6 7CCF 99EF A794 460C" /* 6kɠ.|ϙ倫F. */
- $"934E C88B 2BF5 91F7 7BD1 3DC9 6ED3 91FE" /* Nȋ+{=nӑ */
- $"E63B EDCC 3D4A CC1B AE5D 88D0 B241 20D1" /* ;=J.]вA */
- $"AB6C 9FE2 E494 395E 8E3C 0EB0 1796 58CC" /* l9^<..X */
- $"9791 D931 DB33 473E 003E 10CD B736 7295" /* 13G>.>.ͷ6r */
- $"DD81 B481 9A0A ED27 3C1E 6298 FD0D BDE0" /* ݁'<.b. */
- $"11D6 8A21 79C1 DBB7 FEDC 6E48 8080 5ADB" /* .֊!y۷nHZ */
- $"E61D 9E0E E6A3 6D38 A028 4016 464D F534" /* ..m8(@.FM4 */
- $"D764 3AD7 55DF 3CAB 7B3D 12F5 9A8D DDCF" /* d:U<{=. */
- $"6CCD 0387 C982 0FE9 D431 0FE3 E064 1700" /* l.ɂ.1.d.. */
- $"1AAD F49E D6DE A939 8010 C91B 605B 4E0A" /* .ީ9..`[N */
- $"FCBE ADE9 C17A EC1F 3990 9EB2 E6BF 92AA" /* z.9濒 */
- $"951C D27F A984 10A9 22DC 996E FF6E 12AE" /* ..."ܙnn. */
- $"DC03 5AB3 2CA0 8291 4174 C69E AE28 DBA8" /* .Z,Atƞ(ۨ */
- $"38A8 FF12 67D3 F8A3 00D6 2A2E A564 CEFA" /* 8.g.*.d */
- $"0F00 4B44 62A7 CA9F F072 2821 DD3C 6A34" /* ..KDbʟr(!<j4 */
- $"926C 8F3C 1548 D31A 021F 2604 252D A929" /* l<.H...&.%-) */
- $"172B 8212 174F 2D2D CC7D DA15 F9A9 AD7E" /* .+..O--}.~ */
- $"59D3 7885 9215 C77B 6583 4D8F 3308 149C" /* Yx.{eM3.. */
- $"270A 4508 21C9 A05B CDE9 BEF1 C18A 4B74" /* 'E.!ɠ[Kt */
- $"F07B 0DFE 007B E5AF D9AA CED7 8661 34C7" /* {..{٪׆a4 */
- $"AA26 21AC D09C 6BAA EABB A7C4 486E 40A5" /* &!Мk껧Hn@ */
- $"C791 976A 1EC3 534F 84EC E6E9 7363 FF08" /* Ǒj.SOsc. */
- $"5B20 0E29 000C 5E8F 3339 6210 65CC FD34" /* [ .)..^39b.e4 */
- $"76EB F1B2 76C6 5FDC C1A8 B0F5 53EE 103C" /* vv_S.< */
- $"50B0 650F 8459 9777 E890 E28A BB84 56B9" /* Pe.Yw⊻V */
- $"0522 90F9 5B81 C982 979E E507 A4BC 26C3" /* ."[ɂ.& */
- $"E356 F2A9 C0D1 BFF3 F882 EC0E 6AA9 CA0D" /* Vѿ.j. */
- $"4419 16FB 9BEF 947E F848 19BF 5CB6 EA4E" /* D..~H.\N */
- $"C290 F254 020B 51DB 8094 4D05 E9A5 21A0" /* T..QۀM.! */
- $"D3E6 84EA 5A3E 4380 650C B24F 31DA 209F" /* Z>Ce.O1 */
- $"F51A 9108 7912 32B0 52A6 A901 CADB A758" /* ..y.2R.ۧX */
- $"C00A D516 E462 35B4 C071 131A 0F01 9A95" /* .b5q.... */
- $"9739 F131 0E5F 7FBA D8AD 925F 992C 0187" /* 91._.ح_,. */
- $"D97C 832B 847E 1148 0402 0449 FB25 D0F1" /* |+~.H...I% */
- $"C1F8 2B8E CE97 D5A4 BEFE 7F0D E420 E43E" /* +Ηդ.. > */
- $"801A 448D 9D61 D23C 5956 3DEB A1A6 0858" /* .Da<YV=롦.X */
- $"CD98 F32B 92E6 D960 C0E1 E542 294D 6FD3" /* ͘+`B)Mo */
- $"4234 37C9 3537 275F AC1E 936D 534A BF02" /* B4757'_.mSJ. */
- $"B742 8CAB BE88 E4FF 23DC D9EB 1FC4 9CF0" /* B#.Ĝ */
- $"C5D1 3F1D 5995 AD68 12E9 71B3 2100 AFB7" /* ?.Yh.q!. */
- $"CBF7 9ADB D5FF 48EE B1A2 AE4D E021 7C07" /* HM!|. */
- $"5AD5 E94C A965 DFE8 B32A 23AB DE05 4FB1" /* ZLe*#.O */
- $"FDB7 ECC5 3611 73D9 B03C 399A D5F6 663D" /* 6.sٰ<9f= */
- $"0E78 0BEE 67D9 2F9D 0072 E938 509C 9779" /* .x.g/.r8Py */
- $"6C64 03A1 B8C9 C1C0 2256 29EA 112C FB1C" /* ld."V).,. */
- $"766C DF51 83B1 388F 902E EE03 337E 689A" /* vlQ8..3~h */
- $"CA5A A9F0 09AF 3422 4115 D489 3FBD 22C1" /* ZƯ4"A.ԉ?" */
- $"4A4F 642A 0AC8 D01C 2950 18CA D441 780A" /* JOd*.)P.Ax */
- $"C929 A7FF 0AFA 956A A581 B590 9B7A 7D74" /* )jz}t */
- $"2084 3DC1 5D81 B12B DF9C 333D EFAD 0ADD" /* =]+ߜ3= */
- $"3445 4F8C 132E F02F C2E7 E13F BE12 2F84" /* 4EO../?./ */
- $"7FC3 D55F 876A BE1D 07F2 688D 774C FC3E" /* ._j..hwL> */
- $"A177 C3EA 4FE4 AFFE 1BFF 61D3 2F87 4BFC" /* wO.a/K */
- $"946E 03F8 6CFF 06A3 FC28 FE13 BF0F 6B7E" /* n.l.(..k~ */
- $"1EB8 FC3B 47E1 ECEE EEDF F87D 51FF 07D5" /* .;G}Q. */
- $"0BBB 87E1 D3FF 0779 FC3B 6FE1 D378 0DF0" /* ..y;ox. */
- $"BD7C 29EB A2DD 17F2 6ADB E1DB 7F0D 97E1" /* |).j.. */
- $"E84D 7750 FC3E 906F C3E8 35DD 42ED AFE1" /* MwP>o5B */
- $"D33F 0E8D F86E 00F7 91DD 3D8B A94D D83C" /* ?.n.=M< */
- $"B51B 129C 103F 899D B929 4724 C188 2C29" /* ...?)G$,) */
- $"CE89 11F8 9065 1C37 E234 DFEF 60D7 3221" /* Ή.e.74`2! */
- $"5343 F889 DCDB AFB3 6F20 F76A 31D9 986E" /* SCۯo j1٘n */
- $"A745 547E 6F18 076D A675 BA1A 1AAF 6558" /* ET~o..mu..eX */
- $"338A FF71 4707 0776 1B62 BCCC 89E5 4726" /* 3qG..v.b̉G& */
- $"A7CB 8885 E07C DADC D741 3B1D D81F AB03" /* ˈ|A;... */
- $"2F84 F52D DFD5 7384 4649 7BA2 5AB1 14C8" /* /-sFI{Z. */
- $"3D8D B951 8183 C33A B08E 82CC EF1A F046" /* =Q:.F */
- $"5B62 C9E0 A926 F330 0A61 A30C 6194 7E1E" /* [b&0a.a~. */
- $"1EE9 3D0D 1ABE 5536 A026 8B32 830F C02F" /* .=..U6&2./ */
- $"3041 04B7 2C65 024D AC81 D2CC 03CA A08A" /* 0A.,e.M.ʠ */
- $"B105 F3F1 C365 6BCE 9876 A867 7DBA 63AF" /* .ekΘvg}c */
- $"0973 495F DCC1 3552 54BA 5BDB 618D C6C0" /* sI_5RT[a */
- $"91B8 4489 141B A7D3 F188 8A97 DAB0 8942" /* D..񈊗ڰB */
- $"EA67 F235 E18A 871B 4B0C DAC6 9050 BA9C" /* g5ኇ.K.ƐP */
- $"C432 95CE 13CA 93ED 4FD5 9495 377D C920" /* 2.ʓOՔ7} */
- $"C8A2 F997 5348 8890 91D5 0A23 50BF 3C37" /* ȢSH#P<7 */
- $"8372 7C96 32AA 1CD2 46BE 8220 C983 2A71" /* r|2.F Ƀ*q */
- $"7961 BF33 9590 C086 CCE9 578B 322E FB50" /* ya3W2.P */
- $"CB68 6459 C127 EB9B E974 EF02 59F4 FF4D" /* hdY't.YM */
- $"4525 1874 6A9F 99EB DFCC C1B1 72EA 9FA0" /* E%.tjr꟠ */
- $"DE00 BBB9 D95F 36B9 406E 3CE0 3BCF 32B6" /* ._6@n<;2 */
- $"8DC0 55D6 C6DA 3622 8A6E 63F6 28AE 08AC" /* U6"nc(. */
- $"03AC 288D 069A 750E CBBD 97D9 E42D BA93" /* .(.u.˽- */
- $"E82A 4EB3 C008 CC7C B6A7 6F70 F1BC FDAA" /* *N.|op */
- $"1DF4 D2E4 3ECB 9702 444E 278F 6B50 F00E" /* .>˗.DN'kP. */
- $"C228 C132 E5E0 B4DE 93BF DBBD 2C85 ABF9" /* (2ޓ۽, */
- $"7FAD EC28 1D40 D390 5A2F 9B14 D348 8C76" /* .(.@ӐZ/.Hv */
- $"C04B 1173 BF19 8F50 7E3D 8311 BB79 FDA8" /* K.s.P~=.y */
- $"1FD4 24A9 5F59 8B76 709E 5C84 1902 8690" /* .$_Yvp\.. */
- $"AD49 334F 5AE8 E376 288C BDE7 EE13 FBDE" /* I3OZv(. */
- $"7606 0135 6DB2 DCD9 F5B3 E7E2 B2B8 8BE1" /* v..5mⲸ */
- $"1985 85D2 0EC1 5CCD BC74 D88B 7206 5075" /* ..\ͼt؋r.Pu */
- $"FB92 BF92 C5CB B6E3 024D EB71 D909 AF79" /* ˶.MqƯy */
- $"DD82 BBF2 37F1 1193 74D0 373D 4043 C292" /* ݂7.t7=@C’ */
- $"0B1D 4E8F 04F4 A035 451A 7DCB 02DB D77E" /* ..N.5E.}.~ */
- $"DD1C 3667 1BA7 2584 C128 3835 4454 5C15" /* .6g.%(85DT\. */
- $"5846 C7D1 4689 3D2A 1172 9BA8 9830 F037" /* XFF=*.r07 */
- $"0053 8FD6 4023 68C6 7122 CAC6 0325 5AF3" /* .S@#hq".%Z */
- $"E104 A423 C5AE F551 6DF6 7B11 D5EB FD34" /* .#ŮQm{.4 */
- $"DF67 C50C 737D 74D5 D5EC 7027 A2D8 C79A" /* g.s}tp'ǚ */
- $"200D A972 A30A 509A C3DE 483F 8B53 D69C" /* .rPH?S֜ */
- $"001F 47E9 BD2C 84EC DB83 B493 0326 DE6E" /* ..G,ۃ.&n */
- $"336A 7C76 3225 8351 7B2D 37B5 D645 9866" /* 3j|v2%Q{-7Ef */
- $"019E 6472 40C4 5853 3376 9D90 D3EA A727" /* .dr@XS3v' */
- $"07A1 A4B8 A32F 475A 22A2 059C AB5B F13E" /* ./GZ".[> */
- $"E2DF 5B3E E6B5 B27F 28AF A15F 400C 7D9F" /* [>浲.(_@.} */
- $"43ED 33D4 9B4D CB64 E550 5FED FC2F E485" /* C3ԛMdP_/ */
- $"271E 2DB1 6AE5 6793 EFE8 FCC5 A784 4C95" /* '.-jgŧL */
- $"E488 B5AC A528 BACB 10FF 4ABD D554 E56B" /* 䈵(.JTk */
- $"F72E 8ED7 5E48 60A4 82D0 381F A2D4 625C" /* .^H`8.b\ */
- $"9F80 2A63 5FD3 DD0C EDA8 3DE3 281E A65C" /* *c_.=(.\ */
- $"88EA 1A96 626D DC03 79BE C4ED EA60 4FC5" /* .bm.y`O */
- $"BB10 D9D5 99AF 0534 65C2 05AE 8D23 82B0" /* .ՙ.4e.# */
- $"6FB7 881A 7BC5 0316 7A28 4B27 2763 A6C3" /* o.{..z(K''c */
- $"8FC7 073A 1391 81BB 707F 625D 355F B1DF" /* .:.p.b]5_ */
- $"A749 C3EE A157 EC1F 0F6C 70AB 1A36 5711" /* IW..lp.6W. */
- $"C49B 1CA8 54A0 0FB9 6A2E 0F86 2E57 BC2F" /* ě.T.j...W/ */
- $"8CDD B76A F6DB 83F9 EEFF 4BF1 DE60 660E" /* ݷjۃK`f. */
- $"BCBA 7D68 D5DE 8663 DF06 3F65 A981 38D7" /* }hކc.?e8 */
- $"CC20 EBAE 6143 C79E D2F3 DCF4 FA0F 433E" /* aCǞ.C> */
- $"6DFE 4C5F 032A F6DD DD11 F85F 5003 22CD" /* mL_.*._P." */
- $"C07E F1CC 40B9 8D61 825D 77C7 91A6 BD49" /* ~@a]wǑI */
- $"2590 4BCD EB13 37A2 D5FA 2931 F311 9028" /* %K.7)1.( */
- $"6C02 96FC ACF5 1EA4 8E51 4BC9 FDE8 DFEF" /* l..QK */
- $"C5A0 8082 7E0D C127 3A80 A65B 7989 CCEE" /* Š~.':[y */
- $"6F6A 8DDF FB5B 46A5 3757 7FC3 3EFD BC0A" /* oj[F7W.> */
- $"8567 1CB0 3BE7 A153 D7CE 8F63 D2DC 8840" /* g.;SΏc܈@ */
- $"D993 E028 0E86 AA99 3ADE CC55 A789 CFC8" /* ٓ(.:U */
- $"D92B 9613 3850 B7B3 467A FA09 7D45 E174" /* +.8PFz}Et */
- $"D351 3254 64A3 7FC5 0D8D 1EDB FEC9 3F05" /* Q2Td...?. */
- $"C3C2 264B ACB8 F3C3 1BFF 04A5 12CF C191" /* &K... */
- $"8CA0 5985 E34C E583 A230 CD43 8602 BAAF" /* YL僢0C. */
- $"1475 FCA7 B274 1314 051F AF06 089D 13B1" /* .ut....... */
- $"5C06 815E FAA5 6864 CECE D56A 127C 058B" /* \.^hdj.|. */
- $"1859 E9E8 7A98 4299 3CFF 70CE C2DD 8676" /* .YzB<p݆v */
- $"1798 5F8E 9960 922E 9226 3F9B 5657 890F" /* ._`.&?VW. */
- $"75BC FECF 6919 6701 D086 0EA5 26BA 8B78" /* ui.g.І.&x */
- $"7381 41FC 19AD 7201 BFD9 B3D3 2F00 1A1C" /* sA.r.ٳ/... */
- $"E689 F3BC 5FC7 0418 66A2 5AEE 0374 DE30" /* _..fZ.t0 */
- $"DC4B 70F1 ACC6 2BC6 06E9 461F E71B CD5E" /* Kp+.F..^ */
- $"2766 D533 884B A37F 7820 5CCA 3D60 1C3A" /* 'f3K.x \=`.: */
- $"8865 509F C1F0 86B6 9A91 0A52 426E CF1D" /* ePRBn. */
- $"4B52 7AFE 9519 ECDB 9DD3 BFA1 80F7 50BD" /* KRz.۝ӿP */
- $"D2DD 6FAB F00D 3600 9104 37AC 81AA F9C3" /* o.6..7 */
- $"3933 A702 AC9C 42F1 4579 C5F2 CD99 165F" /* 93.BEy͙._ */
- $"2D84 FE8B D02C 055F F99C 1729 45C7 6B56" /* -,._.)EkV */
- $"EE73 818A 9940 BB46 1408 639B 9779 C805" /* s@F..cy. */
- $"1B0B CC86 D42E E9BB 046D 0E93 7273 E00F" /* ..̆..m.rs. */
- $"B7D5 D377 E0ED 2494 4623 5BDF C83C 54A5" /* w$F#[<T */
- $"6B6B D343 F20E AD4C B45C 2BF4 7C65 87A1" /* kkC.L\+|e */
- $"E2EA E2B7 FF17 F9A1 5606 D5A7 C113 F062" /* .V.է.b */
- $"D50E E647 922C 8746 7CBA 99C8 4400 979D" /* .G,F|D. */
- $"3D09 19E7 3A84 E245 ED1F 1C14 3967 45CE" /* =.:E...9gE */
- $"2B06 C383 F2A6 2CEE 02E6 A2A7 1821 0F3F" /* +.Ã,.梧.!.? */
- $"4057 F9E9 B830 94C7 65AA C396 6F97 2721" /* @W0eÖo'! */
- $"F1AC 6AF7 6C6C 3F02 D2F1 343D 8B42 0F6F" /* jll?.4=B.o */
- $"E2D4 A7D8 7158 F033 C573 AD72 01B7 1CC7" /* ԧqX3sr.. */
- $"4CA6 78C2 BABD BB30 5E03 BDEE DF19 8240" /* Lxº0^..@ */
- $"9521 A43A B142 2F42 3590 AD8C B9FD A409" /* !:B/B5 */
- $"9D77 38E7 B8F8 3BCD 4478 61C3 5768 0324" /* w8;DxaWh.$ */
- $"4E55 4240 1E87 1F93 D0BA 6929 C235 7E76" /* NUB@..кi)5~v */
- $"F6E8 AA1B AF13 15FD EB95 2609 BE7D BFE8" /* ...&ƾ} */
- $"3E51 8F2E 4780 4EE6 891E F83D FF7D D1C3" /* >Q.GN.=} */
- $"818F 28A2 2AC0 AD00 7F03 5781 2882 A44A" /* (*...W(J */
- $"6728 D9F6 E77F A883 C794 71AC 55E9 8112" /* g(.ǔqU. */
- $"BF6F ECDA 9BD1 96B8 79AA A397 A6F2 C93F" /* oڛіy? */
- $"3792 B8C4 8667 AAF4 659D 59F6 E77F A870" /* 7ĆgeY.p */
- $"24F1 5461 DB69 0F4C F8B3 F02A F6E7 7FA6" /* $Tai.L*. */
- $"26C9 5EDE 9BB6 A1C6 9467 854A 5327 BA38" /* &^ޛƔgJS'8 */
- $"F535 A01A B90A 9580 95A0 FE5C A623 DE0D" /* 5.•\#. */
- $"6C3E BF23 66F2 9312 9490 EB88 1D63 7AF4" /* l>#f..cz */
- $"9F5B 7F45 9078 3A5F CC36 7702 EAD5 FA4D" /* [.Ex:_6w.M */
- $"5F9D 258B 14A8 A235 6490 6B7D 2B05 42C3" /* _%.5dk}+.B */
- $"2A5A 791E 92C3 B1E8 B323 FF74 81FC B063" /* *Zy.ñ#tc */
- $"4A31 CBBC 91E2 A64A F935 FE79 4C07 1376" /* J1˼J5yL..v */
- $"002A 4795 5221 70B2 005C 41F9 D631 126F" /* .*GR!p.\A1.o */
- $"FF7F DF03 06BD 7214 71AB 4EF3 8EEA 0261" /* ...r.qN.a */
- $"D054 C087 EA15 CBD2 4645 2F9F 3600 4144" /* T.FE/6.AD */
- $"5671 C61E D3CB 8B84 A60D B58E FB69 C71F" /* Vq.ˋ.i. */
- $"B09A EDD9 AAC0 6FBA D7FE 8C4D 8262 6C73" /* ٪oMbls */
- $"9F69 0E81 7581 1D52 FB27 C979 1597 69EA" /* i.u.R'y.i */
- $"F1DF E906 0B77 2E21 D31A 5CCD 9474 95A2" /* ..w.!.\͔t */
- $"CB48 AB27 5F53 B82F 1638 16A4 87CD ED1F" /* H'_S/.8.. */
- $"20BC 2894 5EE1 C84C 1AC1 1158 0293 024E" /* (^L..X..N */
- $"1023 0E4F 9BD8 FA73 6E62 FF7F FD08 5797" /* .#.Osnb..W */
- $"0788 A951 6DDA 2448 21D2 7FCA 20B4 E1BF" /* .Qm$H!. */
- $"3262 89C7 5386 ACB1 8B89 6AC3 F907 1355" /* 2bSj..U */
- $"66D9 1E5A 5B54 19E9 2737 FF7C B8DF 1F5E" /* f.Z[T.'7|.^ */
- $"3592 B16D 6089 DE73 8F19 479D 626B 977D" /* 5m`s.Gbk} */
- $"185E F7A3 AF62 AD92 E5AC 2F74 B991 F96F" /* .^b/to */
- $"211F 5AE0 4C27 344F A9E1 C731 DB20 A0FF" /* !.ZL'4O1 */
- $"7FFF 7F2E 356F CC55 C6B8 C2C9 2AEF 2D31" /* ...5oUƸ*-1 */
- $"EFEB D878 C16F B1B1 3D47 240C 489C 7153" /* xo=G$.HqS */
- $"E5F8 A5C8 6E2C 7650 AED0 C4B7 43EA 67B6" /* n,vPķCg */
- $"94E4 7274 CFEB 4CF3 FD3E 8065 B9CC 35A5" /* rtL>e5 */
- $"21B1 3804 AD98 4F8A 6FFC 50DA 014C 442B" /* !8.OoP.LD+ */
- $"AA41 1455 BD94 B366 A37D CA82 7FFC DE57" /* A.Uf}ʂ.W */
- $"2EA9 98C2 5510 E51E 24CC 0428 4C83 1BBE" /* .U..$.(L. */
- $"0A46 A6DD 6963 D4CB 24E8 748B ED10 7B6D" /* Fic$t.{m */
- $"E61C 86C3 C80E 3030 FCE9 2263 C956 95A1" /* ..00"cV */
- $"AED0 C4B1 D07C F701 9DA0 ED2C C401 BC1A" /* ı|.,.. */
- $"9421 2D43 EF12 7494 8D46 CB82 3FE2 6439" /* !-C.tF˂?d9 */
- $"6BDE C8CE 23B7 9D2E B6F9 DF4B C1A9 A145" /* k#.KE */
- $"1512 85E6 30E6 98D1 AC22 EEBC 459C D841" /* ..0Ѭ"EA */
- $"0A0F 1F31 2F75 7937 220F 7271 FE79 44A6" /* ..1/uy7".rqyD */
- $"777E 1645 E0BA D980 0FFF 7D9F EC83 A930" /* w~.Eـ.}샩0 */
- $"D12B 216D 4D3F 4AD0 5EE9 DBC7 53D7 0A21" /* +!mM?J^S! */
- $"2372 C608 6701 8AFA 8E33 4125 2B7E 38DA" /* #r.g.3A%+~8 */
- $"5990 99EE B1D0 B07C 9F9D 97DD D658 2C2A" /* Yа|X,* */
- $"C7D6 4556 2AA7 297F ACBE 4802 B472 E76F" /* EV*).H.ro */
- $"644F 2F11 17FF 7F9D CE1C 2989 7199 03B1" /* dO/....)q. */
- $"E719 2B3B 1131 C4CC 808B BC7A 26A4 479F" /* .+;.1̀z&G */
- $"4824 6486 E338 DB65 A502 454C C415 B8D0" /* H$d8e.EL. */
- $"7C77 7323 E381 5958 F415 95B9 142E 85F8" /* |ws#YX... */
- $"1742 E22F FF17 567B A195 DFF1 7EE0 8E40" /* .B/.V{~@ */
- $"431A B629 DDCE AED1 A925 9FCD 56B5 7945" /* C.)ήѩ%VyE */
- $"B8B9 77DF 732C CD1E 8137 2645 1135 9593" /* ws,.7&E.5 */
- $"E31C 333B 30E2 518D E202 A1E0 FEA6 C40E" /* .3;0Q.. */
- $"BB50 0174 C21D 0BFB 34C1 1A8D 8E5D FF77" /* P.t..4.]w */
- $"909A 8111 3123 8200 AFC2 0525 13A1 C383" /* .1#..%.Ã */
- $"5472 BA45 8D58 8818 E5CD 6FEA D858 47C5" /* TrEX.oXG */
- $"F5A0 7773 3C86 1CE8 9A67 FAA7 5726 643B" /* ws<.gW&d; */
- $"1BF8 C2C1 E7AD D3CE E89B 97C4 0210 1FAE" /* .蛗... */
- $"9319 1F1F 7F89 0B76 5918 7EF8 9947 CF44" /* .....vY.~GD */
- $"6B5C 4B5D 5067 58A7 F35E CF39 7D01 C555" /* k\K]PgX^9}.U */
- $"FCD3 E0F6 C1A4 9C8A 0B34 2D33 A20D F664" /* .4-3.d */
- $"C174 CCE8 CAA1 C45F 2974 101B 86E7 68FD" /* tʡ_)t..h */
- $"D6FE 8FE9 AC95 5D3D DE38 1829 E3B9 37FE" /* 鬕]=8.)7 */
- $"5008 F383 21C4 4D57 AE92 9F94 A9BB 3A76" /* P.!MW:v */
- $"705F 8D2D 889C EB93 FD2B 05C5 89F2 500E" /* p_-+.ʼnP. */
- $"4220 A486 F348 D466 4D62 E368 540A 1D25" /* B HfMbhT.% */
- $"AF7C A9EF 43CC E423 16FC 6EE5 C407 DDAE" /* |C#.n.ݮ */
- $"EB28 23D2 3FDE 40EF 2ED1 D53A B87B 9C40" /* (#?@.:{@ */
- $"80A2 77EF CC8F D34E C33F 7BB4 4748 E4A6" /* w̏N?{GH */
- $"B177 05FF 085F CBF9 F1A0 8CA7 4200 32AC" /* w.._񠌧B.2 */
- $"7B87 A517 EA04 C96C F9A3 C6ED 5FFF 7FED" /* {..l_. */
- $"D5EB F835 3E15 6882 AED1 72BF B42C 87DE" /* 5>.hr, */
- $"8111 0F7A 5DA6 CFEA 79A7 9174 89E8 E637" /* ..z]yt7 */
- $"7E56 B53E 9987 2013 8F1A 06A5 07A2 1856" /* ~V> .....V */
- $"FE30 E259 128A 968B 881F E88D 8566 98D7" /* 0Y..荅f */
- $"C815 C397 64E8 9FAC 059A 5922 C863 F220" /* .×d蟬.Y"c */
- $"EC2A 4AF8 5DB2 A77D FC6A 3AC1 357E D5CC" /* *J]}j:5~ */
- $"142B 85B0 FEE0 2579 D845 CDFD F507 4C58" /* .+%yE.LX */
- $"D86A F299 0BBC A0A8 39A4 03D9 2144 6B3E" /* j.9.!Dk> */
- $"6D67 242B 0FEB B6F4 79CB 58ED 2338 DB9F" /* mg$+.yX#8۟ */
- $"6EC7 1626 0FDD 0C77 1E00 2AE4 8B46 F39C" /* n.&..w..*F */
- $"6268 EE5F FF49 B5C8 30E7 9859 E163 A9D4" /* bh_I0Yc */
- $"C50F BC0C 46BB BBC7 9FFF 7D54 E81B 8936" /* ..Fǟ}T.6 */
- $"A032 72E8 6576 5FEA 9A3F A5A9 9E58 B9C2" /* 2rev_?X */
- $"A089 A039 5695 766F 3295 A1FF 7F5F FBDB" /* 9Vvo2._ */
- $"A3FD 1F1F 76AD 6787 B4D0 D1A5 E4EA 72F8" /* ..vgѥr */
- $"0276 0C35 EC34 65A8 000A CA35 6AAE 1800" /* .v.54e.5j.. */
- $"99CA 1B65 F56D 6C3B DF33 AB08 94A3 15CF" /* .eml;3.. */
- $"C9B8 D32E 35D7 D32D 57E6 86D2 A5BE 2B3A" /* ɸ.5-Wҥ+: */
- $"4535 2C10 41FE FDA9 E202 3927 BC4F 5F90" /* E5,.A.9'O_ */
- $"E637 311C DB00 E394 09F3 005B 7DB3 0DFE" /* 71...[}. */
- $"9F1F CAA4 DD03 B381 8330 AB38 E13B 2F9C" /* .ʤ.08;/ */
- $"3DB5 01C5 100A 5D16 5C8D 792C FA0E 1A85" /* =..].\y,.. */
- $"E3FF 467A 6333 E4F1 F27C 9E2B 161E 18F0" /* Fzc3|+... */
- $"3F30 9C2C 631D BE74 4B7F 6E21 3FBC 404E" /* ?0,c.tK.n!?@N */
- $"E063 4152 D02D 68E4 869C E7E9 E4E6 4E95" /* cAR-h䆜N */
- $"3A66 1FDA 1145 DFB4 0796 9F97 503C E2C9" /* :f..Eߴ.P< */
- $"7F49 D644 1290 98BD 8EA0 2FA1 CF00 E383" /* .ID./. */
- $"C003 7BFE D79B FF62 A38E 2C39 A64D 19FF" /* .{כb,9M. */
- $"6A9D 976A 994B 6626 4F4D 7DC8 F0CA EDB7" /* jjKf&OM} */
- $"F99E 21E2 36B4 3AAB E787 C6A2 1783 F623" /* !6:Ƣ.# */
- $"8755 1F66 AFBC 2959 6E6E 2E61 AC85 2198" /* U.f)Ynn.a! */
- $"9978 EDFD 334C F0D6 7F76 9AF2 47AF 5E4B" /* x3L.vG^K */
- $"805C 54D3 5F2A 16C5 6675 C288 B44F F851" /* \T_*.fuˆOQ */
- $"1CE9 9F21 BF10 92B9 2366 5D69 AE8E 9989" /* .!.#f]i */
- $"36A6 F9E6 75A7 0D47 C8B5 8727 0138 2BFA" /* 6u.Gȵ'.8+ */
- $"5C4A 649C 123C 225E 2CEC 2007 5016 3F11" /* \Jd.<"^, .P.?. */
- $"B8FF 60CB 7150 EBFD DFED 147E 0A98 E096" /* `qP.~˜ */
- $"6B76 3AF0 39A5 5BF2 880C E857 174C 8735" /* kv:9[.W.L5 */
- $"ACF6 E4B7 3477 6293 FF7C 8515 A8DE 4E73" /* 4wb|.Ns */
- $"8E37 8A0C 4384 0CF3 FA01 15F5 9639 ED05" /* 7.C...9. */
- $"C86B 28A0 C331 14BC 2817 FE9B F96A D60D" /* k(1.(.j. */
- $"EBCB 14DA FF7F FF47 8A61 A2C7 F01F 10B7" /* ..Ga.. */
- $"3DAF B01C B484 F55D 457E E3EC CC41 95DE" /* =.]E~A */
- $"097E 8117 F77F FEFB A490 8B96 1300 2B37" /* ~....+7 */
- $"19FA E04C 4188 E9F6 8950 0668 B082 8FD8" /* .LAP.h */
- $"0B7D 6C32 4DBF F84F F4E9 ACAF 719A DC43" /* .}l2MO鬯qC */
- $"9F8D A53E DF1A BDB0 AAA7 3267 9C2D 357A" /* >.2g-5z */
- $"9CA7 1AE1 59C4 F467 83D3 308B 004A 42C2" /* .Yg0.JB */
- $"909B F979 41CE AB25 C6D1 9FE9 46E1 E837" /* yAΫ%џF7 */
- $"7ADF FF72 225E 4472 D323 F55C BE19 1E50" /* zr"^Dr#\..P */
- $"BF94 6787 CADB F576 300A 054B 0A2D E9B2" /* gv0.K- */
- $"5C15 DB84 E735 F76D 5477 D8A7 28AF FF7A" /* \.ۄ5mTwا(z */
- $"7EB8 06F8 4FF4 E999 ED48 02C4 F111 F61D" /* ~.OH... */
- $"8A6C 1CC6 AE54 94E4 8C5D 7655 4ECC 205F" /* l.ƮT]vUN _ */
- $"DBF9 1BA7 83CC 52E9 E9C9 52A4 1151 7DE4" /* .RR.Q} */
- $"051B E140 3FC0 D60B 0C11 663F 98A9 8B53" /* ..@?...f?S */
- $"776E BD8D 7678 AD62 ACEE 033F D134 B61E" /* wnvxb.?4. */
- $"F86D 3384 AAE7 9074 F7CF 4509 F9B3 4F30" /* m3tEO0 */
- $"F32D 840F 1DDA E6B1 BDD4 951F 2379 F890" /* -..汽ԕ.#y */
- $"530A E915 A228 D3D8 B188 C692 2767 D628" /* S.(رƒ'g( */
- $"12F8 3FFA BA23 F76B 1D92 1FC1 EA73 30FC" /* .?#k..s0 */
- $"CE72 0CA5 6695 6326 F93B B52F B9D4 F6F0" /* r.fc&;/ */
- $"FF07 727B 80F9 EBFC 2176 788C 333F 4137" /* .r{!vx3?A7 */
- $"E82C D066 6088 A8EA 168F 40EA F1EE BDE8" /* ,f`.@ */
- $"C023 75BA 66F2 335A 98C0 31A8 2137 7A7B" /* #uf3Z1!7z{ */
- $"DA0F 3962 D4B3 3E6E A5A1 3A19 5EED 48A7" /* .9bԳ>n:.^H */
- $"7617 DE46 D178 BC48 D85D 7821 DFEC B30D" /* v.FxH]x!. */
- $"F84F B7CD 80ED 55C7 9E1A F58D 7085 F625" /* ÒUǞ.p% */
- $"F564 3BF5 A09E B353 4E45 2F0B FC02 ECFD" /* d;SNE/.. */
- $"539F 529C A652 34F1 C0CC BC04 FCE0 2C7D" /* SRR4̼.,} */
- $"A8A9 9E67 79E9 ADE4 ABEE BFF6 4793 1B91" /* gyG. */
- $"413A 4302 7FB5 190C CB09 0DC9 3B33 E18D" /* A:C.....;3 */
- $"DDAB 23C5 FABA 5DC1 554F C940 B964 7F6A" /* ݫ#]UO@d.j */
- $"A781 2032 BF9E 0262 7C99 CD96 9251 9FB6" /* 2.b|͖Q */
- $"1C69 9141 7A13 3022 DE48 DA68 C959 A0B5" /* .iAz.0"HhY */
- $"0F3A F19A 9301 5051 5855 9D7B 5173 EE47" /* .:.PQXU{QsG */
- $"2B0D DB30 28CC 5E41 46F1 E79F 90B3 AB2A" /* +.0(^AF矐* */
- $"CAEA 6128 10E1 2CC0 DDC2 EBF1 26F1 E1DC" /* a(.,& */
- $"EB87 87ED 55F3 827C A066 D932 FCF7 B134" /* 뇇U|f24 */
- $"8BC9 CC70 B38C B019 8372 EA60 7C36 4D38" /* p.r`|6M8 */
- $"F82F 16C2 2390 A91B 203A 8EBE D0EC E278" /* /.#. :x */
- $"7AC4 8493 A217 6AC3 B85A 470D D74A B91D" /* zĄ.jøZG.J. */
- $"0180 7BAB 4088 5671 6268 5B4A 54FE C179" /* .{@Vqbh[JTy */
- $"1600 7677 830B 0E81 EEB2 6124 33F8 DBBD" /* ..vw..a$3۽ */
- $"1B35 D1F9 0568 3891 0ECB A836 5A86 9636" /* .5.h8.˨6Z6 */
- $"9F87 052F 0D66 8AA3 3362 1651 9B33 9057" /* ./.f3b.Q3W */
- $"5B98 05EB 23CE 099F 2358 444E 0D64 A9F9" /* [.#Ɵ#XDN.d */
- $"A569 7D56 A50D 6256 69AF BDD9 7847 D651" /* i}V.bVixGQ */
- $"73E2 F76E F277 58DC BFB9 7B8E 593C 0E97" /* snwXܿ{Y<. */
- $"3C4E 507D FA6C 7984 FAC8 6C42 6882 78AC" /* <NP}lylBhx */
- $"E40D B7A2 4E43 998B 1C29 D7C6 B7BA 58C9" /* .NC.)ƷX */
- $"3503 114B 86B8 CB5D B605 832D 98FE 0257" /* 5..K].-.W */
- $"FB50 8CA0 43D4 71BE E330 1584 5983 668F" /* PCq0.Yf */
- $"735C 2448 3B30 82E4 1932 5BF8 129F FE38" /* s\$H;0.2[.8 */
- $"749D 01ED DAFC 95B9 375D BBCB 60D9 FC58" /* t.7]`X */
- $"0796 AEFC 2337 F89E 01F5 48BD 0BAF A61F" /* .#7.H.. */
- $"3EC4 C092 DC6A 584C AAAF 1A9F A20F CEA4" /* >jXL..Τ */
- $"884B 2DB6 09F4 F51B 546F CD71 F4D3 6452" /* K-.ToqdR */
- $"B6E5 3EFF 66F8 0D60 D916 F755 1348 E250" /* >f.`.U.HP */
- $"D8E2 6858 B424 B84B D59A 6885 24D3 D845" /* hX$K՚h$E */
- $"692F 4313 B616 584F 7419 0661 0064 C281" /* i/C..XOt..a.d */
- $"A873 131C 5296 042B 1FD5 3EED BFC2 659E" /* s..R.+.>e */
- $"C4C7 2720 8002 28DD 141A BBE7 99F8 028F" /* ' .(... */
- $"8262 0577 5240 EB9A F866 2901 B75B 3FED" /* b.wR@f).[? */
- $"9E78 9071 83FD 02BC FCDE 2135 42D1 F184" /* xq.!5B */
- $"309D F47E DF10 F797 4268 120A D377 04A4" /* 0~.Bh.w. */
- $"2998 099E CA35 66AD FB20 8C14 1E0E 714E" /* )ƞ5f ...qN */
- $"B9A7 70EE 5BA0 7A18 FC16 97EB 1A98 CB6C" /* p[z...l */
- $"4B5D AC5B 3DC2 2062 E74A 18F2 0A76 6085" /* K][= bJ.v` */
- $"EF50 1C2F FE23 117A ED22 7BE8 0231 BC71" /* P./#.z"{.1q */
- $"707C 6736 BC3C 38AA 81C2 66B6 DCE5 13E9" /* p|g6<8f. */
- $"3076 C7AD 8C4B A962 C37E 4605 CDC0 8247" /* 0vǭKb~F.G */
- $"190C 41CD 6923 8D00 BC94 5B5F E2AB 443B" /* ..Ai#.[_D; */
- $"3C5A 7FF6 213C 9E2D 9224 70B1 EA9B 7D36" /* <Z.!<-$p}6 */
- $"E7EA 0D03 CB32 7413 AB26 CB30 1B56 CBDE" /* ..2t.&0.V */
- $"3C31 361D 24E2 F441 4D78 7825 1DA0 0C14" /* <16.$AMxx%... */
- $"5C84 B112 6FC1 77DB 42CA 7791 960B 9F09" /* \.owBw. */
- $"980A 5629 54C0 EC82 889A B0E3 38F4 E734" /* V)T삈84 */
- $"FA91 D5CD 2C8F 43CD 5629 3DAD 81DA 5E0A" /* ,CV)=^ */
- $"C008 712F EAD3 2486 4CD2 C7BA 0FA9 BBD3" /* .q/$LǺ. */
- $"6AC2 A912 7736 5A33 CC96 9EDC 9C5A 3084" /* j©.w6Z3̖ܜZ0 */
- $"C826 A3FB 0661 ED4B 9689 A921 22AB 2399" /* &.aK!"# */
- $"6F2A 4A78 A5F8 A059 BE4B 7DFF 5D41 1A31" /* o*JxYK}]A.1 */
- $"E688 045C BD1E D1DB 7C5B 6B89 5C22 3CAF" /* .\.|[k\"< */
- $"F133 FF14 13A2 9A3F 6E42 54EB 5082 9F25" /* 3..?nBTP% */
- $"7C07 6BA6 25EA A890 3560 E915 B058 CB68" /* |.k%ꨐ5`.Xh */
- $"3601 4B07 ACE7 EC8A 2897 F908 D405 455E" /* 6.K.(..E^ */
- $"5EDD 427E 791A EA3D 6ACE 3BC0 0D43 731A" /* ^B~y.=j;.Cs. */
- $"C9C6 8C03 BD83 6F85 EF75 7246 2F8E 1CFB" /* ƌ.ourF/. */
- $"8DC9 2726 593F 1D87 A822 399F 9770 324C" /* '&Y?."9p2L */
- $"6ABF 38B9 E89E B2F5 D575 E7DB C449 63CF" /* j8螲uIc */
- $"EBE1 07BB 80A4 C099 6A15 9A47 96F3 8C8D" /* .j.G */
- $"49E1 1F78 2119 9460 CA7A F257 EDA1 104B" /* I.x!.`zW.K */
- $"5C68 0E57 188C 62B0 FBE3 CF4F 5251 6525" /* \h.W.bORQe% */
- $"CB59 5E3D C6F4 6B04 5B2D 1ED2 3BE1 02BB" /* Y^=k.[-.;. */
- $"7207 12AA BFEC 50F4 83FE 2797 121B 3D14" /* r..P'..=. */
- $"DA23 BE41 D647 E5CA DD2D CD48 8C4D A094" /* #AG-HM */
- $"B1A9 4ED5 4735 8818 C4F1 597D 3211 5D12" /* NG5.Y}2.]. */
- $"D96B 5A38 AB9A 7E89 C503 13B0 8354 C887" /* kZ8~..Tȇ */
- $"F766 96F0 EDAE C6B6 17B4 E9A4 9230 C2F5" /* fƶ.餒0 */
- $"029D 3D72 A1CF 5BB9 E975 DBFF 06DC F5B2" /* .=r[u. */
- $"686F 667B AD3E 1D8D 5BE4 0D6A 2CD7 DE66" /* hof{>.[.j,f */
- $"BE8E C996 696D 58EC 6CFE 40AD 3C95 EAF1" /* ɖimXl@< */
- $"4591 1D62 836E D2E3 4CD8 E4A6 F4F4 C456" /* E.bnLV */
- $"A70C B3BE AA22 A188 DAB5 D3F7 4B7B 865D" /* ."ڵK{] */
- $"4D89 77E6 99A6 46C9 14BA 25E1 55C5 ADBD" /* Mw晦F.%Uŭ */
- $"4379 96AF 26DA A399 F009 AE75 248B 0285" /* Cy&ڣƮu$. */
- $"B370 5704 6429 C8AF 0BD3 A332 90B2 8351" /* pW.d)ȯ.ӣ2Q */
- $"F715 32C9 347B EADE 2EBB 9D97 BF95 0C5A" /* .24{..Z */
- $"9203 1EC5 7A8E CF46 C28C 39A2 DE74 C656" /* ..zFŒ9tV */
- $"F0BF 3ABF CE5F BE71 B7CE 2FF3 F41B F3EA" /* :_q/. */
- $"8BE7 B07E AB17 4F87 74FC FDE8 EF9F BF3F" /* ~.Ot? */
- $"A9EB F3D5 3F3E 83BE 7BAF EA5F E0FE 7ADF" /* ?>{_z */
- $"E7A7 7F9D 3FE7 3BF9 FA77 F9FA 3FF9 F7C7" /* .?;w? */
- $"E7E9 871D E84F CFE8 83FC FE85 E3BB E7E7" /* .O */
- $"AFFE 7D7F F9F5 57E7 AF70 6F9D 2DF3 9ED7" /* }.Wpo- */
- $"C81E F903 FEAB 8EF9 F50D F254 3F3E A4D1" /* ...T?> */
- $"DD53 F3F6 F37E 7EC9 4775 1BE4 77F9 EEBF" /* S~~Gu.w */
- $"9ED1 F9DC 00F7 91DD 3D8B A94D D83C 797F" /* .=M<y. */
- $"4243 1F04 D29C 94E6 FA35 A9C7 9C1C 0762" /* BC..Ҝ5ǜ..b */
- $"AA92 7DF8 65D6 B16D 30C6 E3F2 22D5 8971" /* }eֱm0"Չq */
- $"F890 651C 37E3 1F4A 29A4 6637 D7AE 7CB9" /* e.7.J)f7׮| */
- $"14C7 D06B 2595 45F8 89DC DBAF B284 6ADA" /* .k%Eۯj */
- $"E4DB 9D25 F76C CDA3 EB7E 1B5A 4264 8145" /* ۝%lͣ~.ZBdE */
- $"547E 6F18 076D A675 BA1A 1AB1 0BF1 AEB6" /* T~o..mu... */
- $"C8C2 AAE0 489F 4E11 7F77 336A 41A4 C050" /* ªHN..w3jAP */
- $"D19E AE10 BD35 C5EC DA71 BDEF A017 C32D" /* ў.5q.- */
- $"CB15 0C8E 0B75 C179 FB84 FDF2 DD5D C21F" /* ...uy]. */
- $"56A5 397D C437 A82F 65F9 2E68 A785 0AF3" /* V9}7/e.h */
- $"B9F0 7781 E6B8 ACFA 09DC B57D 6317 B29B" /* w測ܵ}c. */
- $"C754 09FC 3635 9854 0DA1 A3BE D3EE CF40" /* T65T.@ */
- $"4BE4 A4D9 07C4 D65E 3887 C8A7 CD3A 83F5" /* K.^8ȧ: */
- $"DFA8 10A6 BB6D B811 852D 3877 8782 1E66" /* ߨ.m.-8w.f */
- $"AF11 43B8 CA3A 6146 3657 AFE0 B314 36CB" /* .C:aF6W.6 */
- $"8E1C 272D ED4B 634C AABA 0207 6A1A E2E3" /* .'-KcL..j. */
- $"C500 C0A4 894A BAD8 C9A1 0AE7 AC8D 750C" /* .Jɡ笍u. */
- $"7D84 FBCC DB2E EE05 B04A 002B B383 46DE" /* }..J.+F */
- $"C18D 5BBD B442 9E88 BBB2 89CC 0EBA CF5A" /* [B.Z */
- $"5616 DDAB ED7B 4C2E 1C82 0C9D 4820 C0E8" /* V.ݫ{L...H */
- $"1C4E 39A5 9041 9E33 A20A A73D 821A 238A" /* .N9A3§=.# */
- $"3B24 14B9 D9A6 95AA F5B0 13C1 8CFD 790F" /* ;$.٦.y. */
- $"33CB 82D3 FE12 0F27 F309 7453 05E0 DF8F" /* 3˂..'tS.ߏ */
- $"AAE8 F77A 31BA 0118 43E1 7AE7 69DC 5D12" /* z1..Czi]. */
- $"BD53 9858 EA6D D8D3 174C FE4C F487 3CCF" /* SXm.LL< */
- $"9098 7872 8FC3 EBAC 4C76 F503 6915 A1B3" /* xrLv.i. */
- $"5FF8 81CD E13D D511 AAB8 5C7B 1376 C87F" /* _=.\{.v. */
- $"2DA1 557D 2053 3341 CC15 418C 0911 5378" /* -U} S3A.A.Sx */
- $"5FFE 324E 1412 2046 B049 3A77 69B7 417F" /* _2N.. FI:wiA. */
- $"AC17 B8B0 7FDA 6D19 59F0 DD68 8A88 E55A" /* ..m.YhZ */
- $"8098 0888 3714 713A 1D17 BB8D F01C 6005" /* .7.q:...`. */
- $"8F2E 3D20 2753 1BB4 9BE3 DFD1 709F 99EB" /* .= 'S.p */
- $"DFCC C1B1 717B 7FA3 52BB C12D E6B7 24D2" /* q{.R-$ */
- $"F448 F23D C196 1BAA D61B F422 41B4 D620" /* H=.."A */
- $"466D 45F3 06F6 F631 3E88 5CDE F7F6 BC6F" /* FmE.1>\o */
- $"789C D06C 02CC 2E71 B6B0 03D2 297B BFCD" /* xl..q.){ */
- $"8C21 67AD CEE0 DB53 5749 A676 690C 11E3" /* !gSWIvi.. */
- $"5AD2 905C 78E1 4AB0 E60E C920 4ECC 7CB6" /* ZҐ\xJ. N| */
- $"A76F 70F1 BCFD AA1D F4D2 E43F E203 D0C8" /* op.?. */
- $"E11E 61AF F1A7 5762 600E 65BB D870 818A" /* .aWb`.ep */
- $"CDF0 DFC4 8C9C 1926 678B 2732 C52F 98FD" /* Č.&g'2/ */
- $"33B3 EE23 138D 5E5F C9C3 FEF9 6111 E3E6" /* 3#.^_a. */
- $"AF79 A8A5 2949 D590 B463 EDF3 F72A 18FD" /* y)IՐc*. */
- $"BB23 233B 7924 2DD1 A335 B949 467E A30C" /* ##;y$-ѣ5IF~. */
- $"3185 5FE5 DB63 6748 B22D AB3F 8A8C 0926" /* 1_cgH-?& */
- $"5450 E925 A69D 1185 7300 D694 EA1F 4DF2" /* TP%.s.֔.M */
- $"2413 F4ED 6D64 5B74 BBD5 0E65 26EF A8CD" /* $.md[t.e& */
- $"5806 0C60 404F 90A0 06B6 AFD1 785F 9646" /* X..`@O.x_F */
- $"B1AD 2A45 5777 33FA 49DB 8D3D AC2A BAEA" /* *EWw3Iۍ=* */
- $"4527 B4DF 481A 6AB9 4485 05E6 7040 1B93" /* E'H.jD.p@. */
- $"D6E0 3BBF A334 E13B 68EC 934B C393 B621" /* ;4;hKÓ! */
- $"CFC8 69BE A6AC 672C 235E F1FC 4480 DE83" /* ig,#^Dރ */
- $"32D7 D269 F78C F22D 5B9F F4DF DDDD D6DE" /* 2i-[ */
- $"4C65 4D61 C1F0 26BF E4C3 D7C9 A034 163D" /* LeMa&ɠ4.= */
- $"FBAE 0167 4DF0 EBEF AA8B B742 2832 1F67" /* .gM懲B(2.g */
- $"8CC0 80D0 4A6B 9843 DE59 2F7B F944 9DA4" /* JkCY/{D */
- $"343D 9AD9 9E0B C7B5 0B7D 2CA1 F638 8A3B" /* 4=ٞ.ǵ.},8; */
- $"BB38 A39B 025A 9BA9 34AC ACF0 063D 5483" /* 8.Z4.=T */
- $"FE57 22E4 EB2C C699 AEF3 8EFB 1C8C A23A" /* W",ƙ.: */
- $"2C15 D2EF AC9A 91C9 993A 4CB0 2DDC 0A32" /* ,.﬚ə:L-2 */
- $"14B9 50D2 8579 8F9D 5AF2 88DB E726 1B39" /* .P҅yZ&.9 */
- $"3E06 69F9 F300 09E4 D3E8 BB4C A704 10E0" /* >.i.L.. */
- $"F1D0 53DE 91D8 6723 A047 11C7 57B3 C46C" /* Sޑg#G.Wl */
- $"84A7 C2E1 C7CC 185C 9F21 7E2B 0F2E 64B1" /* .\!~+..d */
- $"D734 4142 C65E A2FB 9ABE B62D 076B 2B65" /* 4AB^-.k+e */
- $"9D6E 63F1 4825 79A9 3936 C7A7 531F EF6A" /* ncH%y96ǧS.j */
- $"F859 3084 0421 88A9 A648 8641 ACEB 95DE" /* Y0.!HA */
- $"2E94 E3C9 442C 13AF CF63 0404 C5C6 5CE2" /* .D,.c..\ */
- $"CE90 F9CC A1B6 5713 031E C239 174F CC40" /* ΐ̡W...9.O@ */
- $"BCA4 EA9A EB6A 1D24 7962 F735 AF5A B937" /* j.$yb5Z7 */
- $"AC3B A12E 10A8 D332 6FE3 8ED1 6F01 B198" /* ;..2oo. */
- $"1543 A6A1 367E E226 5D76 B860 E0E1 8963" /* .C6~&]v`c */
- $"AA7A F9EE DABF DB52 28F6 69F9 273F 8729" /* zڿR(i'?) */
- $"1D00 C7D2 20B9 3483 2125 88FC 94C0 54A6" /* .. 4!%T */
- $"42FE F4E5 DA50 F495 F88B 5986 21CB 22E8" /* BPY!" */
- $"EE5E 0622 2CB0 BCC8 0C6B 2B2B 23EB 0506" /* ^.",.k++#.. */
- $"A40F 09C2 726F 0C1F B8D4 55D3 2FE4 D629" /* .ro..U/) */
- $"94C2 C913 BB28 4394 A9D2 8684 9E47 0445" /* .(C҆G.E */
- $"B6CF 3E21 7072 B435 310C D7A3 063D 942B" /* >!pr51.ף.=+ */
- $"6AE9 350C 9442 C76E 1E6B A8C1 18A3 4309" /* j5.Bn.k.C */
- $"6D55 E62F FC4E C4E9 6CF8 241D FAC5 2CC9" /* mU/Nl$., */
- $"E020 6B12 31A6 9B11 710B 8850 FABE 5D63" /* k.1.q.P]c */
- $"068A 4018 2A90 93A5 9715 531E 8E7B AD7A" /* .@.*.S.{z */
- $"2921 115F 19CE 2B6A F643 DE89 2E76 890B" /* )!._.+jCމ.v. */
- $"5A69 1668 6A02 061F 4832 24EB FC82 6B4D" /* Zi.hj...H2$kM */
- $"9B08 D22F CBBF D348 D18F 8B0C C684 6851" /* ./˿Hя.ƄhQ */
- $"6CA9 E2FA 43CE 8A9A 7A58 FB28 0208 A6E0" /* lCΊzX(.. */
- $"1ACF CE23 C624 5A38 C640 72C0 26F1 2818" /* .#$Z8@r&(. */
- $"07FD 74D9 F3D6 ED38 CA01 6485 CE8C 41A3" /* .t8.dΌA */
- $"02C6 18E5 E4D2 2043 FA62 8768 3E14 7E80" /* .. Cbh>.~ */
- $"F2EB 67AD F743 75A0 2DDF 8724 1468 F88D" /* gCu-߇$.h */
- $"9BF3 11EB 4D4C B372 D210 9B58 BAA0 646A" /* .MLr.Xdj */
- $"222F 5E5A C781 1D86 5652 1B57 07AF C8FA" /* "/^Zǁ.VR.W. */
- $"9E77 DD7B FCB9 1D4C 8573 7B03 95AC D2DA" /* w{.Ls{. */
- $"3314 4FFC CAF4 39B5 EAF4 9617 2CC5 9258" /* 3.O9.,ŒX */
- $"8F99 8C44 8D44 DA10 F1A5 51F7 5533 F13B" /* DD.QU3; */
- $"CDDC B6D6 BE71 3C92 2628 3B69 DC32 C623" /* ܶ־q<&(;i2# */
- $"F497 3959 034A 67C3 10A8 26E2 572F B4B1" /* 9Y.Jg.&W/ */
- $"6C5C 3E47 FB9F AA7D D9A4 7A08 4BBA E854" /* l\>G}٤z.KT */
- $"4370 CE77 C69A 11EB 1BD8 B9AF 8225 BC8E" /* Cpwƚ..ع% */
- $"A261 1CAA A74D B531 A0B9 D462 35DF 9C21" /* a.M1b5ߜ! */
- $"73F1 EAC1 A13C E0BC AF6C 8111 03DF AF1F" /* s<༯l..߯. */
- $"4748 1866 322C 535A 7C5E D2BC 4304 3541" /* GH.f2,SZ|^ҼC.5A */
- $"F14E 8412 296B 2C37 B642 9B4A 6417 EABB" /* N.)k,7BJd. */
- $"9034 1260 1B81 AFCC F903 4FAA A3F2 339E" /* 4.`..O3 */
- $"F332 B080 8C32 31D7 4DEA B260 F190 43F1" /* 221M`C */
- $"CCD5 A584 5C1C 343F FB87 CEA5 F246 8EAC" /* ե\.4?ΥF */
- $"C407 302C FEE7 3F59 F4B8 74ED ED62 D373" /* .0,?Ytbs */
- $"A4BA B53A 0554 5403 9C2C E745 1087 5546" /* :.TT.,E.UF */
- $"2671 7BA6 3A33 703E BEF5 CD28 10A5 462B" /* &q{:3p>(.F+ */
- $"D902 9493 B2FC 176F 34BA 5A2D D2BC 0CBB" /* ..o4Z-Ҽ. */
- $"5AB7 B854 08D3 CD79 3C71 1A89 E643 2FBC" /* ZT.y<q.C/ */
- $"5A24 FEA6 EC06 1F23 79D9 3886 F6F4 7FB9" /* Z$..#y8. */
- $"F892 1A20 DC66 1EB1 D6FD 1C48 52DE 4267" /* . f..HRBg */
- $"77E2 620B 2DC0 6828 575C F7CA 74BC FE73" /* wb.-h(W\ts */
- $"FABD C9ED 4E8F 71A7 8CCD 8D80 8BD2 8AA3" /* Nq͍Ҋ */
- $"45C0 EF2A 387D 038E 8B00 BA81 12CD F93F" /* E*8}...? */
- $"E9BE 9134 2928 439B 69CF 3DB1 5DFC 3DAF" /* 龑4)(Ci=]= */
- $"86CA 34A7 4574 C91C 3F99 3EA9 B6E9 F3AF" /* 4Et.?> */
- $"6757 09A3 C49E A9AD 7201 BFD9 B3FA 52B0" /* gWƣĞr.ٳR */
- $"0000 0030 908B 4E52 45F1 3CBE F04A D2E4" /* ...0NRE<J */
- $"83AF 6AEA 78E9 A438 C877 BAAD 65CB C703" /* jx8we. */
- $"70B2 B9DD E19B 6B8C 0CE9 E402 0C9F 94F0" /* pk... */
- $"21BC 4E05 C03C 012A 66EF D0BC 2B72 292E" /* !N.<.*fм+r). */
- $"3592 1FDB 2A5C 8D2D C2FF 5C5B 6AB8 F695" /* 5.*\-\[j */
- $"F279 2C54 0529 555A 6ACA 22A4 C28B D693" /* y,T.)UZj"‹֓ */
- $"1FC9 4492 43F3 A323 F990 0A31 9356 30D3" /* .DC#1V0 */
- $"D6F0 0D36 0091 043F F239 9D1E 114E 3693" /* .6..?9..N6 */
- $"DF1C 23DF A27A 5B11 A44D 9199 07D1 AF2C" /* .#ߢz[.M.ѯ, */
- $"63EB 21C5 D29F 8644 8C6A 129A 9CB9 ED72" /* c!ҟDj.r */
- $"9286 3E0E B604 539A F262 B727 9284 01F9" /* >..Sb'. */
- $"5AE1 DA5A 8A02 140E 5275 5433 BCDF 8038" /* ZZ...RuT3߀8 */
- $"0050 856F A747 857B 8376 255A 9185 28CC" /* .PoG{v%Z( */
- $"301A EC7C B5D3 89CC A695 1C87 8266 7CA8" /* 0.|Ӊ̦.f| */
- $"A203 7467 426E 9507 3DB3 1F90 F66B DC9F" /* .tgBn.=.kܟ */
- $"ACF6 CDB2 4FCC 5AE4 2F94 F555 CB9E D8AC" /* ͲOZ/U˞ج */
- $"950B FF38 0FE4 5056 E5E8 F371 9A98 5697" /* .8.PVqV */
- $"6319 5197 B545 E594 AADD B2F2 CA27 260D" /* c.QE唪ݲ'&. */
- $"9BAF 0E45 0846 5573 F96B 7AC1 CC89 E86E" /* .E.FUskz̉n */
- $"61E6 72E2 05E3 9F8D 26D8 F178 BCC0 0B18" /* ar.㟍&x.. */
- $"967C EA80 F7C1 45AE 8FAE A41C 41B6 438E" /* |E.AC */
- $"46EF 1094 D558 01A8 BBAD 7380 DA27 2772" /* F.X.s''r */
- $"9D67 1330 A48C 62EA 0643 14EC 3E22 A055" /* g.0b.C.>"U */
- $"4E39 4E23 853D C587 99C8 CFD2 AEBB 9843" /* N9N#=ŇҮC */
- $"ECC9 0241 3253 8CF1 E068 1936 3BB2 56D3" /* .A2Sh.6;V */
- $"46F7 6A71 98D1 A300 1337 B3B0 7ABB 5752" /* Fjqѣ..7zWR */
- $"DB7A 7F85 5CFE 59DE A852 6987 DC11 C6B5" /* z.\YިRi.Ƶ */
- $"E45B 7DD1 1F3A D566 C16D 3FBF 7BAD 7201" /* [}.:fm?{r. */
- $"B71C C74C A678 C2BB 10FD 534A 5E5D 79C0" /* .Lx».SJ^]y */
- $"000C 2336 9113 B9C5 5D4A 1756 1C8B 0CD6" /* ..#6.]J.V.. */
- $"AA8B DFF5 6CE3 CDAB B9B4 D85C 93FF 76AA" /* lͫ\v */
- $"15CF CF39 A864 B236 A172 03A1 65A1 9F76" /* .9d6r.ev */
- $"FF55 00DE C7D0 C767 2787 9EB3 7CE5 C5BC" /* U.g'|ż */
- $"8E08 6085 37A2 229C 73D3 2CC5 F6E8 AA1B" /* .`7"s,. */
- $"AF13 15FD EB95 2609 6006 23C6 7910 8FFE" /* ..&`.#y. */
- $"8C5E 60A6 A558 E899 0A05 0F37 EC94 8E51" /* ^`X..7씎Q */
- $"7838 9A11 8483 88B0 E284 B88D CDEA 9D56" /* x8.ℸV */
- $"5C7E CFA2 8001 847E ABC9 360E 17EA 2D34" /* \~Ϣ.~6..-4 */
- $"8314 96C0 3810 D88F A54E 6E7C 6030 76FA" /* .8.؏Nn|`0v */
- $"18A4 A549 37FC 11F6 E77F A883 C794 71AC" /* .I7..ǔq */
- $"55F1 7F88 664A FEE4 01C4 5576 1BE6 9C41" /* U.fJ.Uv.A */
- $"D800 6121 2FC0 E681 A16E 21AF D5FE 0E80" /* .a!/恡n!. */
- $"A800 0000 3090 8C40 9184 82DA 7187 51C6" /* ...0@qQ */
- $"44DC C420 FF13 98AD D100 2C07 132C 8D6C" /* D ..,..,l */
- $"5D16 A089 D8F6 E77F A870 24F1 5461 DB69" /* ]..p$Tai */
- $"0F41 5029 7A41 B55F 0000 0184 846A 850C" /* .AP)zA_...j. */
- $"241E E628 EDA6 4000 3090 6AA2 F6E7 7FA6" /* $.(@.0j. */
- $"26C9 5EDE 9BB6 A1B1 51E6 8D5D F800 0061" /* &^ޛQ]..a */
- $"19B3 E47D 6F6F DB03 0885 4A53 27BA 38F5" /* .}oo..JS'8 */
- $"35A0 1AB9 0A95 8FAE 85E3 F528 5A8B E645" /* 5.•(ZE */
- $"8419 0456 6A38 D0DA 4948 8987 2323 1216" /* ..Vj8IH##.. */
- $"A4F8 FD1A C374 D30C BF43 CD86 B984 F23C" /* .t.C͆< */
- $"5487 B47F E217 F15A D8CF A66A 96A9 EAF3" /* T..ZϦj */
- $"F966 0205 D320 1556 5C3C 073A 8E66 1E3F" /* f.. .V\<.:f.? */
- $"A74E FF2C BC45 E9DB 3B25 FF7F 46AD 13A9" /* N,E;%.F. */
- $"5C21 458B 6AD4 829C 1DFB 54BA E5F2 3C76" /* \!EjԂ.T<v */
- $"3898 11F6 D710 7470 00FC 0742 CA59 9E40" /* 8..tp..BY@ */
- $"757C 5952 61FF 4D28 0991 1673 9B01 06B9" /* u|YRaM(Ƒ.s.. */
- $"3999 E9B5 06CD B1DA CB08 FF19 DE70 8D10" /* 9.ͱ..p. */
- $"E725 848E D27D 2B0B 54F0 B60B 26AB CD92" /* %}+.T.&͒ */
- $"E4F8 C007 FF68 6933 E2FF 31D5 435B FF7F" /* .hi31C[. */
- $"9A8E 9845 007F FEDA 4C63 9892 513A ABD9" /* E..LcQ: */
- $"A98A C012 5C99 31C0 D48F E334 671D A695" /* .\1ԏ4g. */
- $"C7EF 3AAA FF37 D381 4F42 983F FC4D AE82" /* :7ӁOB?M */
- $"FF43 6555 9E7F 10A3 7B95 415D 41FF 20B3" /* CeU..{A]A */
- $"8CB1 7302 0000 0000 584E AB14 398C A865" /* s.....XN.9e */
- $"5A7B 1650 52EB 8BCE 3E92 461D 071B 8F21" /* Z{.PR>F...! */
- $"2CFF 4F5F FD2E 999E B77D A47D 61B4 2C01" /* ,O_.}}a,. */
- $"D397 493D CB48 AB27 EB4A 13A7 8C89 7F64" /* ӗI=H'J..d */
- $"6C08 FF21 9696 98C7 6248 1615 541F EC81" /* l.!bH..T. */
- $"8E18 FAED 5257 3D01 2CBB 74C1 DA64 81A0" /* .RW=.,td */
- $"39BF B272 4068 15E8 A44A 007C 732C D9DC" /* 9r@h.J.|s, */
- $"1CF8 4612 8611 A36D 67BC 6E6A EA14 9D87" /* .F..mgnj. */
- $"2962 C4B4 5442 9564 BFAA D0FB 991F 4288" /* )bĴTBd.B */
- $"7CB2 2A41 333E 7827 5070 F3A6 67FF 7FFF" /* |*A3>x'Ppg. */
- $"7601 CFFE E44B 4413 809B 3877 B59D BC19" /* v.KD.8w. */
- $"548F 0A5B C1E9 A8D7 6B5D 8EC8 8A1A BB3D" /* T[k]Ȋ.= */
- $"3CD1 3139 57CF 9E94 00E9 CF6E 3830 3561" /* <19WϞ.n805a */
- $"8DE4 A59F FD1B 45CF C608 D0FD 5D48 485E" /* 䥟.E.]HH^ */
- $"D5A3 30A5 F9EE 5D55 B9C2 E552 3A9F B087" /* գ0]UR: */
- $"FE87 5DBC 5E73 0F16 9221 2B0D F399 AB6F" /* ]^s..!+.o */
- $"9950 0000 0000 0000 0008 2444 88CE 3BBD" /* P........$D; */
- $"CC78 4932 9C47 DEFA 74E7 91BF 9827 FF7B" /* xI2Gt瑿'{ */
- $"77EB 9B1B 9F7F FDAB 6552 35A1 0C22 E9C6" /* w..eR5." */
- $"42E3 FF7F FF7F E9FD A23B 2F7D 3ADD FC90" /* B..;/}: */
- $"E4A1 F8B9 0560 0F86 D7FE 3F46 C953 2A03" /* .`.?FS*. */
- $"F1C7 F5AE D0C4 B743 EA67 B694 E47D 45CD" /* ķCg}E */
- $"6F92 178A E383 8B71 800E D9AF A55A F149" /* o.ニq.ٯZI */
- $"A838 5671 4C9A 8915 447A CDA9 C6B7 DD68" /* 8VqL.DzͩƷh */
- $"A5FB F404 CF63 A62E CC5E 89D3 FDB2 C841" /* .c.^A */
- $"7A37 5B5D 5958 4B46 20B1 D389 5188 F9FE" /* z7[]YXKF ӉQ */
- $"8FF1 D718 6C8C 3254 0000 0000 0000 0000" /* .l2T........ */
- $"0000 00A1 EBEC C33A 8622 D0FF 7FFF 7FFF" /* ...:".. */
- $"705D C7FE 49E7 01B7 A65D D5BC 2041 80B0" /* p]I.]ռ A */
- $"89ED F68A A000 F438 EBD0 C908 0B67 414F" /* .8..gAO */
- $"C8F1 4312 2EC8 05E6 CA19 184F FF5B BA24" /* C.....O[$ */
- $"57E8 A6B4 FBD3 FF79 4D8E FF44 BC50 6938" /* W覴yMDPi8 */
- $"137F FF7D 6251 8D1A 9B33 CF7E 0BCB EAD7" /* ..}bQ.3~. */
- $"2E0D EAE0 0003 0906 AA2B 66A8 C950 0000" /* .....+fP.. */
- $"0000 0000 0000 0000 0001 1E1F F600 1848" /* ..............H */
- $"4BF6 7A7C F92D 3E7A 437E 2254 51EB 4AF5" /* Kz|->zC~"TQJ */
- $"C6BF 442A 12CD 51FF 7FFE B8AE D0C4 B1D0" /* ƿD*.Q.ı */
- $"7CF7 019D A0ED 2CC4 01BC 1A94 212D 43EF" /* |.,..!-C */
- $"1274 9B67 94D5 062D 5FCC E23C 4816 416B" /* .tg.-_<H.Ak */
- $"1540 59C2 1D35 213D A11C EE70 8D15 5394" /* .@Y.5!=.p.S */
- $"53C6 29CF 4E19 F4CF 5B94 7FFF 7F8B 2813" /* S)N.[..(. */
- $"3E95 DE81 30D0 3188 2A75 4F35 CB11 DDD5" /* >ށ01*uO5. */
- $"7FFD A983 95A9 71E7 A7A3 7D3F F944 0A7E" /* .q秣}?D~ */
- $"24D9 966F 6B6A 0FD0 23AC 7000 0000 0000" /* $ٖokj.#p..... */
- $"0009 D4AF 9196 E5A4 B8AC 407F F9EE C709" /* .ԯ夸@. */
- $"F927 08C3 CA6C 3A3A D90F E306 BCC4 6D6C" /* '.l::..ml */
- $"C7A9 F042 6F4C FDC9 60AB A087 6338 8F12" /* ǩBoL`c8. */
- $"4D29 D00C C575 C7B5 9FA4 E96C 1FA0 AAFB" /* M).uǵl. */
- $"09E9 8DF9 1BE0 C62D 3C1D F55B DD77 A0FD" /* .-<.[w */
- $"5C16 D959 BA08 0000 0000 0000 0145 AE01" /* \.Y........E. */
- $"712A 0E06 1212 70CD 94A8 0A2C 18F5 1E3B" /* q*....p͔,..; */
- $"52FA C8F6 56F3 F7E4 69E6 54A0 3FF6 2487" /* RViT?$ */
- $"C65F 0EFF 7F4F 8D07 C817 FE78 727D 3C75" /* _..O..xr}<u */
- $"E4C6 1003 FECF 3E7E 6252 08C0 4A83 50D7" /* ..>~bR.JP */
- $"DADA 8602 5949 900F D2B6 D10D 2661 3014" /* چ.YI.Ҷ.&a0. */
- $"4541 17FF 2106 00DF AC82 0046 09BB A5AF" /* EA.!..߬.Fƻ */
- $"CE51 0EBF F9AD 787A 907F 9F9A 628F E16B" /* Q.xz.bk */
- $"C015 137E 9C68 FCFA A817 FF7F DD6B FDB6" /* ..~h..k */
- $"3DA3 7C9D 3309 0B8A B551 C370 4401 CD7F" /* =|3.QpD.. */
- $"7503 8425 E297 1B3F FF49 4FF8 3583 685A" /* u.%.?IO5hZ */
- $"B273 A7F7 CEBF F27E D78C 3E35 5332 152B" /* sο~׌>5S2.+ */
- $"033C C7FF 7B97 1AF0 F2A4 3C88 CC7B B96E" /* .<{.<{n */
- $"65B3 533C F2F8 5E4B 6DBF 7D78 A316 310F" /* eS<^Km}x.1. */
- $"6B09 FD62 88D7 77FF 7447 524E C235 00A3" /* kbwtGRN5. */
- $"8F5A 4BEE D240 6154 C17C 2CC2 68F0 A959" /* ZK@aT|,hY */
- $"2F12 9B74 7E8E 423F BB1D BC9A C75B C618" /* /.t~B?.[. */
- $"19D1 C6CB 0A15 BD77 99BD 96D3 CC07 F5AC" /* ..w. */
- $"D2ED DE5E F19D 5CFC B2B0 5407 0386 32C6" /* ^\T..2 */
- $"5F49 7BAD 3270 BF81 CF97 C934 7E23 7237" /* _I{2pϗ4~#r7 */
- $"727B 0FA2 6DB0 D717 8C73 B109 E089 AAC5" /* r{.m.s */
- $"7D98 9061 2956 EA75 0135 E870 3430 4E9B" /* }a)Vu.5p40N */
- $"C76C D3D6 7EEB 83DB 9EEB C9A0 983D 1327" /* l~۞ɠ=.' */
- $"62D8 FD62 CA51 7135 80B0 ABFF 431B 9843" /* bbQq5C.C */
- $"68B4 A929 44E4 1F3E E3A1 22AA 5E87 579C" /* h)D.>"^W */
- $"745B 9CA4 438C BFC2 9A1B 17BE BA75 06E4" /* t[Cš..u. */
- $"0108 698C E4F2 341C 24CC 7913 6237 ED48" /* ..i4.$y.b7H */
- $"E797 4D7A 0D5A D1EA ACDF F974 4F9F 9139" /* Mz.ZtO9 */
- $"6A87 3972 A1C8 0A2B 1E8B 6DB7 B811 4AB0" /* j9r+.m.J */
- $"EEE8 BB23 959C 239D 4165 DBED ACE4 F133" /* ##Ae3 */
- $"8276 40BB C447 29FE 3EB6 5BA4 A6D0 2441" /* v@G)>[$A */
- $"1431 8B2D 8BFD 96B7 C8C2 9F9B DFB9 2B06" /* .1-Ÿ߹+. */
- $"E191 00FF 7E4B 8281 D609 D163 B8CB AF9A" /* .~Kc˯ */
- $"0995 7385 27FC 3C6A 5310 024D BAD1 8013" /* ƕs'<jS..Mр. */
- $"8995 3DF4 FA80 FE12 8F5F 40E5 09E6 E7E8" /* =._@ */
- $"C5E7 1309 3E97 E278 0228 1693 F565 F83E" /* .>x.(.e> */
- $"4161 0037 E0AA D0CC 3AED 4E56 04E8 4456" /* Aa.7:NV.DV */
- $"6E50 4626 C7E0 0790 014E 329B 0DDB D87D" /* nPF&..N2.} */
- $"4532 6482 3F51 D651 3F62 D6EB 3BCA 75EB" /* E2d?QQ?b;u */
- $"5444 A42F 3CFB 4146 19FB 5376 876F 6BC1" /* TD/<AF.Svok */
- $"B80B 7787 71DF 4CAA D70A 98BC 98E1 15A1" /* .wqL˜. */
- $"7996 F17F FF7A 91CF 350C FA04 5753 7ECB" /* y.z5..WS~ */
- $"29F1 A4AD F335 59DB A580 EAA3 98AD FEB0" /* )5Yۥ꣘ */
- $"275E BABE 6679 9AD4 B246 75F2 ECAA B042" /* '^fyԲFu쪰B */
- $"92C9 745E 1C58 58FF 2570 9228 4EAF 6F65" /* t^.XX%p(Noe */
- $"56F3 1D0C 85AA 9468 8000 0000 0101 3082" /* V..h.....0 */
- $"08FD E30F FF75 70BF FCCA 2225 E5FC 3464" /* ..up"%4d */
- $"00CA 6C43 E833 80DE 2895 5F84 4B08 CEFA" /* .lC3(_K. */
- $"AA94 EE33 24E7 CA20 A668 4717 FD5F F7F2" /* 3$ hG._ */
- $"59E7 D6C6 6D0D 8E0F 1AC3 BBFA 3890 8ACB" /* Ym...û8 */
- $"9250 6D82 E892 D4B9 1F14 D987 9818 877A" /* PmԹ..ه.z */
- $"66F0 905A B088 D761 B529 F02A 6964 6C65" /* fZa)*idle */
- $"8FB8 9A87 7771 9A12 C8A6 7F9C 9905 D643" /* wq.Ȧ..C */
- $"E554 91F5 0C26 4299 30C6 BC87 B38C 86FB" /* T.&B0Ƽ */
- $"ED50 C019 3822 52A8 97C6 1F49 176D FB8C" /* P.8"R.I.m */
- $"87B7 E37C 196E 3695 357A E2B8 FDE5 736E" /* |.n65zsn */
- $"DF11 6026 3CD9 51CF 2A50 6F8A 53B0 0F16" /* .`&<Q*PoS.. */
- $"938B 745A F84D 571C A582 9723 90B4 49D7" /* tZMW.#I */
- $"B11D 7BA6 45C1 2AFA D519 A471 60A3 17A9" /* .{E*.q`. */
- $"2C13 6E04 D58E 3F37 0115 E4AE F51C 1BA8" /* ,.n.Վ?7.... */
- $"EF7F 4C9F 7B47 8C5A D1D6 CAC7 D416 D6D4" /* .L{GZ. */
- $"7F05 9504 5685 0D6D E0E8 6809 9307 7864" /* ...V.mhƓ.xd */
- $"1A86 1BA6 A321 D08C 1B0C 0981 9395 6DC0" /* ..!Ќ..Ɓm */
- $"C74F ECF7 CA1B FF4B 1896 BDBE 4876 8A4B" /* O.K.HvK */
- $"519F CC3C 7813 BE21 C40C B001 30F4 4FC7" /* Q<x.!..0O */
- $"B76C B9FA 26F6 38C8 116D B8F0 0B9D 818F" /* l&8.m. */
- $"56F9 F934 AE60 71FD E583 8D07 A4A4 DE41" /* V4`q働.A */
- $"FB75 B83F 384B 11C9 CC5E CD9D FF4C 05A8" /* u?8K.^͝L. */
- $"D59F 1E59 4797 FF7F DFD8 391C E8BA 72E2" /* ՟.YG.9.r */
- $"C1F8 9F5C 5317 01E3 EC2D 4120 97D2 BAEC" /* \S..-A Һ */
- $"DBB0 FF30 FC56 2E43 3716 1B7B A8CD 19AE" /* ۰0V.C7..{. */
- $"7FFF 7FF4 468B FF45 749B 3C67 EE31 1651" /* ..FEt<g1.Q */
- $"17B2 B21C A982 A185 E8A3 03BC 2DCB C09A" /* ...- */
- $"8522 64CF BB21 6955 068D F002 871B 05F3" /* "dϻ!iU.... */
- $"9F44 7384 D624 E1FA A24D 67C7 BC5E F7BF" /* Ds$MgǼ^ */
- $"59BC DC3C BE4B 1456 0C6F F2C1 0841 038D" /* Y<K.V.o.A. */
- $"723C 14FA 4F19 0AD4 1F88 0A1B FF14 3D93" /* r<.O....= */
- $"27AA 6E0B 4AA7 6A11 E06D 5D82 C930 1B53" /* 'n.Jj.m]0.S */
- $"0227 A9AA 253A 41E6 31D5 8B87 DC08 819B" /* .'%:A1Ջ. */
- $"E5EE EA0F 6AA0 0000 0006 9BC0 594E 0004" /* .j....YN.. */
- $"D326 312C 0364 8835 C4D7 5040 3724 3CD9" /* &1,.d5P@7$< */
- $"B889 2E14 12BC F0AD 9D2E 326B 1654 5952" /* ....2k.TYR */
- $"2B5F 1A9D 5403 C9C5 A731 1B3C 3443 783C" /* +_.T.ŧ1.<4Cx< */
- $"A459 248B BBC7 DEDC 74AD E2A1 D647 5047" /* Y$tGPG */
- $"AD17 15AF FF5C 88C4 025F 4361 3F83 BFC9" /* ..\._Ca? */
- $"FF6D 7E58 128D 33D7 7076 E73A 9CF6 76D8" /* m~X.3pv:v */
- $"A0FF 2C44 2029 0B59 B427 3BDC 915B 87CF" /* ,D ).Y';ܑ[ */
- $"75D6 EC52 7793 6DFA A4E2 9E2D 7D25 FBC2" /* uRwm-}% */
- $"2028 DE78 D868 BEC5 E9D2 BFFA 8B12 9265" /* (xhҿ.e */
- $"B01D 92F7 F71E 8782 F1CD 4E98 B46E 6DA5" /* ..Nnm */
- $"8825 F851 1CE9 9F21 D8E2 86EB BAF4 126F" /* %Q.!.o */
- $"9CB3 0144 009A 6F38 0919 9C1F D0CE D23C" /* .D.o8..< */
- $"C9DD 9273 D8F6 6733 6E5A 2E7A 635C 8723" /* ݒsg3nZ.zc\# */
- $"6E04 1283 1A43 02CA 74E4 8000 0309 08DB" /* n...C.t... */
- $"EF05 DC00 D116 0D58 1A69 2055 1BA0 D8DE" /* ....X.i U. */
- $"34B6 EA40 CC06 C673 559A 75F2 9B58 C474" /* 4@.sUuXt */
- $"DD4C AB9A 9E6D 653B FCDF 4F33 3707 105E" /* Lme;O37..^ */
- $"DBCE D327 45FB C663 E1AF 375B B106 B0B8" /* 'Ec7[. */
- $"26EE AE4B 538A CF74 588E 928B 58C7 2D93" /* &KStXX- */
- $"371E BC81 0ED0 9F2C 1A18 8DD7 7E65 4FBF" /* 7..П,..~eO */
- $"511B 63A1 8F26 2A08 A4D3 2BF3 96E6 FC32" /* Q.c&*.+2 */
- $"D457 8287 D843 6D19 2458 0EA4 AC8F 0512" /* WCm.$X... */
- $"831D D4CA 9BFF 5A6E 951A 5897 451F 750C" /* .ʛZn.XE.u. */
- $"CAD4 89C1 94A7 4BFA 4030 4828 1E37 C049" /* ԉK@0H(.7I */
- $"34C4 54B1 1054 2645 14E5 6DFF 7FFF 7328" /* 4T.T&E.m.s( */
- $"F1A4 AAA2 4FD2 507D 86D5 FF7F FA43 F49A" /* 񤪢OP}.C */
- $"5049 0839 5964 8186 EE46 1867 158E 9E2C" /* PI.9YdF.g., */
- $"D618 8FF5 D416 6838 6187 9CF7 21BC DE1F" /* ..h8a!. */
- $"F84F F4E9 ACDB ECD8 6CA6 6725 85B4 4049" /* Olg%@I */
- $"AA9E 4935 7E1F 54E7 B0D5 A026 B073 899B" /* I5~.Tՠ&s */
- $"51C4 8C2E 483C B3BF 38A0 4BCF 2042 EE90" /* QČ.H<8K B */
- $"4E1B 8C94 420F 99A7 9EA1 7D96 12A3 8C8D" /* N.B.}. */
- $"819B C97D C518 51CB 0D8A A7A1 7159 EB10" /* }.Q.qY. */
- $"4A27 5CD0 0ED7 2688 5F74 CE10 DF6A 5B4F" /* J'\.&_t.j[O */
- $"E370 A282 105D 2F43 6E74 6B07 05EC 880E" /* p.]/Cntk... */
- $"15AF 5118 9D27 327D 2552 9996 020B 2D9A" /* .Q.'2}%R..- */
- $"9AFC 6849 6068 6491 42FA 889C 7949 285A" /* hI`hdByI(Z */
- $"7FFE 5B6D DAF2 7FFF 772D E08E B9E4 65A3" /* .[m.w-e */
- $"B49A DDC8 FF52 8DA3 B318 F84F F4E9 99ED" /* R.O */
- $"48C4 CA7E BE77 2634 6A22 1FAD 4752 8D9B" /* H~w&4j".GR */
- $"B935 0449 1A27 9EAB B000 C242 3BB7 72B7" /* 5.I.'.B;r */
- $"3ACC B41F 0AC9 CFFD 58DA D99F 498A 21CF" /* :̴.XٟI! */
- $"50B8 A155 9BB3 B3DA 13FE 251F 14F2 3431" /* PU.%..41 */
- $"6DBF 2774 3EFC 55BB 9CB3 40A4 CA00 A112" /* m't>U@.. */
- $"3E83 51D4 9D13 DE0D F86D 3384 AAE7 9074" /* >Qԝ..m3t */
- $"F7CF 4509 F99A 70B2 2E74 43C3 1363 021F" /* Ep.tC.c.. */
- $"6482 E471 22FA 6265 2DF9 C302 43F8 9053" /* dq"be-.CS */
- $"0AE9 15A2 28D4 FD7C 05AF C7B8 26D5 7C0F" /* .(|.Ǹ&|. */
- $"22E0 4735 518D BE4B 4E83 1EF8 3FFA BA23" /* "G5QKN.?# */
- $"3AE8 F76B 1D92 2038 64C1 EA73 30FC CE72" /* :k. 8ds0r */
- $"0CA5 6697 157E 55C4 8BAE E703 6FF5 F743" /* .f.~Uċ.oC */
- $"B456 C85F 3BFF 2629 95B7 02F4 F580 A49B" /* V_;&). */
- $"1587 2316 D131 66C1 C6DB F3DC C409 D801" /* .#.1f. */
- $"E2DA 30B6 73FD 99EF AA26 25D7 DF07 FBEB" /* 0s&%. */
- $"094E 2E8E BD11 3C49 81BA E6BE 7666 ECBE" /* N..<Ivf */
- $"59D2 4ACC B4CE 3FAD 2173 25CB E42F 37B8" /* YJ̴?!s%/7 */
- $"F3CC 79EF 695C 10F4 0381 2D14 1B0F D632" /* yi\..-...2 */
- $"8A1E 9C29 F617 6A4B 204E A147 C08D 1AA5" /* .).jK NG. */
- $"7418 DED9 DE83 A555 A75B AB00 C650 247F" /* t.ރU[.P$. */
- $"0222 5558 731B 54DB 14F6 3A0E 1FAD A8D8" /* ."UXs.T.:.. */
- $"F327 DC8F AF3F 630B 3BA9 7933 8D30 458C" /* '܏?c.;y30E */
- $"4C2F 6E3A 0A64 DDC5 926A 71CB 2347 EE4D" /* L/n:dŒjq#GM */
- $"647B D94D BE24 7F62 6A14 EBE2 696F 8735" /* d{M$.bj.io5 */
- $"A96F E268 6912 A4A9 3254 0293 CB09 0DC0" /* ohi.2T.. */
- $"206B EB7B F6B9 0643 5E74 4F2C 555A AE2D" /* k{.C^tO,UZ- */
- $"B16B 7FA3 8ADE 7EAC 764F 9A20 BC94 05F1" /* k.~vO . */
- $"9AAC 0118 36B8 6B30 D696 6E84 EEC2 5342" /* ..6k0֖nSB */
- $"03A8 EFD3 CB37 D50D F676 35DB AD6C 280A" /* .7.v5ۭl( */
- $"DB04 D23A 0922 A2E3 5F45 EBD1 5C49 F6AA" /* .:"_E\I */
- $"4579 1BA2 D94E D3F0 7A7E C24E 79B0 5D24" /* Ey.Nz~Ny]$ */
- $"B98E 23E7 4C4F 54D9 A3CE 389F 63F6 2426" /* #LOT٣8c$& */
- $"7087 D921 86D6 709F 768D 5684 BB90 47B7" /* p!pvVG */
- $"AC32 98D7 E247 3668 E954 8105 EE44 AF58" /* 2G6hT.DX */
- $"13FF 573A 9F89 06C9 FB77 277E 08C9 09E9" /* .W:.w'~. */
- $"B180 F96E C5AB 1E5D 3029 E229 CE1B B2AD" /* nū.]0)). */
- $"BA11 DD98 0D9C 4C45 66DD 8553 3BA2 6F5B" /* .ݘ.LEf݅S;o[ */
- $"699B CEF3 48A7 6C31 63E6 E189 9C68 B9EC" /* iHl1cቜh */
- $"A663 411F EBCB 41AB 8F7E 7EAD 87DA 5BF3" /* cA.A~~[ */
- $"AAC9 975B AC1F 712B F7ED DEBD 04C3 B85A" /* ɗ[.q+޽.øZ */
- $"470D D74A B91D 0180 7BAB 4088 5671 6268" /* G.J..{@Vqbh */
- $"5B4A 54FE C179 1600 7677 830B 0E81 EEB4" /* [JTy..vw.. */
- $"056E 79FF 8251 AB20 A6BC 15A5 E71F 7D4A" /* .nyQ ..}J */
- $"2F6E 951A DE36 7A81 C704 9A4A F239 E1DC" /* /n.6z.J9 */
- $"FF6C DE49 B4C8 F6C1 F764 8D19 4686 DFC2" /* lId.F */
- $"5C72 4A52 9784 F974 DCA4 A177 21DA 9869" /* \rJRtܤw!ژi */
- $"80A4 5BC6 FD54 A56B C7B1 4705 3A32 C896" /* [TkDZG.:2Ȗ */
- $"4539 25E5 90CC F228 B7F9 ADA5 CC2C 59CA" /* E9%(,Y */
- $"D14D 4B86 9CC0 D367 7EF5 DB6D C2E1 06DB" /* MKg~m. */
- $"58BC 0D97 DCFE 3CB1 EA45 C36F 1B60 83C9" /* X.<Eo.` */
- $"663F B883 83BA A69F 2653 0747 18C7 6D20" /* f?&S.G.m */
- $"F2C7 6E01 47DA AB9D 2D83 D5CE 1E9C 779A" /* n.Gګ-.w */
- $"5FAE 6015 63DE 317A EFCA 7142 F3F8 A7E1" /* _`.c1zqB */
- $"F739 60AB DF24 41BF EB6C AF15 7223 E56C" /* 9`$Al.r#l */
- $"8D61 D9D1 C61F 8F8E 8435 6452 C45A 917B" /* a.5dRZ{ */
- $"0856 B8BA 14E2 0A77 ABA0 E605 2E39 63EA" /* .V.w..9c */
- $"E7F5 4804 6535 7672 575F 37EA 9E69 1A1C" /* H.e5vrW_7i.. */
- $"E380 CB7D C109 2D50 73EF 4119 54BE CBFE" /* }-PsA.T */
- $"4552 74A1 3E73 C457 1436 9DFF 3C25 8231" /* ERt>sW.6<%1 */
- $"2C25 ACE4 F084 E842 60E8 355D 22BE 6FEE" /* ,%B`5]"o */
- $"93F9 DDE6 DAED 4E44 545A FE4E 5EA4 0487" /* NDTZN^. */
- $"36F1 52AF 8683 2DE8 F30B 72DE E807 2068" /* 6R-.r. h */
- $"742B 7262 BF7E 516C D41F CA56 9DE1 E3B8" /* t+rb~Ql.V */
- $"8D72 2993 C073 516D A343 DDE0 984D F06A" /* r)sQmCMj */
- $"CD83 D22D C161 30D7 2E9A FED4 4E85 5D2E" /* ̓-a0.N]. */
- $"CF72 2181 7F23 BC37 FF83 C30D 43E0 DBC7" /* r!.#7.C */
- $"A277 B4D9 4E68 1FB1 AF7B 6D8B 8F43 2A1B" /* wNh.{mC*. */
- $"9FE4 6CCC E826 C4AA 96C9 98A9 4D3B 981F" /* l&ĪɘM;. */
- $"8786 8633 89B0 2B42 4266 BC27 0098 D2B3" /* 3+BBf'.ҳ */
- $"E8E4 0D2C 6E14 D34D 3613 4568 4A1E 8E5E" /* .,n.M6.EhJ.^ */
- $"E328 D89C 85D3 D8C2 C15B 3533 989F F015" /* (؜[53. */
- $"1B49 871D 031B 2DBE D49E 880D A557 0694" /* .I...-Ԟ.W. */
- $"60C3 47A1 CD2A 961B F73C 94A3 6B17 4268" /* `G*.<k.Bh */
- $"F766 81DC 33BC 8C1D 5571 D2D7 FB1C 9378" /* f3.Uq.x */
- $"01B7 BDCC 5DD0 9171 5FA1 50DA 7EBF 1586" /* .]Бq_P~. */
- $"FA82 9E6F CBE4 0977 9C9C 2373 E789 5A3E" /* ow#sZ> */
- $"8743 EB0E ED13 7955 DB28 2874 8065 2078" /* C..yU((te x */
- $"97A7 6C13 2283 729A CCF9 E449 A627 7652" /* l."rI'vR */
- $"E821 2F1F 574E 6887 1830 6E01 5A8D 02FB" /* !/.WNh.0n.Z. */
- $"DB61 8EEF 4E08 B607 26FA 2B4C FF47 38FE" /* aN..&+LG8 */
- $"9B7C A3E4 DB46 F898 CFE9 8F3C 8717 2975" /* |F<.)u */
- $"9BA2 582E 86D1 D882 C127 EFD7 E71A B5DD" /* X.؂'. */
- $"7772 6391 2722 2884 AA0F 9C72 9A96 F4F8" /* wrc'"(.r */
- $"BFF8 869A FD00 3B41 A8C7 DCD0 2834 270C" /* .;A(4'. */
- $"B93C 8702 5B16 8A32 0289 979B 0A35 3A7B" /* <.[.2.5:{ */
- $"5870 6189 03C2 DD00 FAB2 B137 AB93 3EF5" /* Xpa..7> */
- $"24E3 1FE1 A206 963E 1344 FE12 285A 5C52" /* $..>.D.(Z\R */
- $"692E D315 6C73 2CBE 7ADC 81BC EBC8 13EA" /* i..ls,z܁. */
- $"796B 6056 E9E7 D971 6E09 7086 252C 6A19" /* yk`Vqnp%,j. */
- $"7351 153D F4C4 FE01 6235 917F B203 171A" /* sQ.=.b5.... */
- $"1822 B42B 9226 D163 5572 7E7E C508 BEBA" /* ."+&cUr~~. */
- $"D0D2 1C24 8D62 565D C183 F78D 4726 0541" /* .$bV]G&.A */
- $"F829 10C7 1B21 E59C C4E5 7688 6268 FABC" /* )..!vbh */
- $"C0B9 6C02 8820 3F44 54A7 8C83 F14F 61B8" /* l. ?DTOa */
- $"707C AB32 9D59 F01E D18A 37FC 40F9 5C59" /* p|2Y.ъ7@\Y */
- $"EEA8 E442 FDC8 CA73 970F 6EE0 1348 AC8E" /* Bs.n.H */
- $"9D65 4DA9 2820 AEDB A7F3 C1B4 8E3F 8780" /* eM( ۧ? */
- $"8DA9 F7D9 F116 DD30 778E 4FB6 49D3 AFE8" /* .0wOIӯ */
- $"74B1 EB63 92B8 4210 3B22 3613 6784 41A2" /* tcB.;"6.gA */
- $"5953 1EFF 16A9 1769 9852 73D0 B6C2 3523" /* YS...iRsж5# */
- $"854B 1247 531D 47C5 7AFC 1B6B F0C4 2E2F" /* K.GS.Gz.k./ */
- $"6C60 82C9 9C4D 2FAD 25A5 BEC6 8590 7388" /* l`ɜM/%ƅs */
- $"5D15 9A65 E013 D48B 7D9C 34B2 A617 75A8" /* ].e.ԋ}4.u */
- $"8E8E 2D91 1AEC 26D5 8B9C D03C A02A A829" /* -.&Ջ<*) */
- $"738D 9A4E 8F31 82A9 39B7 7CFE D412 810E" /* sN19|.. */
- $"1372 6D79 8D49 BAC1 9FFB 5D52 56AD 488F" /* .rmyI]RVH */
- $"4E1D A232 7348 1FE2 483F AB9F A23C 0997" /* N.2sH.H?<Ɨ */
- $"678D 1AB7 7F66 8927 7DED 2A66 E03B 05C9" /* g..f'}*f;. */
- $"0420 66A2 E0AE E1B9 259E 64C9 FF0E A7C7" /* . f%d. */
- $"5E9D 69F4 DD50 394C 344E 9DA9 6BCA 3D9F" /* ^iP9L4Nk= */
- $"8FA9 C156 3248 2310 8AB9 6131 B94F FF36" /* V2H#.a1O6 */
- $"DF00 9E80 5713 E9AD 3B07 879E C876 E063" /* .W.;.vc */
- $"38D8 2776 3081 5810 1760 927C D93C EE88" /* 8'v0X..`|< */
- $"518B 755A EBF1 B276 C65B 98DD 1421 8AA1" /* QuZv[.! */
- $"27D2 A8B2 5E3E B7B7 8F73 CDCB 9896 D80F" /* 'Ҩ^>s˘. */
- $"1D50 2E28 4F54 26A9 E68F 822C 3031 0A5B" /* .P.(OT&揂,01[ */
- $"213A 8ED8 B1B8 C32C F5EF 6784 3641 A888" /* !:ر,g6A */
- $"1AF9 941B E9B2 42C0 D9BE AAD7 2727 9E13" /* ..Bپ''. */
- $"284F A530 1F62 679B 7860 E677 9E24 3663" /* (O0.bgx`w$6c */
- $"E7D1 E4B5 D37B C274 9ECB CFA2 CC95 8A75" /* {tϢ̕u */
- $"0C3A FB7D F074 1433 5EC7 1FC4 330E F221" /* .:}t.3^.3.! */
- $"AE39 4A04 097F 4B21 27CD C193 39CB 3AB2" /* 9J..K!'9: */
- $"0B6E D8E0 54EA 0F75 15F9 D75D 0D82 624D" /* .nT.u.].bM */
- $"7D19 8E11 1AD0 764F CEA8 F0FE 2913 6841" /* }...vOΨ).hA */
- $"89B8 CA62 C997 34B9 5950 4842 4F13 1ACD" /* bɗ4YPHBO.. */
- $"39AD 30CA 4ED2 A17D 0B09 206B 9426 EF50" /* 90Nҡ}. k&P */
- $"63C6 386E 74BB BDE0 420F 6154 5260 E1A2" /* c8ntB.aTR` */
- $"8546 3192 76D1 1F38 268E 7AC6 049F 321D" /* F1v.8&z.2. */
- $"CB51 35C7 067C 961B DA2F 4BCB E065 A8DB" /* Q5.|./Ke */
- $"16C9 1F05 ABAF 93FF 333A F049 3161 6838" /* ...3:I1ah8 */
- $"6E1A FEF2 564C 3F48 3800 BC9C F009 AF34" /* n.VL?H8.Ư4 */
- $"2241 15D4 764F 4764 CEDF 6D7D 2E9C 8141" /* "A.vOGdm}.A */
- $"1E00 E109 D827 DDAA A47C 2854 9229 8998" /* ..'ݪ|(T) */
- $"9175 1FFB 496B 36C7 3695 3631 390B 06E6" /* u.Ik66619.. */
- $"EB0D 3BA7 F1BE A2FF 6D3A 9FB6 FCFD ADEF" /* .;m: */
- $"EDBA 3FDB 632F EDB1 BF6D BE7E DB9F 97ED" /* ?c/m~۟ */
- $"45FD AB93 F6E8 7FED A7F7 DAC3 FC34 6F43" /* E.4oC */
- $"E1DB 5507 762F DB7E 5F51 DDF5 1DFE DD07" /* U.v/~_Q.. */
- $"E1FD A67F B4E6 7EDB 8BF6 AE3F B6BC D3E4" /* .~ۋ? */
- $"D00B 0F87 A0FF 2AC3 3F6D 84F8 7475 99F2" /* ..*?mtu */
- $"F382 BE95 100F 8FEE C1C8 D086 E345 E973" /* 󂾕..ІEs */
- $"0FE4 06B6 7813 7115 B8D0 D91B C698 D10D" /* ..x.q..Ƙ. */
- $"A370 844F 9330 E047 0201 F880 D146 6522" /* pO0G..Fe" */
- $"8E52 12DE 3D1A 9231 5315 682E 4706 8685" /* R.=.1S.h.G. */
- $"DA39 C538 9828 7ED0 714F 3E27 532A 3840" /* 98(~qO>'S*8@ */
- $"C912 3E46 8205 3243 7835 7284 12D6 CCF5" /* .>F.2Cx5r. */
- $"36AF 0975 8A27 4F44 3857 B5A3 160D 1391" /* 6u'OD8W... */
- $"8005 2453 86CB 51B3 E493 EA9C 707F 7047" /* .$SQp.pG */
- $"1DA8 1386 91D1 6105 7D84 1563 FC52 D5D3" /* ..a.}.cR */
- $"EDA7 D4A0 4AC1 BB4E 49D6 62F4 CA92 CE8E" /* ԠJNIbʒΎ */
- $"8DE0 84DC 418D ACE2 71AD 9206 3C98 3281" /* Aq.<2 */
- $"104E A1F2 8982 6ED6 223E B67B BE6A C51F" /* .Nn">{j. */
- $"4BF8 6C35 B6A4 5EC8 87BB 4834 7CF3 16AC" /* Kl5^ȇH4|. */
- $"2453 B3DA 3503 94D6 2E70 2B6F 975E 21DB" /* $S5..p+o^! */
- $"F409 0368 9A2E DFB2 7A4B 9A6F 4165 1173" /* .h.߲zKoAe.s */
- $"A53E 329A 7925 FB80 9664 2C09 A9E5 715C" /* >2y%d,Ʃq\ */
- $"E42F 8E14 EC68 05A8 D565 53C2 9C98 86A2" /* /.h.eSœ */
- $"2C2D 6443 A1D0 A619 2320 6CD3 FE48 8006" /* ,-dCЦ.# lH. */
- $"FC0F 3690 DF76 1FD8 2E16 0705 D91F EEBE" /* .6v...... */
- $"E961 32B9 E252 4F0E EE4A 6F73 AEBB 014A" /* a2RO.Jos.J */
- $"8F45 1551 9123 7C3A 13F8 1B57 EB6A 0AFB" /* E.Q#|:..Wj */
- $"9AE9 65F5 9FDE 5F1C 7C23 84F1 6DCD CC52" /* e_.|#mR */
- $"97DD 03E6 C571 0C23 F06B 9F21 2E2C 79D5" /* .q.#k!.,y */
- $"1827 1436 E6FB C5FB BA11 617B 9B32 3DCD" /* .'.6.a{2= */
- $"B0AD AA8F 53D0 2F20 849C D667 9436 A677" /* S/ g6w */
- $"38C9 1B5A 26E2 B4D4 29BB 2D9E 56D4 652D" /* 8.Z&)-Ve- */
- $"9A12 FC7E FBD5 0075 3EC9 64FE D0CE 06A2" /* .~.u>d. */
- $"B63F 8731 DB8A 6917 26EA CCFC C1E6 10AA" /* ?1ۊi.&. */
- $"704E 20EA 7518 0416 6BBE 2867 9470 9FE6" /* pN u...k(gp */
- $"3D2A D178 6CD1 0B7D E518 4682 FC48 EA03" /* =*xl.}.FH. */
- $"EFA0 ADEE B643 CDFD 796D C309 E13B 9DD3" /* Cym; */
- $"82CC 1237 8D6B 9CB9 0438 AF1A 6190 136E" /* .7k.8.a.n */
- $"A170 6109 4BA8 FD0B 4C10 DE61 71A9 A5FF" /* paK.L.aq */
- $"5AD1 3895 15D0 912A BC62 5344 A7FD 7B9B" /* Z8.Б*bSD{ */
- $"0360 8C71 DD04 20C7 4685 E6B7 7941 7BD7" /* .`q. FyA{ */
- $"DBBB 3F61 742B D692 AD3D B778 6442 3DD1" /* ۻ?at+֒=xdB= */
- $"A97E 1312 9AF4 05C1 7B33 9FE2 B3F5 D16C" /* ~...{3l */
- $"875D 7109 13EC BB96 0664 DF60 1958 8DE5" /* ]q.컖.d`.X */
- $"5B3F 3E75 9D21 0415 CE9C 3172 87C7 FF05" /* [?>u!..Μ1r. */
- $"F787 4F14 E63B 4DCE 247D B3A3 475C 5336" /* O.;M$}G\S6 */
- $"C794 AF23 6415 68C6 B893 1B16 8C81 3F43" /* ǔ#d.hƸ..?C */
- $"C455 6EB8 8D5A 6919 4C3A D980 BFB1 3699" /* UnZi.L:ـ6 */
- $"C790 C7D1 7B05 12AA 803A 172B DEF2 00CC" /* ǐ{..:.+. */
- $"FF38 62C8 1815 1D3A F60D 2B9B 87A0 05C5" /* 8b...:.+. */
- $"3587 0181 8754 06D7 2CFC 78B8 0C65 D5BC" /* 5.T.,x.eռ */
- $"2903 C07C 0631 A0B9 E94E 192F DE4B 4924" /* ).|.1N./KI$ */
- $"A4F0 BB9A 49C5 B751 38EB 7289 9806 FC5C" /* IŷQ8r.\ */
- $"D822 ED93 CA92 14B6 5056 017F 7826 CDE1" /* "ʒ.PV..x& */
- $"8401 9F6C A7F7 4AD5 E86F FDC3 05AF 6AE3" /* .lJo.j */
- $"5EED 07E3 E5ED 7EE7 FB97 0B99 E191 605B" /* ^.~.`[ */
- $"955A 6A3C 33C6 2BB8 9562 0E38 09C1 1ED9" /* Zj<3+b.8. */
- $"8914 73AF E9AA 7B2F 214E 7EEA 98E8 B976" /* .s{/!N~v */
- $"E058 E0B5 6DB4 5B1C F212 2C8E 0AE5 7100" /* Xm[..,q. */
- $"BC1E 84CD 0598 7CF9 EA4E 1E96 2B4A DE9E" /* ..|N.+Jޞ */
- $"6CE9 E79B 0336 9059 E109 DF83 A2AE 9E74" /* l.6Y߃t */
- $"5BB1 0236 590C 66CD 0658 ECE5 50A2 EDDD" /* [.6Y.f.XP */
- $"D7BB DAF7 548B 7F21 2A40 7821 FDA2 62B6" /* ׻T.!*@x!b */
- $"C862 B0B2 96CF 27D5 EC9D F5C8 42D8 F42A" /* b'B* */
- $"5962 F21A D191 6744 1AE2 64B4 6744 A1B2" /* Yb.ёgD.dgD */
- $"7625 FF0D F0CF A1F8 3273 C4B8 FCCE C2BC" /* v%.ϡ2sĸ¼ */
- $"EDD5 F0C6 765F 2446 5EF5 2195 04EE C94B" /* v_$F^!.K */
- $"C9C2 4F82 0D0F 6034 3560 64A8 C372 4E17" /* O..`45`drN. */
- $"D4F6 B2DC 2162 A6DC 9B35 5F36 628E EA58" /* !bܛ5_6bX */
- $"B2EF D0B8 79FF 3F60 39DC 34C9 8DD1 C7DA" /* иy?`94ɍ */
- $"BFFD 9220 B977 42CD 1F4E 00C7 1A7B F29F" /* wB.N..{ */
- $"9738 8D5E 3E5F BA1F D4BD 0592 2006 1216" /* 8^>_.Խ. ... */
- $"D478 DE72 171A A49D 9C4A 0691 CD59 6FB3" /* xr..J.Yo */
- $"F3C5 B3CD DCC8 5794 133C 85B3 176A 0C6A" /* ųW.<.j.j */
- $"323E C74F 7CE3 4042 38AB E9CA 5700 E39B" /* 2>O|@B8W. */
- $"26D3 62B7 59F8 966D A789 35AA C72D 9943" /* &bYm5-C */
- $"C884 2E53 30B3 D351 EFCC 6BF8 9889 8AB6" /* Ȅ.S0Qk */
- $"E284 F5A4 64BD F89F 98A4 8082 6292 48EB" /* dbH */
- $"2039 4A80 D5D7 BEFC 2DC1 69A9 F484 9B4E" /* 9J׾-iN */
- $"94C9 6E87 31A6 6D4E 23DB 77A9 37D5 CEE9" /* n1mN#w7 */
- $"10B5 22DB 58B2 3DFB 973A E321 F02A 2985" /* ."X=:!*) */
- $"AE7E F964 9A23 4B8D 90FD 75F4 9944 3CEB" /* ~d#KuD< */
- $"C5C5 B0BA DA1C AA0A B59A EFCA 903A 972B" /* Ű.µʐ:+ */
- $"10E9 2A66 2BAB 3E63 8312 E494 A82C AEE8" /* .*f+>c.䔨, */
- $"DE3B 902F 4DE5 A934 7FA5 59D8 B355 75C7" /* ;/M4.YسUu */
- $"DC51 6208 6D60 DE89 F04A F698 FC35 5341" /* Qb.m`މJ5SA */
- $"A8C7 894B 5E8F 0638 0F21 36AB 23FF 37BF" /* ljK^.8.!6#7 */
- $"CA6E C0CE 1C93 9BB1 FEA7 49E8 9BA5 7F32" /* n.I蛥.2 */
- $"4C9D C8BA 821C 1E07 F277 BE63 241C D5F6" /* LȺ...wc$. */
- $"07CB 7A98 E51E B0FC B312 223C 21BF 5DEE" /* .z.."<!] */
- $"0229 A0EE 8B90 5918 5910 F6A6 EEB6 503D" /* .)Y.Y.P= */
- $"8E76 A3B6 E583 FEFF 5B3D F804 F6EE 956E" /* v[=.n */
- $"FEE7 D95F 9D05 AE0B 4926 52B4 23C3 D17A" /* _..I&R#z */
- $"FC0F CC41 1264 0956 8CA2 6A30 C0D0 275F" /* .A.dVj0'_ */
- $"0CE8 C646 CC49 EF38 CC94 8B6C 1737 9636" /* .FI8̔l.76 */
- $"4EA7 0FE7 217B F3F1 A10D 7E49 242E 6F19" /* N.!{.~I$.o. */
- $"A8CF 369A 44DE 6C99 A9D4 24DA 6909 62C3" /* 6Dl$ib */
- $"0C4C D4CD D80E 72E6 FF6B A90E 7080 977B" /* .L.rk.p{ */
- $"4BEB 6A2A 72BB 0574 45FB 1E12 6408 C966" /* Kj*r.tE..d.f */
- $"A632 9AC7 E67D 82C9 3FED 1E27 C1FA C47A" /* 2}?.'z */
- $"AFCF 5719 3BCA 3975 BE3A 550B 6DC9 91CC" /* W.;9u:U.mɑ */
- $"F28E 751C 1B20 E7BB 58FF 0D92 2BF7 DE26" /* u.. X.+& */
- $"DFE3 B230 78F7 C64E ADF8 7741 F45A E3BC" /* 0xNwAZ */
- $"5185 1323 1C74 3288 F720 5DB7 B5C9 1EFD" /* Q.#.t2 ]. */
- $"C844 7159 7047 A9BA 6CA1 403E CE2E 3522" /* DqYpGl@>.5" */
- $"1088 A628 490C 5F8D 64C4 7E17 CBD3 290D" /* .(I._d~.). */
- $"91B1 B073 AD4A BF5B A1E9 6306 3E9A F87E" /* sJ[c.>~ */
- $"2DEC 7390 2CF5 3305 93C2 15DA 7FFF 7FC6" /* -s,3.... */
- $"0578 C93E BF93 5B69 25D4 E0F9 5726 0D7E" /* .x>[i%W&.~ */
- $"9C06 C76B 1BF5 3206 F26C 4F57 6A13 7488" /* .k.2.lOWj.t */
- $"07F4 1787 316E 19B5 2CB4 D7B8 23EE BF15" /* ..1n.,׸#. */
- $"84F7 C141 CE7E 358F F83B 081D 2680 C5CB" /* A~5;..& */
- $"2002 0FFB D329 10E3 1880 E0F6 29FF 14F6" /* ..)..). */
- $"1447 24FF 4BDD 371B 00F3 0334 6FE5 D217" /* .G$K7...4o. */
- $"8E7D 3CCB EC04 D019 0583 0792 D4F4 59E5" /* }<....Y */
- $"0914 52FB CE7A 2EFD B899 ED16 38FB E1D4" /* .Rz..8 */
- $"3312 BAAE 3EF3 45B7 2A77 62F3 4787 8900" /* 3.>E*wbG. */
- $"050D 5A64 92D3 64E7 7950 4234 FCC0 0EC6" /* ..ZddyPB4. */
- $"004C 8652 616B B5FF 87F6 72D0 400B 9574" /* .LRakr@.t */
- $"7ADD 2EE6 F979 EE70 393F 5E65 09EC 561B" /* z.yp9?^eV. */
- $"2FF4 F6FA 9226 2AA7 C2D2 4517 2258 15C7" /* /&*E."X. */
- $"D27E DE80 0000 0009 BB69 0154 3C66 FD24" /* ~ހ...ƻi.T<f$ */
- $"D6C1 DFFC 41CF 26FD 27E3 9482 7299 C4A3" /* A&'㔂rģ */
- $"A4B0 4F99 5ED7 6507 C196 C060 D7BD 7BA6" /* O^e.`׽{ */
- $"A0A2 C1E7 0ECE 98C4 36F0 B006 0526 5FC4" /* .Θ6..&_ */
- $"CDEF A25D CE59 7B6F 507F C409 957F 43E6" /* ]Y{oP.ƕ.C */
- $"20AB C4BE 33C2 E794 46B7 5341 D8C9 5487" /* ľ3FSAT */
- $"3000 A3E6 41BE 7D2A B553 6A8D C345 2E1E" /* 0.A}*SjE.. */
- $"BF55 F536 52DD 101F D6C9 BB65 B7E4 0CFC" /* U6R..ɻe. */
- $"03D7 F641 F641 7A4F 8EE2 BA7A 352C ED91" /* .AAzOz5, */
- $"9057 F893 C46F 62F7 A791 A8DE 8A25 BB17" /* Wobފ%. */
- $"F164 F2ED 43E5 A2E2 17E9 C95D DE1C 45F4" /* dC.].E */
- $"3019 8090 809D D124 EE5C B48E 6C92 2A74" /* 0.$\l*t */
- $"ACA0 4F0A 1777 70CF EBEC 112A 9035 16AB" /* O.wp.*5. */
- $"B36D 13D6 9F72 69CD E213 F146 6733 BAA3" /* m.֟ri.Fg3 */
- $"0080 0000 0000 0000 0001 0151 0AD3 43F0" /* ..........QC */
- $"14A4 0000 61F0 20D9 9F3A 47FC 60A2 4780" /* ...a ٟ:G`G */
- $"F2D0 2A57 2C4C D349 5B9A 1BE3 0D39 80AD" /* *W,LI[..9 */
- $"72C4 873D 5028 F09E F0F5 700F B776 4B38" /* rć=P(p.vK8 */
- $"4FC6 7D26 AE5D 219E DDCE 4AA3 9AA9 FE19" /* O}&]!J. */
- $"EC25 FEF0 0626 D259 8ECF 0364 6192 A000" /* %.&Y.da. */
- $"0000 0000 0000 0000 0184 84B4 4FF0 1848" /* .........O.H */
- $"4BC2 3700 0000 0000 0000 00B5 DA5E 3FF1" /* K7........^? */
- $"C9FC 9186 4A80 0000 0000 0000 0000 0000" /* J.......... */
- $"0510 0FC3 251B 71C0 D918 64A8 0000 0000" /* ...%.q.d.... */
- $"0000 0000 0000 07E1 1EE1 F164 E11A 319D" /* ........d.1 */
- $"3806 659F 8C35 7012 B17E 6096 52F0 8E96" /* 8.e5p.~`R */
- $"1438 1EBF 363A 49C9 51BD 3517 4ADA 7060" /* .8.6:IQ5.Jp` */
- $"0849 8F8B FCEC FD48 0000 54DF 4C0B E043" /* .IH..TL.C */
- $"F3B6 1CEB 518A F2B1 5A9C 9500 0000 0000" /* .QZ..... */
- $"0196 C058 0636 AF4B 041F 37EC DE6F 4B4E" /* .X.6K..7oKN */
- $"291D A2A6 3CB8 9BAC 4B0C 5017 9031 0EF1" /* ).<K.P.1. */
- $"3CF7 F63B 73A1 B4A6 9EA7 0513 C571 8EA8" /* <;s..q */
- $"5D0A 28FC DCB6 D27A 0000 0000 0159 D076" /* ](ܶz.....Yv */
- $"3D1E 84A9 1C76 876E 7B6B 8519 1F9F 01C6" /* =..vn{k... */
- $"1A11 B2A2 4841 4D47 5463 5D18 2AFE 54F5" /* ..HAMGTc].*T */
- $"591E 5FF1 39C7 C0CD 0D20 F366 59DE FE22" /* Y._9. fY" */
- $"B12C 4608 009D F105 49C8 16B5 417A 6079" /* ,F...I.Az`y */
- $"40B0 7E7A C4B3 83B8 485D 42B1 4000 0000" /* @~zijH]B@... */
- $"0E9F 0340 5469 49BB 5767 B4BE 47AF 19B3" /* ..@TiIWgG. */
- $"4E69 B99F 25DF C3C0 1B9C 5455 41D2 F508" /* Ni%.TUA. */
- $"9900 1F13 B43E C345 C4B3 C066 8A27 C3D3" /* ...>Eijf' */
- $"7A8A 6368 2F2C 3F2F 5D43 59ED 5E40 9E4F" /* zch/,?/]CY^@O */
- $"59BB 6A03 B7F8 083A 021D F8F0 79AF 43B0" /* Yj..:..yC */
- $"2270 F775 B8D8 FB59 371A 8B22 9F0B 55FA" /* "puY7.".U */
- $"C9B1 5565 0914 AA67 2D9E 81B2 60FC 1333" /* ɱUe.g-`.3 */
- $"318F 21E9 97E4 1400 F69E F709 7AE3 82A5" /* 1!..zゥ */
- $"C9DE 7D16 1DF8 EDF8 FC5E DB3E FC2A F822" /* }..^>*" */
- $"886E F247 9BC1 250E 905C 4AF7 4B22 3595" /* nG%.\JK"5 */
- $"0835 2567 EEC1 C4C8 B70D D782 6A22 C9DA" /* .5%gȷ.ׂj" */
- $"ADA3 0370 EED9 E428 E163 963A E6F0 5D4A" /* .p(c:]J */
- $"F42A D11F B46D 7FBC 2D87 4274 4756 896E" /* *.m.-BtGVn */
- $"C489 80C0 62F6 88A8 184A 79BE 3068 A9AF" /* ĉb.Jy0h */
- $"D703 390B 1A76 3136 B799 726A AAA8 C23D" /* .9..v16rj= */
- $"EEB0 E0F1 49E1 A6B7 204F 7BF3 6E44 F25E" /* Iᦷ O{nD^ */
- $"7E0A 5125 CA89 B477 15CD 83CC CD21 C6BE" /* ~Q%ʉw.̓!ƾ */
- $"F20B 99F3 C30C 5113 2E0A FF7E 1034 1BFF" /* ..Q..~.4. */
- $"0378 72CF B0EE D132 2A2D 14A9 E37F 6B10" /* .xrϰ2*-..k. */
- $"B5CE 0500 0000 0000 0000 0160 A7E3 A715" /* .........`. */
- $"0C13 DE44 025B 9720 0000 0000 0000 0001" /* ..D.[ ........ */
- $"E0F5 5A21 77FB C1F6 EAF0 244A EE78 B6FA" /* Z!w$Jx */
- $"1769 3D98 AA28 2EB6 9826 A16B D6B8 BA89" /* .i=(.&kָ */
- $"26C6 25C9 9E66 FD9C 6D2D FCDA FCB9 6AB2" /* &%ɞfm-j */
- $"B42A 7008 5069 CB61 D530 B47A FCFF 7F95" /* *p.Pia0z. */
- $"FA58 2D11 111A 53BF FB17 59E1 63E7 0FAD" /* X-...S.Yc. */
- $"B016 A862 3107 8DF0 7112 DD6A B6E3 2477" /* .b1.q.j$w */
- $"3162 94F0 6826 75B0 D0B8 4C13 21C7 E4BC" /* 1bh&uиL.! */
- $"FB86 7A83 DF1C A4D9 C3B4 E3DE C334 1633" /* z.ô4.3 */
- $"DC27 76B9 7ADF 50CA F95E C7C9 D5EB 402C" /* 'vzP^@, */
- $"276F A0B0 D88B CF4A 0FD2 380A E3E7 2BA5" /* 'o؋J.8+ */
- $"DD24 A247 B631 75B1 6D3A 4C60 9BAB E4C5" /* $G1um:L` */
- $"BBCB 2972 36B9 AC74 5FF5 B5DB 231B 95F3" /* )r6t_#. */
- $"7CFF 8E5F 86E9 1906 B3DF 75C7 0364 6192" /* |_..u.da */
- $"A000 0000 0000 0000 0000 003B B1A0 0000" /* ..........;.. */
- $"0000 0000 0000 0000 0000 0016 D51B CEEA" /* ............. */
- $"0406 C003 4E50 C0B8 8DB2 F37C FF8E 5F86" /* ...NP|_ */
- $"E919 06B3 DF75 C703 6461 92A0 0000 0000" /* ..u.da.... */
- $"0000 0000 0000 3BB1 A000 0000 0000 0000" /* ......;....... */
- $"0000 0000 0000 16D5 1BCE EA04 06C0 034E" /* ...........N */
- $"50C0 B88D B2F4 4BED 0C57 2F64 38E7 DFE6" /* PK.W/d8 */
- $"95DB 93EF B9ED 1250 6A6A A6E3 4478 1E7E" /* ۓ.PjjDx.~ */
- $"F105 8E1B 961B 230C 9500 0000 0000 0C18" /* ...#........ */
- $"0EA3 5F13 6306 E1B5 4B22 3D26 79A1 06E4" /* ._.c.K"=&y. */
- $"228F F320 0B74 8820 0000 0000 0000 0007" /* " .t ........ */
- $"9F62 443B 9A51 EAB0 7C1A A374 E7F1 52F3" /* bD;Q|.tR */
- $"3BB8 C1E0 5919 6C04 A2E2 1032 6917 1394" /* ;Y.l..2i.. */
- $"CCBE 472A 0652 C144 6D1E 755C ECF9 9725" /* ̾G*.RDm.u\% */
- $"A84A 55AE 7A0E 6730 FCA7 B6E0 FF31 08C0" /* JUz.g01. */
- $"3E76 4DDC 9E24 A60B C4A7 4CDD C221 1941" /* >vMܞ$.ħL!.A */
- $"0810 2DE3 206F C551 4910 77AA 762A 1FF2" /* ..- oQI.wv*. */
- $"D39A 0ADC 1089 90F8 D098 1E77 BDD1 AF74" /* Ӛ.И.wѯt */
- $"4DEF D00D 0B2C CA2F 9EDC 27C4 35F9 F924" /* M..,/'5$ */
- $"67FF 74E5 A746 B627 6267 F6D0 9B94 22D4" /* gtF'bgЛ" */
- $"5FFE DF67 A7A9 E3CA 02A5 44D1 E926 DCA4" /* _g.D&ܤ */
- $"7490 4AB8 E094 7037 FF7C 8CF7 2A9B B784" /* tJp7|* */
- $"794E 9026 D48F FF7F F013 AABF F874 63DA" /* yN&ԏ..tc */
- $"0302 FBFA AA6A 31D5 E2DF 85F7 2ACD D98C" /* ..j1߅*ٌ */
- $"175D 1243 F1C0 CEA2 344C B6FC ADCF C6AA" /* .].C΢4Lƪ */
- $"5CAE FA82 783F 58DD 754D 5C63 A018 19F8" /* \x?XuM\c.. */
- $"7EFE 8953 AE16 22B9 4ED7 43D2 8A0B FA52" /* ~S."NCҊ.R */
- $"5703 08CA 555B E51E 307B 0565 E165 22F3" /* W..U[.0{.ee" */
- $"7130 0CEC CA23 576D 8D58 BED1 FEB6 9A2F" /* q0.#WmX/ */
- $"DCEA 3288 3EEC B12A D43C B191 2627 7723" /* 2>*<&'w# */
- $"F40F 1B7A F1E3 9A7E 366D 7490 EE80 3570" /* ..z~6mt5p */
- $"CB59 D05D F384 AA96 71FE 68E8 4D32 F9D2" /* Y]󄪖qhM2 */
- $"48BC 7B03 EA3B 879E 2E96 671F 8098 CE76" /* H{.;.g.v */
- $"87D8 0336 5C88 91F4 3C69 D76B 4DEF 29DA" /* .6\<ikM) */
- $"F378 1035 720A CE61 C2E3 5776 CA53 F43B" /* x.5raWvS; */
- $"4FCB 79E4 5164 1270 A23E 6048 2089 7B12" /* OyQd.p>`H {. */
- $"BCA8 E157 DFD5 E879 C14C 1B1A 3431 2856" /* WyL..41(V */
- $"0E74 D87F 7691 A923 632A 5EBC 6E95 6A46" /* .t.v#c*^njF */
- $"8E68 7118 3704 6E41 37CB C9AC 7F84 1005" /* hq.7.nA7ɬ... */
- $"C308 7C90 C6E0 B56C 8CF8 3C33 A97E C46C" /* .|l<3~l */
- $"E373 91A9 4A3F 7331 481D 843F 0472 59DC" /* sJ?s1H.?.rY */
- $"0837 85BA 4867 C202 6BFC 7433 F093 530F" /* .7Hg.kt3S. */
- $"D721 8927 26CF AA6B B4E1 7981 FCE4 9F4E" /* !'&ϪkyN */
- $"1105 9E7B 7F68 1CE7 D811 E270 FCA3 9CDE" /* ..{.h..p */
- $"BFE6 48BA AC07 B55E 4E7F 5946 115B B1DC" /* H.^N.YF.[ */
- $"F694 3A9B EADD 7971 E0F1 B6E1 C6FF 4337" /* :yqC7 */
- $"F543 A074 FC74 AD1F 45BF 7867 C472 7605" /* Ctt.Exgrv. */
- $"1786 E496 2D22 22BE 5760 9ACE A5C9 22B9" /* .-""W`Υ" */
- $"9A14 4136 93E4 3E4A 715C 6F69 8447 5764" /* .A6>Jq\oiGWd */
- $"D761 77A8 2C3F E200 ACAD 8331 11D0 ABE6" /* aw,?.1.Ы */
- $"EA7B 5A22 58CF 097E 732F 894B E99C 6BAF" /* {Z"X~s/Kk */
- $"B36C 68AA 5668 EF92 66E9 DDF9 FF78 DB89" /* lhVhfxۉ */
- $"FC78 2032 99D9 62F0 1380 3FE8 41DF F341" /* x 2b.?AA */
- $"F1FD 7F08 CE2E F09A 9335 6735 0FAD 8093" /* ...5g5. */
- $"B6B1 53A2 964F EA7E 72A2 9A29 794D 98F0" /* SO~r)yM */
- $"DD57 AE65 C61E DDEC BDB4 35C2 D050 E063" /* We.콴5Pc */
- $"5F54 BCA5 928D 786D CAE3 8F96 BFEB 027E" /* _Txm㏖.~ */
- $"6BBC 8795 7C88 1A2C 9908 36A1 6CAB 9268" /* k|.,.6lh */
- $"EB0D 816F F34D 55F5 B562 BCFF 4190 EE42" /* .oMUbAB */
- $"F195 E7F3 E220 7E51 74A2 FA23 23F7 20F0" /* ~Qt## */
- $"985F 011C 34B8 C988 C519 C623 81BC D026" /* _..4Ɉ.#& */
- $"A8C5 B82C 7A7F 86F7 E60E 44F2 CD53 6FAB" /* Ÿ,z..DSo */
- $"2D69 1FD4 75B7 A011 80E7 09B3 B9CF 4503" /* -i.u.ƳE. */
- $"F4A5 1DE3 AE8A 96F7 E245 0DF9 3859 24FA" /* .㮊E.8Y$ */
- $"7B43 665F B15E D4D3 FB2A 666E FB6A 6CA8" /* {Cf_^*fnjl */
- $"9CAF C052 D658 6DC3 BDD1 C752 21FA 6426" /* RXmýR!d& */
- $"857C D05D 41C2 0241 306C 6FD4 81E3 69F7" /* |]A.A0loԁi */
- $"A6F5 227F 39F9 780E 829A 17A9 C649 2BF5" /* ".9x..I+ */
- $"01DD E500 A973 E599 890C A548 CE34 2877" /* ..s噉.H4(w */
- $"D160 A2EE 4B3B CC7A 0C87 6723 51FD C222" /* `K;z.g#Q" */
- $"9BFB E72D 2769 6250 2054 22C9 ABB2 3125" /* -'ibP T"ɫ1% */
- $"7DA0 73A3 C083 1AAD 90F2 F0A8 C22D 9DF5" /* }s.- */
- $"3FFB 6B56 18BE 61A6 B198 F1BC 1E4E 0CFE" /* ?kV.a.N. */
- $"B323 8275 A644 CAC4 D36B 9AF9 FCC8 5DEC" /* #uDk] */
- $"292B CC9B A0B6 9148 09DF E46D 1B2C 4EDF" /* )+̛Hm.,N */
- $"EDB9 2DB4 BAD5 C50B 2115 C476 E09A F407" /* -.!.v. */
- $"5EE8 2E9F 870F A319 32D4 EBEC CB7B FDE9" /* ^...2{ */
- $"FB5C 0D41 61F3 BA97 0F9E 558F 6E39 C213" /* \.Aa.Un9. */
- $"3101 A5E8 ECEC 15E5 4F29 F69A 58CD D82D" /* 1..O)X- */
- $"986E E8E0 6898 17CC 98C4 C851 AC75 9306" /* nh.̘Qu. */
- $"5241 0350 E2EB 38CA 1682 6132 FF45 578A" /* RA.P8.a2EW */
- $"FA7F 7557 AC2C 9A18 3835 A62B 7D09 0992" /* .uW,.85+}ƒ */
- $"EF78 BD49 5317 373A B07D 6420 DC30 5067" /* xIS.7:}d 0Pg */
- $"A659 F316 4436 8E8E 9786 1163 A6A5 B841" /* Y.D6.cA */
- $"99AA 4E1C 6163 309A 3C23 0208 FF4B 2967" /* N.ac0<#..K)g */
- $"B7F7 37E4 A337 D0DC C48A A742 FB2D C529" /* 77ĊB-) */
- $"BC6C 5BBE BC5C 03B1 F87F D7EA F5AC B94B" /* l[\..K */
- $"5A88 84AB E44E BE6A F337 96B0 7CB6 1140" /* ZNj7|.@ */
- $"25CB 45D6 BE02 A9D4 7868 1EDD F660 7963" /* %E־.xh.`yc */
- $"B438 C030 3EA5 51FA F451 FA84 A6FF 2E5A" /* 80>QQ.Z */
- $"EA95 2300 C0F4 39AA 42BA 4120 4EEC AFDD" /* #.9BA N */
- $"20B4 6C42 0552 1177 6F1A AC6D FE8B 98E1" /* lB.R.wo.m */
- $"D3FB F52E BCE3 5BB1 7235 F597 3E0D 8C46" /* .[r5>.F */
- $"7361 1E2A C081 CA97 C8EA CD3F E91D 823F" /* sa.*ʗ?.? */
- $"73A7 5EA1 F641 9CBD 219D D7E4 EE0D 270E" /* s^A!.'. */
- $"14DF F756 B4E5 062C 8251 4AD0 B090 A0AF" /* .V.,QJа */
- $"CD2A 3C80 6068 C9CD C3D7 3D7F 258B 365A" /* *<`h=.%6Z */
- $"5E1A 90DC D058 4ED9 DF50 6F40 07A9 2BDE" /* ^.XNPo@.+ */
- $"8486 5404 AB9C E323 0C4E D3DB 8352 0C0F" /* T.#.NۃR.. */
- $"CD59 A5F5 56CC 0BB2 B603 85C3 C709 7D6E" /* YV..}n */
- $"A10E 33C2 AE0F D52F 5AD7 2279 E6EB 7E6C" /* .3®./Z"y~l */
- $"1757 589D C6DC B4FD 470C FFD9" /* .WXܴG. */
-};
-
diff --git a/indra/newview/installers/darwin/release-dmg/_VolumeIcon.icns b/indra/newview/installers/darwin/release-dmg/_VolumeIcon.icns
index da5307e389..272b496e7d 100644
--- a/indra/newview/installers/darwin/release-dmg/_VolumeIcon.icns
+++ b/indra/newview/installers/darwin/release-dmg/_VolumeIcon.icns
Binary files differ
diff --git a/indra/newview/installers/darwin/release-dmg/background.jpg b/indra/newview/installers/darwin/release-dmg/background.jpg
index 55294dcc9a..e7064d9545 100644
--- a/indra/newview/installers/darwin/release-dmg/background.jpg
+++ b/indra/newview/installers/darwin/release-dmg/background.jpg
Binary files differ
diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp
index a273afab52..3853aaa8fd 100644
--- a/indra/newview/llagent.cpp
+++ b/indra/newview/llagent.cpp
@@ -486,7 +486,11 @@ void LLAgent::init()
// *Note: this is where LLViewerCamera::getInstance() used to be constructed.
- setFlying( gSavedSettings.getBOOL("FlyingAtExit") );
+ bool is_flying = gSavedSettings.getBOOL("FlyingAtExit");
+ if(is_flying)
+ {
+ setFlying(is_flying);
+ }
*mEffectColor = LLUIColorTable::instance().getColor("EffectColor");
@@ -2628,12 +2632,6 @@ void LLAgent::setStartPosition( U32 location_id )
if (!requestPostCapability("HomeLocation", body,
boost::bind(&LLAgent::setStartPositionSuccess, this, _1)))
LL_WARNS() << "Unable to post to HomeLocation capability." << LL_ENDL;
-
- const U32 HOME_INDEX = 1;
- if( HOME_INDEX == location_id )
- {
- setHomePosRegion( mRegionp->getHandle(), getPositionAgent() );
- }
}
void LLAgent::setStartPositionSuccess(const LLSD &result)
diff --git a/indra/newview/llagentcamera.cpp b/indra/newview/llagentcamera.cpp
index 29642d3f45..8977b145d1 100644
--- a/indra/newview/llagentcamera.cpp
+++ b/indra/newview/llagentcamera.cpp
@@ -100,6 +100,12 @@ const F32 GROUND_TO_AIR_CAMERA_TRANSITION_START_TIME = 0.5f;
const F32 OBJECT_EXTENTS_PADDING = 0.5f;
+static bool isDisableCameraConstraints()
+{
+ static LLCachedControl<bool> sDisableCameraConstraints(gSavedSettings, "DisableCameraConstraints", false);
+ return sDisableCameraConstraints;
+}
+
// The agent instance.
LLAgentCamera gAgentCamera;
@@ -570,9 +576,9 @@ BOOL LLAgentCamera::calcCameraMinDistance(F32 &obj_min_distance)
{
BOOL soft_limit = FALSE; // is the bounding box to be treated literally (volumes) or as an approximation (avatars)
- if (!mFocusObject || mFocusObject->isDead() ||
+ if (!mFocusObject || mFocusObject->isDead() ||
mFocusObject->isMesh() ||
- gSavedSettings.getBOOL("DisableCameraConstraints"))
+ isDisableCameraConstraints())
{
obj_min_distance = 0.f;
return TRUE;
@@ -742,39 +748,44 @@ F32 LLAgentCamera::getCameraZoomFraction(bool get_third_person)
// already [0,1]
return mHUDTargetZoom;
}
- else if (get_third_person || (mFocusOnAvatar && cameraThirdPerson()))
+
+ if (isDisableCameraConstraints())
+ {
+ return mCameraZoomFraction;
+ }
+
+ if (get_third_person || (mFocusOnAvatar && cameraThirdPerson()))
{
return clamp_rescale(mCameraZoomFraction, MIN_ZOOM_FRACTION, MAX_ZOOM_FRACTION, 1.f, 0.f);
}
- else if (cameraCustomizeAvatar())
+
+ if (cameraCustomizeAvatar())
{
F32 distance = (F32)mCameraFocusOffsetTarget.magVec();
return clamp_rescale(distance, APPEARANCE_MIN_ZOOM, APPEARANCE_MAX_ZOOM, 1.f, 0.f );
}
- else
- {
- F32 min_zoom;
- F32 max_zoom = getCameraMaxZoomDistance();
- F32 distance = (F32)mCameraFocusOffsetTarget.magVec();
- if (mFocusObject.notNull())
+ F32 min_zoom;
+ F32 max_zoom = getCameraMaxZoomDistance();
+
+ F32 distance = (F32)mCameraFocusOffsetTarget.magVec();
+ if (mFocusObject.notNull())
+ {
+ if (mFocusObject->isAvatar())
{
- if (mFocusObject->isAvatar())
- {
- min_zoom = AVATAR_MIN_ZOOM;
- }
- else
- {
- min_zoom = OBJECT_MIN_ZOOM;
- }
+ min_zoom = AVATAR_MIN_ZOOM;
}
else
{
- min_zoom = LAND_MIN_ZOOM;
+ min_zoom = OBJECT_MIN_ZOOM;
}
-
- return clamp_rescale(distance, min_zoom, max_zoom, 1.f, 0.f);
}
+ else
+ {
+ min_zoom = LAND_MIN_ZOOM;
+ }
+
+ return clamp_rescale(distance, min_zoom, max_zoom, 1.f, 0.f);
}
void LLAgentCamera::setCameraZoomFraction(F32 fraction)
@@ -787,6 +798,10 @@ void LLAgentCamera::setCameraZoomFraction(F32 fraction)
{
mHUDTargetZoom = fraction;
}
+ else if (isDisableCameraConstraints())
+ {
+ mCameraZoomFraction = fraction;
+ }
else if (mFocusOnAvatar && cameraThirdPerson())
{
mCameraZoomFraction = rescale(fraction, 0.f, 1.f, MAX_ZOOM_FRACTION, MIN_ZOOM_FRACTION);
@@ -821,6 +836,7 @@ void LLAgentCamera::setCameraZoomFraction(F32 fraction)
camera_offset_dir.normalize();
mCameraFocusOffsetTarget = camera_offset_dir * rescale(fraction, 0.f, 1.f, max_zoom, min_zoom);
}
+
startCameraAnimation();
}
@@ -925,49 +941,40 @@ void LLAgentCamera::cameraZoomIn(const F32 fraction)
return;
}
-
- LLVector3d camera_offset_unit(mCameraFocusOffsetTarget);
- F32 min_zoom = LAND_MIN_ZOOM;
+ LLVector3d camera_offset_unit(mCameraFocusOffsetTarget);
F32 current_distance = (F32)camera_offset_unit.normalize();
F32 new_distance = current_distance * fraction;
- // Don't move through focus point
- if (mFocusObject)
+ // Unless camera is unlocked
+ if (!isDisableCameraConstraints())
{
- LLVector3 camera_offset_dir((F32)camera_offset_unit.mdV[VX], (F32)camera_offset_unit.mdV[VY], (F32)camera_offset_unit.mdV[VZ]);
+ F32 min_zoom = LAND_MIN_ZOOM;
- if (mFocusObject->isAvatar())
- {
- calcCameraMinDistance(min_zoom);
- }
- else
+ // Don't move through focus point
+ if (mFocusObject)
{
- min_zoom = OBJECT_MIN_ZOOM;
- }
- }
-
- new_distance = llmax(new_distance, min_zoom);
+ LLVector3 camera_offset_dir((F32)camera_offset_unit.mdV[VX], (F32)camera_offset_unit.mdV[VY], (F32)camera_offset_unit.mdV[VZ]);
- F32 max_distance = getCameraMaxZoomDistance();
+ if (mFocusObject->isAvatar())
+ {
+ calcCameraMinDistance(min_zoom);
+ }
+ else
+ {
+ min_zoom = OBJECT_MIN_ZOOM;
+ }
+ }
- max_distance = llmin(max_distance, current_distance * 4.f); //Scaled max relative to current distance. MAINT-3154
+ new_distance = llmax(new_distance, min_zoom);
- if (new_distance > max_distance)
- {
- new_distance = max_distance;
+ F32 max_distance = getCameraMaxZoomDistance();
+ max_distance = llmin(max_distance, current_distance * 4.f); //Scaled max relative to current distance. MAINT-3154
+ new_distance = llmin(new_distance, max_distance);
- /*
- // Unless camera is unlocked
- if (!LLViewerCamera::sDisableCameraConstraints)
+ if (cameraCustomizeAvatar())
{
- return;
+ new_distance = llclamp(new_distance, APPEARANCE_MIN_ZOOM, APPEARANCE_MAX_ZOOM);
}
- */
- }
-
- if(cameraCustomizeAvatar())
- {
- new_distance = llclamp( new_distance, APPEARANCE_MIN_ZOOM, APPEARANCE_MAX_ZOOM );
}
mCameraFocusOffsetTarget = new_distance * camera_offset_unit;
@@ -990,53 +997,52 @@ void LLAgentCamera::cameraOrbitIn(const F32 meters)
changeCameraToMouselook(FALSE);
}
- mCameraZoomFraction = llclamp(mCameraZoomFraction, MIN_ZOOM_FRACTION, MAX_ZOOM_FRACTION);
+ if (!isDisableCameraConstraints())
+ {
+ mCameraZoomFraction = llclamp(mCameraZoomFraction, MIN_ZOOM_FRACTION, MAX_ZOOM_FRACTION);
+ }
}
else
{
LLVector3d camera_offset_unit(mCameraFocusOffsetTarget);
F32 current_distance = (F32)camera_offset_unit.normalize();
F32 new_distance = current_distance - meters;
- F32 min_zoom = LAND_MIN_ZOOM;
-
- // Don't move through focus point
- if (mFocusObject.notNull())
+
+ // Unless camera is unlocked
+ if (!isDisableCameraConstraints())
{
- if (mFocusObject->isAvatar())
- {
- min_zoom = AVATAR_MIN_ZOOM;
- }
- else
+ F32 min_zoom = LAND_MIN_ZOOM;
+
+ // Don't move through focus point
+ if (mFocusObject.notNull())
{
- min_zoom = OBJECT_MIN_ZOOM;
+ if (mFocusObject->isAvatar())
+ {
+ min_zoom = AVATAR_MIN_ZOOM;
+ }
+ else
+ {
+ min_zoom = OBJECT_MIN_ZOOM;
+ }
}
- }
- new_distance = llmax(new_distance, min_zoom);
+ new_distance = llmax(new_distance, min_zoom);
- F32 max_distance = getCameraMaxZoomDistance();
+ F32 max_distance = getCameraMaxZoomDistance();
+ new_distance = llmin(new_distance, max_distance);
- if (new_distance > max_distance)
- {
- // Unless camera is unlocked
- if (!gSavedSettings.getBOOL("DisableCameraConstraints"))
+ if (CAMERA_MODE_CUSTOMIZE_AVATAR == getCameraMode())
{
- return;
+ new_distance = llclamp(new_distance, APPEARANCE_MIN_ZOOM, APPEARANCE_MAX_ZOOM);
}
}
- if( CAMERA_MODE_CUSTOMIZE_AVATAR == getCameraMode() )
- {
- new_distance = llclamp( new_distance, APPEARANCE_MIN_ZOOM, APPEARANCE_MAX_ZOOM );
- }
-
// Compute new camera offset
mCameraFocusOffsetTarget = new_distance * camera_offset_unit;
cameraZoomIn(1.f);
}
}
-
//-----------------------------------------------------------------------------
// cameraPanIn()
//-----------------------------------------------------------------------------
@@ -1841,7 +1847,8 @@ LLVector3d LLAgentCamera::calcCameraPositionTargetGlobal(BOOL *hit_limit)
local_camera_offset = gAgent.getFrameAgent().rotateToAbsolute( local_camera_offset );
}
- if (!mCameraCollidePlane.isExactlyZero() && (!isAgentAvatarValid() || !gAgentAvatarp->isSitting()))
+ if (!isDisableCameraConstraints() && !mCameraCollidePlane.isExactlyZero() &&
+ (!isAgentAvatarValid() || !gAgentAvatarp->isSitting()))
{
LLVector3 plane_normal;
plane_normal.setVec(mCameraCollidePlane.mV);
@@ -1960,7 +1967,7 @@ LLVector3d LLAgentCamera::calcCameraPositionTargetGlobal(BOOL *hit_limit)
camera_position_global = focusPosGlobal + mCameraFocusOffset;
}
- if (!gSavedSettings.getBOOL("DisableCameraConstraints") && !gAgent.isGodlike())
+ if (!isDisableCameraConstraints() && !gAgent.isGodlike())
{
LLViewerRegion* regionp = LLWorld::getInstance()->getRegionFromPosGlobal(camera_position_global);
bool constrain = true;
@@ -1995,16 +2002,14 @@ LLVector3d LLAgentCamera::calcCameraPositionTargetGlobal(BOOL *hit_limit)
// Don't let camera go underground
F32 camera_min_off_ground = getCameraMinOffGround();
-
camera_land_height = LLWorld::getInstance()->resolveLandHeightGlobal(camera_position_global);
-
- if (camera_position_global.mdV[VZ] < camera_land_height + camera_min_off_ground)
+ F32 minZ = llmax(F_ALMOST_ZERO, camera_land_height + camera_min_off_ground);
+ if (camera_position_global.mdV[VZ] < minZ)
{
- camera_position_global.mdV[VZ] = camera_land_height + camera_min_off_ground;
+ camera_position_global.mdV[VZ] = minZ;
isConstrained = TRUE;
}
-
if (hit_limit)
{
*hit_limit = isConstrained;
@@ -2131,17 +2136,13 @@ F32 LLAgentCamera::getCameraMinOffGround()
{
return 0.f;
}
- else
+
+ if (isDisableCameraConstraints())
{
- if (gSavedSettings.getBOOL("DisableCameraConstraints"))
- {
- return -1000.f;
- }
- else
- {
- return 0.5f;
- }
+ return -1000.f;
}
+
+ return 0.5f;
}
diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp
index 8010b84c20..4c3a9229d2 100644
--- a/indra/newview/llappearancemgr.cpp
+++ b/indra/newview/llappearancemgr.cpp
@@ -2776,9 +2776,23 @@ void LLAppearanceMgr::wearInventoryCategory(LLInventoryCategory* category, bool
else
{
selfStartPhase("wear_inventory_category_fetch");
- callAfterCategoryFetch(category->getUUID(),boost::bind(&LLAppearanceMgr::wearCategoryFinal,
- &LLAppearanceMgr::instance(),
- category->getUUID(), copy, append));
+ if (AISAPI::isAvailable() && category->getPreferredType() == LLFolderType::FT_OUTFIT)
+ {
+ // for reliability just fetch it whole, linked items included
+ LLUUID cat_id = category->getUUID();
+ LLInventoryModelBackgroundFetch::getInstance()->fetchFolderAndLinks(
+ cat_id,
+ [cat_id, copy, append]
+ {
+ LLAppearanceMgr::instance().wearCategoryFinal(cat_id, copy, append);
+ });
+ }
+ else
+ {
+ callAfterCategoryFetch(category->getUUID(), boost::bind(&LLAppearanceMgr::wearCategoryFinal,
+ &LLAppearanceMgr::instance(),
+ category->getUUID(), copy, append));
+ }
}
}
@@ -2787,7 +2801,7 @@ S32 LLAppearanceMgr::getActiveCopyOperations() const
return LLCallAfterInventoryCopyMgr::getInstanceCount();
}
-void LLAppearanceMgr::wearCategoryFinal(LLUUID& cat_id, bool copy_items, bool append)
+void LLAppearanceMgr::wearCategoryFinal(const LLUUID& cat_id, bool copy_items, bool append)
{
LL_INFOS("Avatar") << self_av_string() << "starting" << LL_ENDL;
@@ -4571,30 +4585,20 @@ protected:
void callAfterCOFFetch(nullary_func_t cb)
{
- LLUUID cat_id = LLAppearanceMgr::instance().getCOF();
- LLViewerInventoryCategory* cat = gInventory.getCategory(cat_id);
-
if (AISAPI::isAvailable())
{
- // Mark cof (update timer) so that background fetch won't request it
- cat->setFetching(LLViewerInventoryCategory::FETCH_RECURSIVE);
// For reliability assume that we have no relevant cache, so
// fetch cof along with items cof's links point to.
- AISAPI::FetchCOF([cb](const LLUUID& id)
- {
- cb();
- LLUUID cat_id = LLAppearanceMgr::instance().getCOF();
- LLViewerInventoryCategory* cat = gInventory.getCategory(cat_id);
- if (cat)
- {
- cat->setFetching(LLViewerInventoryCategory::FETCH_NONE);
- }
- });
+ LLInventoryModelBackgroundFetch::getInstance()->fetchCOF(cb);
}
else
{
LL_INFOS() << "AIS API v3 not available, using callAfterCategoryFetch" << LL_ENDL;
- // startup should have marked folder as fetching, remove that
+ LLUUID cat_id = LLAppearanceMgr::instance().getCOF();
+ LLViewerInventoryCategory* cat = gInventory.getCategory(cat_id);
+
+ // Special case, startup should have marked cof as FETCH_RECURSIVE
+ // to prevent dupplicate request, remove that
cat->setFetching(LLViewerInventoryCategory::FETCH_NONE);
callAfterCategoryFetch(cat_id, cb);
}
@@ -4616,30 +4620,16 @@ void callAfterCategoryFetch(const LLUUID& cat_id, nullary_func_t cb)
void callAfterCategoryLinksFetch(const LLUUID &cat_id, nullary_func_t cb)
{
- LLViewerInventoryCategory *cat = gInventory.getCategory(cat_id);
if (AISAPI::isAvailable())
{
- // Mark folder (update timer) so that background fetch won't request it
- cat->setFetching(LLViewerInventoryCategory::FETCH_RECURSIVE);
// Assume that we have no relevant cache. Fetch folder, and items folder's links point to.
- AISAPI::FetchCategoryLinks(cat_id,
- [cb, cat_id](const LLUUID &id)
- {
- cb();
- LLViewerInventoryCategory *cat = gInventory.getCategory(cat_id);
- if (cat)
- {
- cat->setFetching(LLViewerInventoryCategory::FETCH_NONE);
- }
- });
- }
- else
- {
- LL_WARNS() << "AIS API v3 not available, can't use AISAPI::FetchCOF" << LL_ENDL;
- // startup should have marked folder as fetching, remove that
- cat->setFetching(LLViewerInventoryCategory::FETCH_NONE);
- callAfterCategoryFetch(cat_id, cb);
- }
+ LLInventoryModelBackgroundFetch::getInstance()->fetchFolderAndLinks(cat_id, cb);
+ }
+ else
+ {
+ LL_WARNS() << "AIS API v3 not available, can't use AISAPI::FetchCOF" << LL_ENDL;
+ callAfterCategoryFetch(cat_id, cb);
+ }
}
diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h
index 43839e47a6..da29ceee3a 100644
--- a/indra/newview/llappearancemgr.h
+++ b/indra/newview/llappearancemgr.h
@@ -58,7 +58,7 @@ public:
void updateCOF(const LLUUID& category, bool append = false);
void wearInventoryCategory(LLInventoryCategory* category, bool copy, bool append);
void wearInventoryCategoryOnAvatar(LLInventoryCategory* category, bool append);
- void wearCategoryFinal(LLUUID& cat_id, bool copy_items, bool append);
+ void wearCategoryFinal(const LLUUID& cat_id, bool copy_items, bool append);
void wearOutfitByName(const std::string& name);
void changeOutfit(bool proceed, const LLUUID& category, bool append);
void replaceCurrentOutfit(const LLUUID& new_outfit);
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 1fc4a8532d..4a43133ff6 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -196,6 +196,7 @@
#include "llhudeffecttrail.h"
#include "llvectorperfoptions.h"
#include "llslurl.h"
+#include "llurlregistry.h"
#include "llwatchdog.h"
// Included so that constants/settings might be initialized
@@ -4312,6 +4313,7 @@ void LLAppViewer::loadKeyBindings()
LL_ERRS("InitInfo") << "Unable to open default key bindings from " << key_bindings_file << LL_ENDL;
}
}
+ LLUrlRegistry::instance().setKeybindingHandler(&gViewerInput);
}
void LLAppViewer::purgeCache()
diff --git a/indra/newview/llavatariconctrl.cpp b/indra/newview/llavatariconctrl.cpp
index c131dc641b..44bf698caa 100644
--- a/indra/newview/llavatariconctrl.cpp
+++ b/indra/newview/llavatariconctrl.cpp
@@ -247,6 +247,11 @@ void LLAvatarIconCtrl::setValue(const LLSD& value)
app->addObserver(mAvatarId, this);
app->sendAvatarPropertiesRequest(mAvatarId);
}
+ else if (gAgentID == mAvatarId)
+ {
+ // Always track any changes to our own icon id
+ app->addObserver(mAvatarId, this);
+ }
}
}
else
diff --git a/indra/newview/llavatarrenderinfoaccountant.cpp b/indra/newview/llavatarrenderinfoaccountant.cpp
index 293c9d60a1..a6c9a41fa4 100644
--- a/indra/newview/llavatarrenderinfoaccountant.cpp
+++ b/indra/newview/llavatarrenderinfoaccountant.cpp
@@ -79,8 +79,14 @@ void LLAvatarRenderInfoAccountant::avatarRenderInfoGetCoro(std::string url, U64
LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t
httpAdapter(new LLCoreHttpUtil::HttpCoroutineAdapter("AvatarRenderInfoAccountant", httpPolicy));
LLCore::HttpRequest::ptr_t httpRequest(new LLCore::HttpRequest);
+ LLCore::HttpOptions::ptr_t httpOpts(new LLCore::HttpOptions);
- LLSD result = httpAdapter->getAndSuspend(httpRequest, url);
+ // Going to request each 15 seconds either way, so don't wait
+ // too long and don't repeat
+ httpOpts->setRetries(0);
+ httpOpts->setTimeout(SECS_BETWEEN_REGION_REQUEST);
+
+ LLSD result = httpAdapter->getAndSuspend(httpRequest, url, httpOpts);
LLWorld *world_inst = LLWorld::getInstance();
if (!world_inst)
@@ -190,6 +196,11 @@ void LLAvatarRenderInfoAccountant::avatarRenderInfoReportCoro(std::string url, U
LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t
httpAdapter(new LLCoreHttpUtil::HttpCoroutineAdapter("AvatarRenderInfoAccountant", httpPolicy));
LLCore::HttpRequest::ptr_t httpRequest(new LLCore::HttpRequest);
+ LLCore::HttpOptions::ptr_t httpOpts(new LLCore::HttpOptions);
+
+ // Going to request each 60+ seconds, timeout is 30s.
+ // Don't repeat too often, will be sending newer data soon
+ httpOpts->setRetries(1);
LLWorld *world_inst = LLWorld::getInstance();
if (!world_inst)
@@ -256,7 +267,7 @@ void LLAvatarRenderInfoAccountant::avatarRenderInfoReportCoro(std::string url, U
regionp = NULL;
world_inst = NULL;
- LLSD result = httpAdapter->postAndSuspend(httpRequest, url, report);
+ LLSD result = httpAdapter->postAndSuspend(httpRequest, url, report, httpOpts);
world_inst = LLWorld::getInstance();
if (!world_inst)
diff --git a/indra/newview/llconversationmodel.h b/indra/newview/llconversationmodel.h
index 3f607d434e..0cbfad8b73 100644
--- a/indra/newview/llconversationmodel.h
+++ b/indra/newview/llconversationmodel.h
@@ -40,7 +40,7 @@ class LLConversationItem;
class LLConversationItemSession;
class LLConversationItemParticipant;
-typedef std::map<LLUUID, LLConversationItem*> conversations_items_map;
+typedef std::map<LLUUID, LLPointer<LLConversationItem> > conversations_items_map;
typedef std::map<LLUUID, LLFolderViewItem*> conversations_widgets_map;
typedef std::vector<std::string> menuentry_vec_t;
diff --git a/indra/newview/lldrawable.cpp b/indra/newview/lldrawable.cpp
index ac80f1f73b..710bbf8f52 100644
--- a/indra/newview/lldrawable.cpp
+++ b/indra/newview/lldrawable.cpp
@@ -760,19 +760,6 @@ void LLDrawable::movePartition()
if (part)
{
part->move(this, getSpatialGroup());
-
- // SL-18251 "On-screen animesh characters using pelvis offset animations
- // disappear when root goes off-screen"
- //
- // Update extents of the root node when Control Avatar changes it's bounds
- if (mRenderType == LLPipeline::RENDER_TYPE_CONTROL_AV && isRoot())
- {
- LLControlAvatar* controlAvatar = dynamic_cast<LLControlAvatar*>(getVObj().get());
- if (controlAvatar && controlAvatar->mControlAVBridge)
- {
- ((LLSpatialGroup*)controlAvatar->mControlAVBridge->mOctree->getListener(0))->setState(LLViewerOctreeGroup::DIRTY);
- }
- }
}
}
diff --git a/indra/newview/llfloaterimcontainer.cpp b/indra/newview/llfloaterimcontainer.cpp
index 011ad67011..f997dc9910 100644
--- a/indra/newview/llfloaterimcontainer.cpp
+++ b/indra/newview/llfloaterimcontainer.cpp
@@ -155,6 +155,20 @@ void LLFloaterIMContainer::sessionIDUpdated(const LLUUID& old_session_id, const
LLFloaterIMSessionTab::addToHost(new_session_id);
}
+
+LLConversationItem* LLFloaterIMContainer::getSessionModel(const LLUUID& session_id)
+{
+ conversations_items_map::iterator iter = mConversationsItems.find(session_id);
+ if (iter == mConversationsItems.end())
+ {
+ return NULL;
+ }
+ else
+ {
+ return iter->second.get();
+ }
+}
+
void LLFloaterIMContainer::sessionRemoved(const LLUUID& session_id)
{
removeConversationListItem(session_id);
@@ -611,7 +625,8 @@ void LLFloaterIMContainer::handleConversationModelEvent(const LLSD& event)
}
else if (type == "add_participant")
{
- LLConversationItemSession* session_model = dynamic_cast<LLConversationItemSession*>(mConversationsItems[session_id]);
+ LLConversationItem* item = getSessionModel(session_id);
+ LLConversationItemSession* session_model = dynamic_cast<LLConversationItemSession*>(item);
LLConversationItemParticipant* participant_model = (session_model ? session_model->findParticipant(participant_id) : NULL);
LLIMModel::LLIMSession * im_sessionp = LLIMModel::getInstance()->findIMSession(session_id);
if (!participant_view && session_model && participant_model)
@@ -1752,10 +1767,9 @@ BOOL LLFloaterIMContainer::selectConversationPair(const LLUUID& session_id, bool
void LLFloaterIMContainer::setTimeNow(const LLUUID& session_id, const LLUUID& participant_id)
{
- LLConversationItemSession* item = dynamic_cast<LLConversationItemSession*>(get_ptr_in_map(mConversationsItems,session_id));
+ LLConversationItemSession* item = dynamic_cast<LLConversationItemSession*>(getSessionModel(session_id));
if (item)
{
- item->setTimeNow(participant_id);
mConversationViewModel.requestSortAll();
mConversationsRoot->arrangeAll();
}
@@ -1764,7 +1778,7 @@ void LLFloaterIMContainer::setTimeNow(const LLUUID& session_id, const LLUUID& pa
void LLFloaterIMContainer::setNearbyDistances()
{
// Get the nearby chat session: that's the one with uuid nul
- LLConversationItemSession* item = dynamic_cast<LLConversationItemSession*>(get_ptr_in_map(mConversationsItems,LLUUID()));
+ LLConversationItemSession* item = dynamic_cast<LLConversationItemSession*>(getSessionModel(LLUUID()));
if (item)
{
// Get the positions of the nearby avatars and their ids
diff --git a/indra/newview/llfloaterimcontainer.h b/indra/newview/llfloaterimcontainer.h
index b4a9d377ab..82f3b00ebc 100644
--- a/indra/newview/llfloaterimcontainer.h
+++ b/indra/newview/llfloaterimcontainer.h
@@ -106,7 +106,7 @@ public:
LLConversationViewModel& getRootViewModel() { return mConversationViewModel; }
LLUUID getSelectedSession() { return mSelectedSession; }
void setSelectedSession(LLUUID sessionID) { mSelectedSession = sessionID; }
- LLConversationItem* getSessionModel(const LLUUID& session_id) { return get_ptr_in_map(mConversationsItems,session_id); }
+ LLConversationItem* getSessionModel(const LLUUID& session_id);
LLConversationSort& getSortOrder() { return mConversationViewModel.getSorter(); }
// Handling of lists of participants is public so to be common with llfloatersessiontab
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index d4e40ff103..aa723eb3a8 100644
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -250,11 +250,49 @@ void fractionFromDecimal(F32 decimal_val, S32& numerator, S32& denominator)
}
}
}
-// static
-std::string LLFloaterPreference::sSkin = "";
+
+// handle secondlife:///app/worldmap/{NAME}/{COORDS} URLs
+// Also see LLUrlEntryKeybinding, the value of this command type
+// is ability to show up to date value in chat
+class LLKeybindingHandler: public LLCommandHandler
+{
+public:
+ // requires trusted browser to trigger
+ LLKeybindingHandler(): LLCommandHandler("keybinding", UNTRUSTED_CLICK_ONLY)
+ {
+ }
+
+ bool handle(const LLSD& params, const LLSD& query_map,
+ const std::string& grid, LLMediaCtrl* web)
+ {
+ if (params.size() < 1) return false;
+
+ LLFloaterPreference* prefsfloater = dynamic_cast<LLFloaterPreference*>
+ (LLFloaterReg::showInstance("preferences"));
+
+ if (prefsfloater)
+ {
+ // find 'controls' panel and bring it the front
+ LLTabContainer* tabcontainer = prefsfloater->getChild<LLTabContainer>("pref core");
+ LLPanel* panel = prefsfloater->getChild<LLPanel>("controls");
+ if (tabcontainer && panel)
+ {
+ tabcontainer->selectTabPanel(panel);
+ }
+ }
+
+ return true;
+ }
+};
+LLKeybindingHandler gKeybindHandler;
+
+
//////////////////////////////////////////////
// LLFloaterPreference
+// static
+std::string LLFloaterPreference::sSkin = "";
+
LLFloaterPreference::LLFloaterPreference(const LLSD& key)
: LLFloater(key),
mGotPersonalInfo(false),
diff --git a/indra/newview/llfloaterurlentry.cpp b/indra/newview/llfloaterurlentry.cpp
index 917d6dfcd0..48d6e01d32 100644
--- a/indra/newview/llfloaterurlentry.cpp
+++ b/indra/newview/llfloaterurlentry.cpp
@@ -175,10 +175,9 @@ void LLFloaterURLEntry::onBtnOK( void* userdata )
// We assume that an empty scheme is an http url, as this is how we will treat it.
if(scheme == "")
{
- scheme = "http";
+ scheme = "https";
}
- // Discover the MIME type only for "http" scheme.
if(!media_url.empty() &&
(scheme == "http" || scheme == "https"))
{
@@ -204,13 +203,18 @@ void LLFloaterURLEntry::getMediaTypeCoro(std::string url, LLHandle<LLFloater> pa
LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t
httpAdapter(new LLCoreHttpUtil::HttpCoroutineAdapter("getMediaTypeCoro", httpPolicy));
LLCore::HttpRequest::ptr_t httpRequest(new LLCore::HttpRequest);
+ LLCore::HttpHeaders::ptr_t httpHeaders(new LLCore::HttpHeaders);
LLCore::HttpOptions::ptr_t httpOpts = LLCore::HttpOptions::ptr_t(new LLCore::HttpOptions);
+ httpOpts->setFollowRedirects(true);
httpOpts->setHeadersOnly(true);
+ httpHeaders->append(HTTP_OUT_HEADER_ACCEPT, "*/*");
+ httpHeaders->append(HTTP_OUT_HEADER_COOKIE, "");
+
LL_INFOS("HttpCoroutineAdapter", "genericPostCoro") << "Generic POST for " << url << LL_ENDL;
- LLSD result = httpAdapter->getAndSuspend(httpRequest, url, httpOpts);
+ LLSD result = httpAdapter->getRawAndSuspend(httpRequest, url, httpOpts, httpHeaders);
LLSD httpResults = result[LLCoreHttpUtil::HttpCoroutineAdapter::HTTP_RESULTS];
LLCore::HttpStatus status = LLCoreHttpUtil::HttpCoroutineAdapter::getStatusFromLLSD(httpResults);
@@ -226,12 +230,6 @@ void LLFloaterURLEntry::getMediaTypeCoro(std::string url, LLHandle<LLFloater> pa
// which have no mime type set.
std::string resolvedMimeType = LLMIMETypes::getDefaultMimeType();
- if (!status)
- {
- floaterUrlEntry->headerFetchComplete(status.getType(), resolvedMimeType);
- return;
- }
-
LLSD resultHeaders = httpResults[LLCoreHttpUtil::HttpCoroutineAdapter::HTTP_RESULTS_HEADERS];
if (resultHeaders.has(HTTP_IN_HEADER_CONTENT_TYPE))
diff --git a/indra/newview/llfloaterworldmap.cpp b/indra/newview/llfloaterworldmap.cpp
index 8f3ec8af05..c8559fc9d3 100755
--- a/indra/newview/llfloaterworldmap.cpp
+++ b/indra/newview/llfloaterworldmap.cpp
@@ -121,10 +121,27 @@ static const F32 ZOOM_MAX = 128.f;
class LLWorldMapHandler : public LLCommandHandler
{
public:
- // requires trusted browser to trigger
- LLWorldMapHandler() : LLCommandHandler("worldmap", UNTRUSTED_CLICK_ONLY ) { }
-
- bool handle(const LLSD& params,
+ LLWorldMapHandler() : LLCommandHandler("worldmap", UNTRUSTED_THROTTLE)
+ {
+ }
+
+ virtual bool canHandleUntrusted(
+ const LLSD& params,
+ const LLSD& query_map,
+ LLMediaCtrl* web,
+ const std::string& nav_type)
+ {
+ if (nav_type == NAV_TYPE_CLICKED
+ || nav_type == NAV_TYPE_EXTERNAL)
+ {
+ // NAV_TYPE_EXTERNAL will be throttled
+ return true;
+ }
+
+ return false;
+ }
+
+ bool handle(const LLSD& params,
const LLSD& query_map,
const std::string& grid,
LLMediaCtrl* web)
@@ -160,12 +177,32 @@ LLWorldMapHandler gWorldMapHandler;
class LLMapTrackAvatarHandler : public LLCommandHandler
{
public:
- // requires trusted browser to trigger
- LLMapTrackAvatarHandler() : LLCommandHandler("maptrackavatar", UNTRUSTED_CLICK_ONLY)
+ LLMapTrackAvatarHandler() : LLCommandHandler("maptrackavatar", UNTRUSTED_THROTTLE)
{
}
-
- bool handle(const LLSD& params,
+
+ virtual bool canHandleUntrusted(
+ const LLSD& params,
+ const LLSD& query_map,
+ LLMediaCtrl* web,
+ const std::string& nav_type)
+ {
+ if (params.size() < 1)
+ {
+ return true; // don't block, will fail later
+ }
+
+ if (nav_type == NAV_TYPE_CLICKED
+ || nav_type == NAV_TYPE_EXTERNAL)
+ {
+ // NAV_TYPE_EXTERNAL will be throttled
+ return true;
+ }
+
+ return false;
+ }
+
+ bool handle(const LLSD& params,
const LLSD& query_map,
const std::string& grid,
LLMediaCtrl* web)
diff --git a/indra/newview/llfriendcard.cpp b/indra/newview/llfriendcard.cpp
index ce28915d93..142177010f 100644
--- a/indra/newview/llfriendcard.cpp
+++ b/indra/newview/llfriendcard.cpp
@@ -549,20 +549,7 @@ void LLFriendCardsManager::syncFriendsFolder()
// Create own calling card if it was not found in Friends/All folder
if (!collector.isAgentCallingCardFound())
{
- LLAvatarName av_name;
- LLAvatarNameCache::get( gAgentID, &av_name );
-
- create_inventory_item(gAgentID,
- gAgent.getSessionID(),
- calling_cards_folder_id,
- LLTransactionID::tnull,
- av_name.getCompleteName(),
- gAgentID.asString(),
- LLAssetType::AT_CALLINGCARD,
- LLInventoryType::IT_CALLINGCARD,
- NO_INV_SUBTYPE,
- PERM_MOVE | PERM_TRANSFER,
- NULL);
+ create_inventory_callingcard(gAgentID, calling_cards_folder_id);
}
// All folders created and updated.
diff --git a/indra/newview/llgroupactions.cpp b/indra/newview/llgroupactions.cpp
index 043316ccca..380e49c320 100644
--- a/indra/newview/llgroupactions.cpp
+++ b/indra/newview/llgroupactions.cpp
@@ -65,7 +65,8 @@ public:
return true; // don't block, will fail later
}
- if (nav_type == NAV_TYPE_CLICKED)
+ if (nav_type == NAV_TYPE_CLICKED
+ || nav_type == NAV_TYPE_EXTERNAL)
{
return true;
}
diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp
index cb5316ddf4..932a0316dd 100644
--- a/indra/newview/llinventorybridge.cpp
+++ b/indra/newview/llinventorybridge.cpp
@@ -4336,7 +4336,8 @@ void LLFolderBridge::buildContextMenuOptions(U32 flags, menuentry_vec_t& items
|| is_recent_panel
|| !trash
|| trash->getVersion() == LLViewerInventoryCategory::VERSION_UNKNOWN
- || trash->getDescendentCount() == LLViewerInventoryCategory::VERSION_UNKNOWN)
+ || trash->getDescendentCount() == LLViewerInventoryCategory::VERSION_UNKNOWN
+ || gAgentAvatarp->hasAttachmentsInTrash())
{
disabled_items.push_back(std::string("Empty Trash"));
}
@@ -6510,6 +6511,7 @@ void LLGestureBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
{
items.push_back(std::string("Activate"));
}
+ items.push_back(std::string("PlayGesture"));
}
addLinkReplaceMenuOption(items, disabled_items);
hide_context_entries(menu, items, disabled_items);
diff --git a/indra/newview/llinventorygallery.cpp b/indra/newview/llinventorygallery.cpp
index 845ea01f56..72ef6e5bb6 100644
--- a/indra/newview/llinventorygallery.cpp
+++ b/indra/newview/llinventorygallery.cpp
@@ -58,6 +58,7 @@
static LLPanelInjector<LLInventoryGallery> t_inventory_gallery("inventory_gallery");
const S32 GALLERY_ITEMS_PER_ROW_MIN = 2;
+const S32 FAST_LOAD_THUMBNAIL_TRSHOLD = 50; // load folders below this value immediately
// Helper dnd functions
BOOL dragCategoryIntoFolder(LLUUID dest_id, LLInventoryCategory* inv_cat, BOOL drop, std::string& tooltip_msg, BOOL is_link);
@@ -106,6 +107,7 @@ LLInventoryGallery::LLInventoryGallery(const LLInventoryGallery::Params& p)
mGalleryWidthFactor(p.gallery_width_factor),
mIsInitialized(false),
mRootDirty(false),
+ mLoadThumbnailsImmediately(true),
mNeedsArrange(false),
mSearchType(LLInventoryFilter::SEARCHTYPE_NAME),
mSortOrder(LLInventoryFilter::SO_DATE)
@@ -540,6 +542,12 @@ void LLInventoryGallery::addToGallery(LLInventoryGalleryItem* item)
int n_prev = n - 1;
int row_count_prev = (n_prev % mItemsInRow) == 0 ? n_prev / mItemsInRow : n_prev / mItemsInRow + 1;
+ // Avoid loading too many items.
+ // Intent is for small folders to display all content fast
+ // and for large folders to load content mostly as needed
+ // Todo: ideally needs to unload images outside visible area
+ mLoadThumbnailsImmediately = mItemsAddedCount < FAST_LOAD_THUMBNAIL_TRSHOLD;
+
bool add_row = row_count != row_count_prev;
int pos = 0;
if (add_row)
@@ -573,6 +581,8 @@ void LLInventoryGallery::removeFromGalleryLast(LLInventoryGalleryItem* item, boo
mItemsAddedCount--;
mIndexToItemMap.erase(mItemsAddedCount);
+ mLoadThumbnailsImmediately = mItemsAddedCount < FAST_LOAD_THUMBNAIL_TRSHOLD;
+
bool remove_row = row_count != row_count_prev;
removeFromLastRow(mItems[mItemsAddedCount]);
mItems.pop_back();
@@ -636,6 +646,7 @@ LLInventoryGalleryItem* LLInventoryGallery::buildGalleryItem(std::string name, L
gitem->setUUID(item_id);
gitem->setGallery(this);
gitem->setType(type, inventory_type, flags, is_link);
+ gitem->setLoadImmediately(mLoadThumbnailsImmediately);
gitem->setThumbnail(thumbnail_id);
gitem->setWorn(is_worn);
gitem->setCreatorName(get_searchable_creator_name(&gInventory, item_id));
@@ -997,6 +1008,7 @@ void LLInventoryGallery::updateItemThumbnail(LLUUID item_id)
if (mItemMap[item_id])
{
+ mItemMap[item_id]->setLoadImmediately(mLoadThumbnailsImmediately);
mItemMap[item_id]->setThumbnail(thumbnail_id);
bool passes_filter = checkAgainstFilters(mItemMap[item_id], mFilterSubString);
@@ -2570,6 +2582,7 @@ BOOL LLInventoryGalleryItem::postBuild()
{
mNameText = getChild<LLTextBox>("item_name");
mTextBgPanel = getChild<LLPanel>("text_bg_panel");
+ mThumbnailCtrl = getChild<LLThumbnailCtrl>("preview_thumbnail");
return TRUE;
}
@@ -2645,14 +2658,19 @@ void LLInventoryGalleryItem::setThumbnail(LLUUID id)
mDefaultImage = id.isNull();
if(mDefaultImage)
{
- getChild<LLThumbnailCtrl>("preview_thumbnail")->clearTexture();
+ mThumbnailCtrl->clearTexture();
}
else
{
- getChild<LLThumbnailCtrl>("preview_thumbnail")->setValue(id);
+ mThumbnailCtrl->setValue(id);
}
}
+void LLInventoryGalleryItem::setLoadImmediately(bool val)
+{
+ mThumbnailCtrl->setInitImmediately(val);
+}
+
void LLInventoryGalleryItem::draw()
{
if (isFadeItem())
@@ -2667,7 +2685,7 @@ void LLInventoryGalleryItem::draw()
// Draw border
LLUIColor border_color = LLUIColorTable::instance().getColor(mSelected ? "MenuItemHighlightBgColor" : "TextFgTentativeColor", LLColor4::white);
- LLRect border = getChildView("preview_thumbnail")->getRect();
+ LLRect border = mThumbnailCtrl->getRect();
border.mRight = border.mRight + 1;
border.mTop = border.mTop + 1;
gl_rect_2d(border, border_color.get(), FALSE);
@@ -2889,7 +2907,7 @@ void LLInventoryGalleryItem::updateNameText()
mNameText->setFont(getTextFont());
mNameText->setText(mItemName + mPermSuffix + mWornSuffix);
mNameText->setToolTip(mItemName + mPermSuffix + mWornSuffix);
- getChild<LLThumbnailCtrl>("preview_thumbnail")->setToolTip(mItemName + mPermSuffix + mWornSuffix);
+ mThumbnailCtrl->setToolTip(mItemName + mPermSuffix + mWornSuffix);
}
bool LLInventoryGalleryItem::isFadeItem()
diff --git a/indra/newview/llinventorygallery.h b/indra/newview/llinventorygallery.h
index 9b3f12701f..0c52e7b713 100644
--- a/indra/newview/llinventorygallery.h
+++ b/indra/newview/llinventorygallery.h
@@ -39,6 +39,7 @@ class LLInventoryGalleryItem;
class LLScrollContainer;
class LLTextBox;
class LLThumbnailsObserver;
+class LLThumbnailCtrl;
class LLGalleryGestureObserver;
class LLInventoryGalleryContextMenu;
@@ -246,6 +247,7 @@ private:
int mRowCount;
int mItemsAddedCount;
bool mGalleryCreated;
+ bool mLoadThumbnailsImmediately;
bool mNeedsArrange;
/* Params */
@@ -342,6 +344,7 @@ public:
LLAssetType::EType getAssetType() { return mType; }
void setThumbnail(LLUUID id);
void setGallery(LLInventoryGallery* gallery) { mGallery = gallery; }
+ void setLoadImmediately(bool val);
bool isFolder() { return mIsFolder; }
bool isLink() { return mIsLink; }
EInventorySortGroup getSortGroup() { return mSortGroup; }
@@ -354,6 +357,7 @@ private:
LLUUID mUUID;
LLTextBox* mNameText;
LLPanel* mTextBgPanel;
+ LLThumbnailCtrl* mThumbnailCtrl;
bool mSelected;
bool mWorn;
bool mDefaultImage;
diff --git a/indra/newview/llinventorymodelbackgroundfetch.cpp b/indra/newview/llinventorymodelbackgroundfetch.cpp
index 91adef8047..1f410bea10 100644
--- a/indra/newview/llinventorymodelbackgroundfetch.cpp
+++ b/indra/newview/llinventorymodelbackgroundfetch.cpp
@@ -357,6 +357,7 @@ void LLInventoryModelBackgroundFetch::scheduleFolderFetch(const LLUUID& cat_id,
if (mFetchFolderQueue.empty() || mFetchFolderQueue.front().mUUID != cat_id)
{
mBackgroundFetchActive = true;
+ mFolderFetchActive = true;
// Specific folder requests go to front of queue.
mFetchFolderQueue.push_front(FetchQueueInfo(cat_id, forced ? FT_FORCED : FT_DEFAULT));
@@ -375,6 +376,61 @@ void LLInventoryModelBackgroundFetch::scheduleItemFetch(const LLUUID& item_id, b
}
}
+void LLInventoryModelBackgroundFetch::fetchFolderAndLinks(const LLUUID& cat_id, nullary_func_t callback)
+{
+ LLViewerInventoryCategory* cat = gInventory.getCategory(cat_id);
+ if (cat)
+ {
+ // Mark folder (update timer) so that background fetch won't request it
+ cat->setFetching(LLViewerInventoryCategory::FETCH_RECURSIVE);
+ }
+ incrFetchFolderCount(1);
+ mExpectedFolderIds.push_back(cat_id);
+
+ // Assume that we have no relevant cache. Fetch folder, and items folder's links point to.
+ AISAPI::FetchCategoryLinks(cat_id,
+ [callback, cat_id](const LLUUID& id)
+ {
+ callback();
+ if (id.isNull())
+ {
+ LL_WARNS() << "Failed to fetch category links " << cat_id << LL_ENDL;
+ }
+ LLInventoryModelBackgroundFetch::getInstance()->onAISFolderCalback(cat_id, id, FT_DEFAULT);
+ });
+
+ // start idle loop to track completion
+ mBackgroundFetchActive = true;
+ mFolderFetchActive = true;
+ gIdleCallbacks.addFunction(&LLInventoryModelBackgroundFetch::backgroundFetchCB, NULL);
+}
+
+void LLInventoryModelBackgroundFetch::fetchCOF(nullary_func_t callback)
+{
+ LLUUID cat_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_CURRENT_OUTFIT);
+ LLViewerInventoryCategory* cat = gInventory.getCategory(cat_id);
+ if (cat)
+ {
+ // Mark cof (update timer) so that background fetch won't request it
+ cat->setFetching(LLViewerInventoryCategory::FETCH_RECURSIVE);
+ }
+ incrFetchFolderCount(1);
+ mExpectedFolderIds.push_back(cat_id);
+ // For reliability assume that we have no relevant cache, so
+ // fetch cof along with items cof's links point to.
+ AISAPI::FetchCOF([callback](const LLUUID& id)
+ {
+ callback();
+ LLUUID cat_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_CURRENT_OUTFIT);
+ LLInventoryModelBackgroundFetch::getInstance()->onAISFolderCalback(cat_id, id, FT_DEFAULT);
+ });
+
+ // start idle loop to track completion
+ mBackgroundFetchActive = true;
+ mFolderFetchActive = true;
+ gIdleCallbacks.addFunction(&LLInventoryModelBackgroundFetch::backgroundFetchCB, NULL);
+}
+
void LLInventoryModelBackgroundFetch::findLostItems()
{
mBackgroundFetchActive = true;
diff --git a/indra/newview/llinventorymodelbackgroundfetch.h b/indra/newview/llinventorymodelbackgroundfetch.h
index e7be265a3d..a712fc7604 100644
--- a/indra/newview/llinventorymodelbackgroundfetch.h
+++ b/indra/newview/llinventorymodelbackgroundfetch.h
@@ -53,6 +53,13 @@ public:
void scheduleFolderFetch(const LLUUID& cat_id, bool forced = false);
void scheduleItemFetch(const LLUUID& item_id, bool forced = false);
+ typedef boost::function<void()> nullary_func_t;
+ // AIS3 only, Fetches folder and everithing links inside the folder point to
+ // Intended for outfits
+ void fetchFolderAndLinks(const LLUUID& cat_id, nullary_func_t callback);
+ // AIS3 only
+ void fetchCOF(nullary_func_t callback);
+
BOOL folderFetchActive() const;
bool isEverythingFetched() const; // completing the fetch once per session should be sufficient
diff --git a/indra/newview/llinventoryobserver.cpp b/indra/newview/llinventoryobserver.cpp
index 281a8bc789..fe067b621a 100644
--- a/indra/newview/llinventoryobserver.cpp
+++ b/indra/newview/llinventoryobserver.cpp
@@ -337,52 +337,49 @@ void LLInventoryFetchItemsObserver::startFetch()
{
for (requests_by_folders_t::value_type &folder : requests)
{
- if (folder.second.size() > MAX_INDIVIDUAL_ITEM_REQUESTS)
+ LLViewerInventoryCategory* cat = gInventory.getCategory(folder.first);
+ if (cat)
{
- // requesting one by one will take a while
- // do whole folder
- LLInventoryModelBackgroundFetch::getInstance()->scheduleFolderFetch(folder.first, true);
- }
- else
- {
- LLViewerInventoryCategory* cat = gInventory.getCategory(folder.first);
- if (cat)
+ if (cat->getVersion() == LLViewerInventoryCategory::VERSION_UNKNOWN)
{
- if (cat->getVersion() == LLViewerInventoryCategory::VERSION_UNKNOWN)
- {
- // start fetching whole folder since it's not ready either way
- cat->fetch();
- }
- else if (cat->getViewerDescendentCount() <= folder.second.size()
- || cat->getDescendentCount() <= folder.second.size())
- {
- // Start fetching whole folder since we need all items
- LLInventoryModelBackgroundFetch::getInstance()->scheduleFolderFetch(folder.first, true);
+ // start fetching whole folder since it's not ready either way
+ cat->fetch();
+ }
+ else if (folder.second.size() > MAX_INDIVIDUAL_ITEM_REQUESTS)
+ {
+ // requesting one by one will take a while
+ // do whole folder
+ LLInventoryModelBackgroundFetch::getInstance()->scheduleFolderFetch(folder.first, true);
+ }
+ else if (cat->getViewerDescendentCount() <= folder.second.size()
+ || cat->getDescendentCount() <= folder.second.size())
+ {
+ // Start fetching whole folder since we need all items
+ LLInventoryModelBackgroundFetch::getInstance()->scheduleFolderFetch(folder.first, true);
- }
- else
- {
- // get items one by one
- for (LLUUID &item_id : folder.second)
- {
- LLInventoryModelBackgroundFetch::getInstance()->scheduleItemFetch(item_id);
- }
- }
}
else
{
- // Isn't supposed to happen? We should have all folders
- // and if item exists, folder is supposed to exist as well.
- llassert(false);
- LL_WARNS("Inventory") << "Missing folder: " << folder.first << " fetching items individually" << LL_ENDL;
-
// get items one by one
- for (LLUUID &item_id : folder.second)
+ for (LLUUID& item_id : folder.second)
{
LLInventoryModelBackgroundFetch::getInstance()->scheduleItemFetch(item_id);
}
}
}
+ else
+ {
+ // Isn't supposed to happen? We should have all folders
+ // and if item exists, folder is supposed to exist as well.
+ llassert(false);
+ LL_WARNS("Inventory") << "Missing folder: " << folder.first << " fetching items individually" << LL_ENDL;
+
+ // get items one by one
+ for (LLUUID& item_id : folder.second)
+ {
+ LLInventoryModelBackgroundFetch::getInstance()->scheduleItemFetch(item_id);
+ }
+ }
}
}
else
@@ -421,10 +418,22 @@ void LLInventoryFetchDescendentsObserver::changed(U32 mask)
}
++it;
}
- if (mIncomplete.empty())
- {
- done();
- }
+
+ if (mIncomplete.empty())
+ {
+ done();
+ }
+ else
+ {
+ LLInventoryModelBackgroundFetch* fetcher = LLInventoryModelBackgroundFetch::getInstance();
+ if (fetcher->isEverythingFetched()
+ && !fetcher->folderFetchActive())
+ {
+ // If fetcher is done with folders yet we are waiting, fetch either
+ // failed or version is somehow stuck at -1
+ done();
+ }
+ }
}
void LLInventoryFetchDescendentsObserver::startFetch()
@@ -435,12 +444,8 @@ void LLInventoryFetchDescendentsObserver::startFetch()
if (!cat) continue;
if (!isCategoryComplete(cat))
{
- // CHECK IT: isCategoryComplete() checks both version and descendant count but
- // fetch() only works for Unknown version and doesn't care about descentants,
- // as result fetch won't start and folder will potentially get stuck as
- // incomplete in observer.
- // Likely either both should use only version or both should check descendants.
- cat->fetch(); //blindly fetch it without seeing if anything else is fetching it.
+ //blindly fetch it without seeing if anything else is fetching it.
+ LLInventoryModelBackgroundFetch::getInstance()->scheduleFolderFetch(*it, true);
mIncomplete.push_back(*it); //Add to list of things being downloaded for this observer.
}
else
diff --git a/indra/newview/llkeyconflict.cpp b/indra/newview/llkeyconflict.cpp
index 60f8aca94c..4a0ee8fd0c 100644
--- a/indra/newview/llkeyconflict.cpp
+++ b/indra/newview/llkeyconflict.cpp
@@ -74,40 +74,6 @@ std::string string_from_mask(MASK mask)
return res;
}
-std::string string_from_mouse(EMouseClickType click, bool translate)
-{
- std::string res;
- switch (click)
- {
- case CLICK_LEFT:
- res = "LMB";
- break;
- case CLICK_MIDDLE:
- res = "MMB";
- break;
- case CLICK_RIGHT:
- res = "RMB";
- break;
- case CLICK_BUTTON4:
- res = "MB4";
- break;
- case CLICK_BUTTON5:
- res = "MB5";
- break;
- case CLICK_DOUBLELEFT:
- res = "Double LMB";
- break;
- default:
- break;
- }
-
- if (translate && !res.empty())
- {
- res = LLTrans::getString(res);
- }
- return res;
-}
-
// LLKeyConflictHandler
S32 LLKeyConflictHandler::sTemporaryFileUseCount = 0;
@@ -270,7 +236,7 @@ std::string LLKeyConflictHandler::getStringFromKeyData(const LLKeyData& keydata)
result = LLKeyboard::stringFromAccelerator(keydata.mMask);
}
- result += string_from_mouse(keydata.mMouse, true);
+ result += LLKeyboard::stringFromMouse(keydata.mMouse);
return result;
}
@@ -545,7 +511,7 @@ void LLKeyConflictHandler::saveToSettings(bool temporary)
{
// set() because 'optional', for compatibility purposes
// just copy old keys.xml and rename to key_bindings.xml, it should work
- binding.mouse.set(string_from_mouse(data.mMouse, false), true);
+ binding.mouse.set(LLKeyboard::stringFromMouse(data.mMouse, false), true);
}
binding.command = iter->first;
mode.bindings.add(binding);
diff --git a/indra/newview/lllocationinputctrl.cpp b/indra/newview/lllocationinputctrl.cpp
index d6f3068610..9fa35e3bd9 100644
--- a/indra/newview/lllocationinputctrl.cpp
+++ b/indra/newview/lllocationinputctrl.cpp
@@ -391,7 +391,9 @@ LLLocationInputCtrl::LLLocationInputCtrl(const LLLocationInputCtrl::Params& p)
LL_WARNS() << "Error loading navigation bar context menu" << LL_ENDL;
}
- getTextEntry()->setRightMouseUpCallback(boost::bind(&LLLocationInputCtrl::onTextEditorRightClicked,this,_2,_3,_4));
+ //don't show default context menu
+ getTextEntry()->setShowContextMenu(false);
+ getTextEntry()->setRightMouseDownCallback(boost::bind(&LLLocationInputCtrl::onTextEditorRightClicked, this, _2, _3, _4));
updateWidgetlayout();
// Connecting signal for updating location on "Show Coordinates" setting change.
diff --git a/indra/newview/llpanelgrouplandmoney.cpp b/indra/newview/llpanelgrouplandmoney.cpp
index a2e136bd5a..f276d6d785 100644
--- a/indra/newview/llpanelgrouplandmoney.cpp
+++ b/indra/newview/llpanelgrouplandmoney.cpp
@@ -1077,7 +1077,7 @@ void LLGroupMoneyDetailsTabEventHandler::processReply(LLMessageSystem* msg,
msg->getS32Fast(_PREHASH_MoneyData, _PREHASH_CurrentInterval, current_interval );
msg->getStringFast(_PREHASH_MoneyData, _PREHASH_StartDate, start_date);
- std::string time_str = LLTrans::getString("GroupMoneyDate");
+ std::string time_str = LLTrans::getString("GroupMoneyStartDate");
LLSD substitution;
// We don't do time zone corrections of the calculated number of seconds
@@ -1232,7 +1232,7 @@ void LLGroupMoneySalesTabEventHandler::processReply(LLMessageSystem* msg,
// Start with the date.
if (text == mImplementationp->mLoadingText)
{
- std::string time_str = LLTrans::getString("GroupMoneyDate");
+ std::string time_str = LLTrans::getString("GroupMoneyStartDate");
LLSD substitution;
// We don't do time zone corrections of the calculated number of seconds
diff --git a/indra/newview/llpanelprofile.cpp b/indra/newview/llpanelprofile.cpp
index c2c9139c19..ffbed778c1 100644
--- a/indra/newview/llpanelprofile.cpp
+++ b/indra/newview/llpanelprofile.cpp
@@ -277,9 +277,9 @@ void request_avatar_properties_coro(std::string cap_url, LLUUID agent_id)
//TODO: changes take two minutes to propagate!
// Add some storage that holds updated data for two minutes
// for new instances to reuse the data
-// Profile data is only relevant to won avatar, but notes
-// are for everybody
-void put_avatar_properties_coro(std::string cap_url, LLUUID agent_id, LLSD data)
+// Profile data is only relevant to own avatar, but notes
+// are for everybody (no onger an issue?)
+void put_avatar_properties_coro(std::string cap_url, LLUUID agent_id, LLSD data, std::function<void(bool)> callback)
{
LLCore::HttpRequest::policy_t httpPolicy(LLCore::HttpRequest::DEFAULT_POLICY_ID);
LLCoreHttpUtil::HttpCoroutineAdapter::ptr_t
@@ -300,10 +300,16 @@ void put_avatar_properties_coro(std::string cap_url, LLUUID agent_id, LLSD data)
if (!status)
{
LL_WARNS("AvatarProperties") << "Failed to put agent information " << data << " for id " << agent_id << LL_ENDL;
- return;
+ }
+ else
+ {
+ LL_DEBUGS("AvatarProperties") << "Agent id: " << agent_id << " Data: " << data << " Result: " << httpResults << LL_ENDL;
}
- LL_DEBUGS("AvatarProperties") << "Agent id: " << agent_id << " Data: " << data << " Result: " << httpResults << LL_ENDL;
+ if (callback)
+ {
+ callback(status);
+ }
}
LLUUID post_profile_image(std::string cap_url, const LLSD &first_data, std::string path_to_image, LLHandle<LLPanel> *handle)
@@ -448,6 +454,13 @@ void post_profile_image_coro(std::string cap_url, EProfileImageType type, std::s
}
}
+ if (type == PROFILE_IMAGE_SL && result.notNull())
+ {
+ LLAvatarIconIDCache::getInstance()->add(gAgentID, result);
+ // Should trigger callbacks in icon controls
+ LLAvatarPropertiesProcessor::getInstance()->sendAvatarPropertiesRequest(gAgentID);
+ }
+
// Cleanup
LLFile::remove(path_to_image);
delete handle;
@@ -499,7 +512,8 @@ public:
return true; // don't block, will fail later
}
- if (nav_type == NAV_TYPE_CLICKED)
+ if (nav_type == NAV_TYPE_CLICKED
+ || nav_type == NAV_TYPE_EXTERNAL)
{
return true;
}
@@ -1832,7 +1846,7 @@ void LLPanelProfileSecondLife::onShowInSearchCallback()
LLSD data;
data["allow_publish"] = mAllowPublish;
LLCoros::instance().launch("putAgentUserInfoCoro",
- boost::bind(put_avatar_properties_coro, cap_url, getAvatarId(), data));
+ boost::bind(put_avatar_properties_coro, cap_url, getAvatarId(), data, nullptr));
}
else
{
@@ -1847,7 +1861,7 @@ void LLPanelProfileSecondLife::onSaveDescriptionChanges()
if (!cap_url.empty())
{
LLCoros::instance().launch("putAgentUserInfoCoro",
- boost::bind(put_avatar_properties_coro, cap_url, getAvatarId(), LLSD().with("sl_about_text", mDescriptionText)));
+ boost::bind(put_avatar_properties_coro, cap_url, getAvatarId(), LLSD().with("sl_about_text", mDescriptionText), nullptr));
}
else
{
@@ -1993,10 +2007,19 @@ void LLPanelProfileSecondLife::onCommitProfileImage(const LLUUID& id)
std::string cap_url = gAgent.getRegionCapability(PROFILE_PROPERTIES_CAP);
if (!cap_url.empty())
{
+ std::function<void(bool)> callback = [id](bool result)
+ {
+ if (result)
+ {
+ LLAvatarIconIDCache::getInstance()->add(gAgentID, id);
+ // Should trigger callbacks in icon controls
+ LLAvatarPropertiesProcessor::getInstance()->sendAvatarPropertiesRequest(gAgentID);
+ }
+ };
LLSD params;
params["sl_image_id"] = id;
LLCoros::instance().launch("putAgentUserInfoCoro",
- boost::bind(put_avatar_properties_coro, cap_url, getAvatarId(), params));
+ boost::bind(put_avatar_properties_coro, cap_url, getAvatarId(), params, callback));
mImageId = id;
if (mImageId == LLUUID::null)
@@ -2332,7 +2355,7 @@ void LLPanelProfileFirstLife::onCommitPhoto(const LLUUID& id)
LLSD params;
params["fl_image_id"] = id;
LLCoros::instance().launch("putAgentUserInfoCoro",
- boost::bind(put_avatar_properties_coro, cap_url, getAvatarId(), params));
+ boost::bind(put_avatar_properties_coro, cap_url, getAvatarId(), params, nullptr));
mImageId = id;
if (mImageId.notNull())
@@ -2376,7 +2399,7 @@ void LLPanelProfileFirstLife::onSaveDescriptionChanges()
if (!cap_url.empty())
{
LLCoros::instance().launch("putAgentUserInfoCoro",
- boost::bind(put_avatar_properties_coro, cap_url, getAvatarId(), LLSD().with("fl_about_text", mCurrentDescription)));
+ boost::bind(put_avatar_properties_coro, cap_url, getAvatarId(), LLSD().with("fl_about_text", mCurrentDescription), nullptr));
}
else
{
@@ -2519,7 +2542,7 @@ void LLPanelProfileNotes::onSaveNotesChanges()
if (!cap_url.empty())
{
LLCoros::instance().launch("putAgentUserInfoCoro",
- boost::bind(put_avatar_properties_coro, cap_url, getAvatarId(), LLSD().with("notes", mCurrentNotes)));
+ boost::bind(put_avatar_properties_coro, cap_url, getAvatarId(), LLSD().with("notes", mCurrentNotes), nullptr));
}
else
{
diff --git a/indra/newview/llpanelprofileclassifieds.cpp b/indra/newview/llpanelprofileclassifieds.cpp
index dec6cfd83b..3fbaad4dee 100644
--- a/indra/newview/llpanelprofileclassifieds.cpp
+++ b/indra/newview/llpanelprofileclassifieds.cpp
@@ -93,7 +93,8 @@ public:
return true; // don't block, will fail later
}
- if (nav_type == NAV_TYPE_CLICKED)
+ if (nav_type == NAV_TYPE_CLICKED
+ || nav_type == NAV_TYPE_EXTERNAL)
{
return true;
}
diff --git a/indra/newview/llpanelprofilepicks.cpp b/indra/newview/llpanelprofilepicks.cpp
index 0535036cb0..ff3f654d0e 100644
--- a/indra/newview/llpanelprofilepicks.cpp
+++ b/indra/newview/llpanelprofilepicks.cpp
@@ -74,7 +74,8 @@ public:
return true; // don't block, will fail later
}
- if (nav_type == NAV_TYPE_CLICKED)
+ if (nav_type == NAV_TYPE_CLICKED
+ || nav_type == NAV_TYPE_EXTERNAL)
{
return true;
}
diff --git a/indra/newview/llspatialpartition.cpp b/indra/newview/llspatialpartition.cpp
index a63d46f502..c650513ab8 100644
--- a/indra/newview/llspatialpartition.cpp
+++ b/indra/newview/llspatialpartition.cpp
@@ -830,8 +830,44 @@ void LLSpatialGroup::handleChildAddition(const OctreeNode* parent, OctreeNode* c
assert_states_valid(this);
}
+//virtual
+void LLSpatialGroup::rebound()
+{
+ if (!isDirty())
+ return;
+
+ super::rebound();
+
+ if (mSpatialPartition->mDrawableType == LLPipeline::RENDER_TYPE_CONTROL_AV)
+ {
+ llassert(mSpatialPartition->mPartitionType == LLViewerRegion::PARTITION_CONTROL_AV);
+
+ LLSpatialBridge* bridge = getSpatialPartition()->asBridge();
+ if (bridge &&
+ bridge->mDrawable &&
+ bridge->mDrawable->getVObj() &&
+ bridge->mDrawable->getVObj()->isRoot())
+ {
+ LLControlAvatar* controlAvatar = bridge->mDrawable->getVObj()->getControlAvatar();
+ if (controlAvatar &&
+ controlAvatar->mDrawable &&
+ controlAvatar->mControlAVBridge)
+ {
+ llassert(controlAvatar->mControlAVBridge->mOctree);
+
+ LLSpatialGroup* root = (LLSpatialGroup*)controlAvatar->mControlAVBridge->mOctree->getListener(0);
+ if (this == root)
+ {
+ const LLVector4a* addingExtents = controlAvatar->mDrawable->getSpatialExtents();
+ const LLXformMatrix* currentTransform = bridge->mDrawable->getXform();
+ expandExtents(addingExtents, *currentTransform);
+ }
+ }
+ }
+ }
+}
-void LLSpatialGroup::destroyGLState(bool keep_occlusion)
+void LLSpatialGroup::destroyGLState(bool keep_occlusion)
{
setState(LLSpatialGroup::GEOM_DIRTY | LLSpatialGroup::IMAGE_DIRTY);
diff --git a/indra/newview/llspatialpartition.h b/indra/newview/llspatialpartition.h
index 4214c26391..758e716c00 100644
--- a/indra/newview/llspatialpartition.h
+++ b/indra/newview/llspatialpartition.h
@@ -201,6 +201,7 @@ public:
LL_ALIGN_PREFIX(16)
class LLSpatialGroup : public LLOcclusionCullingGroup
{
+ using super = LLOcclusionCullingGroup;
friend class LLSpatialPartition;
friend class LLOctreeStateCheck;
public:
@@ -333,6 +334,9 @@ public:
virtual void handleDestruction(const TreeNode* node);
virtual void handleChildAddition(const OctreeNode* parent, OctreeNode* child);
+ // LLViewerOctreeGroup
+ virtual void rebound();
+
public:
LL_ALIGN_16(LLVector4a mViewAngle);
LL_ALIGN_16(LLVector4a mLastUpdateViewAngle);
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index 430679943f..d0b76848f7 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -2904,8 +2904,7 @@ void LLStartUp::loadInitialOutfit( const std::string& outfit_folder_name,
// Need to fetch cof contents before we can wear.
if (do_copy)
{
- callAfterCategoryFetch(LLAppearanceMgr::instance().getCOF(),
- boost::bind(&LLAppearanceMgr::wearInventoryCategory, LLAppearanceMgr::getInstance(), cat, do_copy, do_append));
+ callAfterCOFFetch(boost::bind(&LLAppearanceMgr::wearInventoryCategory, LLAppearanceMgr::getInstance(), cat, do_copy, do_append));
}
else
{
diff --git a/indra/newview/llthumbnailctrl.cpp b/indra/newview/llthumbnailctrl.cpp
index 04130fc724..b558c249cb 100644
--- a/indra/newview/llthumbnailctrl.cpp
+++ b/indra/newview/llthumbnailctrl.cpp
@@ -57,7 +57,8 @@ LLThumbnailCtrl::LLThumbnailCtrl(const LLThumbnailCtrl::Params& p)
, mFallbackImagep(p.fallback_image)
, mInteractable(p.interactable())
, mShowLoadingPlaceholder(p.show_loading())
-, mPriority(LLGLTexture::BOOST_PREVIEW)
+, mInited(false)
+, mInitImmediately(true)
{
mLoadingPlaceholderString = LLTrans::getString("texture_loading");
@@ -84,6 +85,10 @@ LLThumbnailCtrl::~LLThumbnailCtrl()
void LLThumbnailCtrl::draw()
{
+ if (!mInited)
+ {
+ initImage();
+ }
LLRect draw_rect = getLocalRect();
if (mBorderVisible)
@@ -171,11 +176,19 @@ void LLThumbnailCtrl::draw()
LLUICtrl::draw();
}
+void LLThumbnailCtrl::setVisible(BOOL visible)
+{
+ if (!visible && mInited)
+ {
+ unloadImage();
+ }
+ LLUICtrl::setVisible(visible);
+}
+
void LLThumbnailCtrl::clearTexture()
{
- mImageAssetID = LLUUID::null;
- mTexturep = nullptr;
- mImagep = nullptr;
+ setValue(LLSD());
+ mInited = true; // nothing to do
}
// virtual
@@ -191,34 +204,55 @@ void LLThumbnailCtrl::setValue(const LLSD& value)
LLUICtrl::setValue(tvalue);
- mImageAssetID = LLUUID::null;
- mTexturep = nullptr;
- mImagep = nullptr;
-
- if (tvalue.isUUID())
- {
+ unloadImage();
+
+ if (mInitImmediately)
+ {
+ initImage();
+ }
+}
+
+BOOL LLThumbnailCtrl::handleHover(S32 x, S32 y, MASK mask)
+{
+ if (mInteractable && getEnabled())
+ {
+ getWindow()->setCursor(UI_CURSOR_HAND);
+ return TRUE;
+ }
+ return LLUICtrl::handleHover(x, y, mask);
+}
+
+void LLThumbnailCtrl::initImage()
+{
+ if (mInited)
+ {
+ return;
+ }
+ mInited = true;
+ LLSD tvalue = getValue();
+
+ if (tvalue.isUUID())
+ {
mImageAssetID = tvalue.asUUID();
if (mImageAssetID.notNull())
{
// Should it support baked textures?
- mTexturep = LLViewerTextureManager::getFetchedTexture(mImageAssetID, FTT_DEFAULT, MIPMAP_YES, LLGLTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
-
- mTexturep->setBoostLevel(mPriority);
+ mTexturep = LLViewerTextureManager::getFetchedTexture(mImageAssetID, FTT_DEFAULT, MIPMAP_YES, LLGLTexture::BOOST_THUMBNAIL);
+
mTexturep->forceToSaveRawImage(0);
-
- S32 desired_draw_width = mTexturep->getWidth();
- S32 desired_draw_height = mTexturep->getHeight();
-
+
+ S32 desired_draw_width = MAX_IMAGE_SIZE;
+ S32 desired_draw_height = MAX_IMAGE_SIZE;
mTexturep->setKnownDrawSize(desired_draw_width, desired_draw_height);
}
- }
+ }
else if (tvalue.isString())
{
mImagep = LLUI::getUIImage(tvalue.asString(), LLGLTexture::BOOST_UI);
if (mImagep)
{
LLViewerFetchedTexture* texture = dynamic_cast<LLViewerFetchedTexture*>(mImagep->getImage().get());
- if(texture)
+ if (texture)
{
mImageAssetID = texture->getID();
}
@@ -226,14 +260,12 @@ void LLThumbnailCtrl::setValue(const LLSD& value)
}
}
-BOOL LLThumbnailCtrl::handleHover(S32 x, S32 y, MASK mask)
+void LLThumbnailCtrl::unloadImage()
{
- if (mInteractable && getEnabled())
- {
- getWindow()->setCursor(UI_CURSOR_HAND);
- return TRUE;
- }
- return LLUICtrl::handleHover(x, y, mask);
+ mImageAssetID = LLUUID::null;
+ mTexturep = nullptr;
+ mImagep = nullptr;
+ mInited = false;
}
diff --git a/indra/newview/llthumbnailctrl.h b/indra/newview/llthumbnailctrl.h
index 686603b373..f84a583271 100644
--- a/indra/newview/llthumbnailctrl.h
+++ b/indra/newview/llthumbnailctrl.h
@@ -64,17 +64,24 @@ public:
virtual ~LLThumbnailCtrl();
virtual void draw() override;
+ void setVisible(BOOL visible) override;
virtual void setValue(const LLSD& value ) override;
+ void setInitImmediately(bool val) { mInitImmediately = val; }
void clearTexture();
virtual BOOL handleHover(S32 x, S32 y, MASK mask) override;
+
+protected:
+ void initImage();
+ void unloadImage();
private:
- S32 mPriority;
bool mBorderVisible;
bool mInteractable;
bool mShowLoadingPlaceholder;
+ bool mInited;
+ bool mInitImmediately;
std::string mLoadingPlaceholderString;
LLUUID mImageAssetID;
LLViewBorder* mBorder;
diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp
index 74e0fe056e..8353d4d1d7 100644
--- a/indra/newview/llviewerfloaterreg.cpp
+++ b/indra/newview/llviewerfloaterreg.cpp
@@ -195,7 +195,11 @@ public:
std::string fl_name = params[0].asString();
- if (nav_type == NAV_TYPE_CLICKED)
+ // External browsers explicitly ask user about opening links
+ // so treat "external" same as "clicked" in this case,
+ // despite it being treated as untrusted.
+ if (nav_type == NAV_TYPE_CLICKED
+ || nav_type == NAV_TYPE_EXTERNAL)
{
const std::list<std::string> blacklist_clicked = {
"camera_presets",
diff --git a/indra/newview/llviewerinput.cpp b/indra/newview/llviewerinput.cpp
index 7207d6c6ba..97e180df71 100644
--- a/indra/newview/llviewerinput.cpp
+++ b/indra/newview/llviewerinput.cpp
@@ -991,34 +991,50 @@ LLViewerInput::LLViewerInput()
}
}
+LLViewerInput::~LLViewerInput()
+{
+
+}
+
// static
-BOOL LLViewerInput::modeFromString(const std::string& string, S32 *mode)
+bool LLViewerInput::modeFromString(const std::string& string, S32 *mode)
{
- if (string == "FIRST_PERSON")
+ if (string.empty())
+ {
+ return false;
+ }
+
+ std::string cmp_string = string;
+ LLStringUtil::toLower(cmp_string);
+ if (cmp_string == "first_person")
{
*mode = MODE_FIRST_PERSON;
- return TRUE;
+ return true;
}
- else if (string == "THIRD_PERSON")
+ else if (cmp_string == "third_person")
{
*mode = MODE_THIRD_PERSON;
- return TRUE;
+ return true;
}
- else if (string == "EDIT_AVATAR")
+ else if (cmp_string == "edit_avatar")
{
*mode = MODE_EDIT_AVATAR;
- return TRUE;
+ return true;
}
- else if (string == "SITTING")
+ else if (cmp_string == "sitting")
{
*mode = MODE_SITTING;
- return TRUE;
- }
- else
- {
- *mode = MODE_THIRD_PERSON;
- return FALSE;
+ return true;
}
+
+ S32 val = atoi(string.c_str());
+ if (val >= 0 && val < MODE_COUNT)
+ {
+ *mode = val;
+ return true;
+ }
+
+ return false;
}
// static
@@ -1222,6 +1238,7 @@ BOOL LLViewerInput::bindKey(const S32 mode, const KEY key, const MASK mask, cons
bind.mKey = key;
bind.mMask = mask;
bind.mFunction = function;
+ bind.mFunctionName = function_name;
if (result->mIsGlobal)
{
@@ -1303,6 +1320,7 @@ BOOL LLViewerInput::bindMouse(const S32 mode, const EMouseClickType mouse, const
bind.mMouse = mouse;
bind.mMask = mask;
bind.mFunction = function;
+ bind.mFunctionName = function_name;
if (result->mIsGlobal)
{
@@ -1801,3 +1819,49 @@ bool LLViewerInput::isMouseBindUsed(const EMouseClickType mouse, const MASK mask
}
return false;
}
+
+std::string LLViewerInput::getKeyBindingAsString(const std::string& mode, const std::string& control) const
+{
+ S32 keyboard_mode;
+ if (!modeFromString(mode, &keyboard_mode))
+ {
+ keyboard_mode = getMode();
+ }
+
+ std::string res;
+ bool needs_separator = false;
+
+ // keybindings are sorted from having most mask to no mask (from restrictive to less restrictive),
+ // but it's visually better to present this data in reverse
+ std::vector<LLKeyboardBinding>::const_reverse_iterator iter_key = mKeyBindings[keyboard_mode].rbegin();
+ while (iter_key != mKeyBindings[keyboard_mode].rend())
+ {
+ if (iter_key->mFunctionName == control)
+ {
+ if (needs_separator)
+ {
+ res.append(" | ");
+ }
+ res.append(LLKeyboard::stringFromAccelerator(iter_key->mMask, iter_key->mKey));
+ needs_separator = true;
+ }
+ iter_key++;
+ }
+
+ std::vector<LLMouseBinding>::const_reverse_iterator iter_mouse = mMouseBindings[keyboard_mode].rbegin();
+ while (iter_mouse != mMouseBindings[keyboard_mode].rend())
+ {
+ if (iter_mouse->mFunctionName == control)
+ {
+ if (needs_separator)
+ {
+ res.append(" | ");
+ }
+ res.append(LLKeyboard::stringFromAccelerator(iter_mouse->mMask, iter_mouse->mMouse));
+ needs_separator = true;
+ }
+ iter_mouse++;
+ }
+
+ return res;
+}
diff --git a/indra/newview/llviewerinput.h b/indra/newview/llviewerinput.h
index 52e95e2168..41e289ac1d 100644
--- a/indra/newview/llviewerinput.h
+++ b/indra/newview/llviewerinput.h
@@ -28,12 +28,13 @@
#define LL_LLVIEWERINPUT_H
#include "llkeyboard.h" // For EKeystate
-#include "llinitparam.h"
const S32 MAX_KEY_BINDINGS = 128; // was 60
const S32 keybindings_xml_version = 1;
const std::string script_mouse_handler_name = "script_trigger_lbutton";
+class LLWindow;
+
class LLNamedFunction
{
public:
@@ -51,6 +52,7 @@ public:
MASK mMask;
LLKeyFunc mFunction;
+ std::string mFunctionName;
};
class LLMouseBinding
@@ -60,6 +62,7 @@ public:
MASK mMask;
LLKeyFunc mFunction;
+ std::string mFunctionName;
};
@@ -72,11 +75,7 @@ typedef enum e_keyboard_mode
MODE_COUNT
} EKeyboardMode;
-class LLWindow;
-
-void bind_keyboard_functions();
-
-class LLViewerInput
+class LLViewerInput : public LLKeyBindingToStringHandler
{
public:
struct KeyBinding : public LLInitParam::Block<KeyBinding>
@@ -107,6 +106,7 @@ public:
};
LLViewerInput();
+ virtual ~LLViewerInput();
BOOL handleKey(KEY key, MASK mask, BOOL repeated);
BOOL handleKeyUp(KEY key, MASK mask);
@@ -121,7 +121,7 @@ public:
S32 loadBindingsXML(const std::string& filename); // returns number bound, 0 on error
EKeyboardMode getMode() const;
- static BOOL modeFromString(const std::string& string, S32 *mode); // False on failure
+ static bool modeFromString(const std::string& string, S32 *mode); // False on failure
static BOOL mouseFromString(const std::string& string, EMouseClickType *mode);// False on failure
bool scanKey(KEY key,
@@ -136,6 +136,9 @@ public:
bool isMouseBindUsed(const EMouseClickType mouse, const MASK mask, const S32 mode) const;
bool isLMouseHandlingDefault(const S32 mode) const { return mLMouseDefaultHandling[mode]; }
+ // inherited from LLKeyBindingToStringHandler
+ virtual std::string getKeyBindingAsString(const std::string& mode, const std::string& control) const override;
+
private:
bool scanKey(const std::vector<LLKeyboardBinding> &binding,
S32 binding_count,
diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp
index 5ee613d49d..3e3a574988 100644
--- a/indra/newview/llviewerinventory.cpp
+++ b/indra/newview/llviewerinventory.cpp
@@ -232,9 +232,29 @@ LLLocalizedInventoryItemsDictionary::LLLocalizedInventoryItemsDictionary()
class LLInventoryHandler : public LLCommandHandler
{
public:
- // requires trusted browser to trigger
- LLInventoryHandler() : LLCommandHandler("inventory", UNTRUSTED_CLICK_ONLY) { }
-
+ LLInventoryHandler() : LLCommandHandler("inventory", UNTRUSTED_THROTTLE) { }
+
+ virtual bool canHandleUntrusted(
+ const LLSD& params,
+ const LLSD& query_map,
+ LLMediaCtrl* web,
+ const std::string& nav_type)
+ {
+ if (params.size() < 1)
+ {
+ return true; // don't block, will fail later
+ }
+
+ if (nav_type == NAV_TYPE_CLICKED
+ || nav_type == NAV_TYPE_EXTERNAL)
+ {
+ // NAV_TYPE_EXTERNAL will be throttled
+ return true;
+ }
+
+ return false;
+ }
+
bool handle(const LLSD& params,
const LLSD& query_map,
const std::string& grid,
@@ -1151,14 +1171,29 @@ void create_inventory_item(
gAgent.sendReliableMessage();
}
+void create_inventory_callingcard_callback(LLPointer<LLInventoryCallback> cb,
+ const LLUUID &parent,
+ const LLUUID &avatar_id,
+ const LLAvatarName &av_name)
+{
+ std::string item_desc = avatar_id.asString();
+ create_inventory_item(gAgent.getID(),
+ gAgent.getSessionID(),
+ parent,
+ LLTransactionID::tnull,
+ av_name.getUserName(),
+ item_desc,
+ LLAssetType::AT_CALLINGCARD,
+ LLInventoryType::IT_CALLINGCARD,
+ NO_INV_SUBTYPE,
+ PERM_MOVE | PERM_TRANSFER,
+ cb);
+}
+
void create_inventory_callingcard(const LLUUID& avatar_id, const LLUUID& parent /*= LLUUID::null*/, LLPointer<LLInventoryCallback> cb/*=NULL*/)
{
- std::string item_desc = avatar_id.asString();
LLAvatarName av_name;
- LLAvatarNameCache::get(avatar_id, &av_name);
- create_inventory_item(gAgent.getID(), gAgent.getSessionID(),
- parent, LLTransactionID::tnull, av_name.getUserName(), item_desc, LLAssetType::AT_CALLINGCARD,
- LLInventoryType::IT_CALLINGCARD, NO_INV_SUBTYPE, PERM_MOVE | PERM_TRANSFER, cb);
+ LLAvatarNameCache::get(avatar_id, boost::bind(&create_inventory_callingcard_callback, cb, parent, _1, _2));
}
void create_inventory_wearable(const LLUUID& agent_id, const LLUUID& session_id,
diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp
index 2bcd0858d3..d4346ee2d9 100644
--- a/indra/newview/llviewerobject.cpp
+++ b/indra/newview/llviewerobject.cpp
@@ -3485,6 +3485,12 @@ void LLViewerObject::doInventoryCallback()
void LLViewerObject::removeInventory(const LLUUID& item_id)
{
+ // close associated floater properties
+ LLSD params;
+ params["id"] = item_id;
+ params["object"] = mID;
+ LLFloaterReg::hideInstance("item_properties", params);
+
LLMessageSystem* msg = gMessageSystem;
msg->newMessageFast(_PREHASH_RemoveTaskInventory);
msg->nextBlockFast(_PREHASH_AgentData);
diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp
index 4a1cf0109e..ec6f2c848f 100644
--- a/indra/newview/llviewertexture.cpp
+++ b/indra/newview/llviewertexture.cpp
@@ -93,7 +93,8 @@ S32 LLViewerTexture::sMaxSculptRez = 128; //max sculpt image size
const S32 MAX_CACHED_RAW_IMAGE_AREA = 64 * 64;
const S32 MAX_CACHED_RAW_SCULPT_IMAGE_AREA = LLViewerTexture::sMaxSculptRez * LLViewerTexture::sMaxSculptRez;
const S32 MAX_CACHED_RAW_TERRAIN_IMAGE_AREA = 128 * 128;
-const S32 DEFAULT_ICON_DIMENTIONS = 32;
+const S32 DEFAULT_ICON_DIMENSIONS = 32;
+const S32 DEFAULT_THUMBNAIL_DIMENSIONS = 256;
U32 LLViewerTexture::sMinLargeImageSize = 65536; //256 * 256.
U32 LLViewerTexture::sMaxSmallImageSize = MAX_CACHED_RAW_IMAGE_AREA;
bool LLViewerTexture::sFreezeImageUpdates = false;
@@ -665,7 +666,8 @@ void LLViewerTexture::setBoostLevel(S32 level)
mBoostLevel = level;
if(mBoostLevel != LLViewerTexture::BOOST_NONE &&
mBoostLevel != LLViewerTexture::BOOST_SELECTED &&
- mBoostLevel != LLViewerTexture::BOOST_ICON)
+ mBoostLevel != LLViewerTexture::BOOST_ICON &&
+ mBoostLevel != LLViewerTexture::BOOST_THUMBNAIL)
{
setNoDelete();
}
@@ -1180,8 +1182,19 @@ void LLViewerFetchedTexture::loadFromFastCache()
{
// Shouldn't do anything usefull since texures in fast cache are 16x16,
// it is here in case fast cache changes.
- S32 expected_width = mKnownDrawWidth > 0 ? mKnownDrawWidth : DEFAULT_ICON_DIMENTIONS;
- S32 expected_height = mKnownDrawHeight > 0 ? mKnownDrawHeight : DEFAULT_ICON_DIMENTIONS;
+ S32 expected_width = mKnownDrawWidth > 0 ? mKnownDrawWidth : DEFAULT_ICON_DIMENSIONS;
+ S32 expected_height = mKnownDrawHeight > 0 ? mKnownDrawHeight : DEFAULT_ICON_DIMENSIONS;
+ if (mRawImage && (mRawImage->getWidth() > expected_width || mRawImage->getHeight() > expected_height))
+ {
+ // scale oversized icon, no need to give more work to gl
+ mRawImage->scale(expected_width, expected_height);
+ }
+ }
+
+ if (mBoostLevel == LLGLTexture::BOOST_THUMBNAIL)
+ {
+ S32 expected_width = mKnownDrawWidth > 0 ? mKnownDrawWidth : DEFAULT_THUMBNAIL_DIMENSIONS;
+ S32 expected_height = mKnownDrawHeight > 0 ? mKnownDrawHeight : DEFAULT_THUMBNAIL_DIMENSIONS;
if (mRawImage && (mRawImage->getWidth() > expected_width || mRawImage->getHeight() > expected_height))
{
// scale oversized icon, no need to give more work to gl
@@ -1682,7 +1695,7 @@ void LLViewerFetchedTexture::processTextureStats()
{
mDesiredDiscardLevel = 0;
}
- else if (mDontDiscard && mBoostLevel == LLGLTexture::BOOST_ICON)
+ else if (mDontDiscard && (mBoostLevel == LLGLTexture::BOOST_ICON || mBoostLevel == LLGLTexture::BOOST_THUMBNAIL))
{
if (mFullWidth > MAX_IMAGE_SIZE_DEFAULT || mFullHeight > MAX_IMAGE_SIZE_DEFAULT)
{
@@ -1916,8 +1929,20 @@ bool LLViewerFetchedTexture::updateFetch()
if (mBoostLevel == LLGLTexture::BOOST_ICON)
{
- S32 expected_width = mKnownDrawWidth > 0 ? mKnownDrawWidth : DEFAULT_ICON_DIMENTIONS;
- S32 expected_height = mKnownDrawHeight > 0 ? mKnownDrawHeight : DEFAULT_ICON_DIMENTIONS;
+ S32 expected_width = mKnownDrawWidth > 0 ? mKnownDrawWidth : DEFAULT_ICON_DIMENSIONS;
+ S32 expected_height = mKnownDrawHeight > 0 ? mKnownDrawHeight : DEFAULT_ICON_DIMENSIONS;
+ if (mRawImage && (mRawImage->getWidth() > expected_width || mRawImage->getHeight() > expected_height))
+ {
+ // scale oversized icon, no need to give more work to gl
+ // since we got mRawImage from thread worker and image may be in use (ex: writing cache), make a copy
+ mRawImage = mRawImage->scaled(expected_width, expected_height);
+ }
+ }
+
+ if (mBoostLevel == LLGLTexture::BOOST_THUMBNAIL)
+ {
+ S32 expected_width = mKnownDrawWidth > 0 ? mKnownDrawWidth : DEFAULT_THUMBNAIL_DIMENSIONS;
+ S32 expected_height = mKnownDrawHeight > 0 ? mKnownDrawHeight : DEFAULT_THUMBNAIL_DIMENSIONS;
if (mRawImage && (mRawImage->getWidth() > expected_width || mRawImage->getHeight() > expected_height))
{
// scale oversized icon, no need to give more work to gl
@@ -2652,7 +2677,9 @@ LLImageRaw* LLViewerFetchedTexture::reloadRawImage(S8 discard_level)
if(mSavedRawDiscardLevel >= 0 && mSavedRawDiscardLevel <= discard_level)
{
- if (mSavedRawDiscardLevel != discard_level && mBoostLevel != BOOST_ICON)
+ if (mSavedRawDiscardLevel != discard_level
+ && mBoostLevel != BOOST_ICON
+ && mBoostLevel != BOOST_THUMBNAIL)
{
mRawImage = new LLImageRaw(getWidth(discard_level), getHeight(discard_level), getComponents());
mRawImage->copy(getSavedRawImage());
@@ -2759,8 +2786,22 @@ void LLViewerFetchedTexture::setCachedRawImage(S32 discard_level, LLImageRaw* im
{
if (mBoostLevel == LLGLTexture::BOOST_ICON)
{
- S32 expected_width = mKnownDrawWidth > 0 ? mKnownDrawWidth : DEFAULT_ICON_DIMENTIONS;
- S32 expected_height = mKnownDrawHeight > 0 ? mKnownDrawHeight : DEFAULT_ICON_DIMENTIONS;
+ S32 expected_width = mKnownDrawWidth > 0 ? mKnownDrawWidth : DEFAULT_ICON_DIMENSIONS;
+ S32 expected_height = mKnownDrawHeight > 0 ? mKnownDrawHeight : DEFAULT_ICON_DIMENSIONS;
+ if (mRawImage->getWidth() > expected_width || mRawImage->getHeight() > expected_height)
+ {
+ mCachedRawImage = new LLImageRaw(expected_width, expected_height, imageraw->getComponents());
+ mCachedRawImage->copyScaled(imageraw);
+ }
+ else
+ {
+ mCachedRawImage = imageraw;
+ }
+ }
+ else if (mBoostLevel == LLGLTexture::BOOST_THUMBNAIL)
+ {
+ S32 expected_width = mKnownDrawWidth > 0 ? mKnownDrawWidth : DEFAULT_THUMBNAIL_DIMENSIONS;
+ S32 expected_height = mKnownDrawHeight > 0 ? mKnownDrawHeight : DEFAULT_THUMBNAIL_DIMENSIONS;
if (mRawImage->getWidth() > expected_width || mRawImage->getHeight() > expected_height)
{
mCachedRawImage = new LLImageRaw(expected_width, expected_height, imageraw->getComponents());
@@ -2867,8 +2908,22 @@ void LLViewerFetchedTexture::saveRawImage()
mSavedRawDiscardLevel = mRawDiscardLevel;
if (mBoostLevel == LLGLTexture::BOOST_ICON)
{
- S32 expected_width = mKnownDrawWidth > 0 ? mKnownDrawWidth : DEFAULT_ICON_DIMENTIONS;
- S32 expected_height = mKnownDrawHeight > 0 ? mKnownDrawHeight : DEFAULT_ICON_DIMENTIONS;
+ S32 expected_width = mKnownDrawWidth > 0 ? mKnownDrawWidth : DEFAULT_ICON_DIMENSIONS;
+ S32 expected_height = mKnownDrawHeight > 0 ? mKnownDrawHeight : DEFAULT_ICON_DIMENSIONS;
+ if (mRawImage->getWidth() > expected_width || mRawImage->getHeight() > expected_height)
+ {
+ mSavedRawImage = new LLImageRaw(expected_width, expected_height, mRawImage->getComponents());
+ mSavedRawImage->copyScaled(mRawImage);
+ }
+ else
+ {
+ mSavedRawImage = new LLImageRaw(mRawImage->getData(), mRawImage->getWidth(), mRawImage->getHeight(), mRawImage->getComponents());
+ }
+ }
+ else if (mBoostLevel == LLGLTexture::BOOST_THUMBNAIL)
+ {
+ S32 expected_width = mKnownDrawWidth > 0 ? mKnownDrawWidth : DEFAULT_THUMBNAIL_DIMENSIONS;
+ S32 expected_height = mKnownDrawHeight > 0 ? mKnownDrawHeight : DEFAULT_THUMBNAIL_DIMENSIONS;
if (mRawImage->getWidth() > expected_width || mRawImage->getHeight() > expected_height)
{
mSavedRawImage = new LLImageRaw(expected_width, expected_height, mRawImage->getComponents());
diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp
index 9ee6f88183..f898fb7142 100644
--- a/indra/newview/llviewertexturelist.cpp
+++ b/indra/newview/llviewertexturelist.cpp
@@ -72,7 +72,7 @@ LLViewerTextureList gTextureList;
ETexListType get_element_type(S32 priority)
{
- return (priority == LLViewerFetchedTexture::BOOST_ICON) ? TEX_LIST_SCALE : TEX_LIST_STANDARD;
+ return (priority == LLViewerFetchedTexture::BOOST_ICON || priority == LLViewerFetchedTexture::BOOST_THUMBNAIL) ? TEX_LIST_SCALE : TEX_LIST_STANDARD;
}
///////////////////////////////////////////////////////////////////////////////
@@ -492,7 +492,8 @@ LLViewerFetchedTexture* LLViewerTextureList::getImageFromUrl(const std::string&
{
imagep->dontDiscard();
}
- if (boost_priority == LLViewerFetchedTexture::BOOST_ICON)
+ if (boost_priority == LLViewerFetchedTexture::BOOST_ICON
+ || boost_priority == LLViewerFetchedTexture::BOOST_THUMBNAIL)
{
// Agent and group Icons are downloadable content, nothing manages
// icon deletion yet, so they should not persist
@@ -604,7 +605,8 @@ LLViewerFetchedTexture* LLViewerTextureList::createImage(const LLUUID &image_id,
{
imagep->dontDiscard();
}
- if (boost_priority == LLViewerFetchedTexture::BOOST_ICON)
+ if (boost_priority == LLViewerFetchedTexture::BOOST_ICON
+ || boost_priority == LLViewerFetchedTexture::BOOST_THUMBNAIL)
{
// Agent and group Icons are downloadable content, nothing manages
// icon deletion yet, so they should not persist.
@@ -1510,8 +1512,9 @@ LLUIImagePtr LLUIImageList::loadUIImage(LLViewerFetchedTexture* imagep, const st
LLUIImagePtr new_imagep = new LLUIImage(name, imagep);
new_imagep->setScaleStyle(scale_style);
- if (imagep->getBoostLevel() != LLGLTexture::BOOST_ICON &&
- imagep->getBoostLevel() != LLGLTexture::BOOST_PREVIEW)
+ if (imagep->getBoostLevel() != LLGLTexture::BOOST_ICON
+ && imagep->getBoostLevel() != LLGLTexture::BOOST_THUMBNAIL
+ && imagep->getBoostLevel() != LLGLTexture::BOOST_PREVIEW)
{
// Don't add downloadable content into this list
// all UI images are non-deletable and list does not support deletion
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index 35e45c6cd9..fee00eb6f4 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -5233,6 +5233,9 @@ U32 LLVOAvatar::renderRigid()
return 0;
}
+ bool should_alpha_mask = shouldAlphaMask();
+ LLGLState test(GL_ALPHA_TEST, should_alpha_mask);
+
if (isTextureVisible(TEX_EYES_BAKED) || (getOverallAppearance() == AOA_JELLYDOLL && !isControlAvatar()) || isUIAvatar())
{
LLViewerJoint* eyeball_left = getViewerJoint(MESH_ID_EYEBALL_LEFT);
diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp
index 6e5b387b36..7b24b9ee02 100644
--- a/indra/newview/llvoavatarself.cpp
+++ b/indra/newview/llvoavatarself.cpp
@@ -960,7 +960,7 @@ void LLVOAvatarSelf::updateRegion(LLViewerRegion *regionp)
}
//--------------------------------------------------------------------
-// draw tractor beam when editing objects
+// draw tractor (selection) beam when editing objects
//--------------------------------------------------------------------
//virtual
void LLVOAvatarSelf::idleUpdateTractorBeam()
@@ -1248,6 +1248,27 @@ BOOL LLVOAvatarSelf::detachObject(LLViewerObject *viewer_object)
return FALSE;
}
+bool LLVOAvatarSelf::hasAttachmentsInTrash()
+{
+ const LLUUID trash_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_TRASH);
+
+ for (attachment_map_t::const_iterator iter = mAttachmentPoints.begin(); iter != mAttachmentPoints.end(); ++iter)
+ {
+ LLViewerJointAttachment *attachment = iter->second;
+ for (LLViewerJointAttachment::attachedobjs_vec_t::iterator attachment_iter = attachment->mAttachedObjects.begin();
+ attachment_iter != attachment->mAttachedObjects.end();
+ ++attachment_iter)
+ {
+ LLViewerObject *attached_object = attachment_iter->get();
+ if (attached_object && gInventory.isObjectDescendentOf(attached_object->getAttachmentItemID(), trash_id))
+ {
+ return true;
+ }
+ }
+ }
+ return false;
+}
+
// static
BOOL LLVOAvatarSelf::detachAttachmentIntoInventory(const LLUUID &item_id)
{
@@ -2799,12 +2820,14 @@ BOOL LLVOAvatarSelf::needsRenderBeam()
LLTool *tool = LLToolMgr::getInstance()->getCurrentTool();
BOOL is_touching_or_grabbing = (tool == LLToolGrab::getInstance() && LLToolGrab::getInstance()->isEditing());
- if (LLToolGrab::getInstance()->getEditingObject() &&
- LLToolGrab::getInstance()->getEditingObject()->isAttachment())
- {
- // don't render selection beam on hud objects
- is_touching_or_grabbing = FALSE;
- }
+ LLViewerObject* objp = LLToolGrab::getInstance()->getEditingObject();
+ if (objp // might need to be "!objp ||" instead of "objp &&".
+ && (objp->isAttachment() || objp->isAvatar()))
+ {
+ // don't render grab tool's selection beam on hud objects,
+ // attachments or avatars
+ is_touching_or_grabbing = FALSE;
+ }
return is_touching_or_grabbing || (getAttachmentState() & AGENT_STATE_EDITING && LLSelectMgr::getInstance()->shouldShowSelection());
}
diff --git a/indra/newview/llvoavatarself.h b/indra/newview/llvoavatarself.h
index 279dbd61a6..6384e2b844 100644
--- a/indra/newview/llvoavatarself.h
+++ b/indra/newview/llvoavatarself.h
@@ -289,6 +289,8 @@ public:
/*virtual*/ BOOL detachObject(LLViewerObject *viewer_object);
static BOOL detachAttachmentIntoInventory(const LLUUID& item_id);
+ bool hasAttachmentsInTrash();
+
//--------------------------------------------------------------------
// HUDs
//--------------------------------------------------------------------
diff --git a/indra/newview/skins/default/xui/da/panel_main_inventory.xml b/indra/newview/skins/default/xui/da/panel_main_inventory.xml
index d6406939c1..37a17f4bd6 100644
--- a/indra/newview/skins/default/xui/da/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/da/panel_main_inventory.xml
@@ -9,20 +9,17 @@
<text name="ItemcountText">
Genstande:
</text>
- <filter_editor label="Filter" name="inventory search editor"/>
- <tab_container name="inventory filter tabs">
- <inventory_panel label="Alle ting" name="All Items"/>
- <recent_inventory_panel label="Nye ting" name="Recent Items"/>
- </tab_container>
- <layout_stack name="bottom_panel">
- <layout_panel name="options_gear_btn_panel">
- <button name="options_gear_btn" tool_tip="Vis yderligere valg"/>
- </layout_panel>
- <layout_panel name="add_btn_panel">
- <button name="add_btn" tool_tip="Tilføj ny genstand"/>
- </layout_panel>
- <layout_panel name="trash_btn_panel">
- <dnd_button name="trash_btn" tool_tip="Fjern valgte genstand"/>
- </layout_panel>
- </layout_stack>
+ <layout_stack name="top_stack">
+ <layout_panel name="filter_layout_panel">
+ <filter_editor label="Filter" name="inventory search editor"/>
+ <button name="options_gear_btn" tool_tip="Vis yderligere valg"/>
+ <button name="add_btn" tool_tip="Tilføj ny genstand"/>
+ </layout_panel>
+ </layout_stack>
+ <panel name="default_inventory_panel">
+ <tab_container name="inventory filter tabs">
+ <inventory_panel label="Alle ting" name="All Items"/>
+ <recent_inventory_panel label="Nye ting" name="Recent Items"/>
+ </tab_container>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_main_inventory.xml b/indra/newview/skins/default/xui/de/panel_main_inventory.xml
index 175f6e1003..072bd99393 100644
--- a/indra/newview/skins/default/xui/de/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/de/panel_main_inventory.xml
@@ -13,27 +13,24 @@
<text name="ItemcountText">
Objekte:
</text>
- <filter_editor label="Suchtext eingeben" name="inventory search editor"/>
- <combo_box name="search_type">
- <item label="Name" name="Name" value="search_by_name"/>
- <item label="Ersteller" name="Creator" value="search_by_creator"/>
- <item label="Beschreibung" name="Description" value="search_by_description"/>
- <item label="UUID" name="UUID" value="search_by_UUID"/>
- </combo_box>
- <tab_container name="inventory filter tabs">
- <inventory_panel label="MEIN INVENTAR" name="All Items"/>
- <recent_inventory_panel label="AKTUELL" name="Recent Items"/>
- <inventory_panel label="GETRAGEN" name="Worn Items"/>
- </tab_container>
- <layout_stack name="bottom_panel">
- <layout_panel name="options_gear_btn_panel">
- <menu_button name="options_gear_btn" tool_tip="Zusätzliche Optionen anzeigen"/>
- </layout_panel>
- <layout_panel name="add_btn_panel">
- <button name="add_btn" tool_tip="Neues Objekt hinzufügen"/>
- </layout_panel>
- <layout_panel name="trash_btn_panel">
- <dnd_button name="trash_btn" tool_tip="Auswahl löschen"/>
- </layout_panel>
- </layout_stack>
+ <layout_stack name="top_stack">
+ <layout_panel name="filter_layout_panel">
+ <combo_box name="search_type">
+ <item label="Name" name="Name" value="search_by_name"/>
+ <item label="Ersteller" name="Creator" value="search_by_creator"/>
+ <item label="Beschreibung" name="Description" value="search_by_description"/>
+ <item label="UUID" name="UUID" value="search_by_UUID"/>
+ </combo_box>
+ <filter_editor label="Suchtext eingeben" name="inventory search editor"/>
+ <menu_button name="options_gear_btn" tool_tip="Zusätzliche Optionen anzeigen"/>
+ <button name="add_btn" tool_tip="Neues Objekt hinzufügen"/>
+ </layout_panel>
+ </layout_stack>
+ <panel name="default_inventory_panel">
+ <tab_container name="inventory filter tabs">
+ <inventory_panel label="MEIN INVENTAR" name="All Items"/>
+ <recent_inventory_panel label="AKTUELL" name="Recent Items"/>
+ <inventory_panel label="GETRAGEN" name="Worn Items"/>
+ </tab_container>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/en/menu_inventory.xml b/indra/newview/skins/default/xui/en/menu_inventory.xml
index 3a8f360e2d..0295ef8ccd 100644
--- a/indra/newview/skins/default/xui/en/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/en/menu_inventory.xml
@@ -565,6 +565,14 @@
layout="topleft"
name="Gesture Separator" />
<menu_item_call
+ label="Play"
+ layout="topleft"
+ name="PlayGesture">
+ <menu_item_call.on_click
+ function="Inventory.DoToSelected"
+ parameter="play" />
+ </menu_item_call>
+ <menu_item_call
label="Activate"
layout="topleft"
name="Activate">
diff --git a/indra/newview/skins/default/xui/en/panel_main_inventory.xml b/indra/newview/skins/default/xui/en/panel_main_inventory.xml
index f7a9c552cc..4aadc0591c 100644
--- a/indra/newview/skins/default/xui/en/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/en/panel_main_inventory.xml
@@ -47,7 +47,8 @@
top_pad="10"
left="2"
right="-4"
- orientation="horizontal">
+ orientation="horizontal"
+ name="top_stack">
<layout_panel
border="false"
bevel_style="in"
@@ -101,7 +102,8 @@
user_resize="false"
height="25"
width="381"
- visible="true">
+ visible="true"
+ name="filter_layout_panel">
<combo_box
height="23"
layout="topleft"
diff --git a/indra/newview/skins/default/xui/en/panel_region_environment.xml b/indra/newview/skins/default/xui/en/panel_region_environment.xml
index edf1e1efd4..0b3639f779 100644
--- a/indra/newview/skins/default/xui/en/panel_region_environment.xml
+++ b/indra/newview/skins/default/xui/en/panel_region_environment.xml
@@ -259,7 +259,7 @@
follows="left|top"
layout="topleft"
height="24"
- width="52"
+ width="53"
left_delta="2"
top_pad="1"
halign="right"
@@ -271,7 +271,7 @@
follows="left|top"
enabled="false"
top_delta="3"
- left_pad="21"
+ left_pad="20"
height="20"
layout="topleft"
name="edt_invname_alt1"
@@ -305,7 +305,7 @@
follows="left|top"
layout="topleft"
height="24"
- width="52"
+ width="53"
left_delta="2"
top_pad="1"
halign="right"
@@ -317,7 +317,7 @@
follows="left|top"
enabled="false"
top_delta="3"
- left_pad="21"
+ left_pad="20"
height="20"
layout="topleft"
name="edt_invname_alt2"
@@ -351,7 +351,7 @@
follows="left|top"
layout="topleft"
height="25"
- width="52"
+ width="53"
left_delta="2"
top_pad="1"
halign="right"
@@ -363,7 +363,7 @@
follows="left|top"
enabled="false"
top_delta="3"
- left_pad="21"
+ left_pad="20"
height="20"
layout="topleft"
name="edt_invname_alt3"
@@ -460,7 +460,7 @@
follows="left|top"
layout="topleft"
height="12"
- width="52"
+ width="53"
left_delta="2"
top_pad="2"
halign="right"
@@ -477,7 +477,7 @@
mouse_opaque="false"
visible="true"
top_delta="-3"
- left_pad="2"/>
+ left_pad="1"/>
<line_editor
follows="left|top"
enabled="false"
@@ -516,7 +516,7 @@
follows="left|top"
layout="topleft"
height="12"
- width="52"
+ width="53"
left_delta="2"
top_pad="2"
halign="right"
@@ -533,7 +533,7 @@
mouse_opaque="false"
visible="true"
top_delta="-3"
- left_pad="2"/>
+ left_pad="1"/>
<line_editor
follows="left|top"
enabled="false"
diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
index affdd18c9b..3fbb5bc7e8 100644
--- a/indra/newview/skins/default/xui/en/strings.xml
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -2864,7 +2864,7 @@ If you continue to receive this message, please contact Second Life support for
<string name="GroupMoneyBalance">Balance</string>
<string name="GroupMoneyCredits">Credits</string>
<string name="GroupMoneyDebits">Debits</string>
- <string name="GroupMoneyDate">[weekday,datetime,utc] [mth,datetime,utc] [day,datetime,utc], [year,datetime,utc]</string>
+ <string name="GroupMoneyStartDate">Transactions since [weekday,datetime,utc] [mth,datetime,utc] [day,datetime,utc], [year,datetime,utc]</string>
<!-- Viewer menu -->
<string name="AcquiredItems">Acquired Items</string>
diff --git a/indra/newview/skins/default/xui/es/panel_main_inventory.xml b/indra/newview/skins/default/xui/es/panel_main_inventory.xml
index bf1205046b..a1a88b095e 100644
--- a/indra/newview/skins/default/xui/es/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/es/panel_main_inventory.xml
@@ -13,27 +13,24 @@
<text name="ItemcountText">
Ítems:
</text>
- <filter_editor label="Ingresar texto de búsqueda" name="inventory search editor"/>
- <combo_box name="search_type">
- <item label="Nombre" name="Name" value="search_by_name"/>
- <item label="Creador" name="Creator" value="search_by_creator"/>
- <item label="Descripción" name="Description" value="search_by_description"/>
- <item label="UUID" name="UUID" value="search_by_UUID"/>
- </combo_box>
- <tab_container name="inventory filter tabs">
- <inventory_panel label="Todos los ítems" name="All Items"/>
- <recent_inventory_panel label="Ítems recientes" name="Recent Items"/>
- <inventory_panel label="(VESTIMENTA)" name="Worn Items"/>
- </tab_container>
- <layout_stack name="bottom_panel">
- <layout_panel name="options_gear_btn_panel">
- <menu_button name="options_gear_btn" tool_tip="Ver más opciones"/>
- </layout_panel>
- <layout_panel name="add_btn_panel">
- <button name="add_btn" tool_tip="Añadir un ítem nuevo"/>
- </layout_panel>
- <layout_panel name="trash_btn_panel">
- <dnd_button name="trash_btn" tool_tip="Quitar el ítem seleccionado"/>
- </layout_panel>
- </layout_stack>
+ <layout_stack name="top_stack">
+ <layout_panel name="filter_layout_panel">
+ <combo_box name="search_type">
+ <item label="Nombre" name="Name" value="search_by_name"/>
+ <item label="Creador" name="Creator" value="search_by_creator"/>
+ <item label="Descripción" name="Description" value="search_by_description"/>
+ <item label="UUID" name="UUID" value="search_by_UUID"/>
+ </combo_box>
+ <filter_editor label="Ingresar texto de búsqueda" name="inventory search editor"/>
+ <menu_button name="options_gear_btn" tool_tip="Ver más opciones"/>
+ <button name="add_btn" tool_tip="Añadir un ítem nuevo"/>
+ </layout_panel>
+ </layout_stack>
+ <panel name="default_inventory_panel">
+ <tab_container name="inventory filter tabs">
+ <inventory_panel label="Todos los ítems" name="All Items"/>
+ <recent_inventory_panel label="Ítems recientes" name="Recent Items"/>
+ <inventory_panel label="(VESTIMENTA)" name="Worn Items"/>
+ </tab_container>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_main_inventory.xml b/indra/newview/skins/default/xui/fr/panel_main_inventory.xml
index 5bf4d6c15d..aebb042cfe 100644
--- a/indra/newview/skins/default/xui/fr/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/fr/panel_main_inventory.xml
@@ -13,27 +13,24 @@
<text name="ItemcountText">
Articles :
</text>
- <filter_editor label="Saisir ici le texte de la recherche" name="inventory search editor"/>
- <combo_box name="search_type">
- <item label="Nom" name="Name" value="search_by_name"/>
- <item label="Créateur" name="Creator" value="search_by_creator"/>
- <item label="Description" name="Description" value="search_by_description"/>
- <item label="UUID" name="UUID" value="search_by_UUID"/>
- </combo_box>
- <tab_container name="inventory filter tabs">
- <inventory_panel label="MON INVENTAIRE" name="All Items"/>
- <recent_inventory_panel label="RÉCENT" name="Recent Items"/>
- <inventory_panel label="PORTÉ" name="Worn Items"/>
- </tab_container>
- <layout_stack name="bottom_panel">
- <layout_panel name="options_gear_btn_panel">
- <menu_button name="options_gear_btn" tool_tip="Afficher d&apos;autres options"/>
- </layout_panel>
- <layout_panel name="add_btn_panel">
- <button name="add_btn" tool_tip="Ajouter un nouvel article"/>
- </layout_panel>
- <layout_panel name="trash_btn_panel">
- <dnd_button name="trash_btn" tool_tip="Supprimer l&apos;article sélectionné"/>
- </layout_panel>
- </layout_stack>
+ <layout_stack name="top_stack">
+ <layout_panel name="filter_layout_panel">
+ <combo_box name="search_type">
+ <item label="Nom" name="Name" value="search_by_name"/>
+ <item label="Créateur" name="Creator" value="search_by_creator"/>
+ <item label="Description" name="Description" value="search_by_description"/>
+ <item label="UUID" name="UUID" value="search_by_UUID"/>
+ </combo_box>
+ <filter_editor label="Saisir ici le texte de la recherche" name="inventory search editor"/>
+ <menu_button name="options_gear_btn" tool_tip="Afficher d&apos;autres options"/>
+ <button name="add_btn" tool_tip="Ajouter un nouvel article"/>
+ </layout_panel>
+ </layout_stack>
+ <panel name="default_inventory_panel">
+ <tab_container name="inventory filter tabs">
+ <inventory_panel label="MON INVENTAIRE" name="All Items"/>
+ <recent_inventory_panel label="RÉCENT" name="Recent Items"/>
+ <inventory_panel label="PORTÉ" name="Worn Items"/>
+ </tab_container>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_main_inventory.xml b/indra/newview/skins/default/xui/it/panel_main_inventory.xml
index d6890229e7..da8592e5d7 100644
--- a/indra/newview/skins/default/xui/it/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/it/panel_main_inventory.xml
@@ -13,27 +13,24 @@
<text name="ItemcountText">
Oggetti:
</text>
- <filter_editor label="Inserisci ricerca" name="inventory search editor"/>
- <combo_box name="search_type">
- <item label="Nome" name="Name" value="search_by_name"/>
- <item label="Creatore" name="Creator" value="search_by_creator"/>
- <item label="Descrizione" name="Description" value="search_by_description"/>
- <item label="UUID" name="UUID" value="search_by_UUID"/>
- </combo_box>
- <tab_container name="inventory filter tabs">
- <inventory_panel label="Tutti gli elementi" name="All Items"/>
- <recent_inventory_panel label="Elementi recenti" name="Recent Items"/>
- <inventory_panel label="INDOSSATI" name="Worn Items"/>
- </tab_container>
- <layout_stack name="bottom_panel">
- <layout_panel name="options_gear_btn_panel">
- <menu_button name="options_gear_btn" tool_tip="Mostra opzioni addizionali"/>
- </layout_panel>
- <layout_panel name="add_btn_panel">
- <button name="add_btn" tool_tip="Aggiungi nuovo elemento"/>
- </layout_panel>
- <layout_panel name="trash_btn_panel">
- <dnd_button name="trash_btn" tool_tip="Rimuovi l&apos;articolo selezionato"/>
- </layout_panel>
- </layout_stack>
+ <layout_stack name="top_stack">
+ <layout_panel name="filter_layout_panel">
+ <combo_box name="search_type">
+ <item label="Nome" name="Name" value="search_by_name"/>
+ <item label="Creatore" name="Creator" value="search_by_creator"/>
+ <item label="Descrizione" name="Description" value="search_by_description"/>
+ <item label="UUID" name="UUID" value="search_by_UUID"/>
+ </combo_box>
+ <filter_editor label="Inserisci ricerca" name="inventory search editor"/>
+ <menu_button name="options_gear_btn" tool_tip="Mostra opzioni addizionali"/>
+ <button name="add_btn" tool_tip="Aggiungi nuovo elemento"/>
+ </layout_panel>
+ </layout_stack>
+ <panel name="default_inventory_panel">
+ <tab_container name="inventory filter tabs">
+ <inventory_panel label="Tutti gli elementi" name="All Items"/>
+ <recent_inventory_panel label="Elementi recenti" name="Recent Items"/>
+ <inventory_panel label="INDOSSATI" name="Worn Items"/>
+ </tab_container>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_main_inventory.xml b/indra/newview/skins/default/xui/ja/panel_main_inventory.xml
index a38492c6d1..5b5116a05d 100644
--- a/indra/newview/skins/default/xui/ja/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/ja/panel_main_inventory.xml
@@ -13,29 +13,25 @@
<text name="ItemcountText">
アイテム:
</text>
- <filter_editor label="検索用語を入力する" name="inventory search editor"/>
- <combo_box name="search_type">
- <item label="名前" name="Name" value="search_by_name"/>
- <item label="制作者" name="Creator" value="search_by_creator"/>
- <item label="説明" name="Description" value="search_by_description"/>
- <item label="UUID" name="UUID" value="search_by_UUID"/>
- </combo_box>
- <menu_button tool_tip="検索表示オプションを表示" name="options_visibility_btn"/>
- <filter_editor label="検索語句を入力" name="inventory search editor"/>
- <tab_container name="inventory filter tabs">
- <inventory_panel label="インベントリ" name="All Items"/>
- <recent_inventory_panel label="最新" name="Recent Items"/>
- <inventory_panel label="着用中" name="Worn Items"/>
- </tab_container>
- <layout_stack name="bottom_panel">
- <layout_panel name="options_gear_btn_panel">
- <menu_button name="options_gear_btn" tool_tip="オプションを表示します。"/>
- </layout_panel>
- <layout_panel name="add_btn_panel">
- <button name="add_btn" tool_tip="新しいアイテムを追加します。"/>
- </layout_panel>
- <layout_panel name="trash_btn_panel">
- <dnd_button name="trash_btn" tool_tip="選択したアイテムを削除します。"/>
- </layout_panel>
- </layout_stack>
+ <layout_stack name="top_stack">
+ <layout_panel name="filter_layout_panel">
+ <combo_box name="search_type">
+ <item label="名前" name="Name" value="search_by_name"/>
+ <item label="制作者" name="Creator" value="search_by_creator"/>
+ <item label="説明" name="Description" value="search_by_description"/>
+ <item label="UUID" name="UUID" value="search_by_UUID"/>
+ </combo_box>
+ <menu_button tool_tip="検索表示オプションを表示" name="options_visibility_btn"/>
+ <filter_editor label="検索用語を入力する" name="inventory search editor"/>
+ <menu_button name="options_gear_btn" tool_tip="オプションを表示します。"/>
+ <button name="add_btn" tool_tip="新しいアイテムを追加します。"/>
+ </layout_panel>
+ </layout_stack>
+ <panel name="default_inventory_panel">
+ <tab_container name="inventory filter tabs">
+ <inventory_panel label="インベントリ" name="All Items"/>
+ <recent_inventory_panel label="最新" name="Recent Items"/>
+ <inventory_panel label="着用中" name="Worn Items"/>
+ </tab_container>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/pl/panel_main_inventory.xml b/indra/newview/skins/default/xui/pl/panel_main_inventory.xml
index 1011c38378..34d9d995bc 100644
--- a/indra/newview/skins/default/xui/pl/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/pl/panel_main_inventory.xml
@@ -10,20 +10,17 @@
<text name="ItemcountText">
Obiekty:
</text>
- <filter_editor label="Filtruj Szafę" name="inventory search editor" />
- <tab_container name="inventory filter tabs">
- <inventory_panel label="MOJA SZAFA" name="All Items" />
- <recent_inventory_panel label="OSTATNIE" name="Recent Items" />
- </tab_container>
- <layout_stack name="bottom_panel">
- <layout_panel name="options_gear_btn_panel">
- <menu_button tool_tip="Pokaż dodatkowe opcje" name="options_gear_btn" />
- </layout_panel>
- <layout_panel name="add_btn_panel">
- <button name="add_btn" tool_tip="Dodaj nowy obiekt" />
- </layout_panel>
- <layout_panel name="trash_btn_panel">
- <dnd_button name="trash_btn" tool_tip="Usuń zaznaczony obiekt" />
- </layout_panel>
- </layout_stack>
+ <layout_stack name="top_stack">
+ <layout_panel name="filter_layout_panel">
+ <filter_editor label="Filtruj Szafę" name="inventory search editor" />
+ <menu_button tool_tip="Pokaż dodatkowe opcje" name="options_gear_btn" />
+ <button name="add_btn" tool_tip="Dodaj nowy obiekt" />
+ </layout_panel>
+ </layout_stack>
+ <panel name="default_inventory_panel">
+ <tab_container name="inventory filter tabs">
+ <inventory_panel label="MOJA SZAFA" name="All Items" />
+ <recent_inventory_panel label="OSTATNIE" name="Recent Items" />
+ </tab_container>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_main_inventory.xml b/indra/newview/skins/default/xui/pt/panel_main_inventory.xml
index e0cf528468..debd601966 100644
--- a/indra/newview/skins/default/xui/pt/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/pt/panel_main_inventory.xml
@@ -13,27 +13,24 @@
<text name="ItemcountText">
Itens:
</text>
- <filter_editor label="Digite o texto de pesquisa" name="inventory search editor"/>
- <combo_box name="search_type">
- <item label="Nome" name="Name" value="search_by_name"/>
- <item label="Criador" name="Creator" value="search_by_creator"/>
- <item label="Descrição" name="Description" value="search_by_description"/>
- <item label="UUID" name="UUID" value="search_by_UUID"/>
- </combo_box>
- <tab_container name="inventory filter tabs">
- <inventory_panel label="Todos os itens" name="All Items"/>
- <recent_inventory_panel label="Itens recentes" name="Recent Items"/>
- <inventory_panel label="USADO" name="Worn Items"/>
- </tab_container>
- <layout_stack name="bottom_panel">
- <layout_panel name="options_gear_btn_panel">
- <menu_button name="options_gear_btn" tool_tip="Mostrar opções adicionais"/>
- </layout_panel>
- <layout_panel name="add_btn_panel">
- <button name="add_btn" tool_tip="Adicionar novo item"/>
- </layout_panel>
- <layout_panel name="trash_btn_panel">
- <dnd_button name="trash_btn" tool_tip="Remover item selecionado"/>
- </layout_panel>
- </layout_stack>
+ <layout_stack name="top_stack">
+ <layout_panel name="filter_layout_panel">
+ <combo_box name="search_type">
+ <item label="Nome" name="Name" value="search_by_name"/>
+ <item label="Criador" name="Creator" value="search_by_creator"/>
+ <item label="Descrição" name="Description" value="search_by_description"/>
+ <item label="UUID" name="UUID" value="search_by_UUID"/>
+ </combo_box>
+ <filter_editor label="Digite o texto de pesquisa" name="inventory search editor"/>
+ <menu_button name="options_gear_btn" tool_tip="Mostrar opções adicionais"/>
+ <button name="add_btn" tool_tip="Adicionar novo item"/>
+ </layout_panel>
+ </layout_stack>
+ <panel name="default_inventory_panel">
+ <tab_container name="inventory filter tabs">
+ <inventory_panel label="Todos os itens" name="All Items"/>
+ <recent_inventory_panel label="Itens recentes" name="Recent Items"/>
+ <inventory_panel label="USADO" name="Worn Items"/>
+ </tab_container>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/ru/panel_main_inventory.xml b/indra/newview/skins/default/xui/ru/panel_main_inventory.xml
index b473fb8f98..a0ff3a9f67 100644
--- a/indra/newview/skins/default/xui/ru/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/ru/panel_main_inventory.xml
@@ -13,27 +13,24 @@
<text name="ItemcountText">
Вещи:
</text>
- <filter_editor label="Введите текст поиска" name="inventory search editor"/>
- <combo_box name="search_type">
- <item label="Название" name="Name" value="search_by_name"/>
- <item label="Создатель" name="Creator" value="search_by_creator"/>
- <item label="Описание" name="Description" value="search_by_description"/>
- <item label="УУИд" name="UUID" value="search_by_UUID"/>
- </combo_box>
- <tab_container name="inventory filter tabs">
- <inventory_panel label="МОЙ ИНВЕНТАРЬ" name="All Items"/>
- <recent_inventory_panel label="НЕДАВНИЕ" name="Recent Items"/>
- <inventory_panel label="НОСИМОЕ" name="Worn Items"/>
- </tab_container>
- <layout_stack name="bottom_panel">
- <layout_panel name="options_gear_btn_panel">
- <menu_button name="options_gear_btn" tool_tip="Показать дополнительные параметры"/>
- </layout_panel>
- <layout_panel name="add_btn_panel">
- <button name="add_btn" tool_tip="Добавить новую вещь"/>
- </layout_panel>
- <layout_panel name="trash_btn_panel">
- <dnd_button name="trash_btn" tool_tip="Удалить выбранную вещь"/>
- </layout_panel>
- </layout_stack>
+ <layout_stack name="top_stack">
+ <layout_panel name="filter_layout_panel">
+ <combo_box name="search_type">
+ <item label="Название" name="Name" value="search_by_name"/>
+ <item label="Создатель" name="Creator" value="search_by_creator"/>
+ <item label="Описание" name="Description" value="search_by_description"/>
+ <item label="УУИд" name="UUID" value="search_by_UUID"/>
+ </combo_box>
+ <filter_editor label="Введите текст поиска" name="inventory search editor"/>
+ <menu_button name="options_gear_btn" tool_tip="Показать дополнительные параметры"/>
+ <button name="add_btn" tool_tip="Добавить новую вещь"/>
+ </layout_panel>
+ </layout_stack>
+ <panel name="default_inventory_panel">
+ <tab_container name="inventory filter tabs">
+ <inventory_panel label="МОЙ ИНВЕНТАРЬ" name="All Items"/>
+ <recent_inventory_panel label="НЕДАВНИЕ" name="Recent Items"/>
+ <inventory_panel label="НОСИМОЕ" name="Worn Items"/>
+ </tab_container>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/tr/panel_main_inventory.xml b/indra/newview/skins/default/xui/tr/panel_main_inventory.xml
index 7e98078635..af55d4cafc 100644
--- a/indra/newview/skins/default/xui/tr/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/tr/panel_main_inventory.xml
@@ -13,27 +13,24 @@
<text name="ItemcountText">
Ögeler:
</text>
- <filter_editor label="Arama metnini gir" name="inventory search editor"/>
- <combo_box name="search_type">
- <item label="Ad" name="Name" value="search_by_name"/>
- <item label="Oluşturan" name="Creator" value="search_by_creator"/>
- <item label="Açıklama" name="Description" value="search_by_description"/>
- <item label="UUID" name="UUID" value="search_by_UUID"/>
- </combo_box>
- <tab_container name="inventory filter tabs">
- <inventory_panel label="ENVANTERİM" name="All Items"/>
- <recent_inventory_panel label="SON" name="Recent Items"/>
- <inventory_panel label="GİYİLEN" name="Worn Items"/>
- </tab_container>
- <layout_stack name="bottom_panel">
- <layout_panel name="options_gear_btn_panel">
- <menu_button name="options_gear_btn" tool_tip="İlave seçenekleri göster"/>
- </layout_panel>
- <layout_panel name="add_btn_panel">
- <button name="add_btn" tool_tip="Yeni öge ekle"/>
- </layout_panel>
- <layout_panel name="trash_btn_panel">
- <dnd_button name="trash_btn" tool_tip="Seçilen öğeyi sil"/>
- </layout_panel>
- </layout_stack>
+ <layout_stack name="top_stack">
+ <layout_panel name="filter_layout_panel">
+ <combo_box name="search_type">
+ <item label="Ad" name="Name" value="search_by_name"/>
+ <item label="Oluşturan" name="Creator" value="search_by_creator"/>
+ <item label="Açıklama" name="Description" value="search_by_description"/>
+ <item label="UUID" name="UUID" value="search_by_UUID"/>
+ </combo_box>
+ <filter_editor label="Arama metnini gir" name="inventory search editor"/>
+ <menu_button name="options_gear_btn" tool_tip="İlave seçenekleri göster"/>
+ <button name="add_btn" tool_tip="Yeni öge ekle"/>
+ </layout_panel>
+ </layout_stack>
+ <panel name="default_inventory_panel">
+ <tab_container name="inventory filter tabs">
+ <inventory_panel label="ENVANTERİM" name="All Items"/>
+ <recent_inventory_panel label="SON" name="Recent Items"/>
+ <inventory_panel label="GİYİLEN" name="Worn Items"/>
+ </tab_container>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/zh/panel_main_inventory.xml b/indra/newview/skins/default/xui/zh/panel_main_inventory.xml
index 9ffa9323cc..6a8ead28b4 100644
--- a/indra/newview/skins/default/xui/zh/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/zh/panel_main_inventory.xml
@@ -13,27 +13,24 @@
<text name="ItemcountText">
物品:
</text>
- <filter_editor label="輸入搜尋文字" name="inventory search editor"/>
- <combo_box name="search_type">
- <item label="名稱" name="Name" value="search_by_name"/>
- <item label="創造者" name="Creator" value="search_by_creator"/>
- <item label="描述" name="Description" value="search_by_description"/>
- <item label="UUID" name="UUID" value="search_by_UUID"/>
- </combo_box>
- <tab_container name="inventory filter tabs">
- <inventory_panel label="我的收納區" name="All Items"/>
- <recent_inventory_panel label="最近" name="Recent Items"/>
- <inventory_panel label="已穿戴" name="Worn Items"/>
- </tab_container>
- <layout_stack name="bottom_panel">
- <layout_panel name="options_gear_btn_panel">
- <menu_button name="options_gear_btn" tool_tip="顯示額外選項"/>
- </layout_panel>
- <layout_panel name="add_btn_panel">
- <button name="add_btn" tool_tip="添加新物品"/>
- </layout_panel>
- <layout_panel name="trash_btn_panel">
- <dnd_button name="trash_btn" tool_tip="移除所選擇的物品"/>
- </layout_panel>
- </layout_stack>
+ <layout_stack name="top_stack">
+ <layout_panel name="filter_layout_panel">
+ <combo_box name="search_type">
+ <item label="名稱" name="Name" value="search_by_name"/>
+ <item label="創造者" name="Creator" value="search_by_creator"/>
+ <item label="描述" name="Description" value="search_by_description"/>
+ <item label="UUID" name="UUID" value="search_by_UUID"/>
+ </combo_box>
+ <filter_editor label="輸入搜尋文字" name="inventory search editor"/>
+ <menu_button name="options_gear_btn" tool_tip="顯示額外選項"/>
+ <button name="add_btn" tool_tip="添加新物品"/>
+ </layout_panel>
+ </layout_stack>
+ <panel name="default_inventory_panel">
+ <tab_container name="inventory filter tabs">
+ <inventory_panel label="我的收納區" name="All Items"/>
+ <recent_inventory_panel label="最近" name="Recent Items"/>
+ <inventory_panel label="已穿戴" name="Worn Items"/>
+ </tab_container>
+ </panel>
</panel>
diff --git a/indra/test/CMakeLists.txt b/indra/test/CMakeLists.txt
index b7a39a7450..4a0a8716c4 100644
--- a/indra/test/CMakeLists.txt
+++ b/indra/test/CMakeLists.txt
@@ -74,6 +74,13 @@ if (WINDOWS)
LINK_FLAGS "/NODEFAULTLIB:LIBCMT"
LINK_FLAGS_DEBUG "/NODEFAULTLIB:\"LIBCMT;LIBCMTD;MSVCRT\""
)
+elseif (DARWIN)
+ # Support our "@executable_path/../Resources" load path for our test
+ # executable. This SHOULD properly be "$<TARGET_FILE_DIR:lltest>/Resources",
+ # but the CMake $<TARGET_FILE_DIR> generator expression isn't evaluated by
+ # CREATE_LINK, so fudge it.
+ file(CREATE_LINK "../sharedlibs/Release/Resources" "${CMAKE_BINARY_DIR}/test/Resources"
+ SYMBOLIC)
endif (WINDOWS)
set(TEST_EXE $<TARGET_FILE:lltest>)
diff --git a/indra/test/test.cpp b/indra/test/test.cpp
index 9b5563cc42..94478a5263 100644
--- a/indra/test/test.cpp
+++ b/indra/test/test.cpp
@@ -265,7 +265,7 @@ public:
break;
case tut::test_result::ex:
++mFailedTests;
- out << "exception: " << tr.exception_typeid;
+ out << "exception: " << LLError::Log::demangle(tr.exception_typeid.c_str());
break;
case tut::test_result::warn:
++mFailedTests;