diff options
76 files changed, 302 insertions, 15228 deletions
diff --git a/application/palemoon/base/content/browser.css b/application/palemoon/base/content/browser.css index 05dd00997..6fd2c5ce1 100644 --- a/application/palemoon/base/content/browser.css +++ b/application/palemoon/base/content/browser.css @@ -762,5 +762,6 @@ toolbarbutton[pmkit-button="true"] > .toolbarbutton-badge-stack > .toolbarbutton } #navigator-toolbox[fullscreenShouldAnimate] { - transition: 1.5s margin-top ease-out; + transition: 0.7s margin-top ease-out; + transition-delay: 0.8s; } diff --git a/application/palemoon/installer/package-manifest.in b/application/palemoon/installer/package-manifest.in index 0393ce316..e1897aeec 100644 --- a/application/palemoon/installer/package-manifest.in +++ b/application/palemoon/installer/package-manifest.in @@ -176,8 +176,6 @@ #endif #ifdef MOZ_ENABLE_PROFILER_SPS #endif -#ifdef ENABLE_INTL_API -#endif #ifdef NECKO_WIFI #endif #ifdef MOZ_WEBRTC diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in index 8032060a4..4ef8942b5 100644 --- a/browser/installer/package-manifest.in +++ b/browser/installer/package-manifest.in @@ -2,7 +2,7 @@ ; License, v. 2.0. If a copy of the MPL was not distributed with this ; file, You can obtain one at http://mozilla.org/MPL/2.0/. -; Package file for the Firefox build. +; Package file for the Basilisk build. ; ; Packaging manifest is used to copy files from dist/bin ; to the staging directory. @@ -260,9 +260,6 @@ @RESPATH@/browser/components/migration.xpt @RESPATH@/components/mimetype.xpt @RESPATH@/components/mozfind.xpt -#ifdef ENABLE_INTL_API -@RESPATH@/components/mozintl.xpt -#endif @RESPATH@/components/necko_about.xpt @RESPATH@/components/necko_cache.xpt @RESPATH@/components/necko_cache2.xpt diff --git a/build/autoconf/icu.m4 b/build/autoconf/icu.m4 index 794ddcdf4..89c53c52c 100644 --- a/build/autoconf/icu.m4 +++ b/build/autoconf/icu.m4 @@ -22,42 +22,8 @@ fi AC_SUBST(MOZ_SYSTEM_ICU) -MOZ_ARG_WITH_STRING(intl-api, -[ --with-intl-api, --with-intl-api=build, --without-intl-api - Determine the status of the ECMAScript Internationalization API. The first - (or lack of any of these) builds and exposes the API. The second builds it - but doesn't use ICU or expose the API to script. The third doesn't build - ICU at all.], - _INTL_API=$withval) - -ENABLE_INTL_API= -EXPOSE_INTL_API= -case "$_INTL_API" in -no) - ;; -build) - ENABLE_INTL_API=1 - ;; -yes) - ENABLE_INTL_API=1 - EXPOSE_INTL_API=1 - ;; -*) - AC_MSG_ERROR([Invalid value passed to --with-intl-api: $_INTL_API]) - ;; -esac - -if test -n "$ENABLE_INTL_API"; then - USE_ICU=1 -fi - -if test -n "$EXPOSE_INTL_API"; then - AC_DEFINE(EXPOSE_INTL_API) -fi - -if test -n "$ENABLE_INTL_API"; then - AC_DEFINE(ENABLE_INTL_API) -fi +dnl We always use ICU. +USE_ICU=1 dnl Settings for the implementation of the ECMAScript Internationalization API if test -n "$USE_ICU"; then diff --git a/build/moz.configure/old.configure b/build/moz.configure/old.configure index 9f29e68c9..c1ad71d5f 100644 --- a/build/moz.configure/old.configure +++ b/build/moz.configure/old.configure @@ -270,7 +270,6 @@ def old_configure_options(*options): '--with-doc-output-dir', '--with-float-abi', '--with-fpu', - '--with-intl-api', '--with-ios-sdk', '--with-jitreport-granularity', '--with-macbundlename-prefix', diff --git a/chrome/nsChromeRegistry.cpp b/chrome/nsChromeRegistry.cpp index 0302b9997..485ca002c 100644 --- a/chrome/nsChromeRegistry.cpp +++ b/chrome/nsChromeRegistry.cpp @@ -32,9 +32,7 @@ #include "mozilla/StyleSheet.h" #include "mozilla/StyleSheetInlines.h" -#ifdef ENABLE_INTL_API #include "unicode/uloc.h" -#endif nsChromeRegistry* nsChromeRegistry::gChromeRegistry; @@ -720,7 +718,6 @@ nsChromeRegistry::GetSingleton() void nsChromeRegistry::SanitizeForBCP47(nsACString& aLocale) { -#ifdef ENABLE_INTL_API // Currently, the only locale code we use that's not BCP47-conformant is // "ja-JP-mac" on OS X, but let's try to be more general than just // hard-coding that here. @@ -735,13 +732,4 @@ nsChromeRegistry::SanitizeForBCP47(nsACString& aLocale) if (U_SUCCESS(err) && len > 0) { aLocale.Assign(langTag, len); } -#else - // This is only really needed for Intl API purposes, AFAIK, - // so probably won't be used in a non-ENABLE_INTL_API build. - // But let's fix up the single anomalous code we actually ship, - // just in case: - if (aLocale.EqualsLiteral("ja-JP-mac")) { - aLocale.AssignLiteral("ja-JP"); - } -#endif } diff --git a/dom/indexedDB/ActorsParent.cpp b/dom/indexedDB/ActorsParent.cpp index 9d4e72f2f..b0800728f 100644 --- a/dom/indexedDB/ActorsParent.cpp +++ b/dom/indexedDB/ActorsParent.cpp @@ -7767,12 +7767,10 @@ private: virtual void SendResults() override; -#ifdef ENABLE_INTL_API static nsresult UpdateLocaleAwareIndex(mozIStorageConnection* aConnection, const IndexMetadata& aIndexMetadata, const nsCString& aLocale); -#endif }; class OpenDatabaseOp::VersionChangeOp final @@ -20064,9 +20062,6 @@ DatabaseOperationBase::BindKeyRangeToStatement( mozIStorageStatement* aStatement, const nsCString& aLocale) { -#ifndef ENABLE_INTL_API - return BindKeyRangeToStatement(aKeyRange, aStatement); -#else MOZ_ASSERT(!IsOnBackgroundThread()); MOZ_ASSERT(aStatement); MOZ_ASSERT(!aLocale.IsEmpty()); @@ -20104,7 +20099,6 @@ DatabaseOperationBase::BindKeyRangeToStatement( } return NS_OK; -#endif } // static @@ -22197,7 +22191,6 @@ OpenDatabaseOp::LoadDatabaseInformation(mozIStorageConnection* aConnection) indexMetadata->mCommonMetadata.multiEntry() = !!scratch; -#ifdef ENABLE_INTL_API const bool localeAware = !stmt->IsNull(6); if (localeAware) { rv = stmt->GetUTF8String(6, indexMetadata->mCommonMetadata.locale()); @@ -22227,7 +22220,6 @@ OpenDatabaseOp::LoadDatabaseInformation(mozIStorageConnection* aConnection) } } } -#endif if (NS_WARN_IF(!objectStoreMetadata->mIndexes.Put(indexId, indexMetadata, fallible))) { @@ -22253,7 +22245,6 @@ OpenDatabaseOp::LoadDatabaseInformation(mozIStorageConnection* aConnection) return NS_OK; } -#ifdef ENABLE_INTL_API /* static */ nsresult OpenDatabaseOp::UpdateLocaleAwareIndex(mozIStorageConnection* aConnection, @@ -22371,7 +22362,6 @@ OpenDatabaseOp::UpdateLocaleAwareIndex(mozIStorageConnection* aConnection, rv = metaStmt->Execute(); return rv; } -#endif nsresult OpenDatabaseOp::BeginVersionChange() @@ -28191,15 +28181,12 @@ OpenOp::GetRangeKeyInfo(bool aLowerBound, Key* aKey, bool* aOpen) if (range.isOnly()) { *aKey = range.lower(); *aOpen = false; -#ifdef ENABLE_INTL_API if (mCursor->IsLocaleAware()) { range.lower().ToLocaleBasedKey(*aKey, mCursor->mLocale); } -#endif } else { *aKey = aLowerBound ? range.lower() : range.upper(); *aOpen = aLowerBound ? range.lowerOpen() : range.upperOpen(); -#ifdef ENABLE_INTL_API if (mCursor->IsLocaleAware()) { if (aLowerBound) { range.lower().ToLocaleBasedKey(*aKey, mCursor->mLocale); @@ -28207,7 +28194,6 @@ OpenOp::GetRangeKeyInfo(bool aLowerBound, Key* aKey, bool* aOpen) range.upper().ToLocaleBasedKey(*aKey, mCursor->mLocale); } } -#endif } } else { *aOpen = false; diff --git a/dom/indexedDB/IDBCursor.cpp b/dom/indexedDB/IDBCursor.cpp index e5d8913f9..7ae35e981 100644 --- a/dom/indexedDB/IDBCursor.cpp +++ b/dom/indexedDB/IDBCursor.cpp @@ -65,13 +65,11 @@ IDBCursor::IDBCursor(Type aType, } } -#ifdef ENABLE_INTL_API bool IDBCursor::IsLocaleAware() const { return mSourceIndex && !mSourceIndex->Locale().IsEmpty(); } -#endif IDBCursor::~IDBCursor() { @@ -437,7 +435,6 @@ IDBCursor::Continue(JSContext* aCx, return; } -#ifdef ENABLE_INTL_API if (IsLocaleAware() && !key.IsUnset()) { Key tmp; aRv = key.ToLocaleBasedKey(tmp, mSourceIndex->Locale()); @@ -448,9 +445,6 @@ IDBCursor::Continue(JSContext* aCx, } const Key& sortKey = IsLocaleAware() ? mSortKey : mKey; -#else - const Key& sortKey = mKey; -#endif if (!key.IsUnset()) { switch (mDirection) { @@ -547,7 +541,6 @@ IDBCursor::ContinuePrimaryKey(JSContext* aCx, return; } -#ifdef ENABLE_INTL_API if (IsLocaleAware() && !key.IsUnset()) { Key tmp; aRv = key.ToLocaleBasedKey(tmp, mSourceIndex->Locale()); @@ -558,9 +551,6 @@ IDBCursor::ContinuePrimaryKey(JSContext* aCx, } const Key& sortKey = IsLocaleAware() ? mSortKey : mKey; -#else - const Key& sortKey = mKey; -#endif if (key.IsUnset()) { aRv.Throw(NS_ERROR_DOM_INDEXEDDB_DATA_ERR); diff --git a/dom/indexedDB/IDBCursor.h b/dom/indexedDB/IDBCursor.h index 25be16bee..3a4bedcda 100644 --- a/dom/indexedDB/IDBCursor.h +++ b/dom/indexedDB/IDBCursor.h @@ -205,11 +205,9 @@ private: ~IDBCursor(); -#ifdef ENABLE_INTL_API // Checks if this is a locale aware cursor (ie. the index's sortKey is unset) bool IsLocaleAware() const; -#endif void DropJSObjects(); diff --git a/dom/indexedDB/IDBObjectStore.cpp b/dom/indexedDB/IDBObjectStore.cpp index c9ab24970..cf62f49c3 100644 --- a/dom/indexedDB/IDBObjectStore.cpp +++ b/dom/indexedDB/IDBObjectStore.cpp @@ -1086,9 +1086,7 @@ IDBObjectStore::AppendIndexUpdateInfo( { nsresult rv; -#ifdef ENABLE_INTL_API const bool localeAware = !aLocale.IsEmpty(); -#endif if (!aMultiEntry) { Key key; @@ -1106,14 +1104,12 @@ IDBObjectStore::AppendIndexUpdateInfo( IndexUpdateInfo* updateInfo = aUpdateInfoArray.AppendElement(); updateInfo->indexId() = aIndexID; updateInfo->value() = key; -#ifdef ENABLE_INTL_API if (localeAware) { rv = key.ToLocaleBasedKey(updateInfo->localizedValue(), aLocale); if (NS_WARN_IF(NS_FAILED(rv))) { return NS_ERROR_DOM_INDEXEDDB_UNKNOWN_ERR; } } -#endif return NS_OK; } @@ -1153,14 +1149,12 @@ IDBObjectStore::AppendIndexUpdateInfo( IndexUpdateInfo* updateInfo = aUpdateInfoArray.AppendElement(); updateInfo->indexId() = aIndexID; updateInfo->value() = value; -#ifdef ENABLE_INTL_API if (localeAware) { rv = value.ToLocaleBasedKey(updateInfo->localizedValue(), aLocale); if (NS_WARN_IF(NS_FAILED(rv))) { return NS_ERROR_DOM_INDEXEDDB_UNKNOWN_ERR; } } -#endif } } else { @@ -1174,14 +1168,12 @@ IDBObjectStore::AppendIndexUpdateInfo( IndexUpdateInfo* updateInfo = aUpdateInfoArray.AppendElement(); updateInfo->indexId() = aIndexID; updateInfo->value() = value; -#ifdef ENABLE_INTL_API if (localeAware) { rv = value.ToLocaleBasedKey(updateInfo->localizedValue(), aLocale); if (NS_WARN_IF(NS_FAILED(rv))) { return NS_ERROR_DOM_INDEXEDDB_UNKNOWN_ERR; } } -#endif } return NS_OK; @@ -2052,11 +2044,9 @@ IDBObjectStore::CreateIndex(const nsAString& aName, // Valid locale names are always ASCII as per BCP-47. nsCString locale = NS_LossyConvertUTF16toASCII(aOptionalParameters.mLocale); bool autoLocale = locale.EqualsASCII("auto"); -#ifdef ENABLE_INTL_API if (autoLocale) { locale = IndexedDatabaseManager::GetLocale(); } -#endif IndexMetadata* metadata = indexes.AppendElement( IndexMetadata(transaction->NextIndexId(), nsString(aName), keyPath, diff --git a/dom/indexedDB/IndexedDatabaseManager.cpp b/dom/indexedDB/IndexedDatabaseManager.cpp index 2590b0127..f65381fe8 100644 --- a/dom/indexedDB/IndexedDatabaseManager.cpp +++ b/dom/indexedDB/IndexedDatabaseManager.cpp @@ -59,10 +59,8 @@ #include "mozilla/dom/IDBTransactionBinding.h" #include "mozilla/dom/IDBVersionChangeEventBinding.h" -#ifdef ENABLE_INTL_API #include "nsCharSeparatedTokenizer.h" #include "unicode/locid.h" -#endif #define IDB_STR "indexedDB" @@ -430,7 +428,6 @@ IndexedDatabaseManager::Init() Preferences::RegisterCallbackAndCall(MaxSerializedMsgSizePrefChangeCallback, kPrefMaxSerilizedMsgSize); -#ifdef ENABLE_INTL_API const nsAdoptingCString& acceptLang = Preferences::GetLocalizedCString("intl.accept_languages"); @@ -449,7 +446,6 @@ IndexedDatabaseManager::Init() if (mLocale.IsEmpty()) { mLocale.AssignLiteral("en_US"); } -#endif return NS_OK; } @@ -1088,7 +1084,6 @@ IndexedDatabaseManager::LoggingModePrefChangedCallback( } } -#ifdef ENABLE_INTL_API // static const nsCString& IndexedDatabaseManager::GetLocale() @@ -1098,7 +1093,6 @@ IndexedDatabaseManager::GetLocale() return idbManager->mLocale; } -#endif NS_IMPL_ADDREF(IndexedDatabaseManager) NS_IMPL_RELEASE_WITH_DESTROY(IndexedDatabaseManager, Destroy()) diff --git a/dom/indexedDB/IndexedDatabaseManager.h b/dom/indexedDB/IndexedDatabaseManager.h index 8bb9d7003..d63c548ec 100644 --- a/dom/indexedDB/IndexedDatabaseManager.h +++ b/dom/indexedDB/IndexedDatabaseManager.h @@ -186,10 +186,8 @@ public: nsresult FlushPendingFileDeletions(); -#ifdef ENABLE_INTL_API static const nsCString& GetLocale(); -#endif static mozilla::Mutex& FileMutex() @@ -238,9 +236,7 @@ private: // and FileInfo.mSliceRefCnt mozilla::Mutex mFileMutex; -#ifdef ENABLE_INTL_API nsCString mLocale; -#endif indexedDB::BackgroundUtilsChild* mBackgroundActor; diff --git a/dom/indexedDB/Key.cpp b/dom/indexedDB/Key.cpp index 945320dd5..0f693b2c6 100644 --- a/dom/indexedDB/Key.cpp +++ b/dom/indexedDB/Key.cpp @@ -22,9 +22,7 @@ #include "ReportInternalError.h" #include "xpcpublic.h" -#ifdef ENABLE_INTL_API #include "unicode/ucol.h" -#endif namespace mozilla { namespace dom { @@ -108,7 +106,6 @@ namespace indexedDB { [1, 2] // 0x60 bf f0 0 0 0 0 0 0 0x10 c0 [[]] // 0x80 */ -#ifdef ENABLE_INTL_API nsresult Key::ToLocaleBasedKey(Key& aTarget, const nsCString& aLocale) const { @@ -202,7 +199,6 @@ Key::ToLocaleBasedKey(Key& aTarget, const nsCString& aLocale) const aTarget.TrimBuffer(); return NS_OK; } -#endif nsresult Key::EncodeJSValInternal(JSContext* aCx, JS::Handle<JS::Value> aVal, @@ -483,7 +479,6 @@ Key::EncodeAsString(const T* aStart, const T* aEnd, uint8_t aType) NS_ASSERTION(buffer == mBuffer.EndReading(), "Wrote wrong number of bytes"); } -#ifdef ENABLE_INTL_API nsresult Key::EncodeLocaleString(const nsDependentString& aString, uint8_t aTypeOffset, const nsCString& aLocale) @@ -522,7 +517,6 @@ Key::EncodeLocaleString(const nsDependentString& aString, uint8_t aTypeOffset, aTypeOffset); return NS_OK; } -#endif // static nsresult diff --git a/dom/indexedDB/Key.h b/dom/indexedDB/Key.h index 856089c97..9d70ce6ad 100644 --- a/dom/indexedDB/Key.h +++ b/dom/indexedDB/Key.h @@ -214,10 +214,8 @@ public: nsresult AppendItem(JSContext* aCx, bool aFirstOfArray, JS::Handle<JS::Value> aVal); -#ifdef ENABLE_INTL_API nsresult ToLocaleBasedKey(Key& aTarget, const nsCString& aLocale) const; -#endif void FinishArray() @@ -298,11 +296,9 @@ private: void EncodeAsString(const T* aStart, const T* aEnd, uint8_t aType); -#ifdef ENABLE_INTL_API nsresult EncodeLocaleString(const nsDependentString& aString, uint8_t aTypeOffset, const nsCString& aLocale); -#endif void EncodeNumber(double aFloat, uint8_t aType); diff --git a/dom/indexedDB/moz.build b/dom/indexedDB/moz.build index 1fb01135c..d8c217f38 100644 --- a/dom/indexedDB/moz.build +++ b/dom/indexedDB/moz.build @@ -17,8 +17,7 @@ XPCSHELL_TESTS_MANIFESTS += [ 'test/unit/xpcshell-parent-process.ini' ] -if CONFIG['ENABLE_INTL_API']: - MOCHITEST_MANIFESTS += ['test/mochitest-intl-api.ini'] +MOCHITEST_MANIFESTS += ['test/mochitest-intl-api.ini'] EXPORTS.mozilla.dom += [ 'IDBCursor.h', diff --git a/dom/tests/mochitest/general/test_interfaces.html b/dom/tests/mochitest/general/test_interfaces.html index 4b47d2b4f..98f3ffed0 100644 --- a/dom/tests/mochitest/general/test_interfaces.html +++ b/dom/tests/mochitest/general/test_interfaces.html @@ -63,7 +63,7 @@ var ecmaGlobals = "Int32Array", "Int8Array", "InternalError", - {name: "Intl", android: false}, + "Intl", "Iterator", "JSON", "Map", diff --git a/dom/workers/test/serviceworkers/test_serviceworker_interfaces.js b/dom/workers/test/serviceworkers/test_serviceworker_interfaces.js index a4d498fb8..b337b13ba 100644 --- a/dom/workers/test/serviceworkers/test_serviceworker_interfaces.js +++ b/dom/workers/test/serviceworkers/test_serviceworker_interfaces.js @@ -38,7 +38,7 @@ var ecmaGlobals = "Int32Array", "Int8Array", "InternalError", - {name: "Intl", android: false}, + "Intl", "Iterator", "JSON", "Map", diff --git a/dom/workers/test/test_worker_interfaces.js b/dom/workers/test/test_worker_interfaces.js index 6fe5fcaff..159278f9a 100644 --- a/dom/workers/test/test_worker_interfaces.js +++ b/dom/workers/test/test_worker_interfaces.js @@ -38,7 +38,7 @@ var ecmaGlobals = "Int32Array", "Int8Array", "InternalError", - {name: "Intl", android: false}, + "Intl", "Iterator", "JSON", "Map", diff --git a/gfx/thebes/gfxHarfBuzzShaper.cpp b/gfx/thebes/gfxHarfBuzzShaper.cpp index 1f472f88d..4b9dbbc14 100644 --- a/gfx/thebes/gfxHarfBuzzShaper.cpp +++ b/gfx/thebes/gfxHarfBuzzShaper.cpp @@ -12,20 +12,14 @@ #include "mozilla/Sprintf.h" #include "nsUnicodeProperties.h" #include "nsUnicodeScriptCodes.h" -#include "nsUnicodeNormalizer.h" #include "harfbuzz/hb.h" #include "harfbuzz/hb-ot.h" -#if ENABLE_INTL_API // ICU is available: we'll use it for Unicode composition - // and decomposition in preference to nsUnicodeNormalizer. #include "unicode/unorm.h" #include "unicode/utext.h" -#define MOZ_HB_SHAPER_USE_ICU_NORMALIZATION 1 + static const UNormalizer2 * sNormalizer = nullptr; -#else -#undef MOZ_HB_SHAPER_USE_ICU_NORMALIZATION -#endif #include <algorithm> @@ -1091,8 +1085,6 @@ HBUnicodeCompose(hb_unicode_funcs_t *ufuncs, hb_codepoint_t *ab, void *user_data) { -#if MOZ_HB_SHAPER_USE_ICU_NORMALIZATION - if (sNormalizer) { UChar32 ch = unorm2_composePair(sNormalizer, a, b); if (ch >= 0) { @@ -1101,14 +1093,6 @@ HBUnicodeCompose(hb_unicode_funcs_t *ufuncs, } } -#else // no ICU available, use the old nsUnicodeNormalizer - - if (nsUnicodeNormalizer::Compose(a, b, ab)) { - return true; - } - -#endif - return false; } @@ -1129,8 +1113,6 @@ HBUnicodeDecompose(hb_unicode_funcs_t *ufuncs, } #endif -#if MOZ_HB_SHAPER_USE_ICU_NORMALIZATION - if (!sNormalizer) { return false; } @@ -1162,12 +1144,6 @@ HBUnicodeDecompose(hb_unicode_funcs_t *ufuncs, utext_close(&text); return *b != 0 || *a != ab; - -#else // no ICU available, use the old nsUnicodeNormalizer - - return nsUnicodeNormalizer::DecomposeNonRecursively(ab, a, b); - -#endif } static void @@ -1250,11 +1226,9 @@ gfxHarfBuzzShaper::Initialize() HBUnicodeDecompose, nullptr, nullptr); -#if MOZ_HB_SHAPER_USE_ICU_NORMALIZATION UErrorCode error = U_ZERO_ERROR; sNormalizer = unorm2_getNFCInstance(&error); - NS_ASSERTION(U_SUCCESS(error), "failed to get ICU normalizer"); -#endif + MOZ_ASSERT(U_SUCCESS(error), "failed to get ICU normalizer"); } gfxFontEntry *entry = mFont->GetFontEntry(); diff --git a/gfx/thebes/moz.build b/gfx/thebes/moz.build index 227b2b875..e253d7891 100644 --- a/gfx/thebes/moz.build +++ b/gfx/thebes/moz.build @@ -223,12 +223,10 @@ elif CONFIG['MOZ_WIDGET_TOOLKIT'] == 'windows': 'DeviceManagerDx.cpp', ] -# We prefer to use ICU for normalization functions, but currently it is only -# available if we're building with the Intl API enabled: -if CONFIG['ENABLE_INTL_API']: - USE_LIBS += [ - 'icu', - ] +# We use ICU for normalization functions +USE_LIBS += [ + 'icu', +] include('/ipc/chromium/chromium-config.mozbuild') diff --git a/intl/lwbrk/nsJISx4051LineBreaker.cpp b/intl/lwbrk/nsJISx4051LineBreaker.cpp index 1b262fa2c..fe4191a5f 100644 --- a/intl/lwbrk/nsJISx4051LineBreaker.cpp +++ b/intl/lwbrk/nsJISx4051LineBreaker.cpp @@ -553,10 +553,8 @@ GetClass(uint32_t u) /* ZWJ = 42, [ZWJ]*/ CLASS_CHARACTER }; -#if ENABLE_INTL_API static_assert(U_LB_COUNT == mozilla::ArrayLength(sUnicodeLineBreakToClass), "Gecko vs ICU LineBreak class mismatch"); -#endif auto cls = mozilla::unicode::GetLineBreakClass(u); MOZ_ASSERT(cls < mozilla::ArrayLength(sUnicodeLineBreakToClass)); diff --git a/intl/unicharutil/moz.build b/intl/unicharutil/moz.build index 461fd255e..7b93396fc 100644 --- a/intl/unicharutil/moz.build +++ b/intl/unicharutil/moz.build @@ -27,17 +27,9 @@ UNIFIED_SOURCES += [ 'nsCategoryImp.cpp', 'nsEntityConverter.cpp', 'nsSaveAsCharset.cpp', + 'nsUnicodeNormalizer.cpp', ] -if CONFIG['ENABLE_INTL_API']: - UNIFIED_SOURCES += [ - 'nsUnicodeNormalizer_ICU.cpp', - ] -else: - UNIFIED_SOURCES += [ - 'nsUnicodeNormalizer.cpp', - ] - FINAL_LIBRARY = 'xul' if CONFIG['GNU_CXX']: diff --git a/intl/unicharutil/normalization_data.h b/intl/unicharutil/normalization_data.h deleted file mode 100644 index 90dcd9f4e..000000000 --- a/intl/unicharutil/normalization_data.h +++ /dev/null @@ -1,5247 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ - -/* This file is modified from JPNIC's mDNKit, it is under both MPL and - * JPNIC's license. - */ - -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -/* - * Copyright (c) 2000,2002 Japan Network Information Center. - * All rights reserved. - * - * By using this file, you agree to the terms and conditions set forth bellow. - * - * LICENSE TERMS AND CONDITIONS - * - * The following License Terms and Conditions apply, unless a different - * license is obtained from Japan Network Information Center ("JPNIC"), - * a Japanese association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda, - * Chiyoda-ku, Tokyo 101-0047, Japan. - * - * 1. Use, Modification and Redistribution (including distribution of any - * modified or derived work) in source and/or binary forms is permitted - * under this License Terms and Conditions. - * - * 2. Redistribution of source code must retain the copyright notices as they - * appear in each source code file, this License Terms and Conditions. - * - * 3. Redistribution in binary form must reproduce the Copyright Notice, - * this License Terms and Conditions, in the documentation and/or other - * materials provided with the distribution. For the purposes of binary - * distribution the "Copyright Notice" refers to the following language: - * "Copyright (c) 2000-2002 Japan Network Information Center. All rights reserved." - * - * 4. The name of JPNIC may not be used to endorse or promote products - * derived from this Software without specific prior written approval of - * JPNIC. - * - * 5. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY JPNIC - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JPNIC BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR - * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - */ - -/* $Id: normalization_data.h,v 1.1 2005/04/05 23:00:13 jshin%mailaps.org Exp $ */ -/* $-Id: generate_normalize_data.pl,v 1.9 2002/11/29 09:08:13 ishisone Exp -$ */ -/* - * Do not edit this file! - * This file is generated from UnicodeData.txt, CompositionExclusions-1.txt, - * SpecialCasing.txt and CaseFolding.txt. - */ - - -/* - * Canonical Class - */ - -#define CANON_CLASS_BITS_0 9 -#define CANON_CLASS_BITS_1 7 -#define CANON_CLASS_BITS_2 5 - -static const char16_t canon_class_imap[] = { - 272, 400, 528, 656, 784, 784, 784, 784, - 784, 784, 912, 784, 784, 784, 784, 1040, - 1168, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 1296, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 1, 2, 3, 4, 0, 0, 0, 0, - 0, 0, 0, 0, 5, 0, 0, 0, - 0, 0, 0, 0, 6, 7, 8, 0, - 9, 0, 10, 11, 0, 0, 12, 13, - 14, 15, 16, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 17, 18, 0, 0, 17, 19, 0, - 0, 17, 19, 0, 0, 17, 19, 0, - 0, 17, 19, 0, 0, 0, 19, 0, - 0, 0, 20, 0, 0, 17, 19, 0, - 0, 0, 19, 0, 0, 0, 21, 0, - 0, 22, 23, 0, 0, 24, 25, 0, - 26, 27, 0, 28, 29, 0, 30, 0, - 0, 31, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 32, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 33, 33, 0, 0, 0, 0, 34, 0, - 0, 0, 0, 0, 0, 35, 0, 0, - 0, 36, 0, 0, 0, 0, 0, 0, - 37, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 38, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 39, 40, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 41, 0, 0, 42, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 43, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 44, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 45, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 46, 47, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 48, 49, 50, 0, 0, - 0, 0, 51, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -}; - -static const struct { - unsigned char tbl[32]; -} canon_class_table[] = { - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 232, - 220, 220, 220, 220, 232, 216, 220, 220, 220, 220, - }}, - {{ - 220, 202, 202, 220, 220, 220, 220, 202, 202, 220, 220, - 220, 220, 220, 220, 220, 220, 220, 220, 220, 1, 1, - 1, 1, 1, 220, 220, 220, 220, 230, 230, 230, - }}, - {{ - 230, 230, 230, 230, 230, 240, 230, 220, 220, 220, 230, - 230, 230, 220, 220, 0, 230, 230, 230, 220, 220, 220, - 220, 230, 232, 220, 220, 230, 233, 234, 234, 233, - }}, - {{ - 234, 234, 233, 230, 230, 230, 230, 230, 230, 230, 230, - 230, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 230, 230, 230, 230, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 220, 230, 230, 230, 230, - 220, 230, 230, 230, 222, 220, 230, 230, 230, 230, - }}, - {{ - 230, 230, 220, 220, 220, 220, 220, 220, 230, 230, 220, - 230, 230, 222, 228, 230, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 0, 20, 21, 22, 0, 23, - }}, - {{ - 0, 24, 25, 0, 230, 220, 0, 18, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 230, 230, 230, 230, 230, 230, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 27, 28, 29, 30, 31, 32, 33, 34, 230, 230, 220, - 220, 230, 230, 230, 230, 230, 220, 230, 230, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 230, 230, 230, 230, 230, 230, 230, 0, 0, 230, - }}, - {{ - 230, 230, 230, 220, 230, 0, 0, 230, 230, 0, 220, - 230, 230, 220, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 230, 220, 230, 230, 220, 230, - 230, 220, 220, 220, 230, 220, 220, 230, 220, 230, - }}, - {{ - 230, 230, 220, 230, 220, 230, 220, 230, 220, 230, 230, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 9, 0, 0, 0, 230, 220, 230, 230, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 84, - 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 103, 103, 9, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, - 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 118, 118, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 122, 122, 122, - 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 220, 220, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, - 0, 220, 0, 216, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 129, 130, 0, 132, 0, - 0, 0, 0, 0, 130, 130, 130, 130, 0, 0, - }}, - {{ - 130, 0, 230, 230, 9, 0, 230, 230, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 7, 0, 9, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 230, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 222, 230, 220, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 230, 220, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 230, 230, 220, 230, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 230, 230, 1, 1, 230, 230, - 230, 230, 1, 1, 1, 230, 230, 0, 0, 0, - }}, - {{ - 0, 230, 0, 0, 0, 1, 1, 230, 220, 230, 1, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 218, - 228, 232, 222, 224, 224, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, - }}, - {{ - 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 220, 0, 230, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 230, 1, 220, 0, 0, 0, 0, 9, - }}, - {{ - 0, 0, 0, 0, 0, 216, 216, 1, 1, 1, 0, - 0, 0, 226, 216, 216, 216, 216, 216, 0, 0, 0, - 0, 0, 0, 0, 0, 220, 220, 220, 220, 220, - }}, - {{ - 220, 220, 220, 0, 0, 230, 230, 230, 230, 230, 220, - 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, - 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 230, 230, 230, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, -}; - -/* - * Canonical Composition - */ - -#define CANON_COMPOSE_BITS_0 9 -#define CANON_COMPOSE_BITS_1 7 -#define CANON_COMPOSE_BITS_2 5 - -static const char16_t compose_imap[] = { - 272, 400, 528, 656, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 0, 1, 2, 3, 0, 4, 5, 6, - 7, 0, 8, 9, 0, 10, 0, 11, - 0, 12, 0, 0, 13, 0, 0, 0, - 0, 0, 0, 0, 14, 15, 16, 0, - 17, 18, 19, 20, 0, 0, 21, 22, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 23, 24, 0, 0, 0, 25, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 26, 0, 0, 0, 0, 27, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 28, 0, 29, 0, 30, 0, - 0, 0, 31, 0, 0, 32, 33, 0, - 0, 0, 34, 0, 0, 0, 35, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 36, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 37, 38, 39, 0, 40, 41, 0, - 42, 43, 44, 45, 0, 46, 47, 48, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 49, 0, 50, 0, - 51, 52, 53, 54, 55, 56, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 57, 58, 59, 60, 61, 62, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -}; - -static const struct { - uint32_t tbl[32]; -} compose_table[] = { - {{ - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 65537, 65538, 65539, 0, - }}, - {{ - 0, 1048580, 196628, 327703, 393244, 1114146, 65587, - 458804, 458811, 983106, 65617, 327762, 393303, 196701, - 589920, 1048681, 131193, 0, 524411, 458883, 458890, - 1245329, 131236, 393382, 131244, 589998, 393399, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 1048765, 196813, 327888, 393429, 1114331, 65772, - 458989, 524532, 917756, 131338, 327948, 393489, 196887, - 590106, 1048867, 131379, 0, 524597, 459069, 524612, - 1245516, 131423, 459105, 131432, 655722, 393588, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, - 0, 196986, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 262525, 0, 65921, 65922, 131459, - 65925, 0, 0, 262534, 0, 0, 0, - 0, 65930, 0, 0, 0, 0, 262539, - 197007, 65938, 0, 65939, 0, 0, 0, - 262548, 0, 0, 0, - }}, - {{ - 0, 0, 262552, 0, 65948, 65949, 131486, - 65952, 0, 0, 262561, 0, 0, 0, - 0, 65957, 0, 0, 0, 0, 262566, - 197034, 65965, 0, 65966, 0, 0, 0, - 262575, 0, 0, 0, - }}, - {{ - 0, 0, 262579, 262583, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 131515, 131517, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 131519, 131521, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 65987, 65988, - 0, 0, 0, 0, - }}, - {{ - 65989, 65990, 0, 0, 0, 0, 0, - 0, 65991, 65992, 65993, 65994, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 65995, - }}, - {{ - 328140, 328145, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 328150, 328155, 0, 0, 0, 0, - 0, 0, 66016, 0, 0, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 66017, 66018, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 66019, - 66020, 66021, 66022, 0, 0, 0, 0, - 66023, 66024, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66025, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 459242, 0, 0, 0, - 262641, 0, 328181, 0, 459258, 0, 0, - 0, 0, 0, 262657, - }}, - {{ - 0, 66053, 0, 0, 0, 393734, 0, - 0, 0, 328204, 0, 0, 66065, 0, - 66066, 0, 0, 524819, 0, 0, 0, - 262683, 0, 393759, 0, 524837, 0, 0, - 0, 0, 0, 262701, - }}, - {{ - 0, 131633, 0, 0, 0, 524851, 0, - 0, 0, 393787, 197185, 197188, 0, 0, - 66119, 0, 0, 0, 131656, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 66122, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 131659, 0, 0, 66125, 0, - 197198, 131665, 66131, 262740, 0, 66136, 0, - 0, 0, 66137, 0, - }}, - {{ - 0, 0, 0, 262746, 0, 0, 0, - 66142, 0, 0, 0, 66143, 0, 66144, - 0, 0, 131681, 0, 0, 66147, 0, - 197220, 131687, 66153, 262762, 0, 66158, 0, - 0, 0, 66159, 0, - }}, - {{ - 0, 0, 0, 262768, 0, 0, 0, - 66164, 0, 0, 0, 66165, 0, 66166, - 0, 0, 0, 0, 0, 0, 0, - 0, 66167, 0, 0, 0, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 66168, - 66169, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 66170, 66171, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, - 0, 66172, 66173, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, - 197246, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, - 0, 66177, 0, 66178, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 66179, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66180, 0, 0, - 66181, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, - 0, 66182, 0, 0, 0, 0, 0, - 0, 0, 66183, 0, 0, 66184, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, - 131721, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, - 197259, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66190, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 131727, - 66193, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 66194, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 66195, - }}, - {{ - 0, 0, 0, 0, 0, 0, 197268, - 0, 0, 0, 66199, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 131736, - 66202, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 197275, 0, 0, - 66206, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 66207, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 66208, 66209, 0, 0, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 66210, 66211, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 66212, 66213, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 131750, 131752, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 66218, 66219, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 66220, 66221, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 262830, 262834, 66230, 66231, 66232, 66233, 66234, - 66235, 262844, 262848, 66244, 66245, 66246, 66247, - 66248, 66249, 131786, 131788, 0, 0, 0, - 0, 0, 0, 131790, 131792, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 262866, 262870, 66266, 66267, 66268, 66269, 66270, - 66271, 262880, 262884, 66280, 66281, 66282, 66283, - 66284, 66285, 197358, 197361, 0, 0, 0, - 0, 0, 0, 197364, 197367, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 131834, 131836, 0, 0, 0, 0, 0, - 0, 131838, 131840, 0, 0, 0, 0, - 0, 0, 197378, 197381, 0, 0, 0, - 0, 0, 0, 0, 197384, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 262923, 262927, 66323, 66324, 66325, 66326, 66327, - 66328, 262937, 262941, 66337, 66338, 66339, 66340, - 66341, 66342, 66343, 0, 0, 0, 66344, - 0, 0, 0, 0, 0, 0, 0, - 66345, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 66346, 0, 0, 0, 0, 0, - 0, 0, 0, 197419, - }}, - {{ - 0, 0, 0, 0, 0, 0, 66350, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 66351, 0, 0, 0, 0, 0, - 0, 0, 197424, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 66355, 0, 66356, 0, 66357, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 66358, 0, 66359, 0, 66360, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 66361, 0, 0, 0, - 0, 66362, 0, 0, 66363, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 66364, 0, 66365, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 66366, 0, 0, 0, - }}, - {{ - 0, 0, 0, 66367, 0, 66368, 0, - 0, 66369, 0, 0, 0, 0, 66370, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 66371, 0, 0, 66372, 66373, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 66374, 66375, 0, - 0, 66376, 66377, 0, 0, 66378, 66379, - 66380, 66381, 0, 0, - }}, - {{ - 0, 0, 66382, 66383, 0, 0, 66384, - 66385, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 66386, 66387, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 66388, 0, 0, 0, 0, - 0, 66389, 66390, 0, 66391, 0, 0, - 0, 0, 0, 0, 66392, 66393, 66394, - 66395, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 66396, - 0, 0, 0, 0, 66397, 0, 66398, - 0, 66399, 0, 66400, 0, 66401, 0, - 66402, 0, 66403, 0, 66404, 0, 66405, - 0, 66406, 0, 66407, - }}, - {{ - 0, 66408, 0, 0, 66409, 0, 66410, - 0, 66411, 0, 0, 0, 0, 0, - 0, 131948, 0, 0, 131950, 0, 0, - 131952, 0, 0, 131954, 0, 0, 131956, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 66422, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 66423, - 0, 0, 0, 0, 66424, 0, 66425, - 0, 66426, 0, 66427, 0, 66428, 0, - 66429, 0, 66430, 0, 66431, 0, 66432, - 0, 66433, 0, 66434, - }}, - {{ - 0, 66435, 0, 0, 66436, 0, 66437, - 0, 66438, 0, 0, 0, 0, 0, - 0, 131975, 0, 0, 131977, 0, 0, - 131979, 0, 0, 131981, 0, 0, 131983, - 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 66449, 66450, 66451, 66452, 0, 0, - 0, 0, 0, 0, 0, 0, 0, - 0, 66453, 0, 0, - }}, -}; - -static const struct composition compose_seq[] = { - { 0x00000000, 0x00000000 }, { 0x00000338, 0x0000226e }, - { 0x00000338, 0x00002260 }, { 0x00000338, 0x0000226f }, - { 0x00000300, 0x000000c0 }, { 0x00000301, 0x000000c1 }, - { 0x00000302, 0x000000c2 }, { 0x00000303, 0x000000c3 }, - { 0x00000304, 0x00000100 }, { 0x00000306, 0x00000102 }, - { 0x00000307, 0x00000226 }, { 0x00000308, 0x000000c4 }, - { 0x00000309, 0x00001ea2 }, { 0x0000030a, 0x000000c5 }, - { 0x0000030c, 0x000001cd }, { 0x0000030f, 0x00000200 }, - { 0x00000311, 0x00000202 }, { 0x00000323, 0x00001ea0 }, - { 0x00000325, 0x00001e00 }, { 0x00000328, 0x00000104 }, - { 0x00000307, 0x00001e02 }, { 0x00000323, 0x00001e04 }, - { 0x00000331, 0x00001e06 }, { 0x00000301, 0x00000106 }, - { 0x00000302, 0x00000108 }, { 0x00000307, 0x0000010a }, - { 0x0000030c, 0x0000010c }, { 0x00000327, 0x000000c7 }, - { 0x00000307, 0x00001e0a }, { 0x0000030c, 0x0000010e }, - { 0x00000323, 0x00001e0c }, { 0x00000327, 0x00001e10 }, - { 0x0000032d, 0x00001e12 }, { 0x00000331, 0x00001e0e }, - { 0x00000300, 0x000000c8 }, { 0x00000301, 0x000000c9 }, - { 0x00000302, 0x000000ca }, { 0x00000303, 0x00001ebc }, - { 0x00000304, 0x00000112 }, { 0x00000306, 0x00000114 }, - { 0x00000307, 0x00000116 }, { 0x00000308, 0x000000cb }, - { 0x00000309, 0x00001eba }, { 0x0000030c, 0x0000011a }, - { 0x0000030f, 0x00000204 }, { 0x00000311, 0x00000206 }, - { 0x00000323, 0x00001eb8 }, { 0x00000327, 0x00000228 }, - { 0x00000328, 0x00000118 }, { 0x0000032d, 0x00001e18 }, - { 0x00000330, 0x00001e1a }, { 0x00000307, 0x00001e1e }, - { 0x00000301, 0x000001f4 }, { 0x00000302, 0x0000011c }, - { 0x00000304, 0x00001e20 }, { 0x00000306, 0x0000011e }, - { 0x00000307, 0x00000120 }, { 0x0000030c, 0x000001e6 }, - { 0x00000327, 0x00000122 }, { 0x00000302, 0x00000124 }, - { 0x00000307, 0x00001e22 }, { 0x00000308, 0x00001e26 }, - { 0x0000030c, 0x0000021e }, { 0x00000323, 0x00001e24 }, - { 0x00000327, 0x00001e28 }, { 0x0000032e, 0x00001e2a }, - { 0x00000300, 0x000000cc }, { 0x00000301, 0x000000cd }, - { 0x00000302, 0x000000ce }, { 0x00000303, 0x00000128 }, - { 0x00000304, 0x0000012a }, { 0x00000306, 0x0000012c }, - { 0x00000307, 0x00000130 }, { 0x00000308, 0x000000cf }, - { 0x00000309, 0x00001ec8 }, { 0x0000030c, 0x000001cf }, - { 0x0000030f, 0x00000208 }, { 0x00000311, 0x0000020a }, - { 0x00000323, 0x00001eca }, { 0x00000328, 0x0000012e }, - { 0x00000330, 0x00001e2c }, { 0x00000302, 0x00000134 }, - { 0x00000301, 0x00001e30 }, { 0x0000030c, 0x000001e8 }, - { 0x00000323, 0x00001e32 }, { 0x00000327, 0x00000136 }, - { 0x00000331, 0x00001e34 }, { 0x00000301, 0x00000139 }, - { 0x0000030c, 0x0000013d }, { 0x00000323, 0x00001e36 }, - { 0x00000327, 0x0000013b }, { 0x0000032d, 0x00001e3c }, - { 0x00000331, 0x00001e3a }, { 0x00000301, 0x00001e3e }, - { 0x00000307, 0x00001e40 }, { 0x00000323, 0x00001e42 }, - { 0x00000300, 0x000001f8 }, { 0x00000301, 0x00000143 }, - { 0x00000303, 0x000000d1 }, { 0x00000307, 0x00001e44 }, - { 0x0000030c, 0x00000147 }, { 0x00000323, 0x00001e46 }, - { 0x00000327, 0x00000145 }, { 0x0000032d, 0x00001e4a }, - { 0x00000331, 0x00001e48 }, { 0x00000300, 0x000000d2 }, - { 0x00000301, 0x000000d3 }, { 0x00000302, 0x000000d4 }, - { 0x00000303, 0x000000d5 }, { 0x00000304, 0x0000014c }, - { 0x00000306, 0x0000014e }, { 0x00000307, 0x0000022e }, - { 0x00000308, 0x000000d6 }, { 0x00000309, 0x00001ece }, - { 0x0000030b, 0x00000150 }, { 0x0000030c, 0x000001d1 }, - { 0x0000030f, 0x0000020c }, { 0x00000311, 0x0000020e }, - { 0x0000031b, 0x000001a0 }, { 0x00000323, 0x00001ecc }, - { 0x00000328, 0x000001ea }, { 0x00000301, 0x00001e54 }, - { 0x00000307, 0x00001e56 }, { 0x00000301, 0x00000154 }, - { 0x00000307, 0x00001e58 }, { 0x0000030c, 0x00000158 }, - { 0x0000030f, 0x00000210 }, { 0x00000311, 0x00000212 }, - { 0x00000323, 0x00001e5a }, { 0x00000327, 0x00000156 }, - { 0x00000331, 0x00001e5e }, { 0x00000301, 0x0000015a }, - { 0x00000302, 0x0000015c }, { 0x00000307, 0x00001e60 }, - { 0x0000030c, 0x00000160 }, { 0x00000323, 0x00001e62 }, - { 0x00000326, 0x00000218 }, { 0x00000327, 0x0000015e }, - { 0x00000307, 0x00001e6a }, { 0x0000030c, 0x00000164 }, - { 0x00000323, 0x00001e6c }, { 0x00000326, 0x0000021a }, - { 0x00000327, 0x00000162 }, { 0x0000032d, 0x00001e70 }, - { 0x00000331, 0x00001e6e }, { 0x00000300, 0x000000d9 }, - { 0x00000301, 0x000000da }, { 0x00000302, 0x000000db }, - { 0x00000303, 0x00000168 }, { 0x00000304, 0x0000016a }, - { 0x00000306, 0x0000016c }, { 0x00000308, 0x000000dc }, - { 0x00000309, 0x00001ee6 }, { 0x0000030a, 0x0000016e }, - { 0x0000030b, 0x00000170 }, { 0x0000030c, 0x000001d3 }, - { 0x0000030f, 0x00000214 }, { 0x00000311, 0x00000216 }, - { 0x0000031b, 0x000001af }, { 0x00000323, 0x00001ee4 }, - { 0x00000324, 0x00001e72 }, { 0x00000328, 0x00000172 }, - { 0x0000032d, 0x00001e76 }, { 0x00000330, 0x00001e74 }, - { 0x00000303, 0x00001e7c }, { 0x00000323, 0x00001e7e }, - { 0x00000300, 0x00001e80 }, { 0x00000301, 0x00001e82 }, - { 0x00000302, 0x00000174 }, { 0x00000307, 0x00001e86 }, - { 0x00000308, 0x00001e84 }, { 0x00000323, 0x00001e88 }, - { 0x00000307, 0x00001e8a }, { 0x00000308, 0x00001e8c }, - { 0x00000300, 0x00001ef2 }, { 0x00000301, 0x000000dd }, - { 0x00000302, 0x00000176 }, { 0x00000303, 0x00001ef8 }, - { 0x00000304, 0x00000232 }, { 0x00000307, 0x00001e8e }, - { 0x00000308, 0x00000178 }, { 0x00000309, 0x00001ef6 }, - { 0x00000323, 0x00001ef4 }, { 0x00000301, 0x00000179 }, - { 0x00000302, 0x00001e90 }, { 0x00000307, 0x0000017b }, - { 0x0000030c, 0x0000017d }, { 0x00000323, 0x00001e92 }, - { 0x00000331, 0x00001e94 }, { 0x00000300, 0x000000e0 }, - { 0x00000301, 0x000000e1 }, { 0x00000302, 0x000000e2 }, - { 0x00000303, 0x000000e3 }, { 0x00000304, 0x00000101 }, - { 0x00000306, 0x00000103 }, { 0x00000307, 0x00000227 }, - { 0x00000308, 0x000000e4 }, { 0x00000309, 0x00001ea3 }, - { 0x0000030a, 0x000000e5 }, { 0x0000030c, 0x000001ce }, - { 0x0000030f, 0x00000201 }, { 0x00000311, 0x00000203 }, - { 0x00000323, 0x00001ea1 }, { 0x00000325, 0x00001e01 }, - { 0x00000328, 0x00000105 }, { 0x00000307, 0x00001e03 }, - { 0x00000323, 0x00001e05 }, { 0x00000331, 0x00001e07 }, - { 0x00000301, 0x00000107 }, { 0x00000302, 0x00000109 }, - { 0x00000307, 0x0000010b }, { 0x0000030c, 0x0000010d }, - { 0x00000327, 0x000000e7 }, { 0x00000307, 0x00001e0b }, - { 0x0000030c, 0x0000010f }, { 0x00000323, 0x00001e0d }, - { 0x00000327, 0x00001e11 }, { 0x0000032d, 0x00001e13 }, - { 0x00000331, 0x00001e0f }, { 0x00000300, 0x000000e8 }, - { 0x00000301, 0x000000e9 }, { 0x00000302, 0x000000ea }, - { 0x00000303, 0x00001ebd }, { 0x00000304, 0x00000113 }, - { 0x00000306, 0x00000115 }, { 0x00000307, 0x00000117 }, - { 0x00000308, 0x000000eb }, { 0x00000309, 0x00001ebb }, - { 0x0000030c, 0x0000011b }, { 0x0000030f, 0x00000205 }, - { 0x00000311, 0x00000207 }, { 0x00000323, 0x00001eb9 }, - { 0x00000327, 0x00000229 }, { 0x00000328, 0x00000119 }, - { 0x0000032d, 0x00001e19 }, { 0x00000330, 0x00001e1b }, - { 0x00000307, 0x00001e1f }, { 0x00000301, 0x000001f5 }, - { 0x00000302, 0x0000011d }, { 0x00000304, 0x00001e21 }, - { 0x00000306, 0x0000011f }, { 0x00000307, 0x00000121 }, - { 0x0000030c, 0x000001e7 }, { 0x00000327, 0x00000123 }, - { 0x00000302, 0x00000125 }, { 0x00000307, 0x00001e23 }, - { 0x00000308, 0x00001e27 }, { 0x0000030c, 0x0000021f }, - { 0x00000323, 0x00001e25 }, { 0x00000327, 0x00001e29 }, - { 0x0000032e, 0x00001e2b }, { 0x00000331, 0x00001e96 }, - { 0x00000300, 0x000000ec }, { 0x00000301, 0x000000ed }, - { 0x00000302, 0x000000ee }, { 0x00000303, 0x00000129 }, - { 0x00000304, 0x0000012b }, { 0x00000306, 0x0000012d }, - { 0x00000308, 0x000000ef }, { 0x00000309, 0x00001ec9 }, - { 0x0000030c, 0x000001d0 }, { 0x0000030f, 0x00000209 }, - { 0x00000311, 0x0000020b }, { 0x00000323, 0x00001ecb }, - { 0x00000328, 0x0000012f }, { 0x00000330, 0x00001e2d }, - { 0x00000302, 0x00000135 }, { 0x0000030c, 0x000001f0 }, - { 0x00000301, 0x00001e31 }, { 0x0000030c, 0x000001e9 }, - { 0x00000323, 0x00001e33 }, { 0x00000327, 0x00000137 }, - { 0x00000331, 0x00001e35 }, { 0x00000301, 0x0000013a }, - { 0x0000030c, 0x0000013e }, { 0x00000323, 0x00001e37 }, - { 0x00000327, 0x0000013c }, { 0x0000032d, 0x00001e3d }, - { 0x00000331, 0x00001e3b }, { 0x00000301, 0x00001e3f }, - { 0x00000307, 0x00001e41 }, { 0x00000323, 0x00001e43 }, - { 0x00000300, 0x000001f9 }, { 0x00000301, 0x00000144 }, - { 0x00000303, 0x000000f1 }, { 0x00000307, 0x00001e45 }, - { 0x0000030c, 0x00000148 }, { 0x00000323, 0x00001e47 }, - { 0x00000327, 0x00000146 }, { 0x0000032d, 0x00001e4b }, - { 0x00000331, 0x00001e49 }, { 0x00000300, 0x000000f2 }, - { 0x00000301, 0x000000f3 }, { 0x00000302, 0x000000f4 }, - { 0x00000303, 0x000000f5 }, { 0x00000304, 0x0000014d }, - { 0x00000306, 0x0000014f }, { 0x00000307, 0x0000022f }, - { 0x00000308, 0x000000f6 }, { 0x00000309, 0x00001ecf }, - { 0x0000030b, 0x00000151 }, { 0x0000030c, 0x000001d2 }, - { 0x0000030f, 0x0000020d }, { 0x00000311, 0x0000020f }, - { 0x0000031b, 0x000001a1 }, { 0x00000323, 0x00001ecd }, - { 0x00000328, 0x000001eb }, { 0x00000301, 0x00001e55 }, - { 0x00000307, 0x00001e57 }, { 0x00000301, 0x00000155 }, - { 0x00000307, 0x00001e59 }, { 0x0000030c, 0x00000159 }, - { 0x0000030f, 0x00000211 }, { 0x00000311, 0x00000213 }, - { 0x00000323, 0x00001e5b }, { 0x00000327, 0x00000157 }, - { 0x00000331, 0x00001e5f }, { 0x00000301, 0x0000015b }, - { 0x00000302, 0x0000015d }, { 0x00000307, 0x00001e61 }, - { 0x0000030c, 0x00000161 }, { 0x00000323, 0x00001e63 }, - { 0x00000326, 0x00000219 }, { 0x00000327, 0x0000015f }, - { 0x00000307, 0x00001e6b }, { 0x00000308, 0x00001e97 }, - { 0x0000030c, 0x00000165 }, { 0x00000323, 0x00001e6d }, - { 0x00000326, 0x0000021b }, { 0x00000327, 0x00000163 }, - { 0x0000032d, 0x00001e71 }, { 0x00000331, 0x00001e6f }, - { 0x00000300, 0x000000f9 }, { 0x00000301, 0x000000fa }, - { 0x00000302, 0x000000fb }, { 0x00000303, 0x00000169 }, - { 0x00000304, 0x0000016b }, { 0x00000306, 0x0000016d }, - { 0x00000308, 0x000000fc }, { 0x00000309, 0x00001ee7 }, - { 0x0000030a, 0x0000016f }, { 0x0000030b, 0x00000171 }, - { 0x0000030c, 0x000001d4 }, { 0x0000030f, 0x00000215 }, - { 0x00000311, 0x00000217 }, { 0x0000031b, 0x000001b0 }, - { 0x00000323, 0x00001ee5 }, { 0x00000324, 0x00001e73 }, - { 0x00000328, 0x00000173 }, { 0x0000032d, 0x00001e77 }, - { 0x00000330, 0x00001e75 }, { 0x00000303, 0x00001e7d }, - { 0x00000323, 0x00001e7f }, { 0x00000300, 0x00001e81 }, - { 0x00000301, 0x00001e83 }, { 0x00000302, 0x00000175 }, - { 0x00000307, 0x00001e87 }, { 0x00000308, 0x00001e85 }, - { 0x0000030a, 0x00001e98 }, { 0x00000323, 0x00001e89 }, - { 0x00000307, 0x00001e8b }, { 0x00000308, 0x00001e8d }, - { 0x00000300, 0x00001ef3 }, { 0x00000301, 0x000000fd }, - { 0x00000302, 0x00000177 }, { 0x00000303, 0x00001ef9 }, - { 0x00000304, 0x00000233 }, { 0x00000307, 0x00001e8f }, - { 0x00000308, 0x000000ff }, { 0x00000309, 0x00001ef7 }, - { 0x0000030a, 0x00001e99 }, { 0x00000323, 0x00001ef5 }, - { 0x00000301, 0x0000017a }, { 0x00000302, 0x00001e91 }, - { 0x00000307, 0x0000017c }, { 0x0000030c, 0x0000017e }, - { 0x00000323, 0x00001e93 }, { 0x00000331, 0x00001e95 }, - { 0x00000300, 0x00001fed }, { 0x00000301, 0x00000385 }, - { 0x00000342, 0x00001fc1 }, { 0x00000300, 0x00001ea6 }, - { 0x00000301, 0x00001ea4 }, { 0x00000303, 0x00001eaa }, - { 0x00000309, 0x00001ea8 }, { 0x00000304, 0x000001de }, - { 0x00000301, 0x000001fa }, { 0x00000301, 0x000001fc }, - { 0x00000304, 0x000001e2 }, { 0x00000301, 0x00001e08 }, - { 0x00000300, 0x00001ec0 }, { 0x00000301, 0x00001ebe }, - { 0x00000303, 0x00001ec4 }, { 0x00000309, 0x00001ec2 }, - { 0x00000301, 0x00001e2e }, { 0x00000300, 0x00001ed2 }, - { 0x00000301, 0x00001ed0 }, { 0x00000303, 0x00001ed6 }, - { 0x00000309, 0x00001ed4 }, { 0x00000301, 0x00001e4c }, - { 0x00000304, 0x0000022c }, { 0x00000308, 0x00001e4e }, - { 0x00000304, 0x0000022a }, { 0x00000301, 0x000001fe }, - { 0x00000300, 0x000001db }, { 0x00000301, 0x000001d7 }, - { 0x00000304, 0x000001d5 }, { 0x0000030c, 0x000001d9 }, - { 0x00000300, 0x00001ea7 }, { 0x00000301, 0x00001ea5 }, - { 0x00000303, 0x00001eab }, { 0x00000309, 0x00001ea9 }, - { 0x00000304, 0x000001df }, { 0x00000301, 0x000001fb }, - { 0x00000301, 0x000001fd }, { 0x00000304, 0x000001e3 }, - { 0x00000301, 0x00001e09 }, { 0x00000300, 0x00001ec1 }, - { 0x00000301, 0x00001ebf }, { 0x00000303, 0x00001ec5 }, - { 0x00000309, 0x00001ec3 }, { 0x00000301, 0x00001e2f }, - { 0x00000300, 0x00001ed3 }, { 0x00000301, 0x00001ed1 }, - { 0x00000303, 0x00001ed7 }, { 0x00000309, 0x00001ed5 }, - { 0x00000301, 0x00001e4d }, { 0x00000304, 0x0000022d }, - { 0x00000308, 0x00001e4f }, { 0x00000304, 0x0000022b }, - { 0x00000301, 0x000001ff }, { 0x00000300, 0x000001dc }, - { 0x00000301, 0x000001d8 }, { 0x00000304, 0x000001d6 }, - { 0x0000030c, 0x000001da }, { 0x00000300, 0x00001eb0 }, - { 0x00000301, 0x00001eae }, { 0x00000303, 0x00001eb4 }, - { 0x00000309, 0x00001eb2 }, { 0x00000300, 0x00001eb1 }, - { 0x00000301, 0x00001eaf }, { 0x00000303, 0x00001eb5 }, - { 0x00000309, 0x00001eb3 }, { 0x00000300, 0x00001e14 }, - { 0x00000301, 0x00001e16 }, { 0x00000300, 0x00001e15 }, - { 0x00000301, 0x00001e17 }, { 0x00000300, 0x00001e50 }, - { 0x00000301, 0x00001e52 }, { 0x00000300, 0x00001e51 }, - { 0x00000301, 0x00001e53 }, { 0x00000307, 0x00001e64 }, - { 0x00000307, 0x00001e65 }, { 0x00000307, 0x00001e66 }, - { 0x00000307, 0x00001e67 }, { 0x00000301, 0x00001e78 }, - { 0x00000301, 0x00001e79 }, { 0x00000308, 0x00001e7a }, - { 0x00000308, 0x00001e7b }, { 0x00000307, 0x00001e9b }, - { 0x00000300, 0x00001edc }, { 0x00000301, 0x00001eda }, - { 0x00000303, 0x00001ee0 }, { 0x00000309, 0x00001ede }, - { 0x00000323, 0x00001ee2 }, { 0x00000300, 0x00001edd }, - { 0x00000301, 0x00001edb }, { 0x00000303, 0x00001ee1 }, - { 0x00000309, 0x00001edf }, { 0x00000323, 0x00001ee3 }, - { 0x00000300, 0x00001eea }, { 0x00000301, 0x00001ee8 }, - { 0x00000303, 0x00001eee }, { 0x00000309, 0x00001eec }, - { 0x00000323, 0x00001ef0 }, { 0x00000300, 0x00001eeb }, - { 0x00000301, 0x00001ee9 }, { 0x00000303, 0x00001eef }, - { 0x00000309, 0x00001eed }, { 0x00000323, 0x00001ef1 }, - { 0x0000030c, 0x000001ee }, { 0x00000304, 0x000001ec }, - { 0x00000304, 0x000001ed }, { 0x00000304, 0x000001e0 }, - { 0x00000304, 0x000001e1 }, { 0x00000306, 0x00001e1c }, - { 0x00000306, 0x00001e1d }, { 0x00000304, 0x00000230 }, - { 0x00000304, 0x00000231 }, { 0x0000030c, 0x000001ef }, - { 0x00000300, 0x00001fba }, { 0x00000301, 0x00000386 }, - { 0x00000304, 0x00001fb9 }, { 0x00000306, 0x00001fb8 }, - { 0x00000313, 0x00001f08 }, { 0x00000314, 0x00001f09 }, - { 0x00000345, 0x00001fbc }, { 0x00000300, 0x00001fc8 }, - { 0x00000301, 0x00000388 }, { 0x00000313, 0x00001f18 }, - { 0x00000314, 0x00001f19 }, { 0x00000300, 0x00001fca }, - { 0x00000301, 0x00000389 }, { 0x00000313, 0x00001f28 }, - { 0x00000314, 0x00001f29 }, { 0x00000345, 0x00001fcc }, - { 0x00000300, 0x00001fda }, { 0x00000301, 0x0000038a }, - { 0x00000304, 0x00001fd9 }, { 0x00000306, 0x00001fd8 }, - { 0x00000308, 0x000003aa }, { 0x00000313, 0x00001f38 }, - { 0x00000314, 0x00001f39 }, { 0x00000300, 0x00001ff8 }, - { 0x00000301, 0x0000038c }, { 0x00000313, 0x00001f48 }, - { 0x00000314, 0x00001f49 }, { 0x00000314, 0x00001fec }, - { 0x00000300, 0x00001fea }, { 0x00000301, 0x0000038e }, - { 0x00000304, 0x00001fe9 }, { 0x00000306, 0x00001fe8 }, - { 0x00000308, 0x000003ab }, { 0x00000314, 0x00001f59 }, - { 0x00000300, 0x00001ffa }, { 0x00000301, 0x0000038f }, - { 0x00000313, 0x00001f68 }, { 0x00000314, 0x00001f69 }, - { 0x00000345, 0x00001ffc }, { 0x00000345, 0x00001fb4 }, - { 0x00000345, 0x00001fc4 }, { 0x00000300, 0x00001f70 }, - { 0x00000301, 0x000003ac }, { 0x00000304, 0x00001fb1 }, - { 0x00000306, 0x00001fb0 }, { 0x00000313, 0x00001f00 }, - { 0x00000314, 0x00001f01 }, { 0x00000342, 0x00001fb6 }, - { 0x00000345, 0x00001fb3 }, { 0x00000300, 0x00001f72 }, - { 0x00000301, 0x000003ad }, { 0x00000313, 0x00001f10 }, - { 0x00000314, 0x00001f11 }, { 0x00000300, 0x00001f74 }, - { 0x00000301, 0x000003ae }, { 0x00000313, 0x00001f20 }, - { 0x00000314, 0x00001f21 }, { 0x00000342, 0x00001fc6 }, - { 0x00000345, 0x00001fc3 }, { 0x00000300, 0x00001f76 }, - { 0x00000301, 0x000003af }, { 0x00000304, 0x00001fd1 }, - { 0x00000306, 0x00001fd0 }, { 0x00000308, 0x000003ca }, - { 0x00000313, 0x00001f30 }, { 0x00000314, 0x00001f31 }, - { 0x00000342, 0x00001fd6 }, { 0x00000300, 0x00001f78 }, - { 0x00000301, 0x000003cc }, { 0x00000313, 0x00001f40 }, - { 0x00000314, 0x00001f41 }, { 0x00000313, 0x00001fe4 }, - { 0x00000314, 0x00001fe5 }, { 0x00000300, 0x00001f7a }, - { 0x00000301, 0x000003cd }, { 0x00000304, 0x00001fe1 }, - { 0x00000306, 0x00001fe0 }, { 0x00000308, 0x000003cb }, - { 0x00000313, 0x00001f50 }, { 0x00000314, 0x00001f51 }, - { 0x00000342, 0x00001fe6 }, { 0x00000300, 0x00001f7c }, - { 0x00000301, 0x000003ce }, { 0x00000313, 0x00001f60 }, - { 0x00000314, 0x00001f61 }, { 0x00000342, 0x00001ff6 }, - { 0x00000345, 0x00001ff3 }, { 0x00000300, 0x00001fd2 }, - { 0x00000301, 0x00000390 }, { 0x00000342, 0x00001fd7 }, - { 0x00000300, 0x00001fe2 }, { 0x00000301, 0x000003b0 }, - { 0x00000342, 0x00001fe7 }, { 0x00000345, 0x00001ff4 }, - { 0x00000301, 0x000003d3 }, { 0x00000308, 0x000003d4 }, - { 0x00000308, 0x00000407 }, { 0x00000306, 0x000004d0 }, - { 0x00000308, 0x000004d2 }, { 0x00000301, 0x00000403 }, - { 0x00000300, 0x00000400 }, { 0x00000306, 0x000004d6 }, - { 0x00000308, 0x00000401 }, { 0x00000306, 0x000004c1 }, - { 0x00000308, 0x000004dc }, { 0x00000308, 0x000004de }, - { 0x00000300, 0x0000040d }, { 0x00000304, 0x000004e2 }, - { 0x00000306, 0x00000419 }, { 0x00000308, 0x000004e4 }, - { 0x00000301, 0x0000040c }, { 0x00000308, 0x000004e6 }, - { 0x00000304, 0x000004ee }, { 0x00000306, 0x0000040e }, - { 0x00000308, 0x000004f0 }, { 0x0000030b, 0x000004f2 }, - { 0x00000308, 0x000004f4 }, { 0x00000308, 0x000004f8 }, - { 0x00000308, 0x000004ec }, { 0x00000306, 0x000004d1 }, - { 0x00000308, 0x000004d3 }, { 0x00000301, 0x00000453 }, - { 0x00000300, 0x00000450 }, { 0x00000306, 0x000004d7 }, - { 0x00000308, 0x00000451 }, { 0x00000306, 0x000004c2 }, - { 0x00000308, 0x000004dd }, { 0x00000308, 0x000004df }, - { 0x00000300, 0x0000045d }, { 0x00000304, 0x000004e3 }, - { 0x00000306, 0x00000439 }, { 0x00000308, 0x000004e5 }, - { 0x00000301, 0x0000045c }, { 0x00000308, 0x000004e7 }, - { 0x00000304, 0x000004ef }, { 0x00000306, 0x0000045e }, - { 0x00000308, 0x000004f1 }, { 0x0000030b, 0x000004f3 }, - { 0x00000308, 0x000004f5 }, { 0x00000308, 0x000004f9 }, - { 0x00000308, 0x000004ed }, { 0x00000308, 0x00000457 }, - { 0x0000030f, 0x00000476 }, { 0x0000030f, 0x00000477 }, - { 0x00000308, 0x000004da }, { 0x00000308, 0x000004db }, - { 0x00000308, 0x000004ea }, { 0x00000308, 0x000004eb }, - { 0x00000653, 0x00000622 }, { 0x00000654, 0x00000623 }, - { 0x00000655, 0x00000625 }, { 0x00000654, 0x00000624 }, - { 0x00000654, 0x00000626 }, { 0x00000654, 0x000006c2 }, - { 0x00000654, 0x000006d3 }, { 0x00000654, 0x000006c0 }, - { 0x0000093c, 0x00000929 }, { 0x0000093c, 0x00000931 }, - { 0x0000093c, 0x00000934 }, { 0x000009be, 0x000009cb }, - { 0x000009d7, 0x000009cc }, { 0x00000b3e, 0x00000b4b }, - { 0x00000b56, 0x00000b48 }, { 0x00000b57, 0x00000b4c }, - { 0x00000bd7, 0x00000b94 }, { 0x00000bbe, 0x00000bca }, - { 0x00000bd7, 0x00000bcc }, { 0x00000bbe, 0x00000bcb }, - { 0x00000c56, 0x00000c48 }, { 0x00000cd5, 0x00000cc0 }, - { 0x00000cc2, 0x00000cca }, { 0x00000cd5, 0x00000cc7 }, - { 0x00000cd6, 0x00000cc8 }, { 0x00000cd5, 0x00000ccb }, - { 0x00000d3e, 0x00000d4a }, { 0x00000d57, 0x00000d4c }, - { 0x00000d3e, 0x00000d4b }, { 0x00000dca, 0x00000dda }, - { 0x00000dcf, 0x00000ddc }, { 0x00000ddf, 0x00000dde }, - { 0x00000dca, 0x00000ddd }, { 0x0000102e, 0x00001026 }, - { 0x00000304, 0x00001e38 }, { 0x00000304, 0x00001e39 }, - { 0x00000304, 0x00001e5c }, { 0x00000304, 0x00001e5d }, - { 0x00000307, 0x00001e68 }, { 0x00000307, 0x00001e69 }, - { 0x00000302, 0x00001eac }, { 0x00000306, 0x00001eb6 }, - { 0x00000302, 0x00001ead }, { 0x00000306, 0x00001eb7 }, - { 0x00000302, 0x00001ec6 }, { 0x00000302, 0x00001ec7 }, - { 0x00000302, 0x00001ed8 }, { 0x00000302, 0x00001ed9 }, - { 0x00000300, 0x00001f02 }, { 0x00000301, 0x00001f04 }, - { 0x00000342, 0x00001f06 }, { 0x00000345, 0x00001f80 }, - { 0x00000300, 0x00001f03 }, { 0x00000301, 0x00001f05 }, - { 0x00000342, 0x00001f07 }, { 0x00000345, 0x00001f81 }, - { 0x00000345, 0x00001f82 }, { 0x00000345, 0x00001f83 }, - { 0x00000345, 0x00001f84 }, { 0x00000345, 0x00001f85 }, - { 0x00000345, 0x00001f86 }, { 0x00000345, 0x00001f87 }, - { 0x00000300, 0x00001f0a }, { 0x00000301, 0x00001f0c }, - { 0x00000342, 0x00001f0e }, { 0x00000345, 0x00001f88 }, - { 0x00000300, 0x00001f0b }, { 0x00000301, 0x00001f0d }, - { 0x00000342, 0x00001f0f }, { 0x00000345, 0x00001f89 }, - { 0x00000345, 0x00001f8a }, { 0x00000345, 0x00001f8b }, - { 0x00000345, 0x00001f8c }, { 0x00000345, 0x00001f8d }, - { 0x00000345, 0x00001f8e }, { 0x00000345, 0x00001f8f }, - { 0x00000300, 0x00001f12 }, { 0x00000301, 0x00001f14 }, - { 0x00000300, 0x00001f13 }, { 0x00000301, 0x00001f15 }, - { 0x00000300, 0x00001f1a }, { 0x00000301, 0x00001f1c }, - { 0x00000300, 0x00001f1b }, { 0x00000301, 0x00001f1d }, - { 0x00000300, 0x00001f22 }, { 0x00000301, 0x00001f24 }, - { 0x00000342, 0x00001f26 }, { 0x00000345, 0x00001f90 }, - { 0x00000300, 0x00001f23 }, { 0x00000301, 0x00001f25 }, - { 0x00000342, 0x00001f27 }, { 0x00000345, 0x00001f91 }, - { 0x00000345, 0x00001f92 }, { 0x00000345, 0x00001f93 }, - { 0x00000345, 0x00001f94 }, { 0x00000345, 0x00001f95 }, - { 0x00000345, 0x00001f96 }, { 0x00000345, 0x00001f97 }, - { 0x00000300, 0x00001f2a }, { 0x00000301, 0x00001f2c }, - { 0x00000342, 0x00001f2e }, { 0x00000345, 0x00001f98 }, - { 0x00000300, 0x00001f2b }, { 0x00000301, 0x00001f2d }, - { 0x00000342, 0x00001f2f }, { 0x00000345, 0x00001f99 }, - { 0x00000345, 0x00001f9a }, { 0x00000345, 0x00001f9b }, - { 0x00000345, 0x00001f9c }, { 0x00000345, 0x00001f9d }, - { 0x00000345, 0x00001f9e }, { 0x00000345, 0x00001f9f }, - { 0x00000300, 0x00001f32 }, { 0x00000301, 0x00001f34 }, - { 0x00000342, 0x00001f36 }, { 0x00000300, 0x00001f33 }, - { 0x00000301, 0x00001f35 }, { 0x00000342, 0x00001f37 }, - { 0x00000300, 0x00001f3a }, { 0x00000301, 0x00001f3c }, - { 0x00000342, 0x00001f3e }, { 0x00000300, 0x00001f3b }, - { 0x00000301, 0x00001f3d }, { 0x00000342, 0x00001f3f }, - { 0x00000300, 0x00001f42 }, { 0x00000301, 0x00001f44 }, - { 0x00000300, 0x00001f43 }, { 0x00000301, 0x00001f45 }, - { 0x00000300, 0x00001f4a }, { 0x00000301, 0x00001f4c }, - { 0x00000300, 0x00001f4b }, { 0x00000301, 0x00001f4d }, - { 0x00000300, 0x00001f52 }, { 0x00000301, 0x00001f54 }, - { 0x00000342, 0x00001f56 }, { 0x00000300, 0x00001f53 }, - { 0x00000301, 0x00001f55 }, { 0x00000342, 0x00001f57 }, - { 0x00000300, 0x00001f5b }, { 0x00000301, 0x00001f5d }, - { 0x00000342, 0x00001f5f }, { 0x00000300, 0x00001f62 }, - { 0x00000301, 0x00001f64 }, { 0x00000342, 0x00001f66 }, - { 0x00000345, 0x00001fa0 }, { 0x00000300, 0x00001f63 }, - { 0x00000301, 0x00001f65 }, { 0x00000342, 0x00001f67 }, - { 0x00000345, 0x00001fa1 }, { 0x00000345, 0x00001fa2 }, - { 0x00000345, 0x00001fa3 }, { 0x00000345, 0x00001fa4 }, - { 0x00000345, 0x00001fa5 }, { 0x00000345, 0x00001fa6 }, - { 0x00000345, 0x00001fa7 }, { 0x00000300, 0x00001f6a }, - { 0x00000301, 0x00001f6c }, { 0x00000342, 0x00001f6e }, - { 0x00000345, 0x00001fa8 }, { 0x00000300, 0x00001f6b }, - { 0x00000301, 0x00001f6d }, { 0x00000342, 0x00001f6f }, - { 0x00000345, 0x00001fa9 }, { 0x00000345, 0x00001faa }, - { 0x00000345, 0x00001fab }, { 0x00000345, 0x00001fac }, - { 0x00000345, 0x00001fad }, { 0x00000345, 0x00001fae }, - { 0x00000345, 0x00001faf }, { 0x00000345, 0x00001fb2 }, - { 0x00000345, 0x00001fc2 }, { 0x00000345, 0x00001ff2 }, - { 0x00000345, 0x00001fb7 }, { 0x00000300, 0x00001fcd }, - { 0x00000301, 0x00001fce }, { 0x00000342, 0x00001fcf }, - { 0x00000345, 0x00001fc7 }, { 0x00000345, 0x00001ff7 }, - { 0x00000300, 0x00001fdd }, { 0x00000301, 0x00001fde }, - { 0x00000342, 0x00001fdf }, { 0x00000338, 0x0000219a }, - { 0x00000338, 0x0000219b }, { 0x00000338, 0x000021ae }, - { 0x00000338, 0x000021cd }, { 0x00000338, 0x000021cf }, - { 0x00000338, 0x000021ce }, { 0x00000338, 0x00002204 }, - { 0x00000338, 0x00002209 }, { 0x00000338, 0x0000220c }, - { 0x00000338, 0x00002224 }, { 0x00000338, 0x00002226 }, - { 0x00000338, 0x00002241 }, { 0x00000338, 0x00002244 }, - { 0x00000338, 0x00002247 }, { 0x00000338, 0x00002249 }, - { 0x00000338, 0x0000226d }, { 0x00000338, 0x00002262 }, - { 0x00000338, 0x00002270 }, { 0x00000338, 0x00002271 }, - { 0x00000338, 0x00002274 }, { 0x00000338, 0x00002275 }, - { 0x00000338, 0x00002278 }, { 0x00000338, 0x00002279 }, - { 0x00000338, 0x00002280 }, { 0x00000338, 0x00002281 }, - { 0x00000338, 0x000022e0 }, { 0x00000338, 0x000022e1 }, - { 0x00000338, 0x00002284 }, { 0x00000338, 0x00002285 }, - { 0x00000338, 0x00002288 }, { 0x00000338, 0x00002289 }, - { 0x00000338, 0x000022e2 }, { 0x00000338, 0x000022e3 }, - { 0x00000338, 0x000022ac }, { 0x00000338, 0x000022ad }, - { 0x00000338, 0x000022ae }, { 0x00000338, 0x000022af }, - { 0x00000338, 0x000022ea }, { 0x00000338, 0x000022eb }, - { 0x00000338, 0x000022ec }, { 0x00000338, 0x000022ed }, - { 0x00003099, 0x00003094 }, { 0x00003099, 0x0000304c }, - { 0x00003099, 0x0000304e }, { 0x00003099, 0x00003050 }, - { 0x00003099, 0x00003052 }, { 0x00003099, 0x00003054 }, - { 0x00003099, 0x00003056 }, { 0x00003099, 0x00003058 }, - { 0x00003099, 0x0000305a }, { 0x00003099, 0x0000305c }, - { 0x00003099, 0x0000305e }, { 0x00003099, 0x00003060 }, - { 0x00003099, 0x00003062 }, { 0x00003099, 0x00003065 }, - { 0x00003099, 0x00003067 }, { 0x00003099, 0x00003069 }, - { 0x00003099, 0x00003070 }, { 0x0000309a, 0x00003071 }, - { 0x00003099, 0x00003073 }, { 0x0000309a, 0x00003074 }, - { 0x00003099, 0x00003076 }, { 0x0000309a, 0x00003077 }, - { 0x00003099, 0x00003079 }, { 0x0000309a, 0x0000307a }, - { 0x00003099, 0x0000307c }, { 0x0000309a, 0x0000307d }, - { 0x00003099, 0x0000309e }, { 0x00003099, 0x000030f4 }, - { 0x00003099, 0x000030ac }, { 0x00003099, 0x000030ae }, - { 0x00003099, 0x000030b0 }, { 0x00003099, 0x000030b2 }, - { 0x00003099, 0x000030b4 }, { 0x00003099, 0x000030b6 }, - { 0x00003099, 0x000030b8 }, { 0x00003099, 0x000030ba }, - { 0x00003099, 0x000030bc }, { 0x00003099, 0x000030be }, - { 0x00003099, 0x000030c0 }, { 0x00003099, 0x000030c2 }, - { 0x00003099, 0x000030c5 }, { 0x00003099, 0x000030c7 }, - { 0x00003099, 0x000030c9 }, { 0x00003099, 0x000030d0 }, - { 0x0000309a, 0x000030d1 }, { 0x00003099, 0x000030d3 }, - { 0x0000309a, 0x000030d4 }, { 0x00003099, 0x000030d6 }, - { 0x0000309a, 0x000030d7 }, { 0x00003099, 0x000030d9 }, - { 0x0000309a, 0x000030da }, { 0x00003099, 0x000030dc }, - { 0x0000309a, 0x000030dd }, { 0x00003099, 0x000030f7 }, - { 0x00003099, 0x000030f8 }, { 0x00003099, 0x000030f9 }, - { 0x00003099, 0x000030fa }, { 0x00003099, 0x000030fe }, -}; - - -/* - * Canonical/Compatibility Decomposition - */ - -#define DECOMP_BITS_0 9 -#define DECOMP_BITS_1 7 -#define DECOMP_BITS_2 5 -#define DECOMP_COMPAT 32768 - -static const char16_t decompose_imap[] = { - 272, 400, 528, 656, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 912, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 1040, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 1168, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 0, 0, 0, 0, 0, 1, 2, 3, - 4, 5, 6, 7, 0, 8, 9, 10, - 11, 12, 0, 0, 0, 13, 14, 15, - 0, 0, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 0, 0, 26, 27, - 0, 0, 0, 0, 28, 0, 0, 0, - 0, 29, 0, 30, 0, 0, 31, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 32, 33, 0, 0, 0, 34, 0, - 0, 35, 36, 0, 0, 0, 0, 0, - 0, 0, 37, 0, 38, 0, 39, 0, - 0, 0, 40, 0, 0, 0, 41, 0, - 0, 0, 42, 0, 0, 0, 43, 0, - 0, 44, 0, 0, 0, 45, 46, 0, - 47, 0, 48, 49, 50, 51, 0, 0, - 0, 52, 0, 0, 0, 0, 0, 53, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 54, 55, 56, 57, 58, 0, 0, - 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 0, 0, - 81, 82, 83, 84, 85, 86, 87, 0, - 88, 89, 90, 91, 92, 93, 0, 94, - 0, 95, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 96, 97, 98, 99, 100, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 101, 0, 0, 102, 0, 0, 103, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 104, 0, 0, 0, 0, - 0, 0, 0, 0, 105, 0, 0, 106, - 107, 108, 109, 110, 111, 112, 113, 0, - 114, 115, 116, 117, 118, 119, 120, 121, - 0, 122, 123, 124, 125, 0, 0, 0, - 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 0, - 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 197, 198, 0, 199, 200, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 232, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 233, 234, 235, 236, 237, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, - 249, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -}; - -static const struct { - char16_t tbl[32]; -} decompose_table[] = { - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 32769, 0, 0, 0, 0, 0, 0, 0, - 32770, 0, 32772, 0, 0, 0, 0, 32773, - 0, 0, 32775, 32776, 32777, 32779, 0, 0, - 32780, 32782, 32783, 0, 32784, 32787, 32790, 0, - }}, - {{ - 25, 27, 29, 31, 33, 35, 0, 37, - 39, 41, 43, 45, 47, 49, 51, 53, - 0, 55, 57, 59, 61, 63, 65, 0, - 0, 67, 69, 71, 73, 75, 0, 0, - }}, - {{ - 77, 79, 81, 83, 85, 87, 0, 89, - 91, 93, 95, 97, 99, 101, 103, 105, - 0, 107, 109, 111, 113, 115, 117, 0, - 0, 119, 121, 123, 125, 127, 0, 129, - }}, - {{ - 131, 133, 135, 137, 139, 141, 143, 145, - 147, 149, 151, 153, 155, 157, 159, 161, - 0, 0, 163, 165, 167, 169, 171, 173, - 175, 177, 179, 181, 183, 185, 187, 189, - }}, - {{ - 191, 193, 195, 197, 199, 201, 0, 0, - 203, 205, 207, 209, 211, 213, 215, 217, - 219, 0, 32989, 32991, 225, 227, 229, 231, - 0, 233, 235, 237, 239, 241, 243, 33013, - }}, - {{ - 33015, 0, 0, 249, 251, 253, 255, 257, - 259, 33029, 0, 0, 263, 265, 267, 269, - 271, 273, 0, 0, 275, 277, 279, 281, - 283, 285, 287, 289, 291, 293, 295, 297, - }}, - {{ - 299, 301, 303, 305, 307, 309, 0, 0, - 311, 313, 315, 317, 319, 321, 323, 325, - 327, 329, 331, 333, 335, 337, 339, 341, - 343, 345, 347, 349, 351, 353, 355, 33125, - }}, - {{ - 358, 360, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 362, - 364, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 33134, 33136, 33138, 33140, - 33142, 33144, 33146, 33148, 33150, 384, 386, 388, - 390, 392, 394, 396, 398, 400, 402, 404, - 406, 408, 410, 412, 414, 0, 416, 418, - }}, - {{ - 420, 422, 424, 426, 0, 0, 428, 430, - 432, 434, 436, 438, 440, 442, 444, 446, - 448, 33218, 33220, 33222, 456, 458, 0, 0, - 460, 462, 464, 466, 468, 470, 472, 474, - }}, - {{ - 476, 478, 480, 482, 484, 486, 488, 490, - 492, 494, 496, 498, 500, 502, 504, 506, - 508, 510, 512, 514, 516, 518, 520, 522, - 524, 526, 528, 530, 0, 0, 532, 534, - }}, - {{ - 0, 0, 0, 0, 0, 0, 536, 538, - 540, 542, 544, 546, 548, 550, 552, 554, - 556, 558, 560, 562, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 33332, 33333, 33334, 33335, 33336, 33337, 33338, 33339, - 33340, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 33341, 33343, 33345, 33347, 33349, 33351, 0, 0, - }}, - {{ - 33353, 33354, 33355, 33356, 33357, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 590, 591, 0, 592, 593, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 595, 0, 0, 0, - 0, 0, 33364, 0, 0, 0, 598, 0, - }}, - {{ - 0, 0, 0, 0, 33367, 601, 603, 605, - 606, 608, 610, 0, 612, 0, 614, 616, - 618, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 620, 622, 624, 626, 628, 630, - 632, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 634, 636, 638, 640, 642, 0, - 33412, 33413, 33414, 647, 649, 33419, 33420, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 33421, 33422, 33423, 0, 33424, 33425, 0, 0, - 0, 33426, 0, 0, 0, 0, 0, 0, - }}, - {{ - 659, 661, 0, 663, 0, 0, 0, 665, - 0, 0, 0, 0, 667, 669, 671, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 673, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 675, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 677, 679, 0, 681, 0, 0, 0, 683, - 0, 0, 0, 0, 685, 687, 689, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 691, 693, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 695, 697, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 699, 701, 703, 705, 0, 0, 707, 709, - 0, 0, 711, 713, 715, 717, 719, 721, - }}, - {{ - 0, 0, 723, 725, 727, 729, 731, 733, - 0, 0, 735, 737, 739, 741, 743, 745, - 747, 749, 751, 753, 755, 757, 0, 0, - 759, 761, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 33531, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 765, 767, 769, 771, 773, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 33543, 33545, 33547, - 33549, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 783, 0, 785, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 787, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 789, 0, 0, 0, 0, 0, 0, - 0, 791, 0, 0, 793, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 795, 797, 799, 801, 803, 805, 807, 809, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 811, 813, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 815, 817, 0, 819, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 821, 0, 0, 823, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 825, 827, 829, 0, 0, 831, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 833, 0, 0, 835, 837, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 839, 841, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 843, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 845, 847, 849, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 851, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 853, 0, 0, 0, 0, 0, 0, 855, - 857, 0, 859, 861, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 863, 865, 867, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 869, 0, 871, 873, 875, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 33645, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 33647, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 33649, 33651, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 33653, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 886, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 888, 0, 0, - 0, 0, 890, 0, 0, 0, 0, 892, - 0, 0, 0, 0, 894, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 896, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 898, 0, 900, 902, 33672, - 906, 33676, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 910, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 912, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 914, 0, 0, - }}, - {{ - 0, 0, 916, 0, 0, 0, 0, 918, - 0, 0, 0, 0, 920, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 922, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 924, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 33694, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 33695, 33696, 33697, 0, - 33698, 33699, 33700, 33701, 33702, 33703, 33704, 33705, - 33706, 33707, 33708, 0, 33709, 33710, 33711, 33712, - }}, - {{ - 33713, 33714, 33715, 33716, 33717, 33718, 33719, 33720, - 33721, 33722, 33723, 33724, 33725, 33726, 0, 33727, - 33728, 33729, 33730, 33731, 33732, 33733, 33734, 33735, - 33736, 33737, 33738, 33739, 33740, 33741, 33742, 33743, - }}, - {{ - 33744, 33745, 33746, 33747, 33748, 33749, 33750, 33751, - 33752, 33753, 33754, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 33755, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 33756, 33757, 33758, 33759, 33760, - }}, - {{ - 33761, 33762, 33763, 33764, 33765, 33766, 33767, 33768, - 33769, 33770, 33771, 33772, 33773, 33774, 33775, 33776, - 33777, 33778, 33779, 33780, 33781, 33782, 33783, 33784, - 33785, 33786, 33787, 33788, 33789, 33790, 33791, 33792, - }}, - {{ - 1025, 1027, 1029, 1031, 1033, 1035, 1037, 1039, - 1041, 1043, 1045, 1047, 1049, 1051, 1053, 1055, - 1057, 1059, 1061, 1063, 1065, 1067, 1069, 1071, - 1073, 1075, 1077, 1079, 1081, 1083, 1085, 1087, - }}, - {{ - 1089, 1091, 1093, 1095, 1097, 1099, 1101, 1103, - 1105, 1107, 1109, 1111, 1113, 1115, 1117, 1119, - 1121, 1123, 1125, 1127, 1129, 1131, 1133, 1135, - 1137, 1139, 1141, 1143, 1145, 1147, 1149, 1151, - }}, - {{ - 1153, 1155, 1157, 1159, 1161, 1163, 1165, 1167, - 1169, 1171, 1173, 1175, 1177, 1179, 1181, 1183, - 1185, 1187, 1189, 1191, 1193, 1195, 1197, 1199, - 1201, 1203, 1205, 1207, 1209, 1211, 1213, 1215, - }}, - {{ - 1217, 1219, 1221, 1223, 1225, 1227, 1229, 1231, - 1233, 1235, 1237, 1239, 1241, 1243, 1245, 1247, - 1249, 1251, 1253, 1255, 1257, 1259, 1261, 1263, - 1265, 1267, 1269, 1271, 1273, 1275, 1277, 1279, - }}, - {{ - 1281, 1283, 1285, 1287, 1289, 1291, 1293, 1295, - 1297, 1299, 1301, 1303, 1305, 1307, 1309, 1311, - 1313, 1315, 1317, 1319, 1321, 1323, 1325, 1327, - 1329, 1331, 34101, 1335, 0, 0, 0, 0, - }}, - {{ - 1337, 1339, 1341, 1343, 1345, 1347, 1349, 1351, - 1353, 1355, 1357, 1359, 1361, 1363, 1365, 1367, - 1369, 1371, 1373, 1375, 1377, 1379, 1381, 1383, - 1385, 1387, 1389, 1391, 1393, 1395, 1397, 1399, - }}, - {{ - 1401, 1403, 1405, 1407, 1409, 1411, 1413, 1415, - 1417, 1419, 1421, 1423, 1425, 1427, 1429, 1431, - 1433, 1435, 1437, 1439, 1441, 1443, 1445, 1447, - 1449, 1451, 1453, 1455, 1457, 1459, 1461, 1463, - }}, - {{ - 1465, 1467, 1469, 1471, 1473, 1475, 1477, 1479, - 1481, 1483, 1485, 1487, 1489, 1491, 1493, 1495, - 1497, 1499, 1501, 1503, 1505, 1507, 1509, 1511, - 1513, 1515, 0, 0, 0, 0, 0, 0, - }}, - {{ - 1517, 1519, 1521, 1523, 1525, 1527, 1529, 1531, - 1533, 1535, 1537, 1539, 1541, 1543, 1545, 1547, - 1549, 1551, 1553, 1555, 1557, 1559, 0, 0, - 1561, 1563, 1565, 1567, 1569, 1571, 0, 0, - }}, - {{ - 1573, 1575, 1577, 1579, 1581, 1583, 1585, 1587, - 1589, 1591, 1593, 1595, 1597, 1599, 1601, 1603, - 1605, 1607, 1609, 1611, 1613, 1615, 1617, 1619, - 1621, 1623, 1625, 1627, 1629, 1631, 1633, 1635, - }}, - {{ - 1637, 1639, 1641, 1643, 1645, 1647, 0, 0, - 1649, 1651, 1653, 1655, 1657, 1659, 0, 0, - 1661, 1663, 1665, 1667, 1669, 1671, 1673, 1675, - 0, 1677, 0, 1679, 0, 1681, 0, 1683, - }}, - {{ - 1685, 1687, 1689, 1691, 1693, 1695, 1697, 1699, - 1701, 1703, 1705, 1707, 1709, 1711, 1713, 1715, - 1717, 1719, 1720, 1722, 1723, 1725, 1726, 1728, - 1729, 1731, 1732, 1734, 1735, 1737, 0, 0, - }}, - {{ - 1738, 1740, 1742, 1744, 1746, 1748, 1750, 1752, - 1754, 1756, 1758, 1760, 1762, 1764, 1766, 1768, - 1770, 1772, 1774, 1776, 1778, 1780, 1782, 1784, - 1786, 1788, 1790, 1792, 1794, 1796, 1798, 1800, - }}, - {{ - 1802, 1804, 1806, 1808, 1810, 1812, 1814, 1816, - 1818, 1820, 1822, 1824, 1826, 1828, 1830, 1832, - 1834, 1836, 1838, 1840, 1842, 0, 1844, 1846, - 1848, 1850, 1852, 1854, 1855, 34625, 1859, 34628, - }}, - {{ - 34630, 1864, 1866, 1868, 1870, 0, 1872, 1874, - 1876, 1878, 1879, 1881, 1882, 1884, 1886, 1888, - 1890, 1892, 1894, 1896, 0, 0, 1897, 1899, - 1901, 1903, 1905, 1907, 0, 1908, 1910, 1912, - }}, - {{ - 1914, 1916, 1918, 1920, 1921, 1923, 1925, 1927, - 1929, 1931, 1933, 1935, 1936, 1938, 1940, 1941, - 0, 0, 1942, 1944, 1946, 0, 1948, 1950, - 1952, 1954, 1955, 1957, 1958, 1960, 34729, 0, - }}, - {{ - 1963, 1964, 34733, 34734, 34735, 34736, 34737, 34738, - 34739, 34740, 34741, 0, 0, 0, 0, 0, - 0, 34742, 0, 0, 0, 0, 0, 34743, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 34745, 34746, 34748, 0, - 0, 0, 0, 0, 0, 0, 0, 34751, - 0, 0, 0, 34752, 34754, 0, 34757, 34759, - 0, 0, 0, 0, 34762, 0, 34764, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 34766, - 34768, 34770, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 34772, - 0, 0, 0, 0, 0, 0, 0, 34776, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 34777, 34778, 0, 0, 34779, 34780, 34781, 34782, - 34783, 34784, 34785, 34786, 34787, 34788, 34789, 34790, - }}, - {{ - 34791, 34792, 34793, 34794, 34795, 34796, 34797, 34798, - 34799, 34800, 34801, 34802, 34803, 34804, 34805, 0, - 34806, 34807, 34808, 34809, 34810, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 34811, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 34813, 34816, 34819, 34820, 0, 34822, 34825, 34828, - 0, 34829, 34831, 34832, 34833, 34834, 34835, 34836, - 34837, 34838, 34839, 34840, 0, 34841, 34842, 0, - 0, 34844, 34845, 34846, 34847, 34848, 0, 0, - }}, - {{ - 34849, 34851, 34854, 0, 34856, 0, 2089, 0, - 34858, 0, 2091, 2092, 34861, 34862, 0, 34863, - 34864, 34865, 0, 34866, 34867, 34868, 34869, 34870, - 34871, 34872, 0, 34873, 34876, 34877, 34878, 34879, - }}, - {{ - 34880, 0, 0, 0, 0, 34881, 34882, 34883, - 34884, 34885, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 34886, 34889, 34892, 34895, 34898, - 34901, 34904, 34907, 34910, 34913, 34916, 34919, 34922, - }}, - {{ - 34924, 34925, 34927, 34930, 34932, 34933, 34935, 34938, - 34942, 34944, 34945, 34947, 34950, 34951, 34952, 34953, - 34954, 34955, 34957, 34960, 34962, 34963, 34965, 34968, - 34972, 34974, 34975, 34977, 34980, 34981, 34982, 34983, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2216, 2218, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2220, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2222, 2224, 2226, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 2228, 0, 0, 0, - 0, 2230, 0, 0, 2232, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 2234, 0, 2236, 0, - 0, 0, 0, 0, 35006, 35008, 0, 35011, - 35013, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 2248, 0, 0, 2250, 0, 0, 2252, - 0, 2254, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 2256, 0, 2258, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2260, 2262, 2264, - 2266, 2268, 0, 0, 2270, 2272, 0, 0, - 2274, 2276, 0, 0, 0, 0, 0, 0, - }}, - {{ - 2278, 2280, 0, 0, 2282, 2284, 0, 0, - 2286, 2288, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2290, 2292, 2294, 2296, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 2298, 2300, 2302, 2304, 0, 0, 0, 0, - 0, 0, 2306, 2308, 2310, 2312, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2314, 2315, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 35084, 35085, 35086, 35087, 35088, 35089, 35090, 35091, - 35092, 35093, 35095, 35097, 35099, 35101, 35103, 35105, - 35107, 35109, 35111, 35113, 35115, 35118, 35121, 35124, - 35127, 35130, 35133, 35136, 35139, 35142, 35146, 35150, - }}, - {{ - 35154, 35158, 35162, 35166, 35170, 35174, 35178, 35182, - 35186, 35188, 35190, 35192, 35194, 35196, 35198, 35200, - 35202, 35204, 35207, 35210, 35213, 35216, 35219, 35222, - 35225, 35228, 35231, 35234, 35237, 35240, 35243, 35246, - }}, - {{ - 35249, 35252, 35255, 35258, 35261, 35264, 35267, 35270, - 35273, 35276, 35279, 35282, 35285, 35288, 35291, 35294, - 35297, 35300, 35303, 35306, 35309, 35312, 35315, 35316, - 35317, 35318, 35319, 35320, 35321, 35322, 35323, 35324, - }}, - {{ - 35325, 35326, 35327, 35328, 35329, 35330, 35331, 35332, - 35333, 35334, 35335, 35336, 35337, 35338, 35339, 35340, - 35341, 35342, 35343, 35344, 35345, 35346, 35347, 35348, - 35349, 35350, 35351, 35352, 35353, 35354, 35355, 35356, - }}, - {{ - 35357, 35358, 35359, 35360, 35361, 35362, 35363, 35364, - 35365, 35366, 35367, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 35368, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 35372, 35375, 35377, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2612, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 35382, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 35383, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 35384, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 35385, 35386, 35387, 35388, 35389, 35390, 35391, 35392, - 35393, 35394, 35395, 35396, 35397, 35398, 35399, 35400, - 35401, 35402, 35403, 35404, 35405, 35406, 35407, 35408, - 35409, 35410, 35411, 35412, 35413, 35414, 35415, 35416, - }}, - {{ - 35417, 35418, 35419, 35420, 35421, 35422, 35423, 35424, - 35425, 35426, 35427, 35428, 35429, 35430, 35431, 35432, - 35433, 35434, 35435, 35436, 35437, 35438, 35439, 35440, - 35441, 35442, 35443, 35444, 35445, 35446, 35447, 35448, - }}, - {{ - 35449, 35450, 35451, 35452, 35453, 35454, 35455, 35456, - 35457, 35458, 35459, 35460, 35461, 35462, 35463, 35464, - 35465, 35466, 35467, 35468, 35469, 35470, 35471, 35472, - 35473, 35474, 35475, 35476, 35477, 35478, 35479, 35480, - }}, - {{ - 35481, 35482, 35483, 35484, 35485, 35486, 35487, 35488, - 35489, 35490, 35491, 35492, 35493, 35494, 35495, 35496, - 35497, 35498, 35499, 35500, 35501, 35502, 35503, 35504, - 35505, 35506, 35507, 35508, 35509, 35510, 35511, 35512, - }}, - {{ - 35513, 35514, 35515, 35516, 35517, 35518, 35519, 35520, - 35521, 35522, 35523, 35524, 35525, 35526, 35527, 35528, - 35529, 35530, 35531, 35532, 35533, 35534, 35535, 35536, - 35537, 35538, 35539, 35540, 35541, 35542, 35543, 35544, - }}, - {{ - 35545, 35546, 35547, 35548, 35549, 35550, 35551, 35552, - 35553, 35554, 35555, 35556, 35557, 35558, 35559, 35560, - 35561, 35562, 35563, 35564, 35565, 35566, 35567, 35568, - 35569, 35570, 35571, 35572, 35573, 35574, 35575, 35576, - }}, - {{ - 35577, 35578, 35579, 35580, 35581, 35582, 35583, 35584, - 35585, 35586, 35587, 35588, 35589, 35590, 35591, 35592, - 35593, 35594, 35595, 35596, 35597, 35598, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 35599, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 35600, 0, - 35601, 35602, 35603, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2836, 0, 2838, 0, - 2840, 0, 2842, 0, 2844, 0, 2846, 0, - 2848, 0, 2850, 0, 2852, 0, 2854, 0, - }}, - {{ - 2856, 0, 2858, 0, 0, 2860, 0, 2862, - 0, 2864, 0, 0, 0, 0, 0, 0, - 2866, 2868, 0, 2870, 2872, 0, 2874, 2876, - 0, 2878, 2880, 0, 2882, 2884, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2886, 0, 0, 0, - 0, 0, 0, 35656, 35658, 0, 2892, 35662, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2896, 0, 2898, 0, - 2900, 0, 2902, 0, 2904, 0, 2906, 0, - 2908, 0, 2910, 0, 2912, 0, 2914, 0, - }}, - {{ - 2916, 0, 2918, 0, 0, 2920, 0, 2922, - 0, 2924, 0, 0, 0, 0, 0, 0, - 2926, 2928, 0, 2930, 2932, 0, 2934, 2936, - 0, 2938, 2940, 0, 2942, 2944, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2946, 0, 0, 2948, - 2950, 2952, 2954, 0, 0, 0, 2956, 35726, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 35728, 35729, 35730, 35731, 35732, 35733, 35734, - 35735, 35736, 35737, 35738, 35739, 35740, 35741, 35742, - }}, - {{ - 35743, 35744, 35745, 35746, 35747, 35748, 35749, 35750, - 35751, 35752, 35753, 35754, 35755, 35756, 35757, 35758, - 35759, 35760, 35761, 35762, 35763, 35764, 35765, 35766, - 35767, 35768, 35769, 35770, 35771, 35772, 35773, 35774, - }}, - {{ - 35775, 35776, 35777, 35778, 35779, 35780, 35781, 35782, - 35783, 35784, 35785, 35786, 35787, 35788, 35789, 35790, - 35791, 35792, 35793, 35794, 35795, 35796, 35797, 35798, - 35799, 35800, 35801, 35802, 35803, 35804, 35805, 35806, - }}, - {{ - 35807, 35808, 35809, 35810, 35811, 35812, 35813, 35814, - 35815, 35816, 35817, 35818, 35819, 35820, 35821, 0, - 0, 0, 35822, 35823, 35824, 35825, 35826, 35827, - 35828, 35829, 35830, 35831, 35832, 35833, 35834, 35835, - }}, - {{ - 35836, 35839, 35842, 35845, 35848, 35851, 35854, 35857, - 35860, 35863, 35866, 35869, 35872, 35875, 35878, 35882, - 35886, 35890, 35894, 35898, 35902, 35906, 35910, 35914, - 35918, 35922, 35926, 35930, 35934, 35938, 35945, 0, - }}, - {{ - 35951, 35954, 35957, 35960, 35963, 35966, 35969, 35972, - 35975, 35978, 35981, 35984, 35987, 35990, 35993, 35996, - 35999, 36002, 36005, 36008, 36011, 36014, 36017, 36020, - 36023, 36026, 36029, 36032, 36035, 36038, 36041, 36044, - }}, - {{ - 36047, 36050, 36053, 36056, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 36059, 36062, 36064, 36066, 36068, 36070, 36072, 36074, - 36076, 36078, 36080, 36082, 36084, 36086, 36088, 36090, - }}, - {{ - 36092, 36093, 36094, 36095, 36096, 36097, 36098, 36099, - 36100, 36101, 36102, 36103, 36104, 36105, 36106, 36108, - 36110, 36112, 36114, 36116, 36118, 36120, 36122, 36124, - 36126, 36128, 36130, 36132, 36134, 36139, 36143, 0, - }}, - {{ - 36145, 36146, 36147, 36148, 36149, 36150, 36151, 36152, - 36153, 36154, 36155, 36156, 36157, 36158, 36159, 36160, - 36161, 36162, 36163, 36164, 36165, 36166, 36167, 36168, - 36169, 36170, 36171, 36172, 36173, 36174, 36175, 36176, - }}, - {{ - 36177, 36178, 36179, 36180, 36181, 36182, 36183, 36184, - 36185, 36186, 36187, 36188, 36189, 36190, 36191, 36192, - 36193, 36194, 36196, 36198, 36200, 36202, 36204, 36206, - 36208, 36210, 36212, 36214, 36216, 36218, 36220, 36222, - }}, - {{ - 36224, 36226, 36228, 36230, 36232, 36234, 36236, 36238, - 36240, 36242, 36245, 36248, 36251, 36253, 36256, 36258, - 36261, 36262, 36263, 36264, 36265, 36266, 36267, 36268, - 36269, 36270, 36271, 36272, 36273, 36274, 36275, 36276, - }}, - {{ - 36277, 36278, 36279, 36280, 36281, 36282, 36283, 36284, - 36285, 36286, 36287, 36288, 36289, 36290, 36291, 36292, - 36293, 36294, 36295, 36296, 36297, 36298, 36299, 36300, - 36301, 36302, 36303, 36304, 36305, 36306, 36307, 0, - }}, - {{ - 36308, 36312, 36316, 36320, 36323, 36327, 36330, 36333, - 36338, 36342, 36345, 36348, 36351, 36355, 36359, 36362, - 36365, 36367, 36370, 36374, 36378, 36380, 36385, 36391, - 36396, 36399, 36404, 36409, 36413, 36416, 36419, 36422, - }}, - {{ - 36426, 36431, 36435, 36438, 36441, 36444, 36446, 36448, - 36450, 36452, 36455, 36458, 36463, 36466, 36470, 36475, - 36478, 36480, 36482, 36487, 36491, 36496, 36499, 36504, - 36506, 36509, 36512, 36515, 36518, 36521, 36525, 36528, - }}, - {{ - 36530, 36533, 36536, 36539, 36543, 36546, 36549, 36552, - 36557, 36561, 36563, 36568, 36570, 36574, 36578, 36581, - 36584, 36587, 36591, 36593, 36596, 36600, 36602, 36607, - 36610, 36612, 36614, 36616, 36618, 36620, 36622, 36624, - }}, - {{ - 36626, 36628, 36630, 36633, 36636, 36639, 36642, 36645, - 36648, 36651, 36654, 36657, 36660, 36663, 36666, 36669, - 36672, 36675, 36678, 36680, 36682, 36685, 36687, 36689, - 36691, 36694, 36697, 36699, 36701, 36703, 36705, 36707, - }}, - {{ - 36711, 36713, 36715, 36717, 36719, 36721, 36723, 36725, - 36727, 36730, 36734, 36736, 36738, 36740, 36742, 36744, - 36746, 36748, 36751, 36754, 36757, 36760, 36762, 36764, - 36766, 36768, 36770, 36772, 36774, 36776, 36778, 36780, - }}, - {{ - 36783, 36786, 36788, 36791, 36794, 36797, 36799, 36802, - 36805, 36809, 36811, 36814, 36817, 36820, 36823, 36828, - 36834, 36836, 36838, 36840, 36842, 36844, 36846, 36848, - 36850, 36852, 36854, 36856, 36858, 36860, 36862, 36864, - }}, - {{ - 36866, 36868, 36870, 36874, 36876, 36878, 36880, 36884, - 36887, 36889, 36891, 36893, 36895, 36897, 36899, 36901, - 36903, 36905, 36907, 36910, 36912, 36914, 36917, 36920, - 36922, 36926, 36929, 36931, 36933, 36935, 36937, 36940, - }}, - {{ - 36943, 36945, 36947, 36949, 36951, 36953, 36955, 36957, - 36959, 36961, 36964, 36967, 36970, 36973, 36976, 36979, - 36982, 36985, 36988, 36991, 36994, 36997, 37000, 37003, - 37006, 37009, 37012, 37015, 37018, 37021, 37024, 37027, - }}, - {{ - 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, - 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, - 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, - 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, - }}, - {{ - 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301, - 4302, 4303, 4304, 4305, 4306, 4307, 4308, 4309, - 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, - 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, - }}, - {{ - 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, - 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341, - 4342, 4343, 4344, 4345, 4346, 4347, 4348, 4349, - 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, - }}, - {{ - 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, - 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, - 4374, 4375, 4376, 4377, 4378, 4379, 4380, 4381, - 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, - }}, - {{ - 4390, 4391, 4392, 4393, 4394, 4395, 4396, 4397, - 4398, 4399, 4400, 4401, 4402, 4403, 4404, 4405, - 4406, 4407, 4408, 4409, 4410, 4411, 4412, 4413, - 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, - }}, - {{ - 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, - 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, - 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, - 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453, - }}, - {{ - 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, - 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469, - 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477, - 4478, 4479, 4480, 4481, 4482, 4483, 4484, 4485, - }}, - {{ - 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, - 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, - 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, - 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517, - }}, - {{ - 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, - 4526, 4527, 4528, 4529, 4530, 4531, 0, 0, - 4532, 0, 4533, 0, 0, 4534, 4535, 4536, - 4537, 4538, 4539, 4540, 4541, 4542, 4543, 0, - }}, - {{ - 4544, 0, 4545, 0, 0, 4546, 4547, 0, - 0, 0, 4548, 4549, 4550, 4551, 0, 0, - 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, - 4560, 4561, 4562, 4563, 4564, 4565, 4566, 4567, - }}, - {{ - 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4575, - 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583, - 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, - 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, - }}, - {{ - 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, - 4608, 4609, 4610, 0, 0, 0, 0, 0, - 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, - 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626, - }}, - {{ - 4627, 4628, 4629, 4630, 4631, 4632, 4633, 4634, - 4635, 4636, 4637, 4638, 4639, 4640, 4641, 4642, - 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, - 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, - }}, - {{ - 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666, - 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, - 4675, 4676, 4677, 4678, 4679, 4680, 4681, 4682, - 4683, 4684, 4685, 4686, 4687, 4688, 4689, 4690, - }}, - {{ - 4691, 4692, 4693, 4694, 4695, 4696, 4697, 4698, - 4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706, - 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, - 4715, 4716, 0, 0, 0, 0, 0, 0, - }}, - {{ - 37485, 37487, 37489, 37491, 37494, 37497, 37499, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 37501, 37503, 37505, 37507, 37509, - 0, 0, 0, 0, 0, 4743, 0, 4745, - }}, - {{ - 37515, 37516, 37517, 37518, 37519, 37520, 37521, 37522, - 37523, 37524, 4757, 4759, 4761, 4763, 4765, 4767, - 4769, 4771, 4773, 4775, 4777, 4779, 4781, 0, - 4783, 4785, 4787, 4789, 4791, 0, 4793, 0, - }}, - {{ - 4795, 4797, 0, 4799, 4801, 0, 4803, 4805, - 4807, 4809, 4811, 4813, 4815, 4817, 4819, 37589, - 37591, 37592, 37593, 37594, 37595, 37596, 37597, 37598, - 37599, 37600, 37601, 37602, 37603, 37604, 37605, 37606, - }}, - {{ - 37607, 37608, 37609, 37610, 37611, 37612, 37613, 37614, - 37615, 37616, 37617, 37618, 37619, 37620, 37621, 37622, - 37623, 37624, 37625, 37626, 37627, 37628, 37629, 37630, - 37631, 37632, 37633, 37634, 37635, 37636, 37637, 37638, - }}, - {{ - 37639, 37640, 37641, 37642, 37643, 37644, 37645, 37646, - 37647, 37648, 37649, 37650, 37651, 37652, 37653, 37654, - 37655, 37656, 37657, 37658, 37659, 37660, 37661, 37662, - 37663, 37664, 37665, 37666, 37667, 37668, 37669, 37670, - }}, - {{ - 37671, 37672, 37673, 37674, 37675, 37676, 37677, 37678, - 37679, 37680, 37681, 37682, 37683, 37684, 37685, 37686, - 37687, 37688, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 37689, 37690, 37691, 37692, 37693, - 37694, 37695, 37696, 37697, 37698, 37699, 37700, 37701, - }}, - {{ - 37702, 37703, 37704, 37705, 37706, 37707, 37708, 37709, - 37710, 37711, 37712, 37714, 37716, 37718, 37720, 37722, - 37724, 37726, 37728, 37730, 37732, 37734, 37736, 37738, - 37740, 37742, 37744, 37746, 37748, 37749, 37750, 37751, - }}, - {{ - 37752, 37754, 37756, 37758, 37760, 37762, 37764, 37766, - 37768, 37770, 37772, 37774, 37776, 37778, 37780, 37782, - 37784, 37786, 37788, 37790, 37792, 37794, 37796, 37798, - 37800, 37802, 37804, 37806, 37808, 37810, 37812, 37814, - }}, - {{ - 37816, 37818, 37820, 37822, 37824, 37826, 37828, 37830, - 37832, 37834, 37836, 37838, 37840, 37842, 37844, 37846, - 37848, 37850, 37852, 37854, 37856, 37858, 37860, 37862, - 37864, 37866, 37868, 37870, 37872, 37874, 37876, 37878, - }}, - {{ - 37880, 37882, 37884, 37886, 37888, 37890, 37892, 37894, - 37896, 37898, 37900, 37902, 37904, 37906, 37908, 37910, - 37912, 37914, 37916, 37918, 37920, 37922, 37924, 37926, - 37928, 37930, 37932, 37934, 37936, 37938, 37940, 37943, - }}, - {{ - 37946, 37949, 37952, 37955, 37958, 37960, 37962, 37964, - 37966, 37968, 37970, 37972, 37974, 37976, 37978, 37980, - 37982, 37984, 37986, 37988, 37990, 37992, 37994, 37996, - 37998, 38000, 38002, 38004, 38006, 38008, 38010, 38012, - }}, - {{ - 38014, 38016, 38018, 38020, 38022, 38024, 38026, 38028, - 38030, 38032, 38034, 38036, 38038, 38040, 38042, 38044, - 38046, 38048, 38050, 38052, 38054, 38056, 38058, 38060, - 38062, 38064, 38066, 38068, 38070, 38072, 38074, 38076, - }}, - {{ - 38078, 38080, 38082, 38084, 38086, 38088, 38090, 38092, - 38094, 38096, 38098, 38100, 38102, 38104, 38106, 38108, - 38110, 38112, 38114, 38116, 38118, 38120, 38122, 38124, - 38126, 38128, 38130, 38132, 38134, 38136, 38138, 38140, - }}, - {{ - 38142, 38144, 38146, 38148, 38150, 38152, 38154, 38156, - 38158, 38160, 38162, 38164, 38166, 38168, 38170, 38172, - 38174, 38176, 38178, 38180, 38182, 38184, 38186, 38188, - 38190, 38192, 38194, 38196, 38198, 38200, 38202, 38204, - }}, - {{ - 38206, 38208, 38210, 38212, 38214, 38216, 38218, 38220, - 38222, 38224, 38226, 38228, 38230, 38232, 38234, 38236, - 38238, 38240, 38242, 38245, 38248, 38251, 38253, 38255, - 38257, 38259, 38261, 38263, 38265, 38267, 38269, 38271, - }}, - {{ - 38273, 38275, 38277, 38279, 38281, 38283, 38285, 38287, - 38289, 38291, 38293, 38295, 38297, 38299, 38301, 38303, - 38305, 38307, 38309, 38311, 38313, 38315, 38317, 38319, - 38321, 38323, 38325, 38327, 38329, 38331, 38333, 38335, - }}, - {{ - 38337, 38339, 38341, 38343, 38345, 38347, 38349, 38351, - 38353, 38355, 38357, 38359, 38361, 38363, 38365, 38367, - 38369, 38371, 38373, 38375, 38377, 38379, 38381, 38383, - 38385, 38387, 38389, 38391, 38393, 38395, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 38397, 38400, 38403, 38406, 38409, 38412, 38415, 38418, - 38421, 38424, 38427, 38430, 38433, 38436, 38439, 38442, - }}, - {{ - 38445, 38448, 38451, 38454, 38457, 38460, 38463, 38466, - 38469, 38472, 38475, 38478, 38481, 38484, 38487, 38490, - 38493, 38496, 38499, 38502, 38505, 38508, 38511, 38514, - 38517, 38520, 38523, 38526, 38529, 38532, 38535, 38538, - }}, - {{ - 38541, 38544, 38547, 38550, 38553, 38556, 38559, 38562, - 38565, 38568, 38571, 38574, 38577, 38580, 38583, 38586, - 0, 0, 38589, 38592, 38595, 38598, 38601, 38604, - 38607, 38610, 38613, 38616, 38619, 38622, 38625, 38628, - }}, - {{ - 38631, 38634, 38637, 38640, 38643, 38646, 38649, 38652, - 38655, 38658, 38661, 38664, 38667, 38670, 38673, 38676, - 38679, 38682, 38685, 38688, 38691, 38694, 38697, 38700, - 38703, 38706, 38709, 38712, 38715, 38718, 38721, 38724, - }}, - {{ - 38727, 38730, 38733, 38736, 38739, 38742, 38745, 38748, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 38751, 38754, 38757, 38761, 38765, 38769, 38773, 38777, - 38781, 38785, 38788, 38806, 38814, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 38818, 38819, 38820, 38821, 38822, 38823, 38824, 38825, - 38826, 38827, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 38828, 38829, 38830, 38831, 38832, 38833, 38834, 38835, - 38836, 38837, 38838, 38839, 38840, 38841, 38842, 38843, - }}, - {{ - 38844, 38845, 38846, 38847, 38848, 0, 0, 38849, - 38850, 38851, 38852, 38853, 38854, 38855, 38856, 38857, - 38858, 38859, 38860, 0, 38861, 38862, 38863, 38864, - 38865, 38866, 38867, 38868, 38869, 38870, 38871, 38872, - }}, - {{ - 38873, 38874, 38875, 38876, 38877, 38878, 38879, 0, - 38880, 38881, 38882, 38883, 0, 0, 0, 0, - 38884, 38886, 38888, 0, 38890, 0, 38892, 38894, - 38896, 38898, 38900, 38902, 38904, 38906, 38908, 38910, - }}, - {{ - 38912, 38913, 38914, 38915, 38916, 38917, 38918, 38919, - 38920, 38921, 38922, 38923, 38924, 38925, 38926, 38927, - 38928, 38929, 38930, 38931, 38932, 38933, 38934, 38935, - 38936, 38937, 38938, 38939, 38940, 38941, 38942, 38943, - }}, - {{ - 38944, 38945, 38946, 38947, 38948, 38949, 38950, 38951, - 38952, 38953, 38954, 38955, 38956, 38957, 38958, 38959, - 38960, 38961, 38962, 38963, 38964, 38965, 38966, 38967, - 38968, 38969, 38970, 38971, 38972, 38973, 38974, 38975, - }}, - {{ - 38976, 38977, 38978, 38979, 38980, 38981, 38982, 38983, - 38984, 38985, 38986, 38987, 38988, 38989, 38990, 38991, - 38992, 38993, 38994, 38995, 38996, 38997, 38998, 38999, - 39000, 39001, 39002, 39003, 39004, 39005, 39006, 39007, - }}, - {{ - 39008, 39009, 39010, 39011, 39012, 39013, 39014, 39015, - 39016, 39017, 39018, 39019, 39020, 39021, 39022, 39023, - 39024, 39025, 39026, 39027, 39028, 39029, 39031, 39033, - 39035, 39037, 39039, 39041, 39043, 0, 0, 0, - }}, - {{ - 0, 39045, 39046, 39047, 39048, 39049, 39050, 39051, - 39052, 39053, 39054, 39055, 39056, 39057, 39058, 39059, - 39060, 39061, 39062, 39063, 39064, 39065, 39066, 39067, - 39068, 39069, 39070, 39071, 39072, 39073, 39074, 39075, - }}, - {{ - 39076, 39077, 39078, 39079, 39080, 39081, 39082, 39083, - 39084, 39085, 39086, 39087, 39088, 39089, 39090, 39091, - 39092, 39093, 39094, 39095, 39096, 39097, 39098, 39099, - 39100, 39101, 39102, 39103, 39104, 39105, 39106, 39107, - }}, - {{ - 39108, 39109, 39110, 39111, 39112, 39113, 39114, 39115, - 39116, 39117, 39118, 39119, 39120, 39121, 39122, 39123, - 39124, 39125, 39126, 39127, 39128, 39129, 39130, 39131, - 39132, 39133, 39134, 39135, 39136, 39137, 39138, 39139, - }}, - {{ - 39140, 39141, 39142, 39143, 39144, 39145, 39146, 39147, - 39148, 39149, 39150, 39151, 39152, 39153, 39154, 39155, - 39156, 39157, 39158, 39159, 39160, 39161, 39162, 39163, - 39164, 39165, 39166, 39167, 39168, 39169, 39170, 39171, - }}, - {{ - 39172, 39173, 39174, 39175, 39176, 39177, 39178, 39179, - 39180, 39181, 39182, 39183, 39184, 39185, 39186, 39187, - 39188, 39189, 39190, 39191, 39192, 39193, 39194, 39195, - 39196, 39197, 39198, 39199, 39200, 39201, 39202, 39203, - }}, - {{ - 39204, 39205, 39206, 39207, 39208, 39209, 39210, 39211, - 39212, 39213, 39214, 39215, 39216, 39217, 39218, 39219, - 39220, 39221, 39222, 39223, 39224, 39225, 39226, 39227, - 39228, 39229, 39230, 39231, 39232, 39233, 39234, 0, - }}, - {{ - 0, 0, 39235, 39236, 39237, 39238, 39239, 39240, - 0, 0, 39241, 39242, 39243, 39244, 39245, 39246, - 0, 0, 39247, 39248, 39249, 39250, 39251, 39252, - 0, 0, 39253, 39254, 39255, 0, 0, 0, - }}, - {{ - 39256, 39257, 39258, 39259, 39260, 39261, 39262, 0, - 39263, 39264, 39265, 39266, 39267, 39268, 39269, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 6502, 6504, - }}, - {{ - 6506, 6508, 6510, 6512, 6514, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 6516, 6518, 6520, 6522, 6524, - }}, - {{ - 6526, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 39296, 39297, 39298, 39299, 39300, 39301, 39302, 39303, - 39304, 39305, 39306, 39307, 39308, 39309, 39310, 39311, - 39312, 39313, 39314, 39315, 39316, 39317, 39318, 39319, - 39320, 39321, 39322, 39323, 39324, 39325, 39326, 39327, - }}, - {{ - 39328, 39329, 39330, 39331, 39332, 39333, 39334, 39335, - 39336, 39337, 39338, 39339, 39340, 39341, 39342, 39343, - 39344, 39345, 39346, 39347, 39348, 39349, 39350, 39351, - 39352, 39353, 39354, 39355, 39356, 39357, 39358, 39359, - }}, - {{ - 39360, 39361, 39362, 39363, 39364, 39365, 39366, 39367, - 39368, 39369, 39370, 39371, 39372, 39373, 39374, 39375, - 39376, 39377, 39378, 39379, 39380, 0, 39381, 39382, - 39383, 39384, 39385, 39386, 39387, 39388, 39389, 39390, - }}, - {{ - 39391, 39392, 39393, 39394, 39395, 39396, 39397, 39398, - 39399, 39400, 39401, 39402, 39403, 39404, 39405, 39406, - 39407, 39408, 39409, 39410, 39411, 39412, 39413, 39414, - 39415, 39416, 39417, 39418, 39419, 39420, 39421, 39422, - }}, - {{ - 39423, 39424, 39425, 39426, 39427, 39428, 39429, 39430, - 39431, 39432, 39433, 39434, 39435, 39436, 39437, 39438, - 39439, 39440, 39441, 39442, 39443, 39444, 39445, 39446, - 39447, 39448, 39449, 39450, 39451, 0, 39452, 39453, - }}, - {{ - 0, 0, 39454, 0, 0, 39455, 39456, 0, - 0, 39457, 39458, 39459, 39460, 0, 39461, 39462, - 39463, 39464, 39465, 39466, 39467, 39468, 39469, 39470, - 39471, 39472, 0, 39473, 0, 39474, 39475, 39476, - }}, - {{ - 39477, 39478, 39479, 39480, 0, 39481, 39482, 39483, - 39484, 39485, 39486, 39487, 39488, 39489, 39490, 39491, - 39492, 39493, 39494, 39495, 39496, 39497, 39498, 39499, - 39500, 39501, 39502, 39503, 39504, 39505, 39506, 39507, - }}, - {{ - 39508, 39509, 39510, 39511, 39512, 39513, 39514, 39515, - 39516, 39517, 39518, 39519, 39520, 39521, 39522, 39523, - 39524, 39525, 39526, 39527, 39528, 39529, 39530, 39531, - 39532, 39533, 39534, 39535, 39536, 39537, 39538, 39539, - }}, - {{ - 39540, 39541, 39542, 39543, 39544, 39545, 0, 39546, - 39547, 39548, 39549, 0, 0, 39550, 39551, 39552, - 39553, 39554, 39555, 39556, 39557, 0, 39558, 39559, - 39560, 39561, 39562, 39563, 39564, 0, 39565, 39566, - }}, - {{ - 39567, 39568, 39569, 39570, 39571, 39572, 39573, 39574, - 39575, 39576, 39577, 39578, 39579, 39580, 39581, 39582, - 39583, 39584, 39585, 39586, 39587, 39588, 39589, 39590, - 39591, 39592, 0, 39593, 39594, 39595, 39596, 0, - }}, - {{ - 39597, 39598, 39599, 39600, 39601, 0, 39602, 0, - 0, 0, 39603, 39604, 39605, 39606, 39607, 39608, - 39609, 0, 39610, 39611, 39612, 39613, 39614, 39615, - 39616, 39617, 39618, 39619, 39620, 39621, 39622, 39623, - }}, - {{ - 39624, 39625, 39626, 39627, 39628, 39629, 39630, 39631, - 39632, 39633, 39634, 39635, 39636, 39637, 39638, 39639, - 39640, 39641, 39642, 39643, 39644, 39645, 39646, 39647, - 39648, 39649, 39650, 39651, 39652, 39653, 39654, 39655, - }}, - {{ - 39656, 39657, 39658, 39659, 39660, 39661, 39662, 39663, - 39664, 39665, 39666, 39667, 39668, 39669, 39670, 39671, - 39672, 39673, 39674, 39675, 39676, 39677, 39678, 39679, - 39680, 39681, 39682, 39683, 39684, 39685, 39686, 39687, - }}, - {{ - 39688, 39689, 39690, 39691, 39692, 39693, 39694, 39695, - 39696, 39697, 39698, 39699, 39700, 39701, 39702, 39703, - 39704, 39705, 39706, 39707, 39708, 39709, 39710, 39711, - 39712, 39713, 39714, 39715, 39716, 39717, 39718, 39719, - }}, - {{ - 39720, 39721, 39722, 39723, 39724, 39725, 39726, 39727, - 39728, 39729, 39730, 39731, 39732, 39733, 39734, 39735, - 39736, 39737, 39738, 39739, 39740, 39741, 39742, 39743, - 39744, 39745, 39746, 39747, 39748, 39749, 39750, 39751, - }}, - {{ - 39752, 39753, 39754, 39755, 39756, 39757, 39758, 39759, - 39760, 39761, 39762, 39763, 39764, 39765, 39766, 39767, - 39768, 39769, 39770, 39771, 39772, 39773, 39774, 39775, - 39776, 39777, 39778, 39779, 39780, 39781, 39782, 39783, - }}, - {{ - 39784, 39785, 39786, 39787, 39788, 39789, 39790, 39791, - 39792, 39793, 39794, 39795, 39796, 39797, 39798, 39799, - 39800, 39801, 39802, 39803, 39804, 39805, 39806, 39807, - 39808, 39809, 39810, 39811, 39812, 39813, 39814, 39815, - }}, - {{ - 39816, 39817, 39818, 39819, 39820, 39821, 39822, 39823, - 39824, 39825, 39826, 39827, 39828, 39829, 39830, 39831, - 39832, 39833, 39834, 39835, 39836, 39837, 39838, 39839, - 39840, 39841, 39842, 39843, 39844, 39845, 39846, 39847, - }}, - {{ - 39848, 39849, 39850, 39851, 39852, 39853, 39854, 39855, - 39856, 39857, 39858, 39859, 39860, 39861, 39862, 39863, - 39864, 39865, 39866, 39867, 39868, 39869, 39870, 39871, - 39872, 39873, 39874, 39875, 39876, 39877, 39878, 39879, - }}, - {{ - 39880, 39881, 39882, 39883, 39884, 39885, 39886, 39887, - 39888, 39889, 39890, 39891, 39892, 39893, 39894, 39895, - 39896, 39897, 39898, 39899, 39900, 39901, 39902, 39903, - 39904, 39905, 39906, 39907, 39908, 39909, 39910, 39911, - }}, - {{ - 39912, 39913, 39914, 39915, 39916, 39917, 39918, 39919, - 39920, 39921, 39922, 39923, 39924, 39925, 39926, 39927, - 39928, 39929, 39930, 39931, 39932, 39933, 39934, 39935, - 39936, 39937, 39938, 39939, 39940, 39941, 39942, 39943, - }}, - {{ - 39944, 39945, 39946, 39947, 39948, 39949, 0, 0, - 39950, 39951, 39952, 39953, 39954, 39955, 39956, 39957, - 39958, 39959, 39960, 39961, 39962, 39963, 39964, 39965, - 39966, 39967, 39968, 39969, 39970, 39971, 39972, 39973, - }}, - {{ - 39974, 39975, 39976, 39977, 39978, 39979, 39980, 39981, - 39982, 39983, 39984, 39985, 39986, 39987, 39988, 39989, - 39990, 39991, 39992, 39993, 39994, 39995, 39996, 39997, - 39998, 39999, 40000, 40001, 40002, 40003, 40004, 40005, - }}, - {{ - 40006, 40007, 40008, 40009, 40010, 40011, 40012, 40013, - 40014, 40015, 40016, 40017, 40018, 40019, 40020, 40021, - 40022, 40023, 40024, 40025, 40026, 40027, 40028, 40029, - 40030, 40031, 40032, 40033, 40034, 40035, 40036, 40037, - }}, - {{ - 40038, 40039, 40040, 40041, 40042, 40043, 40044, 40045, - 40046, 40047, 40048, 40049, 40050, 40051, 40052, 40053, - 40054, 40055, 40056, 40057, 40058, 40059, 40060, 40061, - 40062, 40063, 40064, 40065, 40066, 40067, 40068, 40069, - }}, - {{ - 40070, 40071, 40072, 40073, 40074, 40075, 40076, 40077, - 40078, 40079, 40080, 40081, 40082, 40083, 40084, 40085, - 40086, 40087, 40088, 40089, 40090, 40091, 40092, 40093, - 40094, 40095, 40096, 40097, 40098, 40099, 40100, 40101, - }}, - {{ - 40102, 40103, 40104, 40105, 40106, 40107, 40108, 40109, - 40110, 40111, 40112, 40113, 40114, 40115, 40116, 40117, - 40118, 40119, 40120, 40121, 40122, 40123, 40124, 40125, - 40126, 40127, 40128, 40129, 40130, 40131, 40132, 40133, - }}, - {{ - 40134, 40135, 40136, 40137, 40138, 40139, 40140, 40141, - 40142, 40143, 40144, 40145, 40146, 40147, 40148, 40149, - 40150, 40151, 40152, 40153, 40154, 40155, 40156, 40157, - 40158, 40159, 40160, 40161, 40162, 40163, 40164, 40165, - }}, - {{ - 40166, 40167, 40168, 40169, 40170, 40171, 40172, 40173, - 40174, 40175, 40176, 40177, 40178, 40179, 40180, 40181, - 40182, 40183, 40184, 40185, 40186, 40187, 40188, 40189, - 40190, 40191, 40192, 40193, 40194, 40195, 40196, 40197, - }}, - {{ - 40198, 40199, 40200, 40201, 40202, 40203, 40204, 40205, - 40206, 40207, 40208, 40209, 40210, 40211, 40212, 40213, - 40214, 40215, 40216, 40217, 40218, 40219, 40220, 40221, - 40222, 40223, 40224, 40225, 40226, 40227, 40228, 40229, - }}, - {{ - 40230, 40231, 40232, 40233, 40234, 40235, 40236, 40237, - 40238, 40239, 0, 0, 0, 0, 40240, 40241, - 40242, 40243, 40244, 40245, 40246, 40247, 40248, 40249, - 40250, 40251, 40252, 40253, 40254, 40255, 40256, 40257, - }}, - {{ - 40258, 40259, 40260, 40261, 40262, 40263, 40264, 40265, - 40266, 40267, 40268, 40269, 40270, 40271, 40272, 40273, - 40274, 40275, 40276, 40277, 40278, 40279, 40280, 40281, - 40282, 40283, 40284, 40285, 40286, 40287, 40288, 40289, - }}, - {{ - 7522, 7523, 7524, 7525, 7526, 7527, 7528, 7529, - 7530, 7531, 7532, 7533, 7534, 7535, 7536, 7537, - 7538, 7539, 7540, 7541, 7542, 7543, 7544, 7545, - 7546, 7547, 7548, 7549, 7550, 7551, 7552, 7553, - }}, - {{ - 7554, 7555, 7556, 7557, 7558, 7559, 7560, 7561, - 7562, 7563, 7564, 7565, 7566, 7567, 7568, 7569, - 7570, 7571, 7572, 7573, 7574, 7575, 7576, 7577, - 7578, 7579, 7580, 7581, 7582, 7583, 7584, 7585, - }}, - {{ - 7586, 7587, 7588, 7589, 7590, 7591, 7592, 7593, - 7594, 7595, 7596, 7597, 7598, 7599, 7600, 7601, - 7602, 7603, 7604, 7605, 7606, 7607, 7608, 7609, - 7610, 7611, 7612, 7613, 7614, 7615, 7616, 7617, - }}, - {{ - 7618, 7619, 7620, 7621, 7622, 7623, 7624, 7625, - 7626, 7627, 7628, 7629, 7630, 7631, 7632, 7633, - 7634, 7635, 7636, 7637, 7638, 7639, 7640, 7641, - 7642, 7643, 7644, 7645, 7646, 7647, 7648, 7649, - }}, - {{ - 7650, 7651, 7652, 7653, 7654, 7655, 7656, 7657, - 7658, 7659, 7660, 7661, 7662, 7663, 7664, 7665, - 7666, 7667, 7668, 7669, 7670, 7671, 7672, 7673, - 7674, 7675, 7676, 7677, 7678, 7679, 7680, 7681, - }}, - {{ - 7682, 7683, 7684, 7685, 7686, 7687, 7688, 7689, - 7690, 7691, 7692, 7693, 7694, 7695, 7696, 7697, - 7698, 7699, 7700, 7701, 7702, 7703, 7704, 7705, - 7706, 7707, 7708, 7709, 7710, 7711, 7712, 7713, - }}, - {{ - 7714, 7715, 7716, 7717, 7718, 7719, 7720, 7721, - 7722, 7723, 7724, 7725, 7726, 7727, 7728, 7729, - 7730, 7731, 7732, 7733, 7734, 7735, 7736, 7737, - 7738, 7739, 7740, 7741, 7742, 7743, 7744, 7745, - }}, - {{ - 7746, 7747, 7748, 7749, 7750, 7751, 7752, 7753, - 7754, 7755, 7756, 7757, 7758, 7759, 7760, 7761, - 7762, 7763, 7764, 7765, 7766, 7767, 7768, 7769, - 7770, 7771, 7772, 7773, 7774, 7775, 7776, 7777, - }}, - {{ - 7778, 7779, 7780, 7781, 7782, 7783, 7784, 7785, - 7786, 7787, 7788, 7789, 7790, 7791, 7792, 7793, - 7794, 7795, 7796, 7797, 7798, 7799, 7800, 7801, - 7802, 7803, 7804, 7805, 7806, 7807, 7808, 7809, - }}, - {{ - 7810, 7811, 7812, 7813, 7814, 7815, 7816, 7817, - 7818, 7819, 7820, 7821, 7822, 7823, 7824, 7825, - 7826, 7827, 7828, 7829, 7830, 7831, 7832, 7833, - 7834, 7835, 7836, 7837, 7838, 7839, 7840, 7841, - }}, - {{ - 7842, 7843, 7844, 7845, 7846, 7847, 7848, 7849, - 7850, 7851, 7852, 7853, 7854, 7855, 7856, 7857, - 7858, 7859, 7860, 7861, 7862, 7863, 7864, 7865, - 7866, 7867, 7868, 7869, 7870, 7871, 7872, 7873, - }}, - {{ - 7874, 7875, 7876, 7877, 7878, 7879, 7880, 7881, - 7882, 7883, 7884, 7885, 7886, 7887, 7888, 7889, - 7890, 7891, 7892, 7893, 7894, 7895, 7896, 7897, - 7898, 7899, 7900, 7901, 7902, 7903, 7904, 7905, - }}, - {{ - 7906, 7907, 7908, 7909, 7910, 7911, 7912, 7913, - 7914, 7915, 7916, 7917, 7918, 7919, 7920, 7921, - 7922, 7923, 7924, 7925, 7926, 7927, 7928, 7929, - 7930, 7931, 7932, 7933, 7934, 7935, 7936, 7937, - }}, - {{ - 7938, 7939, 7940, 7941, 7942, 7943, 7944, 7945, - 7946, 7947, 7948, 7949, 7950, 7951, 7952, 7953, - 7954, 7955, 7956, 7957, 7958, 7959, 7960, 7961, - 7962, 7963, 7964, 7965, 7966, 7967, 7968, 7969, - }}, - {{ - 7970, 7971, 7972, 7973, 7974, 7975, 7976, 7977, - 7978, 7979, 7980, 7981, 7982, 7983, 7984, 7985, - 7986, 7987, 7988, 7989, 7990, 7991, 7992, 7993, - 7994, 7995, 7996, 7997, 7998, 7999, 8000, 8001, - }}, - {{ - 8002, 8003, 8004, 8005, 8006, 8007, 8008, 8009, - 8010, 8011, 8012, 8013, 8014, 8015, 8016, 8017, - 8018, 8019, 8020, 8021, 8022, 8023, 8024, 8025, - 8026, 8027, 8028, 8029, 8030, 8031, 8032, 8033, - }}, - {{ - 8034, 8035, 8036, 8037, 8038, 8039, 8040, 8041, - 8042, 8043, 8044, 8045, 8046, 8047, 8048, 8049, - 8050, 8051, 8052, 8053, 8054, 8055, 8056, 8057, - 8058, 8059, 8060, 8061, 8062, 8063, 0, 0, - }}, -}; -static const uint32_t decompose_seq[] = { - 0x00000000, 0x80000020, 0x00000020, 0x80000308, - 0x80000061, 0x00000020, 0x80000304, 0x80000032, - 0x80000033, 0x00000020, 0x80000301, 0x800003bc, - 0x00000020, 0x80000327, 0x80000031, 0x8000006f, - 0x00000031, 0x00002044, 0x80000034, 0x00000031, - 0x00002044, 0x80000032, 0x00000033, 0x00002044, - 0x80000034, 0x00000041, 0x80000300, 0x00000041, - 0x80000301, 0x00000041, 0x80000302, 0x00000041, - 0x80000303, 0x00000041, 0x80000308, 0x00000041, - 0x8000030a, 0x00000043, 0x80000327, 0x00000045, - 0x80000300, 0x00000045, 0x80000301, 0x00000045, - 0x80000302, 0x00000045, 0x80000308, 0x00000049, - 0x80000300, 0x00000049, 0x80000301, 0x00000049, - 0x80000302, 0x00000049, 0x80000308, 0x0000004e, - 0x80000303, 0x0000004f, 0x80000300, 0x0000004f, - 0x80000301, 0x0000004f, 0x80000302, 0x0000004f, - 0x80000303, 0x0000004f, 0x80000308, 0x00000055, - 0x80000300, 0x00000055, 0x80000301, 0x00000055, - 0x80000302, 0x00000055, 0x80000308, 0x00000059, - 0x80000301, 0x00000061, 0x80000300, 0x00000061, - 0x80000301, 0x00000061, 0x80000302, 0x00000061, - 0x80000303, 0x00000061, 0x80000308, 0x00000061, - 0x8000030a, 0x00000063, 0x80000327, 0x00000065, - 0x80000300, 0x00000065, 0x80000301, 0x00000065, - 0x80000302, 0x00000065, 0x80000308, 0x00000069, - 0x80000300, 0x00000069, 0x80000301, 0x00000069, - 0x80000302, 0x00000069, 0x80000308, 0x0000006e, - 0x80000303, 0x0000006f, 0x80000300, 0x0000006f, - 0x80000301, 0x0000006f, 0x80000302, 0x0000006f, - 0x80000303, 0x0000006f, 0x80000308, 0x00000075, - 0x80000300, 0x00000075, 0x80000301, 0x00000075, - 0x80000302, 0x00000075, 0x80000308, 0x00000079, - 0x80000301, 0x00000079, 0x80000308, 0x00000041, - 0x80000304, 0x00000061, 0x80000304, 0x00000041, - 0x80000306, 0x00000061, 0x80000306, 0x00000041, - 0x80000328, 0x00000061, 0x80000328, 0x00000043, - 0x80000301, 0x00000063, 0x80000301, 0x00000043, - 0x80000302, 0x00000063, 0x80000302, 0x00000043, - 0x80000307, 0x00000063, 0x80000307, 0x00000043, - 0x8000030c, 0x00000063, 0x8000030c, 0x00000044, - 0x8000030c, 0x00000064, 0x8000030c, 0x00000045, - 0x80000304, 0x00000065, 0x80000304, 0x00000045, - 0x80000306, 0x00000065, 0x80000306, 0x00000045, - 0x80000307, 0x00000065, 0x80000307, 0x00000045, - 0x80000328, 0x00000065, 0x80000328, 0x00000045, - 0x8000030c, 0x00000065, 0x8000030c, 0x00000047, - 0x80000302, 0x00000067, 0x80000302, 0x00000047, - 0x80000306, 0x00000067, 0x80000306, 0x00000047, - 0x80000307, 0x00000067, 0x80000307, 0x00000047, - 0x80000327, 0x00000067, 0x80000327, 0x00000048, - 0x80000302, 0x00000068, 0x80000302, 0x00000049, - 0x80000303, 0x00000069, 0x80000303, 0x00000049, - 0x80000304, 0x00000069, 0x80000304, 0x00000049, - 0x80000306, 0x00000069, 0x80000306, 0x00000049, - 0x80000328, 0x00000069, 0x80000328, 0x00000049, - 0x80000307, 0x00000049, 0x8000004a, 0x00000069, - 0x8000006a, 0x0000004a, 0x80000302, 0x0000006a, - 0x80000302, 0x0000004b, 0x80000327, 0x0000006b, - 0x80000327, 0x0000004c, 0x80000301, 0x0000006c, - 0x80000301, 0x0000004c, 0x80000327, 0x0000006c, - 0x80000327, 0x0000004c, 0x8000030c, 0x0000006c, - 0x8000030c, 0x0000004c, 0x800000b7, 0x0000006c, - 0x800000b7, 0x0000004e, 0x80000301, 0x0000006e, - 0x80000301, 0x0000004e, 0x80000327, 0x0000006e, - 0x80000327, 0x0000004e, 0x8000030c, 0x0000006e, - 0x8000030c, 0x000002bc, 0x8000006e, 0x0000004f, - 0x80000304, 0x0000006f, 0x80000304, 0x0000004f, - 0x80000306, 0x0000006f, 0x80000306, 0x0000004f, - 0x8000030b, 0x0000006f, 0x8000030b, 0x00000052, - 0x80000301, 0x00000072, 0x80000301, 0x00000052, - 0x80000327, 0x00000072, 0x80000327, 0x00000052, - 0x8000030c, 0x00000072, 0x8000030c, 0x00000053, - 0x80000301, 0x00000073, 0x80000301, 0x00000053, - 0x80000302, 0x00000073, 0x80000302, 0x00000053, - 0x80000327, 0x00000073, 0x80000327, 0x00000053, - 0x8000030c, 0x00000073, 0x8000030c, 0x00000054, - 0x80000327, 0x00000074, 0x80000327, 0x00000054, - 0x8000030c, 0x00000074, 0x8000030c, 0x00000055, - 0x80000303, 0x00000075, 0x80000303, 0x00000055, - 0x80000304, 0x00000075, 0x80000304, 0x00000055, - 0x80000306, 0x00000075, 0x80000306, 0x00000055, - 0x8000030a, 0x00000075, 0x8000030a, 0x00000055, - 0x8000030b, 0x00000075, 0x8000030b, 0x00000055, - 0x80000328, 0x00000075, 0x80000328, 0x00000057, - 0x80000302, 0x00000077, 0x80000302, 0x00000059, - 0x80000302, 0x00000079, 0x80000302, 0x00000059, - 0x80000308, 0x0000005a, 0x80000301, 0x0000007a, - 0x80000301, 0x0000005a, 0x80000307, 0x0000007a, - 0x80000307, 0x0000005a, 0x8000030c, 0x0000007a, - 0x8000030c, 0x80000073, 0x0000004f, 0x8000031b, - 0x0000006f, 0x8000031b, 0x00000055, 0x8000031b, - 0x00000075, 0x8000031b, 0x00000044, 0x8000017d, - 0x00000044, 0x8000017e, 0x00000064, 0x8000017e, - 0x0000004c, 0x8000004a, 0x0000004c, 0x8000006a, - 0x0000006c, 0x8000006a, 0x0000004e, 0x8000004a, - 0x0000004e, 0x8000006a, 0x0000006e, 0x8000006a, - 0x00000041, 0x8000030c, 0x00000061, 0x8000030c, - 0x00000049, 0x8000030c, 0x00000069, 0x8000030c, - 0x0000004f, 0x8000030c, 0x0000006f, 0x8000030c, - 0x00000055, 0x8000030c, 0x00000075, 0x8000030c, - 0x000000dc, 0x80000304, 0x000000fc, 0x80000304, - 0x000000dc, 0x80000301, 0x000000fc, 0x80000301, - 0x000000dc, 0x8000030c, 0x000000fc, 0x8000030c, - 0x000000dc, 0x80000300, 0x000000fc, 0x80000300, - 0x000000c4, 0x80000304, 0x000000e4, 0x80000304, - 0x00000226, 0x80000304, 0x00000227, 0x80000304, - 0x000000c6, 0x80000304, 0x000000e6, 0x80000304, - 0x00000047, 0x8000030c, 0x00000067, 0x8000030c, - 0x0000004b, 0x8000030c, 0x0000006b, 0x8000030c, - 0x0000004f, 0x80000328, 0x0000006f, 0x80000328, - 0x000001ea, 0x80000304, 0x000001eb, 0x80000304, - 0x000001b7, 0x8000030c, 0x00000292, 0x8000030c, - 0x0000006a, 0x8000030c, 0x00000044, 0x8000005a, - 0x00000044, 0x8000007a, 0x00000064, 0x8000007a, - 0x00000047, 0x80000301, 0x00000067, 0x80000301, - 0x0000004e, 0x80000300, 0x0000006e, 0x80000300, - 0x000000c5, 0x80000301, 0x000000e5, 0x80000301, - 0x000000c6, 0x80000301, 0x000000e6, 0x80000301, - 0x000000d8, 0x80000301, 0x000000f8, 0x80000301, - 0x00000041, 0x8000030f, 0x00000061, 0x8000030f, - 0x00000041, 0x80000311, 0x00000061, 0x80000311, - 0x00000045, 0x8000030f, 0x00000065, 0x8000030f, - 0x00000045, 0x80000311, 0x00000065, 0x80000311, - 0x00000049, 0x8000030f, 0x00000069, 0x8000030f, - 0x00000049, 0x80000311, 0x00000069, 0x80000311, - 0x0000004f, 0x8000030f, 0x0000006f, 0x8000030f, - 0x0000004f, 0x80000311, 0x0000006f, 0x80000311, - 0x00000052, 0x8000030f, 0x00000072, 0x8000030f, - 0x00000052, 0x80000311, 0x00000072, 0x80000311, - 0x00000055, 0x8000030f, 0x00000075, 0x8000030f, - 0x00000055, 0x80000311, 0x00000075, 0x80000311, - 0x00000053, 0x80000326, 0x00000073, 0x80000326, - 0x00000054, 0x80000326, 0x00000074, 0x80000326, - 0x00000048, 0x8000030c, 0x00000068, 0x8000030c, - 0x00000041, 0x80000307, 0x00000061, 0x80000307, - 0x00000045, 0x80000327, 0x00000065, 0x80000327, - 0x000000d6, 0x80000304, 0x000000f6, 0x80000304, - 0x000000d5, 0x80000304, 0x000000f5, 0x80000304, - 0x0000004f, 0x80000307, 0x0000006f, 0x80000307, - 0x0000022e, 0x80000304, 0x0000022f, 0x80000304, - 0x00000059, 0x80000304, 0x00000079, 0x80000304, - 0x80000068, 0x80000266, 0x8000006a, 0x80000072, - 0x80000279, 0x8000027b, 0x80000281, 0x80000077, - 0x80000079, 0x00000020, 0x80000306, 0x00000020, - 0x80000307, 0x00000020, 0x8000030a, 0x00000020, - 0x80000328, 0x00000020, 0x80000303, 0x00000020, - 0x8000030b, 0x80000263, 0x8000006c, 0x80000073, - 0x80000078, 0x80000295, 0x80000300, 0x80000301, - 0x80000313, 0x00000308, 0x80000301, 0x800002b9, - 0x00000020, 0x80000345, 0x8000003b, 0x00000020, - 0x80000301, 0x000000a8, 0x80000301, 0x00000391, - 0x80000301, 0x800000b7, 0x00000395, 0x80000301, - 0x00000397, 0x80000301, 0x00000399, 0x80000301, - 0x0000039f, 0x80000301, 0x000003a5, 0x80000301, - 0x000003a9, 0x80000301, 0x000003ca, 0x80000301, - 0x00000399, 0x80000308, 0x000003a5, 0x80000308, - 0x000003b1, 0x80000301, 0x000003b5, 0x80000301, - 0x000003b7, 0x80000301, 0x000003b9, 0x80000301, - 0x000003cb, 0x80000301, 0x000003b9, 0x80000308, - 0x000003c5, 0x80000308, 0x000003bf, 0x80000301, - 0x000003c5, 0x80000301, 0x000003c9, 0x80000301, - 0x800003b2, 0x800003b8, 0x800003a5, 0x000003d2, - 0x80000301, 0x000003d2, 0x80000308, 0x800003c6, - 0x800003c0, 0x800003ba, 0x800003c1, 0x800003c2, - 0x80000398, 0x800003b5, 0x800003a3, 0x00000415, - 0x80000300, 0x00000415, 0x80000308, 0x00000413, - 0x80000301, 0x00000406, 0x80000308, 0x0000041a, - 0x80000301, 0x00000418, 0x80000300, 0x00000423, - 0x80000306, 0x00000418, 0x80000306, 0x00000438, - 0x80000306, 0x00000435, 0x80000300, 0x00000435, - 0x80000308, 0x00000433, 0x80000301, 0x00000456, - 0x80000308, 0x0000043a, 0x80000301, 0x00000438, - 0x80000300, 0x00000443, 0x80000306, 0x00000474, - 0x8000030f, 0x00000475, 0x8000030f, 0x00000416, - 0x80000306, 0x00000436, 0x80000306, 0x00000410, - 0x80000306, 0x00000430, 0x80000306, 0x00000410, - 0x80000308, 0x00000430, 0x80000308, 0x00000415, - 0x80000306, 0x00000435, 0x80000306, 0x000004d8, - 0x80000308, 0x000004d9, 0x80000308, 0x00000416, - 0x80000308, 0x00000436, 0x80000308, 0x00000417, - 0x80000308, 0x00000437, 0x80000308, 0x00000418, - 0x80000304, 0x00000438, 0x80000304, 0x00000418, - 0x80000308, 0x00000438, 0x80000308, 0x0000041e, - 0x80000308, 0x0000043e, 0x80000308, 0x000004e8, - 0x80000308, 0x000004e9, 0x80000308, 0x0000042d, - 0x80000308, 0x0000044d, 0x80000308, 0x00000423, - 0x80000304, 0x00000443, 0x80000304, 0x00000423, - 0x80000308, 0x00000443, 0x80000308, 0x00000423, - 0x8000030b, 0x00000443, 0x8000030b, 0x00000427, - 0x80000308, 0x00000447, 0x80000308, 0x0000042b, - 0x80000308, 0x0000044b, 0x80000308, 0x00000565, - 0x80000582, 0x00000627, 0x80000653, 0x00000627, - 0x80000654, 0x00000648, 0x80000654, 0x00000627, - 0x80000655, 0x0000064a, 0x80000654, 0x00000627, - 0x80000674, 0x00000648, 0x80000674, 0x000006c7, - 0x80000674, 0x0000064a, 0x80000674, 0x000006d5, - 0x80000654, 0x000006c1, 0x80000654, 0x000006d2, - 0x80000654, 0x00000928, 0x8000093c, 0x00000930, - 0x8000093c, 0x00000933, 0x8000093c, 0x00000915, - 0x8000093c, 0x00000916, 0x8000093c, 0x00000917, - 0x8000093c, 0x0000091c, 0x8000093c, 0x00000921, - 0x8000093c, 0x00000922, 0x8000093c, 0x0000092b, - 0x8000093c, 0x0000092f, 0x8000093c, 0x000009c7, - 0x800009be, 0x000009c7, 0x800009d7, 0x000009a1, - 0x800009bc, 0x000009a2, 0x800009bc, 0x000009af, - 0x800009bc, 0x00000a32, 0x80000a3c, 0x00000a38, - 0x80000a3c, 0x00000a16, 0x80000a3c, 0x00000a17, - 0x80000a3c, 0x00000a1c, 0x80000a3c, 0x00000a2b, - 0x80000a3c, 0x00000b47, 0x80000b56, 0x00000b47, - 0x80000b3e, 0x00000b47, 0x80000b57, 0x00000b21, - 0x80000b3c, 0x00000b22, 0x80000b3c, 0x00000b92, - 0x80000bd7, 0x00000bc6, 0x80000bbe, 0x00000bc7, - 0x80000bbe, 0x00000bc6, 0x80000bd7, 0x00000c46, - 0x80000c56, 0x00000cbf, 0x80000cd5, 0x00000cc6, - 0x80000cd5, 0x00000cc6, 0x80000cd6, 0x00000cc6, - 0x80000cc2, 0x00000cca, 0x80000cd5, 0x00000d46, - 0x80000d3e, 0x00000d47, 0x80000d3e, 0x00000d46, - 0x80000d57, 0x00000dd9, 0x80000dca, 0x00000dd9, - 0x80000dcf, 0x00000ddc, 0x80000dca, 0x00000dd9, - 0x80000ddf, 0x00000e4d, 0x80000e32, 0x00000ecd, - 0x80000eb2, 0x00000eab, 0x80000e99, 0x00000eab, - 0x80000ea1, 0x80000f0b, 0x00000f42, 0x80000fb7, - 0x00000f4c, 0x80000fb7, 0x00000f51, 0x80000fb7, - 0x00000f56, 0x80000fb7, 0x00000f5b, 0x80000fb7, - 0x00000f40, 0x80000fb5, 0x00000f71, 0x80000f72, - 0x00000f71, 0x80000f74, 0x00000fb2, 0x80000f80, - 0x00000fb2, 0x80000f81, 0x00000fb3, 0x80000f80, - 0x00000fb3, 0x80000f81, 0x00000f71, 0x80000f80, - 0x00000f92, 0x80000fb7, 0x00000f9c, 0x80000fb7, - 0x00000fa1, 0x80000fb7, 0x00000fa6, 0x80000fb7, - 0x00000fab, 0x80000fb7, 0x00000f90, 0x80000fb5, - 0x00001025, 0x8000102e, 0x800010dc, 0x80000041, - 0x800000c6, 0x80000042, 0x80000044, 0x80000045, - 0x8000018e, 0x80000047, 0x80000048, 0x80000049, - 0x8000004a, 0x8000004b, 0x8000004c, 0x8000004d, - 0x8000004e, 0x8000004f, 0x80000222, 0x80000050, - 0x80000052, 0x80000054, 0x80000055, 0x80000057, - 0x80000061, 0x80000250, 0x80000251, 0x80001d02, - 0x80000062, 0x80000064, 0x80000065, 0x80000259, - 0x8000025b, 0x8000025c, 0x80000067, 0x8000006b, - 0x8000006d, 0x8000014b, 0x8000006f, 0x80000254, - 0x80001d16, 0x80001d17, 0x80000070, 0x80000074, - 0x80000075, 0x80001d1d, 0x8000026f, 0x80000076, - 0x80001d25, 0x800003b2, 0x800003b3, 0x800003b4, - 0x800003c6, 0x800003c7, 0x80000069, 0x80000072, - 0x80000075, 0x80000076, 0x800003b2, 0x800003b3, - 0x800003c1, 0x800003c6, 0x800003c7, 0x8000043d, - 0x80000252, 0x80000063, 0x80000255, 0x800000f0, - 0x8000025c, 0x80000066, 0x8000025f, 0x80000261, - 0x80000265, 0x80000268, 0x80000269, 0x8000026a, - 0x80001d7b, 0x8000029d, 0x8000026d, 0x80001d85, - 0x8000029f, 0x80000271, 0x80000270, 0x80000272, - 0x80000273, 0x80000274, 0x80000275, 0x80000278, - 0x80000282, 0x80000283, 0x800001ab, 0x80000289, - 0x8000028a, 0x80001d1c, 0x8000028b, 0x8000028c, - 0x8000007a, 0x80000290, 0x80000291, 0x80000292, - 0x800003b8, 0x00000041, 0x80000325, 0x00000061, - 0x80000325, 0x00000042, 0x80000307, 0x00000062, - 0x80000307, 0x00000042, 0x80000323, 0x00000062, - 0x80000323, 0x00000042, 0x80000331, 0x00000062, - 0x80000331, 0x000000c7, 0x80000301, 0x000000e7, - 0x80000301, 0x00000044, 0x80000307, 0x00000064, - 0x80000307, 0x00000044, 0x80000323, 0x00000064, - 0x80000323, 0x00000044, 0x80000331, 0x00000064, - 0x80000331, 0x00000044, 0x80000327, 0x00000064, - 0x80000327, 0x00000044, 0x8000032d, 0x00000064, - 0x8000032d, 0x00000112, 0x80000300, 0x00000113, - 0x80000300, 0x00000112, 0x80000301, 0x00000113, - 0x80000301, 0x00000045, 0x8000032d, 0x00000065, - 0x8000032d, 0x00000045, 0x80000330, 0x00000065, - 0x80000330, 0x00000228, 0x80000306, 0x00000229, - 0x80000306, 0x00000046, 0x80000307, 0x00000066, - 0x80000307, 0x00000047, 0x80000304, 0x00000067, - 0x80000304, 0x00000048, 0x80000307, 0x00000068, - 0x80000307, 0x00000048, 0x80000323, 0x00000068, - 0x80000323, 0x00000048, 0x80000308, 0x00000068, - 0x80000308, 0x00000048, 0x80000327, 0x00000068, - 0x80000327, 0x00000048, 0x8000032e, 0x00000068, - 0x8000032e, 0x00000049, 0x80000330, 0x00000069, - 0x80000330, 0x000000cf, 0x80000301, 0x000000ef, - 0x80000301, 0x0000004b, 0x80000301, 0x0000006b, - 0x80000301, 0x0000004b, 0x80000323, 0x0000006b, - 0x80000323, 0x0000004b, 0x80000331, 0x0000006b, - 0x80000331, 0x0000004c, 0x80000323, 0x0000006c, - 0x80000323, 0x00001e36, 0x80000304, 0x00001e37, - 0x80000304, 0x0000004c, 0x80000331, 0x0000006c, - 0x80000331, 0x0000004c, 0x8000032d, 0x0000006c, - 0x8000032d, 0x0000004d, 0x80000301, 0x0000006d, - 0x80000301, 0x0000004d, 0x80000307, 0x0000006d, - 0x80000307, 0x0000004d, 0x80000323, 0x0000006d, - 0x80000323, 0x0000004e, 0x80000307, 0x0000006e, - 0x80000307, 0x0000004e, 0x80000323, 0x0000006e, - 0x80000323, 0x0000004e, 0x80000331, 0x0000006e, - 0x80000331, 0x0000004e, 0x8000032d, 0x0000006e, - 0x8000032d, 0x000000d5, 0x80000301, 0x000000f5, - 0x80000301, 0x000000d5, 0x80000308, 0x000000f5, - 0x80000308, 0x0000014c, 0x80000300, 0x0000014d, - 0x80000300, 0x0000014c, 0x80000301, 0x0000014d, - 0x80000301, 0x00000050, 0x80000301, 0x00000070, - 0x80000301, 0x00000050, 0x80000307, 0x00000070, - 0x80000307, 0x00000052, 0x80000307, 0x00000072, - 0x80000307, 0x00000052, 0x80000323, 0x00000072, - 0x80000323, 0x00001e5a, 0x80000304, 0x00001e5b, - 0x80000304, 0x00000052, 0x80000331, 0x00000072, - 0x80000331, 0x00000053, 0x80000307, 0x00000073, - 0x80000307, 0x00000053, 0x80000323, 0x00000073, - 0x80000323, 0x0000015a, 0x80000307, 0x0000015b, - 0x80000307, 0x00000160, 0x80000307, 0x00000161, - 0x80000307, 0x00001e62, 0x80000307, 0x00001e63, - 0x80000307, 0x00000054, 0x80000307, 0x00000074, - 0x80000307, 0x00000054, 0x80000323, 0x00000074, - 0x80000323, 0x00000054, 0x80000331, 0x00000074, - 0x80000331, 0x00000054, 0x8000032d, 0x00000074, - 0x8000032d, 0x00000055, 0x80000324, 0x00000075, - 0x80000324, 0x00000055, 0x80000330, 0x00000075, - 0x80000330, 0x00000055, 0x8000032d, 0x00000075, - 0x8000032d, 0x00000168, 0x80000301, 0x00000169, - 0x80000301, 0x0000016a, 0x80000308, 0x0000016b, - 0x80000308, 0x00000056, 0x80000303, 0x00000076, - 0x80000303, 0x00000056, 0x80000323, 0x00000076, - 0x80000323, 0x00000057, 0x80000300, 0x00000077, - 0x80000300, 0x00000057, 0x80000301, 0x00000077, - 0x80000301, 0x00000057, 0x80000308, 0x00000077, - 0x80000308, 0x00000057, 0x80000307, 0x00000077, - 0x80000307, 0x00000057, 0x80000323, 0x00000077, - 0x80000323, 0x00000058, 0x80000307, 0x00000078, - 0x80000307, 0x00000058, 0x80000308, 0x00000078, - 0x80000308, 0x00000059, 0x80000307, 0x00000079, - 0x80000307, 0x0000005a, 0x80000302, 0x0000007a, - 0x80000302, 0x0000005a, 0x80000323, 0x0000007a, - 0x80000323, 0x0000005a, 0x80000331, 0x0000007a, - 0x80000331, 0x00000068, 0x80000331, 0x00000074, - 0x80000308, 0x00000077, 0x8000030a, 0x00000079, - 0x8000030a, 0x00000061, 0x800002be, 0x0000017f, - 0x80000307, 0x00000041, 0x80000323, 0x00000061, - 0x80000323, 0x00000041, 0x80000309, 0x00000061, - 0x80000309, 0x000000c2, 0x80000301, 0x000000e2, - 0x80000301, 0x000000c2, 0x80000300, 0x000000e2, - 0x80000300, 0x000000c2, 0x80000309, 0x000000e2, - 0x80000309, 0x000000c2, 0x80000303, 0x000000e2, - 0x80000303, 0x00001ea0, 0x80000302, 0x00001ea1, - 0x80000302, 0x00000102, 0x80000301, 0x00000103, - 0x80000301, 0x00000102, 0x80000300, 0x00000103, - 0x80000300, 0x00000102, 0x80000309, 0x00000103, - 0x80000309, 0x00000102, 0x80000303, 0x00000103, - 0x80000303, 0x00001ea0, 0x80000306, 0x00001ea1, - 0x80000306, 0x00000045, 0x80000323, 0x00000065, - 0x80000323, 0x00000045, 0x80000309, 0x00000065, - 0x80000309, 0x00000045, 0x80000303, 0x00000065, - 0x80000303, 0x000000ca, 0x80000301, 0x000000ea, - 0x80000301, 0x000000ca, 0x80000300, 0x000000ea, - 0x80000300, 0x000000ca, 0x80000309, 0x000000ea, - 0x80000309, 0x000000ca, 0x80000303, 0x000000ea, - 0x80000303, 0x00001eb8, 0x80000302, 0x00001eb9, - 0x80000302, 0x00000049, 0x80000309, 0x00000069, - 0x80000309, 0x00000049, 0x80000323, 0x00000069, - 0x80000323, 0x0000004f, 0x80000323, 0x0000006f, - 0x80000323, 0x0000004f, 0x80000309, 0x0000006f, - 0x80000309, 0x000000d4, 0x80000301, 0x000000f4, - 0x80000301, 0x000000d4, 0x80000300, 0x000000f4, - 0x80000300, 0x000000d4, 0x80000309, 0x000000f4, - 0x80000309, 0x000000d4, 0x80000303, 0x000000f4, - 0x80000303, 0x00001ecc, 0x80000302, 0x00001ecd, - 0x80000302, 0x000001a0, 0x80000301, 0x000001a1, - 0x80000301, 0x000001a0, 0x80000300, 0x000001a1, - 0x80000300, 0x000001a0, 0x80000309, 0x000001a1, - 0x80000309, 0x000001a0, 0x80000303, 0x000001a1, - 0x80000303, 0x000001a0, 0x80000323, 0x000001a1, - 0x80000323, 0x00000055, 0x80000323, 0x00000075, - 0x80000323, 0x00000055, 0x80000309, 0x00000075, - 0x80000309, 0x000001af, 0x80000301, 0x000001b0, - 0x80000301, 0x000001af, 0x80000300, 0x000001b0, - 0x80000300, 0x000001af, 0x80000309, 0x000001b0, - 0x80000309, 0x000001af, 0x80000303, 0x000001b0, - 0x80000303, 0x000001af, 0x80000323, 0x000001b0, - 0x80000323, 0x00000059, 0x80000300, 0x00000079, - 0x80000300, 0x00000059, 0x80000323, 0x00000079, - 0x80000323, 0x00000059, 0x80000309, 0x00000079, - 0x80000309, 0x00000059, 0x80000303, 0x00000079, - 0x80000303, 0x000003b1, 0x80000313, 0x000003b1, - 0x80000314, 0x00001f00, 0x80000300, 0x00001f01, - 0x80000300, 0x00001f00, 0x80000301, 0x00001f01, - 0x80000301, 0x00001f00, 0x80000342, 0x00001f01, - 0x80000342, 0x00000391, 0x80000313, 0x00000391, - 0x80000314, 0x00001f08, 0x80000300, 0x00001f09, - 0x80000300, 0x00001f08, 0x80000301, 0x00001f09, - 0x80000301, 0x00001f08, 0x80000342, 0x00001f09, - 0x80000342, 0x000003b5, 0x80000313, 0x000003b5, - 0x80000314, 0x00001f10, 0x80000300, 0x00001f11, - 0x80000300, 0x00001f10, 0x80000301, 0x00001f11, - 0x80000301, 0x00000395, 0x80000313, 0x00000395, - 0x80000314, 0x00001f18, 0x80000300, 0x00001f19, - 0x80000300, 0x00001f18, 0x80000301, 0x00001f19, - 0x80000301, 0x000003b7, 0x80000313, 0x000003b7, - 0x80000314, 0x00001f20, 0x80000300, 0x00001f21, - 0x80000300, 0x00001f20, 0x80000301, 0x00001f21, - 0x80000301, 0x00001f20, 0x80000342, 0x00001f21, - 0x80000342, 0x00000397, 0x80000313, 0x00000397, - 0x80000314, 0x00001f28, 0x80000300, 0x00001f29, - 0x80000300, 0x00001f28, 0x80000301, 0x00001f29, - 0x80000301, 0x00001f28, 0x80000342, 0x00001f29, - 0x80000342, 0x000003b9, 0x80000313, 0x000003b9, - 0x80000314, 0x00001f30, 0x80000300, 0x00001f31, - 0x80000300, 0x00001f30, 0x80000301, 0x00001f31, - 0x80000301, 0x00001f30, 0x80000342, 0x00001f31, - 0x80000342, 0x00000399, 0x80000313, 0x00000399, - 0x80000314, 0x00001f38, 0x80000300, 0x00001f39, - 0x80000300, 0x00001f38, 0x80000301, 0x00001f39, - 0x80000301, 0x00001f38, 0x80000342, 0x00001f39, - 0x80000342, 0x000003bf, 0x80000313, 0x000003bf, - 0x80000314, 0x00001f40, 0x80000300, 0x00001f41, - 0x80000300, 0x00001f40, 0x80000301, 0x00001f41, - 0x80000301, 0x0000039f, 0x80000313, 0x0000039f, - 0x80000314, 0x00001f48, 0x80000300, 0x00001f49, - 0x80000300, 0x00001f48, 0x80000301, 0x00001f49, - 0x80000301, 0x000003c5, 0x80000313, 0x000003c5, - 0x80000314, 0x00001f50, 0x80000300, 0x00001f51, - 0x80000300, 0x00001f50, 0x80000301, 0x00001f51, - 0x80000301, 0x00001f50, 0x80000342, 0x00001f51, - 0x80000342, 0x000003a5, 0x80000314, 0x00001f59, - 0x80000300, 0x00001f59, 0x80000301, 0x00001f59, - 0x80000342, 0x000003c9, 0x80000313, 0x000003c9, - 0x80000314, 0x00001f60, 0x80000300, 0x00001f61, - 0x80000300, 0x00001f60, 0x80000301, 0x00001f61, - 0x80000301, 0x00001f60, 0x80000342, 0x00001f61, - 0x80000342, 0x000003a9, 0x80000313, 0x000003a9, - 0x80000314, 0x00001f68, 0x80000300, 0x00001f69, - 0x80000300, 0x00001f68, 0x80000301, 0x00001f69, - 0x80000301, 0x00001f68, 0x80000342, 0x00001f69, - 0x80000342, 0x000003b1, 0x80000300, 0x800003ac, - 0x000003b5, 0x80000300, 0x800003ad, 0x000003b7, - 0x80000300, 0x800003ae, 0x000003b9, 0x80000300, - 0x800003af, 0x000003bf, 0x80000300, 0x800003cc, - 0x000003c5, 0x80000300, 0x800003cd, 0x000003c9, - 0x80000300, 0x800003ce, 0x00001f00, 0x80000345, - 0x00001f01, 0x80000345, 0x00001f02, 0x80000345, - 0x00001f03, 0x80000345, 0x00001f04, 0x80000345, - 0x00001f05, 0x80000345, 0x00001f06, 0x80000345, - 0x00001f07, 0x80000345, 0x00001f08, 0x80000345, - 0x00001f09, 0x80000345, 0x00001f0a, 0x80000345, - 0x00001f0b, 0x80000345, 0x00001f0c, 0x80000345, - 0x00001f0d, 0x80000345, 0x00001f0e, 0x80000345, - 0x00001f0f, 0x80000345, 0x00001f20, 0x80000345, - 0x00001f21, 0x80000345, 0x00001f22, 0x80000345, - 0x00001f23, 0x80000345, 0x00001f24, 0x80000345, - 0x00001f25, 0x80000345, 0x00001f26, 0x80000345, - 0x00001f27, 0x80000345, 0x00001f28, 0x80000345, - 0x00001f29, 0x80000345, 0x00001f2a, 0x80000345, - 0x00001f2b, 0x80000345, 0x00001f2c, 0x80000345, - 0x00001f2d, 0x80000345, 0x00001f2e, 0x80000345, - 0x00001f2f, 0x80000345, 0x00001f60, 0x80000345, - 0x00001f61, 0x80000345, 0x00001f62, 0x80000345, - 0x00001f63, 0x80000345, 0x00001f64, 0x80000345, - 0x00001f65, 0x80000345, 0x00001f66, 0x80000345, - 0x00001f67, 0x80000345, 0x00001f68, 0x80000345, - 0x00001f69, 0x80000345, 0x00001f6a, 0x80000345, - 0x00001f6b, 0x80000345, 0x00001f6c, 0x80000345, - 0x00001f6d, 0x80000345, 0x00001f6e, 0x80000345, - 0x00001f6f, 0x80000345, 0x000003b1, 0x80000306, - 0x000003b1, 0x80000304, 0x00001f70, 0x80000345, - 0x000003b1, 0x80000345, 0x000003ac, 0x80000345, - 0x000003b1, 0x80000342, 0x00001fb6, 0x80000345, - 0x00000391, 0x80000306, 0x00000391, 0x80000304, - 0x00000391, 0x80000300, 0x80000386, 0x00000391, - 0x80000345, 0x00000020, 0x80000313, 0x800003b9, - 0x00000020, 0x80000313, 0x00000020, 0x80000342, - 0x000000a8, 0x80000342, 0x00001f74, 0x80000345, - 0x000003b7, 0x80000345, 0x000003ae, 0x80000345, - 0x000003b7, 0x80000342, 0x00001fc6, 0x80000345, - 0x00000395, 0x80000300, 0x80000388, 0x00000397, - 0x80000300, 0x80000389, 0x00000397, 0x80000345, - 0x00001fbf, 0x80000300, 0x00001fbf, 0x80000301, - 0x00001fbf, 0x80000342, 0x000003b9, 0x80000306, - 0x000003b9, 0x80000304, 0x000003ca, 0x80000300, - 0x80000390, 0x000003b9, 0x80000342, 0x000003ca, - 0x80000342, 0x00000399, 0x80000306, 0x00000399, - 0x80000304, 0x00000399, 0x80000300, 0x8000038a, - 0x00001ffe, 0x80000300, 0x00001ffe, 0x80000301, - 0x00001ffe, 0x80000342, 0x000003c5, 0x80000306, - 0x000003c5, 0x80000304, 0x000003cb, 0x80000300, - 0x800003b0, 0x000003c1, 0x80000313, 0x000003c1, - 0x80000314, 0x000003c5, 0x80000342, 0x000003cb, - 0x80000342, 0x000003a5, 0x80000306, 0x000003a5, - 0x80000304, 0x000003a5, 0x80000300, 0x8000038e, - 0x000003a1, 0x80000314, 0x000000a8, 0x80000300, - 0x80000385, 0x80000060, 0x00001f7c, 0x80000345, - 0x000003c9, 0x80000345, 0x000003ce, 0x80000345, - 0x000003c9, 0x80000342, 0x00001ff6, 0x80000345, - 0x0000039f, 0x80000300, 0x8000038c, 0x000003a9, - 0x80000300, 0x8000038f, 0x000003a9, 0x80000345, - 0x800000b4, 0x00000020, 0x80000314, 0x80002002, - 0x80002003, 0x80000020, 0x80000020, 0x80000020, - 0x80000020, 0x80000020, 0x80000020, 0x80000020, - 0x80000020, 0x80000020, 0x80002010, 0x00000020, - 0x80000333, 0x8000002e, 0x0000002e, 0x8000002e, - 0x0000002e, 0x0000002e, 0x8000002e, 0x80000020, - 0x00002032, 0x80002032, 0x00002032, 0x00002032, - 0x80002032, 0x00002035, 0x80002035, 0x00002035, - 0x00002035, 0x80002035, 0x00000021, 0x80000021, - 0x00000020, 0x80000305, 0x0000003f, 0x8000003f, - 0x0000003f, 0x80000021, 0x00000021, 0x8000003f, - 0x00002032, 0x00002032, 0x00002032, 0x80002032, - 0x80000020, 0x80000030, 0x80000069, 0x80000034, - 0x80000035, 0x80000036, 0x80000037, 0x80000038, - 0x80000039, 0x8000002b, 0x80002212, 0x8000003d, - 0x80000028, 0x80000029, 0x8000006e, 0x80000030, - 0x80000031, 0x80000032, 0x80000033, 0x80000034, - 0x80000035, 0x80000036, 0x80000037, 0x80000038, - 0x80000039, 0x8000002b, 0x80002212, 0x8000003d, - 0x80000028, 0x80000029, 0x80000061, 0x80000065, - 0x8000006f, 0x80000078, 0x80000259, 0x00000052, - 0x80000073, 0x00000061, 0x0000002f, 0x80000063, - 0x00000061, 0x0000002f, 0x80000073, 0x80000043, - 0x000000b0, 0x80000043, 0x00000063, 0x0000002f, - 0x8000006f, 0x00000063, 0x0000002f, 0x80000075, - 0x80000190, 0x000000b0, 0x80000046, 0x80000067, - 0x80000048, 0x80000048, 0x80000048, 0x80000068, - 0x80000127, 0x80000049, 0x80000049, 0x8000004c, - 0x8000006c, 0x8000004e, 0x0000004e, 0x8000006f, - 0x80000050, 0x80000051, 0x80000052, 0x80000052, - 0x80000052, 0x00000053, 0x8000004d, 0x00000054, - 0x00000045, 0x8000004c, 0x00000054, 0x8000004d, - 0x8000005a, 0x800003a9, 0x8000005a, 0x8000004b, - 0x800000c5, 0x80000042, 0x80000043, 0x80000065, - 0x80000045, 0x80000046, 0x8000004d, 0x8000006f, - 0x800005d0, 0x800005d1, 0x800005d2, 0x800005d3, - 0x80000069, 0x00000046, 0x00000041, 0x80000058, - 0x800003c0, 0x800003b3, 0x80000393, 0x800003a0, - 0x80002211, 0x80000044, 0x80000064, 0x80000065, - 0x80000069, 0x8000006a, 0x00000031, 0x00002044, - 0x80000033, 0x00000032, 0x00002044, 0x80000033, - 0x00000031, 0x00002044, 0x80000035, 0x00000032, - 0x00002044, 0x80000035, 0x00000033, 0x00002044, - 0x80000035, 0x00000034, 0x00002044, 0x80000035, - 0x00000031, 0x00002044, 0x80000036, 0x00000035, - 0x00002044, 0x80000036, 0x00000031, 0x00002044, - 0x80000038, 0x00000033, 0x00002044, 0x80000038, - 0x00000035, 0x00002044, 0x80000038, 0x00000037, - 0x00002044, 0x80000038, 0x00000031, 0x80002044, - 0x80000049, 0x00000049, 0x80000049, 0x00000049, - 0x00000049, 0x80000049, 0x00000049, 0x80000056, - 0x80000056, 0x00000056, 0x80000049, 0x00000056, - 0x00000049, 0x80000049, 0x00000056, 0x00000049, - 0x00000049, 0x80000049, 0x00000049, 0x80000058, - 0x80000058, 0x00000058, 0x80000049, 0x00000058, - 0x00000049, 0x80000049, 0x8000004c, 0x80000043, - 0x80000044, 0x8000004d, 0x80000069, 0x00000069, - 0x80000069, 0x00000069, 0x00000069, 0x80000069, - 0x00000069, 0x80000076, 0x80000076, 0x00000076, - 0x80000069, 0x00000076, 0x00000069, 0x80000069, - 0x00000076, 0x00000069, 0x00000069, 0x80000069, - 0x00000069, 0x80000078, 0x80000078, 0x00000078, - 0x80000069, 0x00000078, 0x00000069, 0x80000069, - 0x8000006c, 0x80000063, 0x80000064, 0x8000006d, - 0x00002190, 0x80000338, 0x00002192, 0x80000338, - 0x00002194, 0x80000338, 0x000021d0, 0x80000338, - 0x000021d4, 0x80000338, 0x000021d2, 0x80000338, - 0x00002203, 0x80000338, 0x00002208, 0x80000338, - 0x0000220b, 0x80000338, 0x00002223, 0x80000338, - 0x00002225, 0x80000338, 0x0000222b, 0x8000222b, - 0x0000222b, 0x0000222b, 0x8000222b, 0x0000222e, - 0x8000222e, 0x0000222e, 0x0000222e, 0x8000222e, - 0x0000223c, 0x80000338, 0x00002243, 0x80000338, - 0x00002245, 0x80000338, 0x00002248, 0x80000338, - 0x0000003d, 0x80000338, 0x00002261, 0x80000338, - 0x0000224d, 0x80000338, 0x0000003c, 0x80000338, - 0x0000003e, 0x80000338, 0x00002264, 0x80000338, - 0x00002265, 0x80000338, 0x00002272, 0x80000338, - 0x00002273, 0x80000338, 0x00002276, 0x80000338, - 0x00002277, 0x80000338, 0x0000227a, 0x80000338, - 0x0000227b, 0x80000338, 0x00002282, 0x80000338, - 0x00002283, 0x80000338, 0x00002286, 0x80000338, - 0x00002287, 0x80000338, 0x000022a2, 0x80000338, - 0x000022a8, 0x80000338, 0x000022a9, 0x80000338, - 0x000022ab, 0x80000338, 0x0000227c, 0x80000338, - 0x0000227d, 0x80000338, 0x00002291, 0x80000338, - 0x00002292, 0x80000338, 0x000022b2, 0x80000338, - 0x000022b3, 0x80000338, 0x000022b4, 0x80000338, - 0x000022b5, 0x80000338, 0x80003008, 0x80003009, - 0x80000031, 0x80000032, 0x80000033, 0x80000034, - 0x80000035, 0x80000036, 0x80000037, 0x80000038, - 0x80000039, 0x00000031, 0x80000030, 0x00000031, - 0x80000031, 0x00000031, 0x80000032, 0x00000031, - 0x80000033, 0x00000031, 0x80000034, 0x00000031, - 0x80000035, 0x00000031, 0x80000036, 0x00000031, - 0x80000037, 0x00000031, 0x80000038, 0x00000031, - 0x80000039, 0x00000032, 0x80000030, 0x00000028, - 0x00000031, 0x80000029, 0x00000028, 0x00000032, - 0x80000029, 0x00000028, 0x00000033, 0x80000029, - 0x00000028, 0x00000034, 0x80000029, 0x00000028, - 0x00000035, 0x80000029, 0x00000028, 0x00000036, - 0x80000029, 0x00000028, 0x00000037, 0x80000029, - 0x00000028, 0x00000038, 0x80000029, 0x00000028, - 0x00000039, 0x80000029, 0x00000028, 0x00000031, - 0x00000030, 0x80000029, 0x00000028, 0x00000031, - 0x00000031, 0x80000029, 0x00000028, 0x00000031, - 0x00000032, 0x80000029, 0x00000028, 0x00000031, - 0x00000033, 0x80000029, 0x00000028, 0x00000031, - 0x00000034, 0x80000029, 0x00000028, 0x00000031, - 0x00000035, 0x80000029, 0x00000028, 0x00000031, - 0x00000036, 0x80000029, 0x00000028, 0x00000031, - 0x00000037, 0x80000029, 0x00000028, 0x00000031, - 0x00000038, 0x80000029, 0x00000028, 0x00000031, - 0x00000039, 0x80000029, 0x00000028, 0x00000032, - 0x00000030, 0x80000029, 0x00000031, 0x8000002e, - 0x00000032, 0x8000002e, 0x00000033, 0x8000002e, - 0x00000034, 0x8000002e, 0x00000035, 0x8000002e, - 0x00000036, 0x8000002e, 0x00000037, 0x8000002e, - 0x00000038, 0x8000002e, 0x00000039, 0x8000002e, - 0x00000031, 0x00000030, 0x8000002e, 0x00000031, - 0x00000031, 0x8000002e, 0x00000031, 0x00000032, - 0x8000002e, 0x00000031, 0x00000033, 0x8000002e, - 0x00000031, 0x00000034, 0x8000002e, 0x00000031, - 0x00000035, 0x8000002e, 0x00000031, 0x00000036, - 0x8000002e, 0x00000031, 0x00000037, 0x8000002e, - 0x00000031, 0x00000038, 0x8000002e, 0x00000031, - 0x00000039, 0x8000002e, 0x00000032, 0x00000030, - 0x8000002e, 0x00000028, 0x00000061, 0x80000029, - 0x00000028, 0x00000062, 0x80000029, 0x00000028, - 0x00000063, 0x80000029, 0x00000028, 0x00000064, - 0x80000029, 0x00000028, 0x00000065, 0x80000029, - 0x00000028, 0x00000066, 0x80000029, 0x00000028, - 0x00000067, 0x80000029, 0x00000028, 0x00000068, - 0x80000029, 0x00000028, 0x00000069, 0x80000029, - 0x00000028, 0x0000006a, 0x80000029, 0x00000028, - 0x0000006b, 0x80000029, 0x00000028, 0x0000006c, - 0x80000029, 0x00000028, 0x0000006d, 0x80000029, - 0x00000028, 0x0000006e, 0x80000029, 0x00000028, - 0x0000006f, 0x80000029, 0x00000028, 0x00000070, - 0x80000029, 0x00000028, 0x00000071, 0x80000029, - 0x00000028, 0x00000072, 0x80000029, 0x00000028, - 0x00000073, 0x80000029, 0x00000028, 0x00000074, - 0x80000029, 0x00000028, 0x00000075, 0x80000029, - 0x00000028, 0x00000076, 0x80000029, 0x00000028, - 0x00000077, 0x80000029, 0x00000028, 0x00000078, - 0x80000029, 0x00000028, 0x00000079, 0x80000029, - 0x00000028, 0x0000007a, 0x80000029, 0x80000041, - 0x80000042, 0x80000043, 0x80000044, 0x80000045, - 0x80000046, 0x80000047, 0x80000048, 0x80000049, - 0x8000004a, 0x8000004b, 0x8000004c, 0x8000004d, - 0x8000004e, 0x8000004f, 0x80000050, 0x80000051, - 0x80000052, 0x80000053, 0x80000054, 0x80000055, - 0x80000056, 0x80000057, 0x80000058, 0x80000059, - 0x8000005a, 0x80000061, 0x80000062, 0x80000063, - 0x80000064, 0x80000065, 0x80000066, 0x80000067, - 0x80000068, 0x80000069, 0x8000006a, 0x8000006b, - 0x8000006c, 0x8000006d, 0x8000006e, 0x8000006f, - 0x80000070, 0x80000071, 0x80000072, 0x80000073, - 0x80000074, 0x80000075, 0x80000076, 0x80000077, - 0x80000078, 0x80000079, 0x8000007a, 0x80000030, - 0x0000222b, 0x0000222b, 0x0000222b, 0x8000222b, - 0x0000003a, 0x0000003a, 0x8000003d, 0x0000003d, - 0x8000003d, 0x0000003d, 0x0000003d, 0x8000003d, - 0x00002add, 0x80000338, 0x80002d61, 0x80006bcd, - 0x80009f9f, 0x80004e00, 0x80004e28, 0x80004e36, - 0x80004e3f, 0x80004e59, 0x80004e85, 0x80004e8c, - 0x80004ea0, 0x80004eba, 0x8000513f, 0x80005165, - 0x8000516b, 0x80005182, 0x80005196, 0x800051ab, - 0x800051e0, 0x800051f5, 0x80005200, 0x8000529b, - 0x800052f9, 0x80005315, 0x8000531a, 0x80005338, - 0x80005341, 0x8000535c, 0x80005369, 0x80005382, - 0x800053b6, 0x800053c8, 0x800053e3, 0x800056d7, - 0x8000571f, 0x800058eb, 0x80005902, 0x8000590a, - 0x80005915, 0x80005927, 0x80005973, 0x80005b50, - 0x80005b80, 0x80005bf8, 0x80005c0f, 0x80005c22, - 0x80005c38, 0x80005c6e, 0x80005c71, 0x80005ddb, - 0x80005de5, 0x80005df1, 0x80005dfe, 0x80005e72, - 0x80005e7a, 0x80005e7f, 0x80005ef4, 0x80005efe, - 0x80005f0b, 0x80005f13, 0x80005f50, 0x80005f61, - 0x80005f73, 0x80005fc3, 0x80006208, 0x80006236, - 0x8000624b, 0x8000652f, 0x80006534, 0x80006587, - 0x80006597, 0x800065a4, 0x800065b9, 0x800065e0, - 0x800065e5, 0x800066f0, 0x80006708, 0x80006728, - 0x80006b20, 0x80006b62, 0x80006b79, 0x80006bb3, - 0x80006bcb, 0x80006bd4, 0x80006bdb, 0x80006c0f, - 0x80006c14, 0x80006c34, 0x8000706b, 0x8000722a, - 0x80007236, 0x8000723b, 0x8000723f, 0x80007247, - 0x80007259, 0x8000725b, 0x800072ac, 0x80007384, - 0x80007389, 0x800074dc, 0x800074e6, 0x80007518, - 0x8000751f, 0x80007528, 0x80007530, 0x8000758b, - 0x80007592, 0x80007676, 0x8000767d, 0x800076ae, - 0x800076bf, 0x800076ee, 0x800077db, 0x800077e2, - 0x800077f3, 0x8000793a, 0x800079b8, 0x800079be, - 0x80007a74, 0x80007acb, 0x80007af9, 0x80007c73, - 0x80007cf8, 0x80007f36, 0x80007f51, 0x80007f8a, - 0x80007fbd, 0x80008001, 0x8000800c, 0x80008012, - 0x80008033, 0x8000807f, 0x80008089, 0x800081e3, - 0x800081ea, 0x800081f3, 0x800081fc, 0x8000820c, - 0x8000821b, 0x8000821f, 0x8000826e, 0x80008272, - 0x80008278, 0x8000864d, 0x8000866b, 0x80008840, - 0x8000884c, 0x80008863, 0x8000897e, 0x8000898b, - 0x800089d2, 0x80008a00, 0x80008c37, 0x80008c46, - 0x80008c55, 0x80008c78, 0x80008c9d, 0x80008d64, - 0x80008d70, 0x80008db3, 0x80008eab, 0x80008eca, - 0x80008f9b, 0x80008fb0, 0x80008fb5, 0x80009091, - 0x80009149, 0x800091c6, 0x800091cc, 0x800091d1, - 0x80009577, 0x80009580, 0x8000961c, 0x800096b6, - 0x800096b9, 0x800096e8, 0x80009751, 0x8000975e, - 0x80009762, 0x80009769, 0x800097cb, 0x800097ed, - 0x800097f3, 0x80009801, 0x800098a8, 0x800098db, - 0x800098df, 0x80009996, 0x80009999, 0x800099ac, - 0x80009aa8, 0x80009ad8, 0x80009adf, 0x80009b25, - 0x80009b2f, 0x80009b32, 0x80009b3c, 0x80009b5a, - 0x80009ce5, 0x80009e75, 0x80009e7f, 0x80009ea5, - 0x80009ebb, 0x80009ec3, 0x80009ecd, 0x80009ed1, - 0x80009ef9, 0x80009efd, 0x80009f0e, 0x80009f13, - 0x80009f20, 0x80009f3b, 0x80009f4a, 0x80009f52, - 0x80009f8d, 0x80009f9c, 0x80009fa0, 0x80000020, - 0x80003012, 0x80005341, 0x80005344, 0x80005345, - 0x0000304b, 0x80003099, 0x0000304d, 0x80003099, - 0x0000304f, 0x80003099, 0x00003051, 0x80003099, - 0x00003053, 0x80003099, 0x00003055, 0x80003099, - 0x00003057, 0x80003099, 0x00003059, 0x80003099, - 0x0000305b, 0x80003099, 0x0000305d, 0x80003099, - 0x0000305f, 0x80003099, 0x00003061, 0x80003099, - 0x00003064, 0x80003099, 0x00003066, 0x80003099, - 0x00003068, 0x80003099, 0x0000306f, 0x80003099, - 0x0000306f, 0x8000309a, 0x00003072, 0x80003099, - 0x00003072, 0x8000309a, 0x00003075, 0x80003099, - 0x00003075, 0x8000309a, 0x00003078, 0x80003099, - 0x00003078, 0x8000309a, 0x0000307b, 0x80003099, - 0x0000307b, 0x8000309a, 0x00003046, 0x80003099, - 0x00000020, 0x80003099, 0x00000020, 0x8000309a, - 0x0000309d, 0x80003099, 0x00003088, 0x8000308a, - 0x000030ab, 0x80003099, 0x000030ad, 0x80003099, - 0x000030af, 0x80003099, 0x000030b1, 0x80003099, - 0x000030b3, 0x80003099, 0x000030b5, 0x80003099, - 0x000030b7, 0x80003099, 0x000030b9, 0x80003099, - 0x000030bb, 0x80003099, 0x000030bd, 0x80003099, - 0x000030bf, 0x80003099, 0x000030c1, 0x80003099, - 0x000030c4, 0x80003099, 0x000030c6, 0x80003099, - 0x000030c8, 0x80003099, 0x000030cf, 0x80003099, - 0x000030cf, 0x8000309a, 0x000030d2, 0x80003099, - 0x000030d2, 0x8000309a, 0x000030d5, 0x80003099, - 0x000030d5, 0x8000309a, 0x000030d8, 0x80003099, - 0x000030d8, 0x8000309a, 0x000030db, 0x80003099, - 0x000030db, 0x8000309a, 0x000030a6, 0x80003099, - 0x000030ef, 0x80003099, 0x000030f0, 0x80003099, - 0x000030f1, 0x80003099, 0x000030f2, 0x80003099, - 0x000030fd, 0x80003099, 0x000030b3, 0x800030c8, - 0x80001100, 0x80001101, 0x800011aa, 0x80001102, - 0x800011ac, 0x800011ad, 0x80001103, 0x80001104, - 0x80001105, 0x800011b0, 0x800011b1, 0x800011b2, - 0x800011b3, 0x800011b4, 0x800011b5, 0x8000111a, - 0x80001106, 0x80001107, 0x80001108, 0x80001121, - 0x80001109, 0x8000110a, 0x8000110b, 0x8000110c, - 0x8000110d, 0x8000110e, 0x8000110f, 0x80001110, - 0x80001111, 0x80001112, 0x80001161, 0x80001162, - 0x80001163, 0x80001164, 0x80001165, 0x80001166, - 0x80001167, 0x80001168, 0x80001169, 0x8000116a, - 0x8000116b, 0x8000116c, 0x8000116d, 0x8000116e, - 0x8000116f, 0x80001170, 0x80001171, 0x80001172, - 0x80001173, 0x80001174, 0x80001175, 0x80001160, - 0x80001114, 0x80001115, 0x800011c7, 0x800011c8, - 0x800011cc, 0x800011ce, 0x800011d3, 0x800011d7, - 0x800011d9, 0x8000111c, 0x800011dd, 0x800011df, - 0x8000111d, 0x8000111e, 0x80001120, 0x80001122, - 0x80001123, 0x80001127, 0x80001129, 0x8000112b, - 0x8000112c, 0x8000112d, 0x8000112e, 0x8000112f, - 0x80001132, 0x80001136, 0x80001140, 0x80001147, - 0x8000114c, 0x800011f1, 0x800011f2, 0x80001157, - 0x80001158, 0x80001159, 0x80001184, 0x80001185, - 0x80001188, 0x80001191, 0x80001192, 0x80001194, - 0x8000119e, 0x800011a1, 0x80004e00, 0x80004e8c, - 0x80004e09, 0x800056db, 0x80004e0a, 0x80004e2d, - 0x80004e0b, 0x80007532, 0x80004e59, 0x80004e19, - 0x80004e01, 0x80005929, 0x80005730, 0x80004eba, - 0x00000028, 0x00001100, 0x80000029, 0x00000028, - 0x00001102, 0x80000029, 0x00000028, 0x00001103, - 0x80000029, 0x00000028, 0x00001105, 0x80000029, - 0x00000028, 0x00001106, 0x80000029, 0x00000028, - 0x00001107, 0x80000029, 0x00000028, 0x00001109, - 0x80000029, 0x00000028, 0x0000110b, 0x80000029, - 0x00000028, 0x0000110c, 0x80000029, 0x00000028, - 0x0000110e, 0x80000029, 0x00000028, 0x0000110f, - 0x80000029, 0x00000028, 0x00001110, 0x80000029, - 0x00000028, 0x00001111, 0x80000029, 0x00000028, - 0x00001112, 0x80000029, 0x00000028, 0x00001100, - 0x00001161, 0x80000029, 0x00000028, 0x00001102, - 0x00001161, 0x80000029, 0x00000028, 0x00001103, - 0x00001161, 0x80000029, 0x00000028, 0x00001105, - 0x00001161, 0x80000029, 0x00000028, 0x00001106, - 0x00001161, 0x80000029, 0x00000028, 0x00001107, - 0x00001161, 0x80000029, 0x00000028, 0x00001109, - 0x00001161, 0x80000029, 0x00000028, 0x0000110b, - 0x00001161, 0x80000029, 0x00000028, 0x0000110c, - 0x00001161, 0x80000029, 0x00000028, 0x0000110e, - 0x00001161, 0x80000029, 0x00000028, 0x0000110f, - 0x00001161, 0x80000029, 0x00000028, 0x00001110, - 0x00001161, 0x80000029, 0x00000028, 0x00001111, - 0x00001161, 0x80000029, 0x00000028, 0x00001112, - 0x00001161, 0x80000029, 0x00000028, 0x0000110c, - 0x0000116e, 0x80000029, 0x00000028, 0x0000110b, - 0x00001169, 0x0000110c, 0x00001165, 0x000011ab, - 0x80000029, 0x00000028, 0x0000110b, 0x00001169, - 0x00001112, 0x0000116e, 0x80000029, 0x00000028, - 0x00004e00, 0x80000029, 0x00000028, 0x00004e8c, - 0x80000029, 0x00000028, 0x00004e09, 0x80000029, - 0x00000028, 0x000056db, 0x80000029, 0x00000028, - 0x00004e94, 0x80000029, 0x00000028, 0x0000516d, - 0x80000029, 0x00000028, 0x00004e03, 0x80000029, - 0x00000028, 0x0000516b, 0x80000029, 0x00000028, - 0x00004e5d, 0x80000029, 0x00000028, 0x00005341, - 0x80000029, 0x00000028, 0x00006708, 0x80000029, - 0x00000028, 0x0000706b, 0x80000029, 0x00000028, - 0x00006c34, 0x80000029, 0x00000028, 0x00006728, - 0x80000029, 0x00000028, 0x000091d1, 0x80000029, - 0x00000028, 0x0000571f, 0x80000029, 0x00000028, - 0x000065e5, 0x80000029, 0x00000028, 0x0000682a, - 0x80000029, 0x00000028, 0x00006709, 0x80000029, - 0x00000028, 0x0000793e, 0x80000029, 0x00000028, - 0x0000540d, 0x80000029, 0x00000028, 0x00007279, - 0x80000029, 0x00000028, 0x00008ca1, 0x80000029, - 0x00000028, 0x0000795d, 0x80000029, 0x00000028, - 0x000052b4, 0x80000029, 0x00000028, 0x00004ee3, - 0x80000029, 0x00000028, 0x0000547c, 0x80000029, - 0x00000028, 0x00005b66, 0x80000029, 0x00000028, - 0x000076e3, 0x80000029, 0x00000028, 0x00004f01, - 0x80000029, 0x00000028, 0x00008cc7, 0x80000029, - 0x00000028, 0x00005354, 0x80000029, 0x00000028, - 0x0000796d, 0x80000029, 0x00000028, 0x00004f11, - 0x80000029, 0x00000028, 0x000081ea, 0x80000029, - 0x00000028, 0x000081f3, 0x80000029, 0x00000050, - 0x00000054, 0x80000045, 0x00000032, 0x80000031, - 0x00000032, 0x80000032, 0x00000032, 0x80000033, - 0x00000032, 0x80000034, 0x00000032, 0x80000035, - 0x00000032, 0x80000036, 0x00000032, 0x80000037, - 0x00000032, 0x80000038, 0x00000032, 0x80000039, - 0x00000033, 0x80000030, 0x00000033, 0x80000031, - 0x00000033, 0x80000032, 0x00000033, 0x80000033, - 0x00000033, 0x80000034, 0x00000033, 0x80000035, - 0x80001100, 0x80001102, 0x80001103, 0x80001105, - 0x80001106, 0x80001107, 0x80001109, 0x8000110b, - 0x8000110c, 0x8000110e, 0x8000110f, 0x80001110, - 0x80001111, 0x80001112, 0x00001100, 0x80001161, - 0x00001102, 0x80001161, 0x00001103, 0x80001161, - 0x00001105, 0x80001161, 0x00001106, 0x80001161, - 0x00001107, 0x80001161, 0x00001109, 0x80001161, - 0x0000110b, 0x80001161, 0x0000110c, 0x80001161, - 0x0000110e, 0x80001161, 0x0000110f, 0x80001161, - 0x00001110, 0x80001161, 0x00001111, 0x80001161, - 0x00001112, 0x80001161, 0x0000110e, 0x00001161, - 0x000011b7, 0x00001100, 0x80001169, 0x0000110c, - 0x0000116e, 0x0000110b, 0x80001174, 0x0000110b, - 0x8000116e, 0x80004e00, 0x80004e8c, 0x80004e09, - 0x800056db, 0x80004e94, 0x8000516d, 0x80004e03, - 0x8000516b, 0x80004e5d, 0x80005341, 0x80006708, - 0x8000706b, 0x80006c34, 0x80006728, 0x800091d1, - 0x8000571f, 0x800065e5, 0x8000682a, 0x80006709, - 0x8000793e, 0x8000540d, 0x80007279, 0x80008ca1, - 0x8000795d, 0x800052b4, 0x800079d8, 0x80007537, - 0x80005973, 0x80009069, 0x8000512a, 0x80005370, - 0x80006ce8, 0x80009805, 0x80004f11, 0x80005199, - 0x80006b63, 0x80004e0a, 0x80004e2d, 0x80004e0b, - 0x80005de6, 0x800053f3, 0x8000533b, 0x80005b97, - 0x80005b66, 0x800076e3, 0x80004f01, 0x80008cc7, - 0x80005354, 0x8000591c, 0x00000033, 0x80000036, - 0x00000033, 0x80000037, 0x00000033, 0x80000038, - 0x00000033, 0x80000039, 0x00000034, 0x80000030, - 0x00000034, 0x80000031, 0x00000034, 0x80000032, - 0x00000034, 0x80000033, 0x00000034, 0x80000034, - 0x00000034, 0x80000035, 0x00000034, 0x80000036, - 0x00000034, 0x80000037, 0x00000034, 0x80000038, - 0x00000034, 0x80000039, 0x00000035, 0x80000030, - 0x00000031, 0x80006708, 0x00000032, 0x80006708, - 0x00000033, 0x80006708, 0x00000034, 0x80006708, - 0x00000035, 0x80006708, 0x00000036, 0x80006708, - 0x00000037, 0x80006708, 0x00000038, 0x80006708, - 0x00000039, 0x80006708, 0x00000031, 0x00000030, - 0x80006708, 0x00000031, 0x00000031, 0x80006708, - 0x00000031, 0x00000032, 0x80006708, 0x00000048, - 0x80000067, 0x00000065, 0x00000072, 0x80000067, - 0x00000065, 0x80000056, 0x0000004c, 0x00000054, - 0x80000044, 0x800030a2, 0x800030a4, 0x800030a6, - 0x800030a8, 0x800030aa, 0x800030ab, 0x800030ad, - 0x800030af, 0x800030b1, 0x800030b3, 0x800030b5, - 0x800030b7, 0x800030b9, 0x800030bb, 0x800030bd, - 0x800030bf, 0x800030c1, 0x800030c4, 0x800030c6, - 0x800030c8, 0x800030ca, 0x800030cb, 0x800030cc, - 0x800030cd, 0x800030ce, 0x800030cf, 0x800030d2, - 0x800030d5, 0x800030d8, 0x800030db, 0x800030de, - 0x800030df, 0x800030e0, 0x800030e1, 0x800030e2, - 0x800030e4, 0x800030e6, 0x800030e8, 0x800030e9, - 0x800030ea, 0x800030eb, 0x800030ec, 0x800030ed, - 0x800030ef, 0x800030f0, 0x800030f1, 0x800030f2, - 0x000030a2, 0x000030d1, 0x000030fc, 0x800030c8, - 0x000030a2, 0x000030eb, 0x000030d5, 0x800030a1, - 0x000030a2, 0x000030f3, 0x000030da, 0x800030a2, - 0x000030a2, 0x000030fc, 0x800030eb, 0x000030a4, - 0x000030cb, 0x000030f3, 0x800030b0, 0x000030a4, - 0x000030f3, 0x800030c1, 0x000030a6, 0x000030a9, - 0x800030f3, 0x000030a8, 0x000030b9, 0x000030af, - 0x000030fc, 0x800030c9, 0x000030a8, 0x000030fc, - 0x000030ab, 0x800030fc, 0x000030aa, 0x000030f3, - 0x800030b9, 0x000030aa, 0x000030fc, 0x800030e0, - 0x000030ab, 0x000030a4, 0x800030ea, 0x000030ab, - 0x000030e9, 0x000030c3, 0x800030c8, 0x000030ab, - 0x000030ed, 0x000030ea, 0x800030fc, 0x000030ac, - 0x000030ed, 0x800030f3, 0x000030ac, 0x000030f3, - 0x800030de, 0x000030ae, 0x800030ac, 0x000030ae, - 0x000030cb, 0x800030fc, 0x000030ad, 0x000030e5, - 0x000030ea, 0x800030fc, 0x000030ae, 0x000030eb, - 0x000030c0, 0x800030fc, 0x000030ad, 0x800030ed, - 0x000030ad, 0x000030ed, 0x000030b0, 0x000030e9, - 0x800030e0, 0x000030ad, 0x000030ed, 0x000030e1, - 0x000030fc, 0x000030c8, 0x800030eb, 0x000030ad, - 0x000030ed, 0x000030ef, 0x000030c3, 0x800030c8, - 0x000030b0, 0x000030e9, 0x800030e0, 0x000030b0, - 0x000030e9, 0x000030e0, 0x000030c8, 0x800030f3, - 0x000030af, 0x000030eb, 0x000030bc, 0x000030a4, - 0x800030ed, 0x000030af, 0x000030ed, 0x000030fc, - 0x800030cd, 0x000030b1, 0x000030fc, 0x800030b9, - 0x000030b3, 0x000030eb, 0x800030ca, 0x000030b3, - 0x000030fc, 0x800030dd, 0x000030b5, 0x000030a4, - 0x000030af, 0x800030eb, 0x000030b5, 0x000030f3, - 0x000030c1, 0x000030fc, 0x800030e0, 0x000030b7, - 0x000030ea, 0x000030f3, 0x800030b0, 0x000030bb, - 0x000030f3, 0x800030c1, 0x000030bb, 0x000030f3, - 0x800030c8, 0x000030c0, 0x000030fc, 0x800030b9, - 0x000030c7, 0x800030b7, 0x000030c9, 0x800030eb, - 0x000030c8, 0x800030f3, 0x000030ca, 0x800030ce, - 0x000030ce, 0x000030c3, 0x800030c8, 0x000030cf, - 0x000030a4, 0x800030c4, 0x000030d1, 0x000030fc, - 0x000030bb, 0x000030f3, 0x800030c8, 0x000030d1, - 0x000030fc, 0x800030c4, 0x000030d0, 0x000030fc, - 0x000030ec, 0x800030eb, 0x000030d4, 0x000030a2, - 0x000030b9, 0x000030c8, 0x800030eb, 0x000030d4, - 0x000030af, 0x800030eb, 0x000030d4, 0x800030b3, - 0x000030d3, 0x800030eb, 0x000030d5, 0x000030a1, - 0x000030e9, 0x000030c3, 0x800030c9, 0x000030d5, - 0x000030a3, 0x000030fc, 0x800030c8, 0x000030d6, - 0x000030c3, 0x000030b7, 0x000030a7, 0x800030eb, - 0x000030d5, 0x000030e9, 0x800030f3, 0x000030d8, - 0x000030af, 0x000030bf, 0x000030fc, 0x800030eb, - 0x000030da, 0x800030bd, 0x000030da, 0x000030cb, - 0x800030d2, 0x000030d8, 0x000030eb, 0x800030c4, - 0x000030da, 0x000030f3, 0x800030b9, 0x000030da, - 0x000030fc, 0x800030b8, 0x000030d9, 0x000030fc, - 0x800030bf, 0x000030dd, 0x000030a4, 0x000030f3, - 0x800030c8, 0x000030dc, 0x000030eb, 0x800030c8, - 0x000030db, 0x800030f3, 0x000030dd, 0x000030f3, - 0x800030c9, 0x000030db, 0x000030fc, 0x800030eb, - 0x000030db, 0x000030fc, 0x800030f3, 0x000030de, - 0x000030a4, 0x000030af, 0x800030ed, 0x000030de, - 0x000030a4, 0x800030eb, 0x000030de, 0x000030c3, - 0x800030cf, 0x000030de, 0x000030eb, 0x800030af, - 0x000030de, 0x000030f3, 0x000030b7, 0x000030e7, - 0x800030f3, 0x000030df, 0x000030af, 0x000030ed, - 0x800030f3, 0x000030df, 0x800030ea, 0x000030df, - 0x000030ea, 0x000030d0, 0x000030fc, 0x800030eb, - 0x000030e1, 0x800030ac, 0x000030e1, 0x000030ac, - 0x000030c8, 0x800030f3, 0x000030e1, 0x000030fc, - 0x000030c8, 0x800030eb, 0x000030e4, 0x000030fc, - 0x800030c9, 0x000030e4, 0x000030fc, 0x800030eb, - 0x000030e6, 0x000030a2, 0x800030f3, 0x000030ea, - 0x000030c3, 0x000030c8, 0x800030eb, 0x000030ea, - 0x800030e9, 0x000030eb, 0x000030d4, 0x800030fc, - 0x000030eb, 0x000030fc, 0x000030d6, 0x800030eb, - 0x000030ec, 0x800030e0, 0x000030ec, 0x000030f3, - 0x000030c8, 0x000030b2, 0x800030f3, 0x000030ef, - 0x000030c3, 0x800030c8, 0x00000030, 0x800070b9, - 0x00000031, 0x800070b9, 0x00000032, 0x800070b9, - 0x00000033, 0x800070b9, 0x00000034, 0x800070b9, - 0x00000035, 0x800070b9, 0x00000036, 0x800070b9, - 0x00000037, 0x800070b9, 0x00000038, 0x800070b9, - 0x00000039, 0x800070b9, 0x00000031, 0x00000030, - 0x800070b9, 0x00000031, 0x00000031, 0x800070b9, - 0x00000031, 0x00000032, 0x800070b9, 0x00000031, - 0x00000033, 0x800070b9, 0x00000031, 0x00000034, - 0x800070b9, 0x00000031, 0x00000035, 0x800070b9, - 0x00000031, 0x00000036, 0x800070b9, 0x00000031, - 0x00000037, 0x800070b9, 0x00000031, 0x00000038, - 0x800070b9, 0x00000031, 0x00000039, 0x800070b9, - 0x00000032, 0x00000030, 0x800070b9, 0x00000032, - 0x00000031, 0x800070b9, 0x00000032, 0x00000032, - 0x800070b9, 0x00000032, 0x00000033, 0x800070b9, - 0x00000032, 0x00000034, 0x800070b9, 0x00000068, - 0x00000050, 0x80000061, 0x00000064, 0x80000061, - 0x00000041, 0x80000055, 0x00000062, 0x00000061, - 0x80000072, 0x0000006f, 0x80000056, 0x00000070, - 0x80000063, 0x00000064, 0x8000006d, 0x00000064, - 0x0000006d, 0x800000b2, 0x00000064, 0x0000006d, - 0x800000b3, 0x00000049, 0x80000055, 0x00005e73, - 0x80006210, 0x0000662d, 0x8000548c, 0x00005927, - 0x80006b63, 0x0000660e, 0x80006cbb, 0x0000682a, - 0x00005f0f, 0x00004f1a, 0x8000793e, 0x00000070, - 0x80000041, 0x0000006e, 0x80000041, 0x000003bc, - 0x80000041, 0x0000006d, 0x80000041, 0x0000006b, - 0x80000041, 0x0000004b, 0x80000042, 0x0000004d, - 0x80000042, 0x00000047, 0x80000042, 0x00000063, - 0x00000061, 0x8000006c, 0x0000006b, 0x00000063, - 0x00000061, 0x8000006c, 0x00000070, 0x80000046, - 0x0000006e, 0x80000046, 0x000003bc, 0x80000046, - 0x000003bc, 0x80000067, 0x0000006d, 0x80000067, - 0x0000006b, 0x80000067, 0x00000048, 0x8000007a, - 0x0000006b, 0x00000048, 0x8000007a, 0x0000004d, - 0x00000048, 0x8000007a, 0x00000047, 0x00000048, - 0x8000007a, 0x00000054, 0x00000048, 0x8000007a, - 0x000003bc, 0x80002113, 0x0000006d, 0x80002113, - 0x00000064, 0x80002113, 0x0000006b, 0x80002113, - 0x00000066, 0x8000006d, 0x0000006e, 0x8000006d, - 0x000003bc, 0x8000006d, 0x0000006d, 0x8000006d, - 0x00000063, 0x8000006d, 0x0000006b, 0x8000006d, - 0x0000006d, 0x0000006d, 0x800000b2, 0x00000063, - 0x0000006d, 0x800000b2, 0x0000006d, 0x800000b2, - 0x0000006b, 0x0000006d, 0x800000b2, 0x0000006d, - 0x0000006d, 0x800000b3, 0x00000063, 0x0000006d, - 0x800000b3, 0x0000006d, 0x800000b3, 0x0000006b, - 0x0000006d, 0x800000b3, 0x0000006d, 0x00002215, - 0x80000073, 0x0000006d, 0x00002215, 0x00000073, - 0x800000b2, 0x00000050, 0x80000061, 0x0000006b, - 0x00000050, 0x80000061, 0x0000004d, 0x00000050, - 0x80000061, 0x00000047, 0x00000050, 0x80000061, - 0x00000072, 0x00000061, 0x80000064, 0x00000072, - 0x00000061, 0x00000064, 0x00002215, 0x80000073, - 0x00000072, 0x00000061, 0x00000064, 0x00002215, - 0x00000073, 0x800000b2, 0x00000070, 0x80000073, - 0x0000006e, 0x80000073, 0x000003bc, 0x80000073, - 0x0000006d, 0x80000073, 0x00000070, 0x80000056, - 0x0000006e, 0x80000056, 0x000003bc, 0x80000056, - 0x0000006d, 0x80000056, 0x0000006b, 0x80000056, - 0x0000004d, 0x80000056, 0x00000070, 0x80000057, - 0x0000006e, 0x80000057, 0x000003bc, 0x80000057, - 0x0000006d, 0x80000057, 0x0000006b, 0x80000057, - 0x0000004d, 0x80000057, 0x0000006b, 0x800003a9, - 0x0000004d, 0x800003a9, 0x00000061, 0x0000002e, - 0x0000006d, 0x8000002e, 0x00000042, 0x80000071, - 0x00000063, 0x80000063, 0x00000063, 0x80000064, - 0x00000043, 0x00002215, 0x0000006b, 0x80000067, - 0x00000043, 0x0000006f, 0x8000002e, 0x00000064, - 0x80000042, 0x00000047, 0x80000079, 0x00000068, - 0x80000061, 0x00000048, 0x80000050, 0x00000069, - 0x8000006e, 0x0000004b, 0x8000004b, 0x0000004b, - 0x8000004d, 0x0000006b, 0x80000074, 0x0000006c, - 0x8000006d, 0x0000006c, 0x8000006e, 0x0000006c, - 0x0000006f, 0x80000067, 0x0000006c, 0x80000078, - 0x0000006d, 0x80000062, 0x0000006d, 0x00000069, - 0x8000006c, 0x0000006d, 0x0000006f, 0x8000006c, - 0x00000050, 0x80000048, 0x00000070, 0x0000002e, - 0x0000006d, 0x8000002e, 0x00000050, 0x00000050, - 0x8000004d, 0x00000050, 0x80000052, 0x00000073, - 0x80000072, 0x00000053, 0x80000076, 0x00000057, - 0x80000062, 0x00000056, 0x00002215, 0x8000006d, - 0x00000041, 0x00002215, 0x8000006d, 0x00000031, - 0x800065e5, 0x00000032, 0x800065e5, 0x00000033, - 0x800065e5, 0x00000034, 0x800065e5, 0x00000035, - 0x800065e5, 0x00000036, 0x800065e5, 0x00000037, - 0x800065e5, 0x00000038, 0x800065e5, 0x00000039, - 0x800065e5, 0x00000031, 0x00000030, 0x800065e5, - 0x00000031, 0x00000031, 0x800065e5, 0x00000031, - 0x00000032, 0x800065e5, 0x00000031, 0x00000033, - 0x800065e5, 0x00000031, 0x00000034, 0x800065e5, - 0x00000031, 0x00000035, 0x800065e5, 0x00000031, - 0x00000036, 0x800065e5, 0x00000031, 0x00000037, - 0x800065e5, 0x00000031, 0x00000038, 0x800065e5, - 0x00000031, 0x00000039, 0x800065e5, 0x00000032, - 0x00000030, 0x800065e5, 0x00000032, 0x00000031, - 0x800065e5, 0x00000032, 0x00000032, 0x800065e5, - 0x00000032, 0x00000033, 0x800065e5, 0x00000032, - 0x00000034, 0x800065e5, 0x00000032, 0x00000035, - 0x800065e5, 0x00000032, 0x00000036, 0x800065e5, - 0x00000032, 0x00000037, 0x800065e5, 0x00000032, - 0x00000038, 0x800065e5, 0x00000032, 0x00000039, - 0x800065e5, 0x00000033, 0x00000030, 0x800065e5, - 0x00000033, 0x00000031, 0x800065e5, 0x00000067, - 0x00000061, 0x8000006c, 0x80008c48, 0x800066f4, - 0x80008eca, 0x80008cc8, 0x80006ed1, 0x80004e32, - 0x800053e5, 0x80009f9c, 0x80009f9c, 0x80005951, - 0x800091d1, 0x80005587, 0x80005948, 0x800061f6, - 0x80007669, 0x80007f85, 0x8000863f, 0x800087ba, - 0x800088f8, 0x8000908f, 0x80006a02, 0x80006d1b, - 0x800070d9, 0x800073de, 0x8000843d, 0x8000916a, - 0x800099f1, 0x80004e82, 0x80005375, 0x80006b04, - 0x8000721b, 0x8000862d, 0x80009e1e, 0x80005d50, - 0x80006feb, 0x800085cd, 0x80008964, 0x800062c9, - 0x800081d8, 0x8000881f, 0x80005eca, 0x80006717, - 0x80006d6a, 0x800072fc, 0x800090ce, 0x80004f86, - 0x800051b7, 0x800052de, 0x800064c4, 0x80006ad3, - 0x80007210, 0x800076e7, 0x80008001, 0x80008606, - 0x8000865c, 0x80008def, 0x80009732, 0x80009b6f, - 0x80009dfa, 0x8000788c, 0x8000797f, 0x80007da0, - 0x800083c9, 0x80009304, 0x80009e7f, 0x80008ad6, - 0x800058df, 0x80005f04, 0x80007c60, 0x8000807e, - 0x80007262, 0x800078ca, 0x80008cc2, 0x800096f7, - 0x800058d8, 0x80005c62, 0x80006a13, 0x80006dda, - 0x80006f0f, 0x80007d2f, 0x80007e37, 0x8000964b, - 0x800052d2, 0x8000808b, 0x800051dc, 0x800051cc, - 0x80007a1c, 0x80007dbe, 0x800083f1, 0x80009675, - 0x80008b80, 0x800062cf, 0x80006a02, 0x80008afe, - 0x80004e39, 0x80005be7, 0x80006012, 0x80007387, - 0x80007570, 0x80005317, 0x800078fb, 0x80004fbf, - 0x80005fa9, 0x80004e0d, 0x80006ccc, 0x80006578, - 0x80007d22, 0x800053c3, 0x8000585e, 0x80007701, - 0x80008449, 0x80008aaa, 0x80006bba, 0x80008fb0, - 0x80006c88, 0x800062fe, 0x800082e5, 0x800063a0, - 0x80007565, 0x80004eae, 0x80005169, 0x800051c9, - 0x80006881, 0x80007ce7, 0x8000826f, 0x80008ad2, - 0x800091cf, 0x800052f5, 0x80005442, 0x80005973, - 0x80005eec, 0x800065c5, 0x80006ffe, 0x8000792a, - 0x800095ad, 0x80009a6a, 0x80009e97, 0x80009ece, - 0x8000529b, 0x800066c6, 0x80006b77, 0x80008f62, - 0x80005e74, 0x80006190, 0x80006200, 0x8000649a, - 0x80006f23, 0x80007149, 0x80007489, 0x800079ca, - 0x80007df4, 0x8000806f, 0x80008f26, 0x800084ee, - 0x80009023, 0x8000934a, 0x80005217, 0x800052a3, - 0x800054bd, 0x800070c8, 0x800088c2, 0x80008aaa, - 0x80005ec9, 0x80005ff5, 0x8000637b, 0x80006bae, - 0x80007c3e, 0x80007375, 0x80004ee4, 0x800056f9, - 0x80005be7, 0x80005dba, 0x8000601c, 0x800073b2, - 0x80007469, 0x80007f9a, 0x80008046, 0x80009234, - 0x800096f6, 0x80009748, 0x80009818, 0x80004f8b, - 0x800079ae, 0x800091b4, 0x800096b8, 0x800060e1, - 0x80004e86, 0x800050da, 0x80005bee, 0x80005c3f, - 0x80006599, 0x80006a02, 0x800071ce, 0x80007642, - 0x800084fc, 0x8000907c, 0x80009f8d, 0x80006688, - 0x8000962e, 0x80005289, 0x8000677b, 0x800067f3, - 0x80006d41, 0x80006e9c, 0x80007409, 0x80007559, - 0x8000786b, 0x80007d10, 0x8000985e, 0x8000516d, - 0x8000622e, 0x80009678, 0x8000502b, 0x80005d19, - 0x80006dea, 0x80008f2a, 0x80005f8b, 0x80006144, - 0x80006817, 0x80007387, 0x80009686, 0x80005229, - 0x8000540f, 0x80005c65, 0x80006613, 0x8000674e, - 0x800068a8, 0x80006ce5, 0x80007406, 0x800075e2, - 0x80007f79, 0x800088cf, 0x800088e1, 0x800091cc, - 0x800096e2, 0x8000533f, 0x80006eba, 0x8000541d, - 0x800071d0, 0x80007498, 0x800085fa, 0x800096a3, - 0x80009c57, 0x80009e9f, 0x80006797, 0x80006dcb, - 0x800081e8, 0x80007acb, 0x80007b20, 0x80007c92, - 0x800072c0, 0x80007099, 0x80008b58, 0x80004ec0, - 0x80008336, 0x8000523a, 0x80005207, 0x80005ea6, - 0x800062d3, 0x80007cd6, 0x80005b85, 0x80006d1e, - 0x800066b4, 0x80008f3b, 0x8000884c, 0x8000964d, - 0x8000898b, 0x80005ed3, 0x80005140, 0x800055c0, - 0x8000585a, 0x80006674, 0x800051de, 0x8000732a, - 0x800076ca, 0x8000793c, 0x8000795e, 0x80007965, - 0x8000798f, 0x80009756, 0x80007cbe, 0x80007fbd, - 0x80008612, 0x80008af8, 0x80009038, 0x800090fd, - 0x800098ef, 0x800098fc, 0x80009928, 0x80009db4, - 0x80004fae, 0x800050e7, 0x8000514d, 0x800052c9, - 0x800052e4, 0x80005351, 0x8000559d, 0x80005606, - 0x80005668, 0x80005840, 0x800058a8, 0x80005c64, - 0x80005c6e, 0x80006094, 0x80006168, 0x8000618e, - 0x800061f2, 0x8000654f, 0x800065e2, 0x80006691, - 0x80006885, 0x80006d77, 0x80006e1a, 0x80006f22, - 0x8000716e, 0x8000722b, 0x80007422, 0x80007891, - 0x8000793e, 0x80007949, 0x80007948, 0x80007950, - 0x80007956, 0x8000795d, 0x8000798d, 0x8000798e, - 0x80007a40, 0x80007a81, 0x80007bc0, 0x80007df4, - 0x80007e09, 0x80007e41, 0x80007f72, 0x80008005, - 0x800081ed, 0x80008279, 0x80008279, 0x80008457, - 0x80008910, 0x80008996, 0x80008b01, 0x80008b39, - 0x80008cd3, 0x80008d08, 0x80008fb6, 0x80009038, - 0x800096e3, 0x800097ff, 0x8000983b, 0x80004e26, - 0x800051b5, 0x80005168, 0x80004f80, 0x80005145, - 0x80005180, 0x800052c7, 0x800052fa, 0x8000559d, - 0x80005555, 0x80005599, 0x800055e2, 0x8000585a, - 0x800058b3, 0x80005944, 0x80005954, 0x80005a62, - 0x80005b28, 0x80005ed2, 0x80005ed9, 0x80005f69, - 0x80005fad, 0x800060d8, 0x8000614e, 0x80006108, - 0x8000618e, 0x80006160, 0x800061f2, 0x80006234, - 0x800063c4, 0x8000641c, 0x80006452, 0x80006556, - 0x80006674, 0x80006717, 0x8000671b, 0x80006756, - 0x80006b79, 0x80006bba, 0x80006d41, 0x80006edb, - 0x80006ecb, 0x80006f22, 0x8000701e, 0x8000716e, - 0x800077a7, 0x80007235, 0x800072af, 0x8000732a, - 0x80007471, 0x80007506, 0x8000753b, 0x8000761d, - 0x8000761f, 0x800076ca, 0x800076db, 0x800076f4, - 0x8000774a, 0x80007740, 0x800078cc, 0x80007ab1, - 0x80007bc0, 0x80007c7b, 0x80007d5b, 0x80007df4, - 0x80007f3e, 0x80008005, 0x80008352, 0x800083ef, - 0x80008779, 0x80008941, 0x80008986, 0x80008996, - 0x80008abf, 0x80008af8, 0x80008acb, 0x80008b01, - 0x80008afe, 0x80008aed, 0x80008b39, 0x80008b8a, - 0x80008d08, 0x80008f38, 0x80009072, 0x80009199, - 0x80009276, 0x8000967c, 0x800096e3, 0x80009756, - 0x800097db, 0x800097ff, 0x8000980b, 0x8000983b, - 0x80009b12, 0x80009f9c, 0x8002284a, 0x80022844, - 0x800233d5, 0x80003b9d, 0x80004018, 0x80004039, - 0x80025249, 0x80025cd0, 0x80027ed3, 0x80009f43, - 0x80009f8e, 0x00000066, 0x80000066, 0x00000066, - 0x80000069, 0x00000066, 0x8000006c, 0x00000066, - 0x00000066, 0x80000069, 0x00000066, 0x00000066, - 0x8000006c, 0x0000017f, 0x80000074, 0x00000073, - 0x80000074, 0x00000574, 0x80000576, 0x00000574, - 0x80000565, 0x00000574, 0x8000056b, 0x0000057e, - 0x80000576, 0x00000574, 0x8000056d, 0x000005d9, - 0x800005b4, 0x000005f2, 0x800005b7, 0x800005e2, - 0x800005d0, 0x800005d3, 0x800005d4, 0x800005db, - 0x800005dc, 0x800005dd, 0x800005e8, 0x800005ea, - 0x8000002b, 0x000005e9, 0x800005c1, 0x000005e9, - 0x800005c2, 0x0000fb49, 0x800005c1, 0x0000fb49, - 0x800005c2, 0x000005d0, 0x800005b7, 0x000005d0, - 0x800005b8, 0x000005d0, 0x800005bc, 0x000005d1, - 0x800005bc, 0x000005d2, 0x800005bc, 0x000005d3, - 0x800005bc, 0x000005d4, 0x800005bc, 0x000005d5, - 0x800005bc, 0x000005d6, 0x800005bc, 0x000005d8, - 0x800005bc, 0x000005d9, 0x800005bc, 0x000005da, - 0x800005bc, 0x000005db, 0x800005bc, 0x000005dc, - 0x800005bc, 0x000005de, 0x800005bc, 0x000005e0, - 0x800005bc, 0x000005e1, 0x800005bc, 0x000005e3, - 0x800005bc, 0x000005e4, 0x800005bc, 0x000005e6, - 0x800005bc, 0x000005e7, 0x800005bc, 0x000005e8, - 0x800005bc, 0x000005e9, 0x800005bc, 0x000005ea, - 0x800005bc, 0x000005d5, 0x800005b9, 0x000005d1, - 0x800005bf, 0x000005db, 0x800005bf, 0x000005e4, - 0x800005bf, 0x000005d0, 0x800005dc, 0x80000671, - 0x80000671, 0x8000067b, 0x8000067b, 0x8000067b, - 0x8000067b, 0x8000067e, 0x8000067e, 0x8000067e, - 0x8000067e, 0x80000680, 0x80000680, 0x80000680, - 0x80000680, 0x8000067a, 0x8000067a, 0x8000067a, - 0x8000067a, 0x8000067f, 0x8000067f, 0x8000067f, - 0x8000067f, 0x80000679, 0x80000679, 0x80000679, - 0x80000679, 0x800006a4, 0x800006a4, 0x800006a4, - 0x800006a4, 0x800006a6, 0x800006a6, 0x800006a6, - 0x800006a6, 0x80000684, 0x80000684, 0x80000684, - 0x80000684, 0x80000683, 0x80000683, 0x80000683, - 0x80000683, 0x80000686, 0x80000686, 0x80000686, - 0x80000686, 0x80000687, 0x80000687, 0x80000687, - 0x80000687, 0x8000068d, 0x8000068d, 0x8000068c, - 0x8000068c, 0x8000068e, 0x8000068e, 0x80000688, - 0x80000688, 0x80000698, 0x80000698, 0x80000691, - 0x80000691, 0x800006a9, 0x800006a9, 0x800006a9, - 0x800006a9, 0x800006af, 0x800006af, 0x800006af, - 0x800006af, 0x800006b3, 0x800006b3, 0x800006b3, - 0x800006b3, 0x800006b1, 0x800006b1, 0x800006b1, - 0x800006b1, 0x800006ba, 0x800006ba, 0x800006bb, - 0x800006bb, 0x800006bb, 0x800006bb, 0x800006c0, - 0x800006c0, 0x800006c1, 0x800006c1, 0x800006c1, - 0x800006c1, 0x800006be, 0x800006be, 0x800006be, - 0x800006be, 0x800006d2, 0x800006d2, 0x800006d3, - 0x800006d3, 0x800006ad, 0x800006ad, 0x800006ad, - 0x800006ad, 0x800006c7, 0x800006c7, 0x800006c6, - 0x800006c6, 0x800006c8, 0x800006c8, 0x80000677, - 0x800006cb, 0x800006cb, 0x800006c5, 0x800006c5, - 0x800006c9, 0x800006c9, 0x800006d0, 0x800006d0, - 0x800006d0, 0x800006d0, 0x80000649, 0x80000649, - 0x00000626, 0x80000627, 0x00000626, 0x80000627, - 0x00000626, 0x800006d5, 0x00000626, 0x800006d5, - 0x00000626, 0x80000648, 0x00000626, 0x80000648, - 0x00000626, 0x800006c7, 0x00000626, 0x800006c7, - 0x00000626, 0x800006c6, 0x00000626, 0x800006c6, - 0x00000626, 0x800006c8, 0x00000626, 0x800006c8, - 0x00000626, 0x800006d0, 0x00000626, 0x800006d0, - 0x00000626, 0x800006d0, 0x00000626, 0x80000649, - 0x00000626, 0x80000649, 0x00000626, 0x80000649, - 0x800006cc, 0x800006cc, 0x800006cc, 0x800006cc, - 0x00000626, 0x8000062c, 0x00000626, 0x8000062d, - 0x00000626, 0x80000645, 0x00000626, 0x80000649, - 0x00000626, 0x8000064a, 0x00000628, 0x8000062c, - 0x00000628, 0x8000062d, 0x00000628, 0x8000062e, - 0x00000628, 0x80000645, 0x00000628, 0x80000649, - 0x00000628, 0x8000064a, 0x0000062a, 0x8000062c, - 0x0000062a, 0x8000062d, 0x0000062a, 0x8000062e, - 0x0000062a, 0x80000645, 0x0000062a, 0x80000649, - 0x0000062a, 0x8000064a, 0x0000062b, 0x8000062c, - 0x0000062b, 0x80000645, 0x0000062b, 0x80000649, - 0x0000062b, 0x8000064a, 0x0000062c, 0x8000062d, - 0x0000062c, 0x80000645, 0x0000062d, 0x8000062c, - 0x0000062d, 0x80000645, 0x0000062e, 0x8000062c, - 0x0000062e, 0x8000062d, 0x0000062e, 0x80000645, - 0x00000633, 0x8000062c, 0x00000633, 0x8000062d, - 0x00000633, 0x8000062e, 0x00000633, 0x80000645, - 0x00000635, 0x8000062d, 0x00000635, 0x80000645, - 0x00000636, 0x8000062c, 0x00000636, 0x8000062d, - 0x00000636, 0x8000062e, 0x00000636, 0x80000645, - 0x00000637, 0x8000062d, 0x00000637, 0x80000645, - 0x00000638, 0x80000645, 0x00000639, 0x8000062c, - 0x00000639, 0x80000645, 0x0000063a, 0x8000062c, - 0x0000063a, 0x80000645, 0x00000641, 0x8000062c, - 0x00000641, 0x8000062d, 0x00000641, 0x8000062e, - 0x00000641, 0x80000645, 0x00000641, 0x80000649, - 0x00000641, 0x8000064a, 0x00000642, 0x8000062d, - 0x00000642, 0x80000645, 0x00000642, 0x80000649, - 0x00000642, 0x8000064a, 0x00000643, 0x80000627, - 0x00000643, 0x8000062c, 0x00000643, 0x8000062d, - 0x00000643, 0x8000062e, 0x00000643, 0x80000644, - 0x00000643, 0x80000645, 0x00000643, 0x80000649, - 0x00000643, 0x8000064a, 0x00000644, 0x8000062c, - 0x00000644, 0x8000062d, 0x00000644, 0x8000062e, - 0x00000644, 0x80000645, 0x00000644, 0x80000649, - 0x00000644, 0x8000064a, 0x00000645, 0x8000062c, - 0x00000645, 0x8000062d, 0x00000645, 0x8000062e, - 0x00000645, 0x80000645, 0x00000645, 0x80000649, - 0x00000645, 0x8000064a, 0x00000646, 0x8000062c, - 0x00000646, 0x8000062d, 0x00000646, 0x8000062e, - 0x00000646, 0x80000645, 0x00000646, 0x80000649, - 0x00000646, 0x8000064a, 0x00000647, 0x8000062c, - 0x00000647, 0x80000645, 0x00000647, 0x80000649, - 0x00000647, 0x8000064a, 0x0000064a, 0x8000062c, - 0x0000064a, 0x8000062d, 0x0000064a, 0x8000062e, - 0x0000064a, 0x80000645, 0x0000064a, 0x80000649, - 0x0000064a, 0x8000064a, 0x00000630, 0x80000670, - 0x00000631, 0x80000670, 0x00000649, 0x80000670, - 0x00000020, 0x0000064c, 0x80000651, 0x00000020, - 0x0000064d, 0x80000651, 0x00000020, 0x0000064e, - 0x80000651, 0x00000020, 0x0000064f, 0x80000651, - 0x00000020, 0x00000650, 0x80000651, 0x00000020, - 0x00000651, 0x80000670, 0x00000626, 0x80000631, - 0x00000626, 0x80000632, 0x00000626, 0x80000645, - 0x00000626, 0x80000646, 0x00000626, 0x80000649, - 0x00000626, 0x8000064a, 0x00000628, 0x80000631, - 0x00000628, 0x80000632, 0x00000628, 0x80000645, - 0x00000628, 0x80000646, 0x00000628, 0x80000649, - 0x00000628, 0x8000064a, 0x0000062a, 0x80000631, - 0x0000062a, 0x80000632, 0x0000062a, 0x80000645, - 0x0000062a, 0x80000646, 0x0000062a, 0x80000649, - 0x0000062a, 0x8000064a, 0x0000062b, 0x80000631, - 0x0000062b, 0x80000632, 0x0000062b, 0x80000645, - 0x0000062b, 0x80000646, 0x0000062b, 0x80000649, - 0x0000062b, 0x8000064a, 0x00000641, 0x80000649, - 0x00000641, 0x8000064a, 0x00000642, 0x80000649, - 0x00000642, 0x8000064a, 0x00000643, 0x80000627, - 0x00000643, 0x80000644, 0x00000643, 0x80000645, - 0x00000643, 0x80000649, 0x00000643, 0x8000064a, - 0x00000644, 0x80000645, 0x00000644, 0x80000649, - 0x00000644, 0x8000064a, 0x00000645, 0x80000627, - 0x00000645, 0x80000645, 0x00000646, 0x80000631, - 0x00000646, 0x80000632, 0x00000646, 0x80000645, - 0x00000646, 0x80000646, 0x00000646, 0x80000649, - 0x00000646, 0x8000064a, 0x00000649, 0x80000670, - 0x0000064a, 0x80000631, 0x0000064a, 0x80000632, - 0x0000064a, 0x80000645, 0x0000064a, 0x80000646, - 0x0000064a, 0x80000649, 0x0000064a, 0x8000064a, - 0x00000626, 0x8000062c, 0x00000626, 0x8000062d, - 0x00000626, 0x8000062e, 0x00000626, 0x80000645, - 0x00000626, 0x80000647, 0x00000628, 0x8000062c, - 0x00000628, 0x8000062d, 0x00000628, 0x8000062e, - 0x00000628, 0x80000645, 0x00000628, 0x80000647, - 0x0000062a, 0x8000062c, 0x0000062a, 0x8000062d, - 0x0000062a, 0x8000062e, 0x0000062a, 0x80000645, - 0x0000062a, 0x80000647, 0x0000062b, 0x80000645, - 0x0000062c, 0x8000062d, 0x0000062c, 0x80000645, - 0x0000062d, 0x8000062c, 0x0000062d, 0x80000645, - 0x0000062e, 0x8000062c, 0x0000062e, 0x80000645, - 0x00000633, 0x8000062c, 0x00000633, 0x8000062d, - 0x00000633, 0x8000062e, 0x00000633, 0x80000645, - 0x00000635, 0x8000062d, 0x00000635, 0x8000062e, - 0x00000635, 0x80000645, 0x00000636, 0x8000062c, - 0x00000636, 0x8000062d, 0x00000636, 0x8000062e, - 0x00000636, 0x80000645, 0x00000637, 0x8000062d, - 0x00000638, 0x80000645, 0x00000639, 0x8000062c, - 0x00000639, 0x80000645, 0x0000063a, 0x8000062c, - 0x0000063a, 0x80000645, 0x00000641, 0x8000062c, - 0x00000641, 0x8000062d, 0x00000641, 0x8000062e, - 0x00000641, 0x80000645, 0x00000642, 0x8000062d, - 0x00000642, 0x80000645, 0x00000643, 0x8000062c, - 0x00000643, 0x8000062d, 0x00000643, 0x8000062e, - 0x00000643, 0x80000644, 0x00000643, 0x80000645, - 0x00000644, 0x8000062c, 0x00000644, 0x8000062d, - 0x00000644, 0x8000062e, 0x00000644, 0x80000645, - 0x00000644, 0x80000647, 0x00000645, 0x8000062c, - 0x00000645, 0x8000062d, 0x00000645, 0x8000062e, - 0x00000645, 0x80000645, 0x00000646, 0x8000062c, - 0x00000646, 0x8000062d, 0x00000646, 0x8000062e, - 0x00000646, 0x80000645, 0x00000646, 0x80000647, - 0x00000647, 0x8000062c, 0x00000647, 0x80000645, - 0x00000647, 0x80000670, 0x0000064a, 0x8000062c, - 0x0000064a, 0x8000062d, 0x0000064a, 0x8000062e, - 0x0000064a, 0x80000645, 0x0000064a, 0x80000647, - 0x00000626, 0x80000645, 0x00000626, 0x80000647, - 0x00000628, 0x80000645, 0x00000628, 0x80000647, - 0x0000062a, 0x80000645, 0x0000062a, 0x80000647, - 0x0000062b, 0x80000645, 0x0000062b, 0x80000647, - 0x00000633, 0x80000645, 0x00000633, 0x80000647, - 0x00000634, 0x80000645, 0x00000634, 0x80000647, - 0x00000643, 0x80000644, 0x00000643, 0x80000645, - 0x00000644, 0x80000645, 0x00000646, 0x80000645, - 0x00000646, 0x80000647, 0x0000064a, 0x80000645, - 0x0000064a, 0x80000647, 0x00000640, 0x0000064e, - 0x80000651, 0x00000640, 0x0000064f, 0x80000651, - 0x00000640, 0x00000650, 0x80000651, 0x00000637, - 0x80000649, 0x00000637, 0x8000064a, 0x00000639, - 0x80000649, 0x00000639, 0x8000064a, 0x0000063a, - 0x80000649, 0x0000063a, 0x8000064a, 0x00000633, - 0x80000649, 0x00000633, 0x8000064a, 0x00000634, - 0x80000649, 0x00000634, 0x8000064a, 0x0000062d, - 0x80000649, 0x0000062d, 0x8000064a, 0x0000062c, - 0x80000649, 0x0000062c, 0x8000064a, 0x0000062e, - 0x80000649, 0x0000062e, 0x8000064a, 0x00000635, - 0x80000649, 0x00000635, 0x8000064a, 0x00000636, - 0x80000649, 0x00000636, 0x8000064a, 0x00000634, - 0x8000062c, 0x00000634, 0x8000062d, 0x00000634, - 0x8000062e, 0x00000634, 0x80000645, 0x00000634, - 0x80000631, 0x00000633, 0x80000631, 0x00000635, - 0x80000631, 0x00000636, 0x80000631, 0x00000637, - 0x80000649, 0x00000637, 0x8000064a, 0x00000639, - 0x80000649, 0x00000639, 0x8000064a, 0x0000063a, - 0x80000649, 0x0000063a, 0x8000064a, 0x00000633, - 0x80000649, 0x00000633, 0x8000064a, 0x00000634, - 0x80000649, 0x00000634, 0x8000064a, 0x0000062d, - 0x80000649, 0x0000062d, 0x8000064a, 0x0000062c, - 0x80000649, 0x0000062c, 0x8000064a, 0x0000062e, - 0x80000649, 0x0000062e, 0x8000064a, 0x00000635, - 0x80000649, 0x00000635, 0x8000064a, 0x00000636, - 0x80000649, 0x00000636, 0x8000064a, 0x00000634, - 0x8000062c, 0x00000634, 0x8000062d, 0x00000634, - 0x8000062e, 0x00000634, 0x80000645, 0x00000634, - 0x80000631, 0x00000633, 0x80000631, 0x00000635, - 0x80000631, 0x00000636, 0x80000631, 0x00000634, - 0x8000062c, 0x00000634, 0x8000062d, 0x00000634, - 0x8000062e, 0x00000634, 0x80000645, 0x00000633, - 0x80000647, 0x00000634, 0x80000647, 0x00000637, - 0x80000645, 0x00000633, 0x8000062c, 0x00000633, - 0x8000062d, 0x00000633, 0x8000062e, 0x00000634, - 0x8000062c, 0x00000634, 0x8000062d, 0x00000634, - 0x8000062e, 0x00000637, 0x80000645, 0x00000638, - 0x80000645, 0x00000627, 0x8000064b, 0x00000627, - 0x8000064b, 0x0000062a, 0x0000062c, 0x80000645, - 0x0000062a, 0x0000062d, 0x8000062c, 0x0000062a, - 0x0000062d, 0x8000062c, 0x0000062a, 0x0000062d, - 0x80000645, 0x0000062a, 0x0000062e, 0x80000645, - 0x0000062a, 0x00000645, 0x8000062c, 0x0000062a, - 0x00000645, 0x8000062d, 0x0000062a, 0x00000645, - 0x8000062e, 0x0000062c, 0x00000645, 0x8000062d, - 0x0000062c, 0x00000645, 0x8000062d, 0x0000062d, - 0x00000645, 0x8000064a, 0x0000062d, 0x00000645, - 0x80000649, 0x00000633, 0x0000062d, 0x8000062c, - 0x00000633, 0x0000062c, 0x8000062d, 0x00000633, - 0x0000062c, 0x80000649, 0x00000633, 0x00000645, - 0x8000062d, 0x00000633, 0x00000645, 0x8000062d, - 0x00000633, 0x00000645, 0x8000062c, 0x00000633, - 0x00000645, 0x80000645, 0x00000633, 0x00000645, - 0x80000645, 0x00000635, 0x0000062d, 0x8000062d, - 0x00000635, 0x0000062d, 0x8000062d, 0x00000635, - 0x00000645, 0x80000645, 0x00000634, 0x0000062d, - 0x80000645, 0x00000634, 0x0000062d, 0x80000645, - 0x00000634, 0x0000062c, 0x8000064a, 0x00000634, - 0x00000645, 0x8000062e, 0x00000634, 0x00000645, - 0x8000062e, 0x00000634, 0x00000645, 0x80000645, - 0x00000634, 0x00000645, 0x80000645, 0x00000636, - 0x0000062d, 0x80000649, 0x00000636, 0x0000062e, - 0x80000645, 0x00000636, 0x0000062e, 0x80000645, - 0x00000637, 0x00000645, 0x8000062d, 0x00000637, - 0x00000645, 0x8000062d, 0x00000637, 0x00000645, - 0x80000645, 0x00000637, 0x00000645, 0x8000064a, - 0x00000639, 0x0000062c, 0x80000645, 0x00000639, - 0x00000645, 0x80000645, 0x00000639, 0x00000645, - 0x80000645, 0x00000639, 0x00000645, 0x80000649, - 0x0000063a, 0x00000645, 0x80000645, 0x0000063a, - 0x00000645, 0x8000064a, 0x0000063a, 0x00000645, - 0x80000649, 0x00000641, 0x0000062e, 0x80000645, - 0x00000641, 0x0000062e, 0x80000645, 0x00000642, - 0x00000645, 0x8000062d, 0x00000642, 0x00000645, - 0x80000645, 0x00000644, 0x0000062d, 0x80000645, - 0x00000644, 0x0000062d, 0x8000064a, 0x00000644, - 0x0000062d, 0x80000649, 0x00000644, 0x0000062c, - 0x8000062c, 0x00000644, 0x0000062c, 0x8000062c, - 0x00000644, 0x0000062e, 0x80000645, 0x00000644, - 0x0000062e, 0x80000645, 0x00000644, 0x00000645, - 0x8000062d, 0x00000644, 0x00000645, 0x8000062d, - 0x00000645, 0x0000062d, 0x8000062c, 0x00000645, - 0x0000062d, 0x80000645, 0x00000645, 0x0000062d, - 0x8000064a, 0x00000645, 0x0000062c, 0x8000062d, - 0x00000645, 0x0000062c, 0x80000645, 0x00000645, - 0x0000062e, 0x8000062c, 0x00000645, 0x0000062e, - 0x80000645, 0x00000645, 0x0000062c, 0x8000062e, - 0x00000647, 0x00000645, 0x8000062c, 0x00000647, - 0x00000645, 0x80000645, 0x00000646, 0x0000062d, - 0x80000645, 0x00000646, 0x0000062d, 0x80000649, - 0x00000646, 0x0000062c, 0x80000645, 0x00000646, - 0x0000062c, 0x80000645, 0x00000646, 0x0000062c, - 0x80000649, 0x00000646, 0x00000645, 0x8000064a, - 0x00000646, 0x00000645, 0x80000649, 0x0000064a, - 0x00000645, 0x80000645, 0x0000064a, 0x00000645, - 0x80000645, 0x00000628, 0x0000062e, 0x8000064a, - 0x0000062a, 0x0000062c, 0x8000064a, 0x0000062a, - 0x0000062c, 0x80000649, 0x0000062a, 0x0000062e, - 0x8000064a, 0x0000062a, 0x0000062e, 0x80000649, - 0x0000062a, 0x00000645, 0x8000064a, 0x0000062a, - 0x00000645, 0x80000649, 0x0000062c, 0x00000645, - 0x8000064a, 0x0000062c, 0x0000062d, 0x80000649, - 0x0000062c, 0x00000645, 0x80000649, 0x00000633, - 0x0000062e, 0x80000649, 0x00000635, 0x0000062d, - 0x8000064a, 0x00000634, 0x0000062d, 0x8000064a, - 0x00000636, 0x0000062d, 0x8000064a, 0x00000644, - 0x0000062c, 0x8000064a, 0x00000644, 0x00000645, - 0x8000064a, 0x0000064a, 0x0000062d, 0x8000064a, - 0x0000064a, 0x0000062c, 0x8000064a, 0x0000064a, - 0x00000645, 0x8000064a, 0x00000645, 0x00000645, - 0x8000064a, 0x00000642, 0x00000645, 0x8000064a, - 0x00000646, 0x0000062d, 0x8000064a, 0x00000642, - 0x00000645, 0x8000062d, 0x00000644, 0x0000062d, - 0x80000645, 0x00000639, 0x00000645, 0x8000064a, - 0x00000643, 0x00000645, 0x8000064a, 0x00000646, - 0x0000062c, 0x8000062d, 0x00000645, 0x0000062e, - 0x8000064a, 0x00000644, 0x0000062c, 0x80000645, - 0x00000643, 0x00000645, 0x80000645, 0x00000644, - 0x0000062c, 0x80000645, 0x00000646, 0x0000062c, - 0x8000062d, 0x0000062c, 0x0000062d, 0x8000064a, - 0x0000062d, 0x0000062c, 0x8000064a, 0x00000645, - 0x0000062c, 0x8000064a, 0x00000641, 0x00000645, - 0x8000064a, 0x00000628, 0x0000062d, 0x8000064a, - 0x00000643, 0x00000645, 0x80000645, 0x00000639, - 0x0000062c, 0x80000645, 0x00000635, 0x00000645, - 0x80000645, 0x00000633, 0x0000062e, 0x8000064a, - 0x00000646, 0x0000062c, 0x8000064a, 0x00000635, - 0x00000644, 0x800006d2, 0x00000642, 0x00000644, - 0x800006d2, 0x00000627, 0x00000644, 0x00000644, - 0x80000647, 0x00000627, 0x00000643, 0x00000628, - 0x80000631, 0x00000645, 0x0000062d, 0x00000645, - 0x8000062f, 0x00000635, 0x00000644, 0x00000639, - 0x80000645, 0x00000631, 0x00000633, 0x00000648, - 0x80000644, 0x00000639, 0x00000644, 0x0000064a, - 0x80000647, 0x00000648, 0x00000633, 0x00000644, - 0x80000645, 0x00000635, 0x00000644, 0x80000649, - 0x00000635, 0x00000644, 0x00000649, 0x00000020, - 0x00000627, 0x00000644, 0x00000644, 0x00000647, - 0x00000020, 0x00000639, 0x00000644, 0x0000064a, - 0x00000647, 0x00000020, 0x00000648, 0x00000633, - 0x00000644, 0x80000645, 0x0000062c, 0x00000644, - 0x00000020, 0x0000062c, 0x00000644, 0x00000627, - 0x00000644, 0x80000647, 0x00000631, 0x000006cc, - 0x00000627, 0x80000644, 0x8000002c, 0x80003001, - 0x80003002, 0x8000003a, 0x8000003b, 0x80000021, - 0x8000003f, 0x80003016, 0x80003017, 0x80002026, - 0x80002025, 0x80002014, 0x80002013, 0x8000005f, - 0x8000005f, 0x80000028, 0x80000029, 0x8000007b, - 0x8000007d, 0x80003014, 0x80003015, 0x80003010, - 0x80003011, 0x8000300a, 0x8000300b, 0x80003008, - 0x80003009, 0x8000300c, 0x8000300d, 0x8000300e, - 0x8000300f, 0x8000005b, 0x8000005d, 0x8000203e, - 0x8000203e, 0x8000203e, 0x8000203e, 0x8000005f, - 0x8000005f, 0x8000005f, 0x8000002c, 0x80003001, - 0x8000002e, 0x8000003b, 0x8000003a, 0x8000003f, - 0x80000021, 0x80002014, 0x80000028, 0x80000029, - 0x8000007b, 0x8000007d, 0x80003014, 0x80003015, - 0x80000023, 0x80000026, 0x8000002a, 0x8000002b, - 0x8000002d, 0x8000003c, 0x8000003e, 0x8000003d, - 0x8000005c, 0x80000024, 0x80000025, 0x80000040, - 0x00000020, 0x8000064b, 0x00000640, 0x8000064b, - 0x00000020, 0x8000064c, 0x00000020, 0x8000064d, - 0x00000020, 0x8000064e, 0x00000640, 0x8000064e, - 0x00000020, 0x8000064f, 0x00000640, 0x8000064f, - 0x00000020, 0x80000650, 0x00000640, 0x80000650, - 0x00000020, 0x80000651, 0x00000640, 0x80000651, - 0x00000020, 0x80000652, 0x00000640, 0x80000652, - 0x80000621, 0x80000622, 0x80000622, 0x80000623, - 0x80000623, 0x80000624, 0x80000624, 0x80000625, - 0x80000625, 0x80000626, 0x80000626, 0x80000626, - 0x80000626, 0x80000627, 0x80000627, 0x80000628, - 0x80000628, 0x80000628, 0x80000628, 0x80000629, - 0x80000629, 0x8000062a, 0x8000062a, 0x8000062a, - 0x8000062a, 0x8000062b, 0x8000062b, 0x8000062b, - 0x8000062b, 0x8000062c, 0x8000062c, 0x8000062c, - 0x8000062c, 0x8000062d, 0x8000062d, 0x8000062d, - 0x8000062d, 0x8000062e, 0x8000062e, 0x8000062e, - 0x8000062e, 0x8000062f, 0x8000062f, 0x80000630, - 0x80000630, 0x80000631, 0x80000631, 0x80000632, - 0x80000632, 0x80000633, 0x80000633, 0x80000633, - 0x80000633, 0x80000634, 0x80000634, 0x80000634, - 0x80000634, 0x80000635, 0x80000635, 0x80000635, - 0x80000635, 0x80000636, 0x80000636, 0x80000636, - 0x80000636, 0x80000637, 0x80000637, 0x80000637, - 0x80000637, 0x80000638, 0x80000638, 0x80000638, - 0x80000638, 0x80000639, 0x80000639, 0x80000639, - 0x80000639, 0x8000063a, 0x8000063a, 0x8000063a, - 0x8000063a, 0x80000641, 0x80000641, 0x80000641, - 0x80000641, 0x80000642, 0x80000642, 0x80000642, - 0x80000642, 0x80000643, 0x80000643, 0x80000643, - 0x80000643, 0x80000644, 0x80000644, 0x80000644, - 0x80000644, 0x80000645, 0x80000645, 0x80000645, - 0x80000645, 0x80000646, 0x80000646, 0x80000646, - 0x80000646, 0x80000647, 0x80000647, 0x80000647, - 0x80000647, 0x80000648, 0x80000648, 0x80000649, - 0x80000649, 0x8000064a, 0x8000064a, 0x8000064a, - 0x8000064a, 0x00000644, 0x80000622, 0x00000644, - 0x80000622, 0x00000644, 0x80000623, 0x00000644, - 0x80000623, 0x00000644, 0x80000625, 0x00000644, - 0x80000625, 0x00000644, 0x80000627, 0x00000644, - 0x80000627, 0x80000021, 0x80000022, 0x80000023, - 0x80000024, 0x80000025, 0x80000026, 0x80000027, - 0x80000028, 0x80000029, 0x8000002a, 0x8000002b, - 0x8000002c, 0x8000002d, 0x8000002e, 0x8000002f, - 0x80000030, 0x80000031, 0x80000032, 0x80000033, - 0x80000034, 0x80000035, 0x80000036, 0x80000037, - 0x80000038, 0x80000039, 0x8000003a, 0x8000003b, - 0x8000003c, 0x8000003d, 0x8000003e, 0x8000003f, - 0x80000040, 0x80000041, 0x80000042, 0x80000043, - 0x80000044, 0x80000045, 0x80000046, 0x80000047, - 0x80000048, 0x80000049, 0x8000004a, 0x8000004b, - 0x8000004c, 0x8000004d, 0x8000004e, 0x8000004f, - 0x80000050, 0x80000051, 0x80000052, 0x80000053, - 0x80000054, 0x80000055, 0x80000056, 0x80000057, - 0x80000058, 0x80000059, 0x8000005a, 0x8000005b, - 0x8000005c, 0x8000005d, 0x8000005e, 0x8000005f, - 0x80000060, 0x80000061, 0x80000062, 0x80000063, - 0x80000064, 0x80000065, 0x80000066, 0x80000067, - 0x80000068, 0x80000069, 0x8000006a, 0x8000006b, - 0x8000006c, 0x8000006d, 0x8000006e, 0x8000006f, - 0x80000070, 0x80000071, 0x80000072, 0x80000073, - 0x80000074, 0x80000075, 0x80000076, 0x80000077, - 0x80000078, 0x80000079, 0x8000007a, 0x8000007b, - 0x8000007c, 0x8000007d, 0x8000007e, 0x80002985, - 0x80002986, 0x80003002, 0x8000300c, 0x8000300d, - 0x80003001, 0x800030fb, 0x800030f2, 0x800030a1, - 0x800030a3, 0x800030a5, 0x800030a7, 0x800030a9, - 0x800030e3, 0x800030e5, 0x800030e7, 0x800030c3, - 0x800030fc, 0x800030a2, 0x800030a4, 0x800030a6, - 0x800030a8, 0x800030aa, 0x800030ab, 0x800030ad, - 0x800030af, 0x800030b1, 0x800030b3, 0x800030b5, - 0x800030b7, 0x800030b9, 0x800030bb, 0x800030bd, - 0x800030bf, 0x800030c1, 0x800030c4, 0x800030c6, - 0x800030c8, 0x800030ca, 0x800030cb, 0x800030cc, - 0x800030cd, 0x800030ce, 0x800030cf, 0x800030d2, - 0x800030d5, 0x800030d8, 0x800030db, 0x800030de, - 0x800030df, 0x800030e0, 0x800030e1, 0x800030e2, - 0x800030e4, 0x800030e6, 0x800030e8, 0x800030e9, - 0x800030ea, 0x800030eb, 0x800030ec, 0x800030ed, - 0x800030ef, 0x800030f3, 0x80003099, 0x8000309a, - 0x80003164, 0x80003131, 0x80003132, 0x80003133, - 0x80003134, 0x80003135, 0x80003136, 0x80003137, - 0x80003138, 0x80003139, 0x8000313a, 0x8000313b, - 0x8000313c, 0x8000313d, 0x8000313e, 0x8000313f, - 0x80003140, 0x80003141, 0x80003142, 0x80003143, - 0x80003144, 0x80003145, 0x80003146, 0x80003147, - 0x80003148, 0x80003149, 0x8000314a, 0x8000314b, - 0x8000314c, 0x8000314d, 0x8000314e, 0x8000314f, - 0x80003150, 0x80003151, 0x80003152, 0x80003153, - 0x80003154, 0x80003155, 0x80003156, 0x80003157, - 0x80003158, 0x80003159, 0x8000315a, 0x8000315b, - 0x8000315c, 0x8000315d, 0x8000315e, 0x8000315f, - 0x80003160, 0x80003161, 0x80003162, 0x80003163, - 0x800000a2, 0x800000a3, 0x800000ac, 0x800000af, - 0x800000a6, 0x800000a5, 0x800020a9, 0x80002502, - 0x80002190, 0x80002191, 0x80002192, 0x80002193, - 0x800025a0, 0x800025cb, 0x0001d157, 0x8001d165, - 0x0001d158, 0x8001d165, 0x0001d15f, 0x8001d16e, - 0x0001d15f, 0x8001d16f, 0x0001d15f, 0x8001d170, - 0x0001d15f, 0x8001d171, 0x0001d15f, 0x8001d172, - 0x0001d1b9, 0x8001d165, 0x0001d1ba, 0x8001d165, - 0x0001d1bb, 0x8001d16e, 0x0001d1bc, 0x8001d16e, - 0x0001d1bb, 0x8001d16f, 0x0001d1bc, 0x8001d16f, - 0x80000041, 0x80000042, 0x80000043, 0x80000044, - 0x80000045, 0x80000046, 0x80000047, 0x80000048, - 0x80000049, 0x8000004a, 0x8000004b, 0x8000004c, - 0x8000004d, 0x8000004e, 0x8000004f, 0x80000050, - 0x80000051, 0x80000052, 0x80000053, 0x80000054, - 0x80000055, 0x80000056, 0x80000057, 0x80000058, - 0x80000059, 0x8000005a, 0x80000061, 0x80000062, - 0x80000063, 0x80000064, 0x80000065, 0x80000066, - 0x80000067, 0x80000068, 0x80000069, 0x8000006a, - 0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e, - 0x8000006f, 0x80000070, 0x80000071, 0x80000072, - 0x80000073, 0x80000074, 0x80000075, 0x80000076, - 0x80000077, 0x80000078, 0x80000079, 0x8000007a, - 0x80000041, 0x80000042, 0x80000043, 0x80000044, - 0x80000045, 0x80000046, 0x80000047, 0x80000048, - 0x80000049, 0x8000004a, 0x8000004b, 0x8000004c, - 0x8000004d, 0x8000004e, 0x8000004f, 0x80000050, - 0x80000051, 0x80000052, 0x80000053, 0x80000054, - 0x80000055, 0x80000056, 0x80000057, 0x80000058, - 0x80000059, 0x8000005a, 0x80000061, 0x80000062, - 0x80000063, 0x80000064, 0x80000065, 0x80000066, - 0x80000067, 0x80000069, 0x8000006a, 0x8000006b, - 0x8000006c, 0x8000006d, 0x8000006e, 0x8000006f, - 0x80000070, 0x80000071, 0x80000072, 0x80000073, - 0x80000074, 0x80000075, 0x80000076, 0x80000077, - 0x80000078, 0x80000079, 0x8000007a, 0x80000041, - 0x80000042, 0x80000043, 0x80000044, 0x80000045, - 0x80000046, 0x80000047, 0x80000048, 0x80000049, - 0x8000004a, 0x8000004b, 0x8000004c, 0x8000004d, - 0x8000004e, 0x8000004f, 0x80000050, 0x80000051, - 0x80000052, 0x80000053, 0x80000054, 0x80000055, - 0x80000056, 0x80000057, 0x80000058, 0x80000059, - 0x8000005a, 0x80000061, 0x80000062, 0x80000063, - 0x80000064, 0x80000065, 0x80000066, 0x80000067, - 0x80000068, 0x80000069, 0x8000006a, 0x8000006b, - 0x8000006c, 0x8000006d, 0x8000006e, 0x8000006f, - 0x80000070, 0x80000071, 0x80000072, 0x80000073, - 0x80000074, 0x80000075, 0x80000076, 0x80000077, - 0x80000078, 0x80000079, 0x8000007a, 0x80000041, - 0x80000043, 0x80000044, 0x80000047, 0x8000004a, - 0x8000004b, 0x8000004e, 0x8000004f, 0x80000050, - 0x80000051, 0x80000053, 0x80000054, 0x80000055, - 0x80000056, 0x80000057, 0x80000058, 0x80000059, - 0x8000005a, 0x80000061, 0x80000062, 0x80000063, - 0x80000064, 0x80000066, 0x80000068, 0x80000069, - 0x8000006a, 0x8000006b, 0x8000006c, 0x8000006d, - 0x8000006e, 0x80000070, 0x80000071, 0x80000072, - 0x80000073, 0x80000074, 0x80000075, 0x80000076, - 0x80000077, 0x80000078, 0x80000079, 0x8000007a, - 0x80000041, 0x80000042, 0x80000043, 0x80000044, - 0x80000045, 0x80000046, 0x80000047, 0x80000048, - 0x80000049, 0x8000004a, 0x8000004b, 0x8000004c, - 0x8000004d, 0x8000004e, 0x8000004f, 0x80000050, - 0x80000051, 0x80000052, 0x80000053, 0x80000054, - 0x80000055, 0x80000056, 0x80000057, 0x80000058, - 0x80000059, 0x8000005a, 0x80000061, 0x80000062, - 0x80000063, 0x80000064, 0x80000065, 0x80000066, - 0x80000067, 0x80000068, 0x80000069, 0x8000006a, - 0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e, - 0x8000006f, 0x80000070, 0x80000071, 0x80000072, - 0x80000073, 0x80000074, 0x80000075, 0x80000076, - 0x80000077, 0x80000078, 0x80000079, 0x8000007a, - 0x80000041, 0x80000042, 0x80000044, 0x80000045, - 0x80000046, 0x80000047, 0x8000004a, 0x8000004b, - 0x8000004c, 0x8000004d, 0x8000004e, 0x8000004f, - 0x80000050, 0x80000051, 0x80000053, 0x80000054, - 0x80000055, 0x80000056, 0x80000057, 0x80000058, - 0x80000059, 0x80000061, 0x80000062, 0x80000063, - 0x80000064, 0x80000065, 0x80000066, 0x80000067, - 0x80000068, 0x80000069, 0x8000006a, 0x8000006b, - 0x8000006c, 0x8000006d, 0x8000006e, 0x8000006f, - 0x80000070, 0x80000071, 0x80000072, 0x80000073, - 0x80000074, 0x80000075, 0x80000076, 0x80000077, - 0x80000078, 0x80000079, 0x8000007a, 0x80000041, - 0x80000042, 0x80000044, 0x80000045, 0x80000046, - 0x80000047, 0x80000049, 0x8000004a, 0x8000004b, - 0x8000004c, 0x8000004d, 0x8000004f, 0x80000053, - 0x80000054, 0x80000055, 0x80000056, 0x80000057, - 0x80000058, 0x80000059, 0x80000061, 0x80000062, - 0x80000063, 0x80000064, 0x80000065, 0x80000066, - 0x80000067, 0x80000068, 0x80000069, 0x8000006a, - 0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e, - 0x8000006f, 0x80000070, 0x80000071, 0x80000072, - 0x80000073, 0x80000074, 0x80000075, 0x80000076, - 0x80000077, 0x80000078, 0x80000079, 0x8000007a, - 0x80000041, 0x80000042, 0x80000043, 0x80000044, - 0x80000045, 0x80000046, 0x80000047, 0x80000048, - 0x80000049, 0x8000004a, 0x8000004b, 0x8000004c, - 0x8000004d, 0x8000004e, 0x8000004f, 0x80000050, - 0x80000051, 0x80000052, 0x80000053, 0x80000054, - 0x80000055, 0x80000056, 0x80000057, 0x80000058, - 0x80000059, 0x8000005a, 0x80000061, 0x80000062, - 0x80000063, 0x80000064, 0x80000065, 0x80000066, - 0x80000067, 0x80000068, 0x80000069, 0x8000006a, - 0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e, - 0x8000006f, 0x80000070, 0x80000071, 0x80000072, - 0x80000073, 0x80000074, 0x80000075, 0x80000076, - 0x80000077, 0x80000078, 0x80000079, 0x8000007a, - 0x80000041, 0x80000042, 0x80000043, 0x80000044, - 0x80000045, 0x80000046, 0x80000047, 0x80000048, - 0x80000049, 0x8000004a, 0x8000004b, 0x8000004c, - 0x8000004d, 0x8000004e, 0x8000004f, 0x80000050, - 0x80000051, 0x80000052, 0x80000053, 0x80000054, - 0x80000055, 0x80000056, 0x80000057, 0x80000058, - 0x80000059, 0x8000005a, 0x80000061, 0x80000062, - 0x80000063, 0x80000064, 0x80000065, 0x80000066, - 0x80000067, 0x80000068, 0x80000069, 0x8000006a, - 0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e, - 0x8000006f, 0x80000070, 0x80000071, 0x80000072, - 0x80000073, 0x80000074, 0x80000075, 0x80000076, - 0x80000077, 0x80000078, 0x80000079, 0x8000007a, - 0x80000041, 0x80000042, 0x80000043, 0x80000044, - 0x80000045, 0x80000046, 0x80000047, 0x80000048, - 0x80000049, 0x8000004a, 0x8000004b, 0x8000004c, - 0x8000004d, 0x8000004e, 0x8000004f, 0x80000050, - 0x80000051, 0x80000052, 0x80000053, 0x80000054, - 0x80000055, 0x80000056, 0x80000057, 0x80000058, - 0x80000059, 0x8000005a, 0x80000061, 0x80000062, - 0x80000063, 0x80000064, 0x80000065, 0x80000066, - 0x80000067, 0x80000068, 0x80000069, 0x8000006a, - 0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e, - 0x8000006f, 0x80000070, 0x80000071, 0x80000072, - 0x80000073, 0x80000074, 0x80000075, 0x80000076, - 0x80000077, 0x80000078, 0x80000079, 0x8000007a, - 0x80000041, 0x80000042, 0x80000043, 0x80000044, - 0x80000045, 0x80000046, 0x80000047, 0x80000048, - 0x80000049, 0x8000004a, 0x8000004b, 0x8000004c, - 0x8000004d, 0x8000004e, 0x8000004f, 0x80000050, - 0x80000051, 0x80000052, 0x80000053, 0x80000054, - 0x80000055, 0x80000056, 0x80000057, 0x80000058, - 0x80000059, 0x8000005a, 0x80000061, 0x80000062, - 0x80000063, 0x80000064, 0x80000065, 0x80000066, - 0x80000067, 0x80000068, 0x80000069, 0x8000006a, - 0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e, - 0x8000006f, 0x80000070, 0x80000071, 0x80000072, - 0x80000073, 0x80000074, 0x80000075, 0x80000076, - 0x80000077, 0x80000078, 0x80000079, 0x8000007a, - 0x80000041, 0x80000042, 0x80000043, 0x80000044, - 0x80000045, 0x80000046, 0x80000047, 0x80000048, - 0x80000049, 0x8000004a, 0x8000004b, 0x8000004c, - 0x8000004d, 0x8000004e, 0x8000004f, 0x80000050, - 0x80000051, 0x80000052, 0x80000053, 0x80000054, - 0x80000055, 0x80000056, 0x80000057, 0x80000058, - 0x80000059, 0x8000005a, 0x80000061, 0x80000062, - 0x80000063, 0x80000064, 0x80000065, 0x80000066, - 0x80000067, 0x80000068, 0x80000069, 0x8000006a, - 0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e, - 0x8000006f, 0x80000070, 0x80000071, 0x80000072, - 0x80000073, 0x80000074, 0x80000075, 0x80000076, - 0x80000077, 0x80000078, 0x80000079, 0x8000007a, - 0x80000041, 0x80000042, 0x80000043, 0x80000044, - 0x80000045, 0x80000046, 0x80000047, 0x80000048, - 0x80000049, 0x8000004a, 0x8000004b, 0x8000004c, - 0x8000004d, 0x8000004e, 0x8000004f, 0x80000050, - 0x80000051, 0x80000052, 0x80000053, 0x80000054, - 0x80000055, 0x80000056, 0x80000057, 0x80000058, - 0x80000059, 0x8000005a, 0x80000061, 0x80000062, - 0x80000063, 0x80000064, 0x80000065, 0x80000066, - 0x80000067, 0x80000068, 0x80000069, 0x8000006a, - 0x8000006b, 0x8000006c, 0x8000006d, 0x8000006e, - 0x8000006f, 0x80000070, 0x80000071, 0x80000072, - 0x80000073, 0x80000074, 0x80000075, 0x80000076, - 0x80000077, 0x80000078, 0x80000079, 0x8000007a, - 0x80000131, 0x80000237, 0x80000391, 0x80000392, - 0x80000393, 0x80000394, 0x80000395, 0x80000396, - 0x80000397, 0x80000398, 0x80000399, 0x8000039a, - 0x8000039b, 0x8000039c, 0x8000039d, 0x8000039e, - 0x8000039f, 0x800003a0, 0x800003a1, 0x800003f4, - 0x800003a3, 0x800003a4, 0x800003a5, 0x800003a6, - 0x800003a7, 0x800003a8, 0x800003a9, 0x80002207, - 0x800003b1, 0x800003b2, 0x800003b3, 0x800003b4, - 0x800003b5, 0x800003b6, 0x800003b7, 0x800003b8, - 0x800003b9, 0x800003ba, 0x800003bb, 0x800003bc, - 0x800003bd, 0x800003be, 0x800003bf, 0x800003c0, - 0x800003c1, 0x800003c2, 0x800003c3, 0x800003c4, - 0x800003c5, 0x800003c6, 0x800003c7, 0x800003c8, - 0x800003c9, 0x80002202, 0x800003f5, 0x800003d1, - 0x800003f0, 0x800003d5, 0x800003f1, 0x800003d6, - 0x80000391, 0x80000392, 0x80000393, 0x80000394, - 0x80000395, 0x80000396, 0x80000397, 0x80000398, - 0x80000399, 0x8000039a, 0x8000039b, 0x8000039c, - 0x8000039d, 0x8000039e, 0x8000039f, 0x800003a0, - 0x800003a1, 0x800003f4, 0x800003a3, 0x800003a4, - 0x800003a5, 0x800003a6, 0x800003a7, 0x800003a8, - 0x800003a9, 0x80002207, 0x800003b1, 0x800003b2, - 0x800003b3, 0x800003b4, 0x800003b5, 0x800003b6, - 0x800003b7, 0x800003b8, 0x800003b9, 0x800003ba, - 0x800003bb, 0x800003bc, 0x800003bd, 0x800003be, - 0x800003bf, 0x800003c0, 0x800003c1, 0x800003c2, - 0x800003c3, 0x800003c4, 0x800003c5, 0x800003c6, - 0x800003c7, 0x800003c8, 0x800003c9, 0x80002202, - 0x800003f5, 0x800003d1, 0x800003f0, 0x800003d5, - 0x800003f1, 0x800003d6, 0x80000391, 0x80000392, - 0x80000393, 0x80000394, 0x80000395, 0x80000396, - 0x80000397, 0x80000398, 0x80000399, 0x8000039a, - 0x8000039b, 0x8000039c, 0x8000039d, 0x8000039e, - 0x8000039f, 0x800003a0, 0x800003a1, 0x800003f4, - 0x800003a3, 0x800003a4, 0x800003a5, 0x800003a6, - 0x800003a7, 0x800003a8, 0x800003a9, 0x80002207, - 0x800003b1, 0x800003b2, 0x800003b3, 0x800003b4, - 0x800003b5, 0x800003b6, 0x800003b7, 0x800003b8, - 0x800003b9, 0x800003ba, 0x800003bb, 0x800003bc, - 0x800003bd, 0x800003be, 0x800003bf, 0x800003c0, - 0x800003c1, 0x800003c2, 0x800003c3, 0x800003c4, - 0x800003c5, 0x800003c6, 0x800003c7, 0x800003c8, - 0x800003c9, 0x80002202, 0x800003f5, 0x800003d1, - 0x800003f0, 0x800003d5, 0x800003f1, 0x800003d6, - 0x80000391, 0x80000392, 0x80000393, 0x80000394, - 0x80000395, 0x80000396, 0x80000397, 0x80000398, - 0x80000399, 0x8000039a, 0x8000039b, 0x8000039c, - 0x8000039d, 0x8000039e, 0x8000039f, 0x800003a0, - 0x800003a1, 0x800003f4, 0x800003a3, 0x800003a4, - 0x800003a5, 0x800003a6, 0x800003a7, 0x800003a8, - 0x800003a9, 0x80002207, 0x800003b1, 0x800003b2, - 0x800003b3, 0x800003b4, 0x800003b5, 0x800003b6, - 0x800003b7, 0x800003b8, 0x800003b9, 0x800003ba, - 0x800003bb, 0x800003bc, 0x800003bd, 0x800003be, - 0x800003bf, 0x800003c0, 0x800003c1, 0x800003c2, - 0x800003c3, 0x800003c4, 0x800003c5, 0x800003c6, - 0x800003c7, 0x800003c8, 0x800003c9, 0x80002202, - 0x800003f5, 0x800003d1, 0x800003f0, 0x800003d5, - 0x800003f1, 0x800003d6, 0x80000391, 0x80000392, - 0x80000393, 0x80000394, 0x80000395, 0x80000396, - 0x80000397, 0x80000398, 0x80000399, 0x8000039a, - 0x8000039b, 0x8000039c, 0x8000039d, 0x8000039e, - 0x8000039f, 0x800003a0, 0x800003a1, 0x800003f4, - 0x800003a3, 0x800003a4, 0x800003a5, 0x800003a6, - 0x800003a7, 0x800003a8, 0x800003a9, 0x80002207, - 0x800003b1, 0x800003b2, 0x800003b3, 0x800003b4, - 0x800003b5, 0x800003b6, 0x800003b7, 0x800003b8, - 0x800003b9, 0x800003ba, 0x800003bb, 0x800003bc, - 0x800003bd, 0x800003be, 0x800003bf, 0x800003c0, - 0x800003c1, 0x800003c2, 0x800003c3, 0x800003c4, - 0x800003c5, 0x800003c6, 0x800003c7, 0x800003c8, - 0x800003c9, 0x80002202, 0x800003f5, 0x800003d1, - 0x800003f0, 0x800003d5, 0x800003f1, 0x800003d6, - 0x80000030, 0x80000031, 0x80000032, 0x80000033, - 0x80000034, 0x80000035, 0x80000036, 0x80000037, - 0x80000038, 0x80000039, 0x80000030, 0x80000031, - 0x80000032, 0x80000033, 0x80000034, 0x80000035, - 0x80000036, 0x80000037, 0x80000038, 0x80000039, - 0x80000030, 0x80000031, 0x80000032, 0x80000033, - 0x80000034, 0x80000035, 0x80000036, 0x80000037, - 0x80000038, 0x80000039, 0x80000030, 0x80000031, - 0x80000032, 0x80000033, 0x80000034, 0x80000035, - 0x80000036, 0x80000037, 0x80000038, 0x80000039, - 0x80000030, 0x80000031, 0x80000032, 0x80000033, - 0x80000034, 0x80000035, 0x80000036, 0x80000037, - 0x80000038, 0x80000039, 0x80004e3d, 0x80004e38, - 0x80004e41, 0x80020122, 0x80004f60, 0x80004fae, - 0x80004fbb, 0x80005002, 0x8000507a, 0x80005099, - 0x800050e7, 0x800050cf, 0x8000349e, 0x8002063a, - 0x8000514d, 0x80005154, 0x80005164, 0x80005177, - 0x8002051c, 0x800034b9, 0x80005167, 0x8000518d, - 0x8002054b, 0x80005197, 0x800051a4, 0x80004ecc, - 0x800051ac, 0x800051b5, 0x800291df, 0x800051f5, - 0x80005203, 0x800034df, 0x8000523b, 0x80005246, - 0x80005272, 0x80005277, 0x80003515, 0x800052c7, - 0x800052c9, 0x800052e4, 0x800052fa, 0x80005305, - 0x80005306, 0x80005317, 0x80005349, 0x80005351, - 0x8000535a, 0x80005373, 0x8000537d, 0x8000537f, - 0x8000537f, 0x8000537f, 0x80020a2c, 0x80007070, - 0x800053ca, 0x800053df, 0x80020b63, 0x800053eb, - 0x800053f1, 0x80005406, 0x8000549e, 0x80005438, - 0x80005448, 0x80005468, 0x800054a2, 0x800054f6, - 0x80005510, 0x80005553, 0x80005563, 0x80005584, - 0x80005584, 0x80005599, 0x800055ab, 0x800055b3, - 0x800055c2, 0x80005716, 0x80005606, 0x80005717, - 0x80005651, 0x80005674, 0x80005207, 0x800058ee, - 0x800057ce, 0x800057f4, 0x8000580d, 0x8000578b, - 0x80005832, 0x80005831, 0x800058ac, 0x800214e4, - 0x800058f2, 0x800058f7, 0x80005906, 0x8000591a, - 0x80005922, 0x80005962, 0x800216a8, 0x800216ea, - 0x800059ec, 0x80005a1b, 0x80005a27, 0x800059d8, - 0x80005a66, 0x800036ee, 0x800036fc, 0x80005b08, - 0x80005b3e, 0x80005b3e, 0x800219c8, 0x80005bc3, - 0x80005bd8, 0x80005be7, 0x80005bf3, 0x80021b18, - 0x80005bff, 0x80005c06, 0x80005f53, 0x80005c22, - 0x80003781, 0x80005c60, 0x80005c6e, 0x80005cc0, - 0x80005c8d, 0x80021de4, 0x80005d43, 0x80021de6, - 0x80005d6e, 0x80005d6b, 0x80005d7c, 0x80005de1, - 0x80005de2, 0x8000382f, 0x80005dfd, 0x80005e28, - 0x80005e3d, 0x80005e69, 0x80003862, 0x80022183, - 0x8000387c, 0x80005eb0, 0x80005eb3, 0x80005eb6, - 0x80005eca, 0x8002a392, 0x80005efe, 0x80022331, - 0x80022331, 0x80008201, 0x80005f22, 0x80005f22, - 0x800038c7, 0x800232b8, 0x800261da, 0x80005f62, - 0x80005f6b, 0x800038e3, 0x80005f9a, 0x80005fcd, - 0x80005fd7, 0x80005ff9, 0x80006081, 0x8000393a, - 0x8000391c, 0x80006094, 0x800226d4, 0x800060c7, - 0x80006148, 0x8000614c, 0x8000614e, 0x8000614c, - 0x8000617a, 0x8000618e, 0x800061b2, 0x800061a4, - 0x800061af, 0x800061de, 0x800061f2, 0x800061f6, - 0x80006210, 0x8000621b, 0x8000625d, 0x800062b1, - 0x800062d4, 0x80006350, 0x80022b0c, 0x8000633d, - 0x800062fc, 0x80006368, 0x80006383, 0x800063e4, - 0x80022bf1, 0x80006422, 0x800063c5, 0x800063a9, - 0x80003a2e, 0x80006469, 0x8000647e, 0x8000649d, - 0x80006477, 0x80003a6c, 0x8000654f, 0x8000656c, - 0x8002300a, 0x800065e3, 0x800066f8, 0x80006649, - 0x80003b19, 0x80006691, 0x80003b08, 0x80003ae4, - 0x80005192, 0x80005195, 0x80006700, 0x8000669c, - 0x800080ad, 0x800043d9, 0x80006717, 0x8000671b, - 0x80006721, 0x8000675e, 0x80006753, 0x800233c3, - 0x80003b49, 0x800067fa, 0x80006785, 0x80006852, - 0x80006885, 0x8002346d, 0x8000688e, 0x8000681f, - 0x80006914, 0x80003b9d, 0x80006942, 0x800069a3, - 0x800069ea, 0x80006aa8, 0x800236a3, 0x80006adb, - 0x80003c18, 0x80006b21, 0x800238a7, 0x80006b54, - 0x80003c4e, 0x80006b72, 0x80006b9f, 0x80006bba, - 0x80006bbb, 0x80023a8d, 0x80021d0b, 0x80023afa, - 0x80006c4e, 0x80023cbc, 0x80006cbf, 0x80006ccd, - 0x80006c67, 0x80006d16, 0x80006d3e, 0x80006d77, - 0x80006d41, 0x80006d69, 0x80006d78, 0x80006d85, - 0x80023d1e, 0x80006d34, 0x80006e2f, 0x80006e6e, - 0x80003d33, 0x80006ecb, 0x80006ec7, 0x80023ed1, - 0x80006df9, 0x80006f6e, 0x80023f5e, 0x80023f8e, - 0x80006fc6, 0x80007039, 0x8000701e, 0x8000701b, - 0x80003d96, 0x8000704a, 0x8000707d, 0x80007077, - 0x800070ad, 0x80020525, 0x80007145, 0x80024263, - 0x8000719c, 0x800243ab, 0x80007228, 0x80007235, - 0x80007250, 0x80024608, 0x80007280, 0x80007295, - 0x80024735, 0x80024814, 0x8000737a, 0x8000738b, - 0x80003eac, 0x800073a5, 0x80003eb8, 0x80003eb8, - 0x80007447, 0x8000745c, 0x80007471, 0x80007485, - 0x800074ca, 0x80003f1b, 0x80007524, 0x80024c36, - 0x8000753e, 0x80024c92, 0x80007570, 0x8002219f, - 0x80007610, 0x80024fa1, 0x80024fb8, 0x80025044, - 0x80003ffc, 0x80004008, 0x800076f4, 0x800250f3, - 0x800250f2, 0x80025119, 0x80025133, 0x8000771e, - 0x8000771f, 0x8000771f, 0x8000774a, 0x80004039, - 0x8000778b, 0x80004046, 0x80004096, 0x8002541d, - 0x8000784e, 0x8000788c, 0x800078cc, 0x800040e3, - 0x80025626, 0x80007956, 0x8002569a, 0x800256c5, - 0x8000798f, 0x800079eb, 0x8000412f, 0x80007a40, - 0x80007a4a, 0x80007a4f, 0x8002597c, 0x80025aa7, - 0x80025aa7, 0x80007aee, 0x80004202, 0x80025bab, - 0x80007bc6, 0x80007bc9, 0x80004227, 0x80025c80, - 0x80007cd2, 0x800042a0, 0x80007ce8, 0x80007ce3, - 0x80007d00, 0x80025f86, 0x80007d63, 0x80004301, - 0x80007dc7, 0x80007e02, 0x80007e45, 0x80004334, - 0x80026228, 0x80026247, 0x80004359, 0x800262d9, - 0x80007f7a, 0x8002633e, 0x80007f95, 0x80007ffa, - 0x80008005, 0x800264da, 0x80026523, 0x80008060, - 0x800265a8, 0x80008070, 0x8002335f, 0x800043d5, - 0x800080b2, 0x80008103, 0x8000440b, 0x8000813e, - 0x80005ab5, 0x800267a7, 0x800267b5, 0x80023393, - 0x8002339c, 0x80008201, 0x80008204, 0x80008f9e, - 0x8000446b, 0x80008291, 0x8000828b, 0x8000829d, - 0x800052b3, 0x800082b1, 0x800082b3, 0x800082bd, - 0x800082e6, 0x80026b3c, 0x800082e5, 0x8000831d, - 0x80008363, 0x800083ad, 0x80008323, 0x800083bd, - 0x800083e7, 0x80008457, 0x80008353, 0x800083ca, - 0x800083cc, 0x800083dc, 0x80026c36, 0x80026d6b, - 0x80026cd5, 0x8000452b, 0x800084f1, 0x800084f3, - 0x80008516, 0x800273ca, 0x80008564, 0x80026f2c, - 0x8000455d, 0x80004561, 0x80026fb1, 0x800270d2, - 0x8000456b, 0x80008650, 0x8000865c, 0x80008667, - 0x80008669, 0x800086a9, 0x80008688, 0x8000870e, - 0x800086e2, 0x80008779, 0x80008728, 0x8000876b, - 0x80008786, 0x800045d7, 0x800087e1, 0x80008801, - 0x800045f9, 0x80008860, 0x80008863, 0x80027667, - 0x800088d7, 0x800088de, 0x80004635, 0x800088fa, - 0x800034bb, 0x800278ae, 0x80027966, 0x800046be, - 0x800046c7, 0x80008aa0, 0x80008aed, 0x80008b8a, - 0x80008c55, 0x80027ca8, 0x80008cab, 0x80008cc1, - 0x80008d1b, 0x80008d77, 0x80027f2f, 0x80020804, - 0x80008dcb, 0x80008dbc, 0x80008df0, 0x800208de, - 0x80008ed4, 0x80008f38, 0x800285d2, 0x800285ed, - 0x80009094, 0x800090f1, 0x80009111, 0x8002872e, - 0x8000911b, 0x80009238, 0x800092d7, 0x800092d8, - 0x8000927c, 0x800093f9, 0x80009415, 0x80028bfa, - 0x8000958b, 0x80004995, 0x800095b7, 0x80028d77, - 0x800049e6, 0x800096c3, 0x80005db2, 0x80009723, - 0x80029145, 0x8002921a, 0x80004a6e, 0x80004a76, - 0x800097e0, 0x8002940a, 0x80004ab2, 0x80029496, - 0x8000980b, 0x8000980b, 0x80009829, 0x800295b6, - 0x800098e2, 0x80004b33, 0x80009929, 0x800099a7, - 0x800099c2, 0x800099fe, 0x80004bce, 0x80029b30, - 0x80009b12, 0x80009c40, 0x80009cfd, 0x80004cce, - 0x80004ced, 0x80009d67, 0x8002a0ce, 0x80004cf8, - 0x8002a105, 0x8002a20e, 0x8002a291, 0x80009ebb, - 0x80004d56, 0x80009ef9, 0x80009efe, 0x80009f05, - 0x80009f0f, 0x80009f16, 0x80009f3b, 0x8002a600, -}; - diff --git a/intl/unicharutil/nsUnicodeNormalizer.cpp b/intl/unicharutil/nsUnicodeNormalizer.cpp index 16c3a969c..6f6c3d2dd 100644 --- a/intl/unicharutil/nsUnicodeNormalizer.cpp +++ b/intl/unicharutil/nsUnicodeNormalizer.cpp @@ -1,66 +1,16 @@ /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* This file is modified from JPNIC's mDNKit, it is under both MPL and - * JPNIC's license. - */ - /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -/* - * Copyright (c) 2000,2002 Japan Network Information Center. - * All rights reserved. - * - * By using this file, you agree to the terms and conditions set forth bellow. - * - * LICENSE TERMS AND CONDITIONS - * - * The following License Terms and Conditions apply, unless a different - * license is obtained from Japan Network Information Center ("JPNIC"), - * a Japanese association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda, - * Chiyoda-ku, Tokyo 101-0047, Japan. - * - * 1. Use, Modification and Redistribution (including distribution of any - * modified or derived work) in source and/or binary forms is permitted - * under this License Terms and Conditions. - * - * 2. Redistribution of source code must retain the copyright notices as they - * appear in each source code file, this License Terms and Conditions. - * - * 3. Redistribution in binary form must reproduce the Copyright Notice, - * this License Terms and Conditions, in the documentation and/or other - * materials provided with the distribution. For the purposes of binary - * distribution the "Copyright Notice" refers to the following language: - * "Copyright (c) 2000-2002 Japan Network Information Center. All rights reserved." - * - * 4. The name of JPNIC may not be used to endorse or promote products - * derived from this Software without specific prior written approval of - * JPNIC. - * - * 5. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY JPNIC - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JPNIC BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR - * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - */ - -#include <string.h> - -#include "nsMemory.h" #include "nsUnicodeNormalizer.h" -#include "nsString.h" -#include "mozilla/BinarySearch.h" +#include "ICUUtils.h" +#include "unicode/unorm2.h" +#include "unicode/utext.h" NS_IMPL_ISUPPORTS(nsUnicodeNormalizer, nsIUnicodeNormalizer) - nsUnicodeNormalizer::nsUnicodeNormalizer() { } @@ -69,636 +19,80 @@ nsUnicodeNormalizer::~nsUnicodeNormalizer() { } - - -#define END_BIT 0x80000000 - - -/* - * Some constants for Hangul decomposition/composition. - * These things were taken from unicode book. - */ -#define SBase 0xac00 -#define LBase 0x1100 -#define VBase 0x1161 -#define TBase 0x11a7 -#define LCount 19 -#define VCount 21 -#define TCount 28 -#define SLast (SBase + LCount * VCount * TCount) - -struct composition { - uint32_t c2; /* 2nd character */ - uint32_t comp; /* composed character */ -}; - - -#include "normalization_data.h" - -/* - * Macro for multi-level index table. - */ -#define LOOKUPTBL(vprefix, mprefix, v) \ - DMAP(vprefix)[\ - IMAP(vprefix)[\ - IMAP(vprefix)[IDX0(mprefix, v)] + IDX1(mprefix, v)\ - ]\ - ].tbl[IDX2(mprefix, v)] - -#define IDX0(mprefix, v) IDX_0(v, BITS1(mprefix), BITS2(mprefix)) -#define IDX1(mprefix, v) IDX_1(v, BITS1(mprefix), BITS2(mprefix)) -#define IDX2(mprefix, v) IDX_2(v, BITS1(mprefix), BITS2(mprefix)) - -#define IDX_0(v, bits1, bits2) ((v) >> ((bits1) + (bits2))) -#define IDX_1(v, bits1, bits2) (((v) >> (bits2)) & ((1 << (bits1)) - 1)) -#define IDX_2(v, bits1, bits2) ((v) & ((1 << (bits2)) - 1)) - -#define BITS1(mprefix) mprefix ## _BITS_1 -#define BITS2(mprefix) mprefix ## _BITS_2 - -#define IMAP(vprefix) vprefix ## _imap -#define DMAP(vprefix) vprefix ## _table -#define SEQ(vprefix) vprefix ## _seq - -static int32_t -canonclass(uint32_t c) { - /* Look up canonicalclass table. */ - return (LOOKUPTBL(canon_class, CANON_CLASS, c)); -} - -static int32_t -decompose_char(uint32_t c, const uint32_t **seqp) -{ - /* Look up decomposition table. */ - int32_t seqidx = LOOKUPTBL(decompose, DECOMP, c); - *seqp = SEQ(decompose) + (seqidx & ~DECOMP_COMPAT); - return (seqidx); -} - -static int32_t -compose_char(uint32_t c, - const struct composition **compp) -{ - /* Look up composition table. */ - int32_t seqidx = LOOKUPTBL(compose, CANON_COMPOSE, c); - *compp = SEQ(compose) + (seqidx & 0xffff); - return (seqidx >> 16); -} - -static nsresult -mdn__unicode_decompose(int32_t compat, uint32_t *v, size_t vlen, - uint32_t c, int32_t *decomp_lenp) -{ - uint32_t *vorg = v; - int32_t seqidx; - const uint32_t *seq; - - //assert(v != nullptr && vlen >= 0 && decomp_lenp != nullptr); - - /* - * First, check for Hangul. - */ - if (SBase <= c && c < SLast) { - int32_t idx, t_offset, v_offset, l_offset; - - idx = c - SBase; - t_offset = idx % TCount; - idx /= TCount; - v_offset = idx % VCount; - l_offset = idx / VCount; - if ((t_offset == 0 && vlen < 2) || (t_offset > 0 && vlen < 3)) - return (NS_ERROR_UNORM_MOREOUTPUT); - *v++ = LBase + l_offset; - *v++ = VBase + v_offset; - if (t_offset > 0) - *v++ = TBase + t_offset; - *decomp_lenp = v - vorg; - return (NS_OK); - } - - /* - * Look up decomposition table. If no decomposition is defined - * or if it is a compatibility decomosition when canonical - * decomposition requested, return 'NS_SUCCESS_UNORM_NOTFOUND'. - */ - seqidx = decompose_char(c, &seq); - if (seqidx == 0 || (compat == 0 && (seqidx & DECOMP_COMPAT) != 0)) - return (NS_SUCCESS_UNORM_NOTFOUND); - - /* - * Copy the decomposed sequence. The end of the sequence are - * marked with END_BIT. - */ - do { - uint32_t c; - int32_t dlen; - nsresult r; - - c = *seq & ~END_BIT; - - /* Decompose recursively. */ - r = mdn__unicode_decompose(compat, v, vlen, c, &dlen); - if (r == NS_OK) { - v += dlen; - vlen -= dlen; - } else if (r == NS_SUCCESS_UNORM_NOTFOUND) { - if (vlen < 1) - return (NS_ERROR_UNORM_MOREOUTPUT); - *v++ = c; - vlen--; - } else { - return (r); - } - - } while ((*seq++ & END_BIT) == 0); - - *decomp_lenp = v - vorg; - - return (NS_OK); -} - -static int32_t -mdn__unicode_iscompositecandidate(uint32_t c) -{ - const struct composition *dummy; - - /* Check for Hangul */ - if ((LBase <= c && c < LBase + LCount) || (SBase <= c && c < SLast)) - return (1); - - /* - * Look up composition table. If there are no composition - * that begins with the given character, it is not a - * composition candidate. - */ - if (compose_char(c, &dummy) == 0) - return (0); - else - return (1); -} - -namespace { - -struct SequenceAdaptor -{ - const composition* const mSequence; - explicit SequenceAdaptor(const composition* aSequence) : mSequence(aSequence) {} - uint32_t operator[](size_t aIdx) const { - return mSequence[aIdx].c2; - } -}; - -} // namespace - -static nsresult -mdn__unicode_compose(uint32_t c1, uint32_t c2, uint32_t *compp) -{ - int32_t n; - const struct composition *cseq; - - //assert(compp != nullptr); - - /* - * Check for Hangul. - */ - if (LBase <= c1 && c1 < LBase + LCount && - VBase <= c2 && c2 < VBase + VCount) { - /* - * Hangul L and V. - */ - *compp = SBase + - ((c1 - LBase) * VCount + (c2 - VBase)) * TCount; - return (NS_OK); - } else if (SBase <= c1 && c1 < SLast && - TBase <= c2 && c2 < TBase + TCount && - (c1 - SBase) % TCount == 0) { - /* - * Hangul LV and T. - */ - *compp = c1 + (c2 - TBase); - return (NS_OK); - } - - /* - * Look up composition table. If the result is 0, no composition - * is defined. Otherwise, upper 16bits of the result contains - * the number of composition that begins with 'c1', and the lower - * 16bits is the offset in 'compose_seq'. - */ - if ((n = compose_char(c1, &cseq)) == 0) - return (NS_SUCCESS_UNORM_NOTFOUND); - - /* - * The composite sequences are sorted by the 2nd character 'c2'. - * So we can use binary search. - */ - size_t idx; - if (mozilla::BinarySearch(SequenceAdaptor(cseq), 0, n, c2, &idx)) { - *compp = cseq[idx].comp; - return (NS_OK); - } - - return (NS_SUCCESS_UNORM_NOTFOUND); -} - - -#define WORKBUF_SIZE 128 -#define WORKBUF_SIZE_MAX 10000 - -typedef struct { - int32_t cur; /* pointing now processing character */ - int32_t last; /* pointing just after the last character */ - int32_t size; /* size of UCS and CLASS array */ - uint32_t *ucs; /* UCS-4 characters */ - int32_t *cclass; /* and their canonical classes */ - uint32_t ucs_buf[WORKBUF_SIZE]; /* local buffer */ - int32_t class_buf[WORKBUF_SIZE]; /* ditto */ -} workbuf_t; - -static nsresult decompose(workbuf_t *wb, uint32_t c, int32_t compat); -static void get_class(workbuf_t *wb); -static void reorder(workbuf_t *wb); -static void compose(workbuf_t *wb); -static nsresult flush_before_cur(workbuf_t *wb, nsAString& aToStr); -static void workbuf_init(workbuf_t *wb); -static void workbuf_free(workbuf_t *wb); -static nsresult workbuf_extend(workbuf_t *wb); -static nsresult workbuf_append(workbuf_t *wb, uint32_t c); -static void workbuf_shift(workbuf_t *wb, int32_t shift); -static void workbuf_removevoid(workbuf_t *wb); - - -static nsresult -mdn_normalize(bool do_composition, bool compat, - const nsAString& aSrcStr, nsAString& aToStr) -{ - workbuf_t wb; - nsresult r = NS_OK; - /* - * Initialize working buffer. - */ - workbuf_init(&wb); - - nsAString::const_iterator start, end; - aSrcStr.BeginReading(start); - aSrcStr.EndReading(end); - - while (start != end) { - uint32_t c; - char16_t curChar; - - //assert(wb.cur == wb.last); - - /* - * Get one character from 'from'. - */ - curChar= *start++; - - if (NS_IS_HIGH_SURROGATE(curChar) && start != end && NS_IS_LOW_SURROGATE(*(start)) ) { - c = SURROGATE_TO_UCS4(curChar, *start); - ++start; - } else { - c = curChar; - } - - /* - * Decompose it. - */ - if ((r = decompose(&wb, c, compat)) != NS_OK) - break; - - /* - * Get canonical class. - */ - get_class(&wb); - - /* - * Reorder & compose. - */ - for (; wb.cur < wb.last; wb.cur++) { - if (wb.cur == 0) { - continue; - } else if (wb.cclass[wb.cur] > 0) { - /* - * This is not a starter. Try reordering. - * Note that characters up to it are - * already in canonical order. - */ - reorder(&wb); - continue; - } - - /* - * This is a starter character, and there are - * some characters before it. Those characters - * have been reordered properly, and - * ready for composition. - */ - if (do_composition && wb.cclass[0] == 0) - compose(&wb); - - /* - * If CUR points to a starter character, - * then process of characters before CUR are - * already finished, because any further - * reordering/composition for them are blocked - * by the starter CUR points. - */ - if (wb.cur > 0 && wb.cclass[wb.cur] == 0) { - /* Flush everything before CUR. */ - r = flush_before_cur(&wb, aToStr); - if (r != NS_OK) - break; - } - } - } - - if (r == NS_OK) { - if (do_composition && wb.cur > 0 && wb.cclass[0] == 0) { - /* - * There is some characters left in WB. - * They are ordered, but not composed yet. - * Now CUR points just after the last character in WB, - * and since compose() tries to compose characters - * between top and CUR inclusive, we must make CUR - * one character back during compose(). - */ - wb.cur--; - compose(&wb); - wb.cur++; - } - /* - * Call this even when WB.CUR == 0, to make TO - * NUL-terminated. - */ - r = flush_before_cur(&wb, aToStr); - } - - workbuf_free(&wb); - - return (r); -} - -static nsresult -decompose(workbuf_t *wb, uint32_t c, int32_t compat) { - nsresult r; - int32_t dec_len; - -again: - r = mdn__unicode_decompose(compat, wb->ucs + wb->last, - wb->size - wb->last, c, &dec_len); - switch (r) { - case NS_OK: - wb->last += dec_len; - return (NS_OK); - case NS_SUCCESS_UNORM_NOTFOUND: - return (workbuf_append(wb, c)); - case NS_ERROR_UNORM_MOREOUTPUT: - if ((r = workbuf_extend(wb)) != NS_OK) - return (r); - if (wb->size > WORKBUF_SIZE_MAX) { - // "mdn__unormalize_form*: " "working buffer too large\n" - return (NS_ERROR_FAILURE); - } - goto again; - default: - return (r); - } - /* NOTREACHED */ -} - -static void -get_class(workbuf_t *wb) { - int32_t i; - - for (i = wb->cur; i < wb->last; i++) - wb->cclass[i] = canonclass(wb->ucs[i]); -} - -static void -reorder(workbuf_t *wb) { - uint32_t c; - int32_t i; - int32_t cclass; - - //assert(wb != nullptr); - - i = wb->cur; - c = wb->ucs[i]; - cclass = wb->cclass[i]; - - while (i > 0 && wb->cclass[i - 1] > cclass) { - wb->ucs[i] = wb->ucs[i - 1]; - wb->cclass[i] =wb->cclass[i - 1]; - i--; - wb->ucs[i] = c; - wb->cclass[i] = cclass; - } -} - -static void -compose(workbuf_t *wb) { - int32_t cur; - uint32_t *ucs; - int32_t *cclass; - int32_t last_class; - int32_t nvoids; - int32_t i; - - //assert(wb != nullptr && wb->cclass[0] == 0); - - cur = wb->cur; - ucs = wb->ucs; - cclass = wb->cclass; - - /* - * If there are no decomposition sequence that begins with - * the top character, composition is impossible. - */ - if (!mdn__unicode_iscompositecandidate(ucs[0])) - return; - - last_class = 0; - nvoids = 0; - for (i = 1; i <= cur; i++) { - uint32_t c; - int32_t cl = cclass[i]; - - if ((last_class < cl || cl == 0) && - mdn__unicode_compose(ucs[0], ucs[i], - &c) == NS_OK) { - /* - * Replace the top character with the composed one. - */ - ucs[0] = c; - cclass[0] = canonclass(c); - - cclass[i] = -1; /* void this character */ - nvoids++; - } else { - last_class = cl; - } - } - - /* Purge void characters, if any. */ - if (nvoids > 0) - workbuf_removevoid(wb); -} - -static nsresult -flush_before_cur(workbuf_t *wb, nsAString& aToStr) -{ - int32_t i; - - for (i = 0; i < wb->cur; i++) { - if (!IS_IN_BMP(wb->ucs[i])) { - aToStr.Append((char16_t)H_SURROGATE(wb->ucs[i])); - aToStr.Append((char16_t)L_SURROGATE(wb->ucs[i])); - } else { - aToStr.Append((char16_t)(wb->ucs[i])); - } - } - - workbuf_shift(wb, wb->cur); - - return (NS_OK); -} - -static void -workbuf_init(workbuf_t *wb) { - wb->cur = 0; - wb->last = 0; - wb->size = WORKBUF_SIZE; - wb->ucs = wb->ucs_buf; - wb->cclass = wb->class_buf; -} - -static void -workbuf_free(workbuf_t *wb) { - if (wb->ucs != wb->ucs_buf) { - free(wb->ucs); - free(wb->cclass); - } -} - static nsresult -workbuf_extend(workbuf_t *wb) { - int32_t newsize = wb->size * 3; - - if (wb->ucs == wb->ucs_buf) { - wb->ucs = (uint32_t*)moz_xmalloc(sizeof(wb->ucs[0]) * newsize); - if (!wb->ucs) - return NS_ERROR_OUT_OF_MEMORY; - wb->cclass = (int32_t*)moz_xmalloc(sizeof(wb->cclass[0]) * newsize); - if (!wb->cclass) { - free(wb->ucs); - wb->ucs = nullptr; - return NS_ERROR_OUT_OF_MEMORY; - } - } else { - void* buf = moz_xrealloc(wb->ucs, sizeof(wb->ucs[0]) * newsize); - if (!buf) - return NS_ERROR_OUT_OF_MEMORY; - wb->ucs = (uint32_t*)buf; - buf = moz_xrealloc(wb->cclass, sizeof(wb->cclass[0]) * newsize); - if (!buf) - return NS_ERROR_OUT_OF_MEMORY; - wb->cclass = (int32_t*)buf; - } - return (NS_OK); -} - -static nsresult -workbuf_append(workbuf_t *wb, uint32_t c) { - nsresult r; - - if (wb->last >= wb->size && (r = workbuf_extend(wb)) != NS_OK) - return (r); - wb->ucs[wb->last++] = c; - return (NS_OK); -} - -static void -workbuf_shift(workbuf_t *wb, int32_t shift) { - int32_t nmove; - - //assert(wb != nullptr && wb->cur >= shift); - - nmove = wb->last - shift; - memmove(&wb->ucs[0], &wb->ucs[shift], - nmove * sizeof(wb->ucs[0])); - memmove(&wb->cclass[0], &wb->cclass[shift], - nmove * sizeof(wb->cclass[0])); - wb->cur -= shift; - wb->last -= shift; -} - -static void -workbuf_removevoid(workbuf_t *wb) { - int32_t i, j; - int32_t last = wb->last; - - for (i = j = 0; i < last; i++) { - if (wb->cclass[i] >= 0) { - if (j < i) { - wb->ucs[j] = wb->ucs[i]; - wb->cclass[j] = wb->cclass[i]; - } - j++; - } - } - wb->cur -= last - j; - wb->last = j; -} - -nsresult -nsUnicodeNormalizer::NormalizeUnicodeNFD( const nsAString& aSrc, nsAString& aDest) -{ - return mdn_normalize(false, false, aSrc, aDest); -} - -nsresult -nsUnicodeNormalizer::NormalizeUnicodeNFC( const nsAString& aSrc, nsAString& aDest) -{ - return mdn_normalize(true, false, aSrc, aDest); -} - -nsresult -nsUnicodeNormalizer::NormalizeUnicodeNFKD( const nsAString& aSrc, nsAString& aDest) -{ - return mdn_normalize(false, true, aSrc, aDest); +DoNormalization(const UNormalizer2* aNorm, const nsAString& aSrc, + nsAString& aDest) +{ + UErrorCode errorCode = U_ZERO_ERROR; + const int32_t length = aSrc.Length(); + const UChar* src = reinterpret_cast<const UChar*>(aSrc.BeginReading()); + // Initial guess for a capacity that is likely to be enough for most cases. + int32_t capacity = length + (length >> 8) + 8; + do { + aDest.SetLength(capacity); + UChar* dest = reinterpret_cast<UChar*>(aDest.BeginWriting()); + int32_t len = unorm2_normalize(aNorm, src, aSrc.Length(), dest, capacity, + &errorCode); + if (U_SUCCESS(errorCode)) { + aDest.SetLength(len); + break; + } + if (errorCode == U_BUFFER_OVERFLOW_ERROR) { + // Buffer wasn't big enough; adjust to the reported size and try again. + capacity = len; + errorCode = U_ZERO_ERROR; + continue; + } + } while (false); + return ICUUtils::UErrorToNsResult(errorCode); +} + +nsresult +nsUnicodeNormalizer::NormalizeUnicodeNFD(const nsAString& aSrc, + nsAString& aDest) +{ + // The unorm2_getNF*Instance functions return static singletons that should + // not be deleted, so we just get them once on first use. + static UErrorCode errorCode = U_ZERO_ERROR; + static const UNormalizer2* norm = unorm2_getNFDInstance(&errorCode); + if (U_SUCCESS(errorCode)) { + return DoNormalization(norm, aSrc, aDest); + } + return ICUUtils::UErrorToNsResult(errorCode); } -nsresult -nsUnicodeNormalizer::NormalizeUnicodeNFKC( const nsAString& aSrc, nsAString& aDest) +nsresult +nsUnicodeNormalizer::NormalizeUnicodeNFC(const nsAString& aSrc, + nsAString& aDest) { - return mdn_normalize(true, true, aSrc, aDest); + static UErrorCode errorCode = U_ZERO_ERROR; + static const UNormalizer2* norm = unorm2_getNFCInstance(&errorCode); + if (U_SUCCESS(errorCode)) { + return DoNormalization(norm, aSrc, aDest); + } + return ICUUtils::UErrorToNsResult(errorCode); } -bool -nsUnicodeNormalizer::Compose(uint32_t a, uint32_t b, uint32_t *ab) +nsresult +nsUnicodeNormalizer::NormalizeUnicodeNFKD(const nsAString& aSrc, + nsAString& aDest) { - return mdn__unicode_compose(a, b, ab) == NS_OK; + static UErrorCode errorCode = U_ZERO_ERROR; + static const UNormalizer2* norm = unorm2_getNFKDInstance(&errorCode); + if (U_SUCCESS(errorCode)) { + return DoNormalization(norm, aSrc, aDest); + } + return ICUUtils::UErrorToNsResult(errorCode); } -bool -nsUnicodeNormalizer::DecomposeNonRecursively(uint32_t c, uint32_t *c1, uint32_t *c2) +nsresult +nsUnicodeNormalizer::NormalizeUnicodeNFKC(const nsAString& aSrc, + nsAString& aDest) { - // We can't use mdn__unicode_decompose here, because that does a recursive - // decomposition that may yield more than two characters, but the harfbuzz - // callback wants just a single-step decomp that is guaranteed to produce - // no more than two characters. So we do a low-level lookup in the table - // of decomp sequences. - const uint32_t *seq; - uint32_t seqidx = decompose_char(c, &seq); - if (seqidx == 0 || ((seqidx & DECOMP_COMPAT) != 0)) { - return false; - } - *c1 = *seq & ~END_BIT; - if (*seq & END_BIT) { - *c2 = 0; - } else { - *c2 = *++seq & ~END_BIT; + static UErrorCode errorCode = U_ZERO_ERROR; + static const UNormalizer2* norm = unorm2_getNFKCInstance(&errorCode); + if (U_SUCCESS(errorCode)) { + return DoNormalization(norm, aSrc, aDest); } - return true; + return ICUUtils::UErrorToNsResult(errorCode); } diff --git a/intl/unicharutil/nsUnicodeNormalizer.h b/intl/unicharutil/nsUnicodeNormalizer.h index 5d9f1fe24..e92e53f21 100644 --- a/intl/unicharutil/nsUnicodeNormalizer.h +++ b/intl/unicharutil/nsUnicodeNormalizer.h @@ -25,13 +25,6 @@ public: NS_IMETHOD NormalizeUnicodeNFKD( const nsAString& aSrc, nsAString& aDest) override; NS_IMETHOD NormalizeUnicodeNFKC( const nsAString& aSrc, nsAString& aDest) override; -#if !ENABLE_INTL_API - // Low-level access to the composition data needed for HarfBuzz callbacks; - // only required when ICU is not available in the build. - static bool Compose(uint32_t a, uint32_t b, uint32_t *ab); - static bool DecomposeNonRecursively(uint32_t comp, uint32_t *c1, uint32_t *c2); -#endif - private: virtual ~nsUnicodeNormalizer(); }; diff --git a/intl/unicharutil/nsUnicodeNormalizer_ICU.cpp b/intl/unicharutil/nsUnicodeNormalizer_ICU.cpp deleted file mode 100644 index 6f6c3d2dd..000000000 --- a/intl/unicharutil/nsUnicodeNormalizer_ICU.cpp +++ /dev/null @@ -1,98 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ - -/* This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#include "nsUnicodeNormalizer.h" -#include "ICUUtils.h" -#include "unicode/unorm2.h" -#include "unicode/utext.h" - -NS_IMPL_ISUPPORTS(nsUnicodeNormalizer, nsIUnicodeNormalizer) - -nsUnicodeNormalizer::nsUnicodeNormalizer() -{ -} - -nsUnicodeNormalizer::~nsUnicodeNormalizer() -{ -} - -static nsresult -DoNormalization(const UNormalizer2* aNorm, const nsAString& aSrc, - nsAString& aDest) -{ - UErrorCode errorCode = U_ZERO_ERROR; - const int32_t length = aSrc.Length(); - const UChar* src = reinterpret_cast<const UChar*>(aSrc.BeginReading()); - // Initial guess for a capacity that is likely to be enough for most cases. - int32_t capacity = length + (length >> 8) + 8; - do { - aDest.SetLength(capacity); - UChar* dest = reinterpret_cast<UChar*>(aDest.BeginWriting()); - int32_t len = unorm2_normalize(aNorm, src, aSrc.Length(), dest, capacity, - &errorCode); - if (U_SUCCESS(errorCode)) { - aDest.SetLength(len); - break; - } - if (errorCode == U_BUFFER_OVERFLOW_ERROR) { - // Buffer wasn't big enough; adjust to the reported size and try again. - capacity = len; - errorCode = U_ZERO_ERROR; - continue; - } - } while (false); - return ICUUtils::UErrorToNsResult(errorCode); -} - -nsresult -nsUnicodeNormalizer::NormalizeUnicodeNFD(const nsAString& aSrc, - nsAString& aDest) -{ - // The unorm2_getNF*Instance functions return static singletons that should - // not be deleted, so we just get them once on first use. - static UErrorCode errorCode = U_ZERO_ERROR; - static const UNormalizer2* norm = unorm2_getNFDInstance(&errorCode); - if (U_SUCCESS(errorCode)) { - return DoNormalization(norm, aSrc, aDest); - } - return ICUUtils::UErrorToNsResult(errorCode); -} - -nsresult -nsUnicodeNormalizer::NormalizeUnicodeNFC(const nsAString& aSrc, - nsAString& aDest) -{ - static UErrorCode errorCode = U_ZERO_ERROR; - static const UNormalizer2* norm = unorm2_getNFCInstance(&errorCode); - if (U_SUCCESS(errorCode)) { - return DoNormalization(norm, aSrc, aDest); - } - return ICUUtils::UErrorToNsResult(errorCode); -} - -nsresult -nsUnicodeNormalizer::NormalizeUnicodeNFKD(const nsAString& aSrc, - nsAString& aDest) -{ - static UErrorCode errorCode = U_ZERO_ERROR; - static const UNormalizer2* norm = unorm2_getNFKDInstance(&errorCode); - if (U_SUCCESS(errorCode)) { - return DoNormalization(norm, aSrc, aDest); - } - return ICUUtils::UErrorToNsResult(errorCode); -} - -nsresult -nsUnicodeNormalizer::NormalizeUnicodeNFKC(const nsAString& aSrc, - nsAString& aDest) -{ - static UErrorCode errorCode = U_ZERO_ERROR; - static const UNormalizer2* norm = unorm2_getNFKCInstance(&errorCode); - if (U_SUCCESS(errorCode)) { - return DoNormalization(norm, aSrc, aDest); - } - return ICUUtils::UErrorToNsResult(errorCode); -} diff --git a/intl/unicharutil/util/ICUUtils.cpp b/intl/unicharutil/util/ICUUtils.cpp index 2bb33d854..63d7cf453 100644 --- a/intl/unicharutil/util/ICUUtils.cpp +++ b/intl/unicharutil/util/ICUUtils.cpp @@ -3,7 +3,6 @@ * You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifdef MOZILLA_INTERNAL_API -#ifdef ENABLE_INTL_API #include "ICUUtils.h" #include "mozilla/Preferences.h" @@ -279,6 +278,5 @@ ICUUtils::ToICUString(nsAString& aMozString, UnicodeString& aICUString) } #endif -#endif /* ENABLE_INTL_API */ #endif /* MOZILLA_INTERNAL_API */ diff --git a/intl/unicharutil/util/ICUUtils.h b/intl/unicharutil/util/ICUUtils.h index 1fa8d4cc0..9f5fbd856 100644 --- a/intl/unicharutil/util/ICUUtils.h +++ b/intl/unicharutil/util/ICUUtils.h @@ -6,9 +6,6 @@ #ifndef mozilla_ICUUtils_h__ #define mozilla_ICUUtils_h__ -// We only build the ICU utils if we're building ICU: -#ifdef ENABLE_INTL_API - // The ICU utils implementation needs internal things like XPCOM strings and // nsGkAtom, so we only build when included into internal libs: #ifdef MOZILLA_INTERNAL_API @@ -107,7 +104,6 @@ public: #endif }; -#endif /* ENABLE_INTL_API */ #endif /* MOZILLA_INTERNAL_API */ #endif /* mozilla_ICUUtils_h__ */ diff --git a/intl/unicharutil/util/moz.build b/intl/unicharutil/util/moz.build index 97547536b..02f50ab0e 100644 --- a/intl/unicharutil/util/moz.build +++ b/intl/unicharutil/util/moz.build @@ -39,7 +39,6 @@ if CONFIG['_MSC_VER']: CFLAGS += ['-Zl'] CXXFLAGS += ['-Zl'] -if CONFIG['ENABLE_INTL_API']: - USE_LIBS += ['icu'] +USE_LIBS += ['icu'] DIST_INSTALL = True diff --git a/intl/unicharutil/util/nsUnicodeProperties.cpp b/intl/unicharutil/util/nsUnicodeProperties.cpp index 9aa5ef8e3..71f684f0e 100644 --- a/intl/unicharutil/util/nsUnicodeProperties.cpp +++ b/intl/unicharutil/util/nsUnicodeProperties.cpp @@ -13,30 +13,6 @@ #define UNICODE_BMP_LIMIT 0x10000 #define UNICODE_LIMIT 0x110000 -#ifndef ENABLE_INTL_API -static const nsCharProps1& -GetCharProps1(uint32_t aCh) -{ - if (aCh < UNICODE_BMP_LIMIT) { - return sCharProp1Values[sCharProp1Pages[0][aCh >> kCharProp1CharBits]] - [aCh & ((1 << kCharProp1CharBits) - 1)]; - } - if (aCh < (kCharProp1MaxPlane + 1) * 0x10000) { - return sCharProp1Values[sCharProp1Pages[sCharProp1Planes[(aCh >> 16) - 1]] - [(aCh & 0xffff) >> kCharProp1CharBits]] - [aCh & ((1 << kCharProp1CharBits) - 1)]; - } - - // Default values for unassigned - static const nsCharProps1 undefined = { - 0, // Index to mirrored char offsets - 0, // Hangul Syllable type - 0 // Combining class - }; - return undefined; -} -#endif - const nsCharProps2& GetCharProps2(uint32_t aCh) { @@ -54,19 +30,8 @@ GetCharProps2(uint32_t aCh) // Default values for unassigned using namespace mozilla::unicode; static const nsCharProps2 undefined = { -#if ENABLE_INTL_API VERTICAL_ORIENTATION_R, XIDMOD_NOT_CHARS -#else - uint8_t(Script::UNKNOWN), - PAIRED_BRACKET_TYPE_NONE, - 0, // EastAsianWidthFWH - HB_UNICODE_GENERAL_CATEGORY_UNASSIGNED, - eCharType_LeftToRight, - XIDMOD_NOT_CHARS, - -1, // Numeric Value - VERTICAL_ORIENTATION_R -#endif }; return undefined; } @@ -133,7 +98,6 @@ const nsIUGenCategory::nsUGenCategory sDetailedToGeneralCategory[] = { /* SPACE_SEPARATOR */ nsIUGenCategory::kSeparator }; -#ifdef ENABLE_INTL_API const hb_unicode_general_category_t sICUtoHBcategory[U_CHAR_CATEGORY_COUNT] = { HB_UNICODE_GENERAL_CATEGORY_UNASSIGNED, // U_GENERAL_OTHER_TYPES = 0, HB_UNICODE_GENERAL_CATEGORY_UPPERCASE_LETTER, // U_UPPERCASE_LETTER = 1, @@ -166,141 +130,6 @@ const hb_unicode_general_category_t sICUtoHBcategory[U_CHAR_CATEGORY_COUNT] = { HB_UNICODE_GENERAL_CATEGORY_INITIAL_PUNCTUATION, // U_INITIAL_PUNCTUATION = 28, HB_UNICODE_GENERAL_CATEGORY_FINAL_PUNCTUATION, // U_FINAL_PUNCTUATION = 29, }; -#endif - -#if !ENABLE_INTL_API -uint8_t GetGeneralCategory(uint32_t aCh) { - return GetCharProps2(aCh).mCategory; -} - -nsCharType GetBidiCat(uint32_t aCh) { - return nsCharType(GetCharProps2(aCh).mBidiCategory); -} - -int8_t GetNumericValue(uint32_t aCh) { - return GetCharProps2(aCh).mNumericValue; -} - -uint32_t -GetMirroredChar(uint32_t aCh) -{ - return aCh + sMirrorOffsets[GetCharProps1(aCh).mMirrorOffsetIndex]; -} - -bool -HasMirroredChar(uint32_t aCh) -{ - return GetCharProps1(aCh).mMirrorOffsetIndex != 0; -} - -uint8_t -GetCombiningClass(uint32_t aCh) -{ - return GetCharProps1(aCh).mCombiningClass; -} - -uint8_t -GetLineBreakClass(uint32_t aCh) -{ - return GetCharProps2(aCh).mLineBreak; -} - -Script -GetScriptCode(uint32_t aCh) -{ - return Script(GetCharProps2(aCh).mScriptCode); -} - -uint32_t -GetScriptTagForCode(Script aScriptCode) -{ - // this will safely return 0 for negative script codes, too :) - if (static_cast<uint32_t>(aScriptCode) > ArrayLength(sScriptCodeToTag)) { - return 0; - } - return sScriptCodeToTag[static_cast<uint32_t>(aScriptCode)]; -} - -PairedBracketType GetPairedBracketType(uint32_t aCh) -{ - return PairedBracketType(GetCharProps2(aCh).mPairedBracketType); -} - -uint32_t GetPairedBracket(uint32_t aCh) -{ - return GetPairedBracketType(aCh) != PAIRED_BRACKET_TYPE_NONE - ? GetMirroredChar(aCh) : aCh; -} - -static inline uint32_t -GetCaseMapValue(uint32_t aCh) -{ - if (aCh < UNICODE_BMP_LIMIT) { - return sCaseMapValues[sCaseMapPages[0][aCh >> kCaseMapCharBits]] - [aCh & ((1 << kCaseMapCharBits) - 1)]; - } - if (aCh < (kCaseMapMaxPlane + 1) * 0x10000) { - return sCaseMapValues[sCaseMapPages[sCaseMapPlanes[(aCh >> 16) - 1]] - [(aCh & 0xffff) >> kCaseMapCharBits]] - [aCh & ((1 << kCaseMapCharBits) - 1)]; - } - return 0; -} - -uint32_t -GetUppercase(uint32_t aCh) -{ - uint32_t mapValue = GetCaseMapValue(aCh); - if (mapValue & (kLowerToUpper | kTitleToUpper)) { - return aCh ^ (mapValue & kCaseMapCharMask); - } - if (mapValue & kLowerToTitle) { - return GetUppercase(aCh ^ (mapValue & kCaseMapCharMask)); - } - return aCh; -} - -uint32_t -GetLowercase(uint32_t aCh) -{ - uint32_t mapValue = GetCaseMapValue(aCh); - if (mapValue & kUpperToLower) { - return aCh ^ (mapValue & kCaseMapCharMask); - } - if (mapValue & kTitleToUpper) { - return GetLowercase(aCh ^ (mapValue & kCaseMapCharMask)); - } - return aCh; -} - -uint32_t -GetTitlecaseForLower(uint32_t aCh) -{ - uint32_t mapValue = GetCaseMapValue(aCh); - if (mapValue & (kLowerToTitle | kLowerToUpper)) { - return aCh ^ (mapValue & kCaseMapCharMask); - } - return aCh; -} - -uint32_t -GetTitlecaseForAll(uint32_t aCh) -{ - uint32_t mapValue = GetCaseMapValue(aCh); - if (mapValue & (kLowerToTitle | kLowerToUpper)) { - return aCh ^ (mapValue & kCaseMapCharMask); - } - if (mapValue & kUpperToLower) { - return GetTitlecaseForLower(aCh ^ (mapValue & kCaseMapCharMask)); - } - return aCh; -} - -bool IsEastAsianWidthFWH(uint32_t aCh) -{ - return GetCharProps2(aCh).mEastAsianWidthFWH; -} -#endif #define DEFINE_BMP_1PLANE_MAPPING_GET_FUNC(prefix_) \ uint32_t Get##prefix_(uint32_t aCh) \ @@ -329,31 +158,18 @@ IsClusterExtender(uint32_t aCh, uint8_t aCategory) } enum HSType { -#if ENABLE_INTL_API HST_NONE = U_HST_NOT_APPLICABLE, HST_L = U_HST_LEADING_JAMO, HST_V = U_HST_VOWEL_JAMO, HST_T = U_HST_TRAILING_JAMO, HST_LV = U_HST_LV_SYLLABLE, HST_LVT = U_HST_LVT_SYLLABLE -#else - HST_NONE = 0x00, - HST_L = 0x01, - HST_V = 0x02, - HST_T = 0x04, - HST_LV = 0x03, - HST_LVT = 0x07 -#endif }; static HSType GetHangulSyllableType(uint32_t aCh) { -#if ENABLE_INTL_API return HSType(u_getIntPropertyValue(aCh, UCHAR_HANGUL_SYLLABLE_TYPE)); -#else - return HSType(GetCharProps1(aCh).mHangulType); -#endif } void diff --git a/intl/unicharutil/util/nsUnicodeProperties.h b/intl/unicharutil/util/nsUnicodeProperties.h index ba5526a4d..303582f99 100644 --- a/intl/unicharutil/util/nsUnicodeProperties.h +++ b/intl/unicharutil/util/nsUnicodeProperties.h @@ -12,10 +12,8 @@ #include "nsUnicodeScriptCodes.h" #include "harfbuzz/hb.h" -#if ENABLE_INTL_API #include "unicode/uchar.h" #include "unicode/uscript.h" -#endif const nsCharProps2& GetCharProps2(uint32_t aCh); @@ -56,7 +54,7 @@ enum XidmodType { XIDMOD_NOT_CHARS }; -#if ENABLE_INTL_API // ICU is available, so simply forward to its API +// ICU is available, so simply forward to its API extern const hb_unicode_general_category_t sICUtoHBcategory[]; @@ -172,47 +170,6 @@ IsEastAsianWidthFWH(uint32_t aCh) return false; } -#else // not ENABLE_INTL_API - -// Return whether the char has a mirrored-pair counterpart. -uint32_t GetMirroredChar(uint32_t aCh); - -bool HasMirroredChar(uint32_t aChr); - -uint8_t GetCombiningClass(uint32_t aCh); - -// returns the detailed General Category in terms of HB_UNICODE_* values -uint8_t GetGeneralCategory(uint32_t aCh); - -nsCharType GetBidiCat(uint32_t aCh); - -uint8_t GetLineBreakClass(uint32_t aCh); - -Script GetScriptCode(uint32_t aCh); - -uint32_t GetScriptTagForCode(Script aScriptCode); - -PairedBracketType GetPairedBracketType(uint32_t aCh); -uint32_t GetPairedBracket(uint32_t aCh); - -/** - * Return the numeric value of the character. The value returned is the value - * of the Numeric_Value in field 7 of the UCD, or -1 if field 7 is empty. - * To restrict to decimal digits, the caller should also check whether - * GetGeneralCategory returns HB_UNICODE_GENERAL_CATEGORY_DECIMAL_NUMBER - */ -int8_t GetNumericValue(uint32_t aCh); - -uint32_t GetUppercase(uint32_t aCh); -uint32_t GetLowercase(uint32_t aCh); -uint32_t GetTitlecaseForLower(uint32_t aCh); // maps LC to titlecase, UC unchanged -uint32_t GetTitlecaseForAll(uint32_t aCh); // maps both UC and LC to titlecase - -// Return whether the char has EastAsianWidth class F or W or H. -bool IsEastAsianWidthFWH(uint32_t aCh); - -#endif // !ENABLE_INTL_API - // returns the simplified Gen Category as defined in nsIUGenCategory inline nsIUGenCategory::nsUGenCategory GetGenCategory(uint32_t aCh) { return sDetailedToGeneralCategory[GetGeneralCategory(aCh)]; diff --git a/intl/unicharutil/util/nsUnicodePropertyData.cpp b/intl/unicharutil/util/nsUnicodePropertyData.cpp index f8b5a02bc..f3d63908e 100644 --- a/intl/unicharutil/util/nsUnicodePropertyData.cpp +++ b/intl/unicharutil/util/nsUnicodePropertyData.cpp @@ -68,380 +68,6 @@ Standard. #include <stdint.h> #include "harfbuzz/hb.h" -#if !ENABLE_INTL_API -static const uint32_t sScriptCodeToTag[] = { - HB_TAG('Z','y','y','y'), - HB_TAG('Z','i','n','h'), - HB_TAG('A','r','a','b'), - HB_TAG('A','r','m','n'), - HB_TAG('B','e','n','g'), - HB_TAG('B','o','p','o'), - HB_TAG('C','h','e','r'), - HB_TAG('C','o','p','t'), - HB_TAG('C','y','r','l'), - HB_TAG('D','s','r','t'), - HB_TAG('D','e','v','a'), - HB_TAG('E','t','h','i'), - HB_TAG('G','e','o','r'), - HB_TAG('G','o','t','h'), - HB_TAG('G','r','e','k'), - HB_TAG('G','u','j','r'), - HB_TAG('G','u','r','u'), - HB_TAG('H','a','n','i'), - HB_TAG('H','a','n','g'), - HB_TAG('H','e','b','r'), - HB_TAG('H','i','r','a'), - HB_TAG('K','n','d','a'), - HB_TAG('K','a','n','a'), - HB_TAG('K','h','m','r'), - HB_TAG('L','a','o','o'), - HB_TAG('L','a','t','n'), - HB_TAG('M','l','y','m'), - HB_TAG('M','o','n','g'), - HB_TAG('M','y','m','r'), - HB_TAG('O','g','a','m'), - HB_TAG('I','t','a','l'), - HB_TAG('O','r','y','a'), - HB_TAG('R','u','n','r'), - HB_TAG('S','i','n','h'), - HB_TAG('S','y','r','c'), - HB_TAG('T','a','m','l'), - HB_TAG('T','e','l','u'), - HB_TAG('T','h','a','a'), - HB_TAG('T','h','a','i'), - HB_TAG('T','i','b','t'), - HB_TAG('C','a','n','s'), - HB_TAG('Y','i','i','i'), - HB_TAG('T','g','l','g'), - HB_TAG('H','a','n','o'), - HB_TAG('B','u','h','d'), - HB_TAG('T','a','g','b'), - HB_TAG('B','r','a','i'), - HB_TAG('C','p','r','t'), - HB_TAG('L','i','m','b'), - HB_TAG('L','i','n','b'), - HB_TAG('O','s','m','a'), - HB_TAG('S','h','a','w'), - HB_TAG('T','a','l','e'), - HB_TAG('U','g','a','r'), - HB_TAG('H','r','k','t'), - HB_TAG('B','u','g','i'), - HB_TAG('G','l','a','g'), - HB_TAG('K','h','a','r'), - HB_TAG('S','y','l','o'), - HB_TAG('T','a','l','u'), - HB_TAG('T','f','n','g'), - HB_TAG('X','p','e','o'), - HB_TAG('B','a','l','i'), - HB_TAG('B','a','t','k'), - HB_TAG('B','l','i','s'), - HB_TAG('B','r','a','h'), - HB_TAG('C','h','a','m'), - HB_TAG('C','i','r','t'), - HB_TAG('C','y','r','s'), - HB_TAG('E','g','y','d'), - HB_TAG('E','g','y','h'), - HB_TAG('E','g','y','p'), - HB_TAG('G','e','o','k'), - HB_TAG('H','a','n','s'), - HB_TAG('H','a','n','t'), - HB_TAG('H','m','n','g'), - HB_TAG('H','u','n','g'), - HB_TAG('I','n','d','s'), - HB_TAG('J','a','v','a'), - HB_TAG('K','a','l','i'), - HB_TAG('L','a','t','f'), - HB_TAG('L','a','t','g'), - HB_TAG('L','e','p','c'), - HB_TAG('L','i','n','a'), - HB_TAG('M','a','n','d'), - HB_TAG('M','a','y','a'), - HB_TAG('M','e','r','o'), - HB_TAG('N','k','o','o'), - HB_TAG('O','r','k','h'), - HB_TAG('P','e','r','m'), - HB_TAG('P','h','a','g'), - HB_TAG('P','h','n','x'), - HB_TAG('P','l','r','d'), - HB_TAG('R','o','r','o'), - HB_TAG('S','a','r','a'), - HB_TAG('S','y','r','e'), - HB_TAG('S','y','r','j'), - HB_TAG('S','y','r','n'), - HB_TAG('T','e','n','g'), - HB_TAG('V','a','i','i'), - HB_TAG('V','i','s','p'), - HB_TAG('X','s','u','x'), - HB_TAG('Z','x','x','x'), - HB_TAG('Z','z','z','z'), - HB_TAG('C','a','r','i'), - HB_TAG('J','p','a','n'), - HB_TAG('L','a','n','a'), - HB_TAG('L','y','c','i'), - HB_TAG('L','y','d','i'), - HB_TAG('O','l','c','k'), - HB_TAG('R','j','n','g'), - HB_TAG('S','a','u','r'), - HB_TAG('S','g','n','w'), - HB_TAG('S','u','n','d'), - HB_TAG('M','o','o','n'), - HB_TAG('M','t','e','i'), - HB_TAG('A','r','m','i'), - HB_TAG('A','v','s','t'), - HB_TAG('C','a','k','m'), - HB_TAG('K','o','r','e'), - HB_TAG('K','t','h','i'), - HB_TAG('M','a','n','i'), - HB_TAG('P','h','l','i'), - HB_TAG('P','h','l','p'), - HB_TAG('P','h','l','v'), - HB_TAG('P','r','t','i'), - HB_TAG('S','a','m','r'), - HB_TAG('T','a','v','t'), - HB_TAG('Z','m','t','h'), - HB_TAG('Z','s','y','m'), - HB_TAG('B','a','m','u'), - HB_TAG('L','i','s','u'), - HB_TAG('N','k','g','b'), - HB_TAG('S','a','r','b'), - HB_TAG('B','a','s','s'), - HB_TAG('D','u','p','l'), - HB_TAG('E','l','b','a'), - HB_TAG('G','r','a','n'), - HB_TAG('K','p','e','l'), - HB_TAG('L','o','m','a'), - HB_TAG('M','e','n','d'), - HB_TAG('M','e','r','c'), - HB_TAG('N','a','r','b'), - HB_TAG('N','b','a','t'), - HB_TAG('P','a','l','m'), - HB_TAG('S','i','n','d'), - HB_TAG('W','a','r','a'), - HB_TAG('A','f','a','k'), - HB_TAG('J','u','r','c'), - HB_TAG('M','r','o','o'), - HB_TAG('N','s','h','u'), - HB_TAG('S','h','r','d'), - HB_TAG('S','o','r','a'), - HB_TAG('T','a','k','r'), - HB_TAG('T','a','n','g'), - HB_TAG('W','o','l','e'), - HB_TAG('H','l','u','w'), - HB_TAG('K','h','o','j'), - HB_TAG('T','i','r','h'), - HB_TAG('A','g','h','b'), - HB_TAG('M','a','h','j'), - HB_TAG('A','h','o','m'), - HB_TAG('H','a','t','r'), - HB_TAG('M','o','d','i'), - HB_TAG('M','u','l','t'), - HB_TAG('P','a','u','c'), - HB_TAG('S','i','d','d') -}; -#endif - -#if !ENABLE_INTL_API -static const int16_t sMirrorOffsets[] = { - 0, - 1, - -1, - 2, - -2, - 16, - -16, - 3, - -3, - 2016, - 138, - 1824, - 2104, - 2108, - 2106, - -138, - 8, - 7, - -8, - -7, - -1824, - -2016, - -2104, - -2106, - -2108 -}; -#endif - - -#if !ENABLE_INTL_API -#define kCharProp1MaxPlane 1 -#define kCharProp1IndexBits 11 -#define kCharProp1CharBits 5 -static const uint8_t sCharProp1Planes[1] = {1}; - -static const uint8_t sCharProp1Pages[2][2048] = { - {0,1,2,2,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,5,6,7,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,9,10,11,0,12,0,13,14,0,0,15,16,17,18,19,0,0,0,0,20,21,22,23,0,0,0,0,24,0,25,26,0,0,25,27,0,0,25,27,0,0,25,27,0,0,25,27,0,0,0,27,0,0,0,28,0,0,25,27,0,0,0,27,0,0,0,29,0,0,30,31,0,0,32,33,0,34,35,0,36,37,0,38,0,0,39,0,0,40,0,0,0,41,41,41,42,42,43,44,44,0,0,0,0,0,0,0,0,0,0,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46,0,0,0,47,47,0,0,0,0,48,0,0,0,0,0,0,49,0,0,0,50,0,0,0,0,0,0,51,0,0,52,0,53,0,0,0,54,55,56,0,57,0,58,0,59,0,0,0,0,60,61,0,0,0,0,0,0,62,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,65,66,67,0,68,69,0,0,0,0,0,0,0,0,70,71,72,73,74,75,76,77,78,79,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,0,0,81,82,0,0,0,0,0,0,0,0,0,0,0,0,83,84,85,86,0,87,0,88,89,90,91,92,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,93,0,0,0,94,0,0,0,95,96,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,98,99,0,0,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,101,102,0,0,103,0,0,0,0,0,0,0,0,104,0,0,0,0,0,55,105,0,106,107,108,0,109,110,0,0,0,0,0,0,111,112,113,0,0,0,0,0,0,0,27,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,120,114,115,116,117,118,119,121,122,123,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,124,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,125,126,127,0,0,0,0,1,2,128,129,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,130,0,0,0,0,0,0,0,131,0,0,0,132,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,133,134,0,0,0,0,0,135,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,104,94,0,136,0,0,137,138,0,109,0,0,139,0,0,140,0,0,0,0,0,141,0,25,27,142,0,0,0,0,0,0,0,0,0,0,143,0,0,0,0,0,0,94,144,0,0,94,0,0,0,145,0,0,0,146,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,147,0,148,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,149,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,150,151,152,0,0,0,0,153,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,154,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} -}; - -static const nsCharProps1 sCharProp1Values[155][32] = { - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {3,0,0}, {0,0,0}, {4,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {3,0,0}, {0,0,0}, {4,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {5,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {6,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,232}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,232}, {0,0,216}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,220},}, - {{0,0,220}, {0,0,202}, {0,0,202}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,202}, {0,0,202}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,1}, {0,0,1}, {0,0,1}, {0,0,1}, {0,0,1}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,230}, {0,0,230}, {0,0,230},}, - {{0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,240}, {0,0,230}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,220}, {0,0,220}, {0,0,0}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,230}, {0,0,232}, {0,0,220}, {0,0,220}, {0,0,230}, {0,0,233}, {0,0,234}, {0,0,234}, {0,0,233},}, - {{0,0,234}, {0,0,234}, {0,0,233}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,220}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,220}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,222}, {0,0,220}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230},}, - {{0,0,230}, {0,0,230}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,230}, {0,0,230}, {0,0,220}, {0,0,230}, {0,0,230}, {0,0,222}, {0,0,228}, {0,0,230}, {0,0,10}, {0,0,11}, {0,0,12}, {0,0,13}, {0,0,14}, {0,0,15}, {0,0,16}, {0,0,17}, {0,0,18}, {0,0,19}, {0,0,19}, {0,0,20}, {0,0,21}, {0,0,22}, {0,0,0}, {0,0,23},}, - {{0,0,0}, {0,0,24}, {0,0,25}, {0,0,0}, {0,0,230}, {0,0,220}, {0,0,0}, {0,0,18}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,30}, {0,0,31}, {0,0,32}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,27}, {0,0,28}, {0,0,29}, {0,0,30}, {0,0,31}, {0,0,32}, {0,0,33}, {0,0,34}, {0,0,230}, {0,0,230}, {0,0,220}, {0,0,220}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,220}, {0,0,230}, {0,0,230}, {0,0,220},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,35}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,0}, {0,0,0}, {0,0,230},}, - {{0,0,230}, {0,0,230}, {0,0,230}, {0,0,220}, {0,0,230}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,230}, {0,0,0}, {0,0,220}, {0,0,230}, {0,0,230}, {0,0,220}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,36}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,220}, {0,0,230}, {0,0,230}, {0,0,220}, {0,0,230}, {0,0,230}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,230}, {0,0,220}, {0,0,220}, {0,0,230}, {0,0,220}, {0,0,230},}, - {{0,0,230}, {0,0,230}, {0,0,220}, {0,0,230}, {0,0,220}, {0,0,230}, {0,0,220}, {0,0,230}, {0,0,220}, {0,0,230}, {0,0,230}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,220}, {0,0,230}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,0}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230},}, - {{0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,0}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,0}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,220}, {0,0,230}, {0,0,230}, {0,0,220}, {0,0,230}, {0,0,230}, {0,0,220}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,27}, {0,0,28}, {0,0,29}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,220}, {0,0,230}, {0,0,230}, {0,0,220}, {0,0,220}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,7}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,9}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,220}, {0,0,230}, {0,0,230}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,9}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,9}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,84}, {0,0,91}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,9}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,103}, {0,0,103}, {0,0,9}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,107}, {0,0,107}, {0,0,107}, {0,0,107}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,118}, {0,0,118}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,122}, {0,0,122}, {0,0,122}, {0,0,122}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,220}, {0,0,220}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,220}, {0,0,0}, {0,0,220}, {0,0,0}, {0,0,216}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,129}, {0,0,130}, {0,0,0}, {0,0,132}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,130}, {0,0,130}, {0,0,130}, {0,0,130}, {0,0,0}, {0,0,0},}, - {{0,0,130}, {0,0,0}, {0,0,230}, {0,0,230}, {0,0,9}, {0,0,0}, {0,0,230}, {0,0,230}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,220}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,7}, {0,0,0}, {0,0,9}, {0,0,9}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,220}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0},}, - {{0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0},}, - {{0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0},}, - {{0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,230}, {0,0,230},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,9}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,9}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,228}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,222}, {0,0,230}, {0,0,220}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,220}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,9}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,0}, {0,0,0}, {0,0,220},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,230}, {0,0,230}, {0,0,220}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,7}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,9}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,220}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,9}, {0,0,9}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,7}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,9}, {0,0,9}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,7}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,0}, {0,0,1}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,230}, {0,0,230}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,220},}, - {{0,0,230}, {0,0,0}, {0,0,1}, {0,0,1}, {0,0,1}, {0,0,1}, {0,0,1}, {0,0,1}, {0,0,1}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,220}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,230}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,230}, {0,0,230}, {0,0,220}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,220}, {0,0,230}, {0,0,230}, {0,0,234}, {0,0,214}, {0,0,220}, {0,0,202}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230},}, - {{0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,233}, {0,0,220}, {0,0,230}, {0,0,220},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,230}, {0,0,1}, {0,0,1}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,1}, {0,0,1}, {0,0,1}, {0,0,230}, {0,0,230}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,230}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,1}, {0,0,1}, {0,0,230}, {0,0,220}, {0,0,230}, {0,0,1}, {0,0,1}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,230}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {7,0,0}, {7,0,0}, {7,0,0}, {8,0,0}, {8,0,0}, {8,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {9,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {10,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0},}, - {{1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {11,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {12,0,0}, {0,0,0}, {13,0,0}, {14,0,0}, {0,0,0}, {14,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {15,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0},}, - {{1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {16,0,0}, {16,0,0}, {16,0,0}, {0,0,0}, {17,0,0}, {17,0,0}, {0,0,0}, {0,0,0}, {18,0,0}, {18,0,0}, {18,0,0}, {19,0,0}, {19,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {3,0,0}, {0,0,0}, {4,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {7,0,0}, {1,0,0}, {2,0,0}, {8,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {20,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {21,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {1,0,0},}, - {{2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0},}, - {{2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {22,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {23,0,0}, {24,0,0}, {23,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,9},}, - {{0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230},}, - {{0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0},}, - {{1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,218}, {0,0,228}, {0,0,232}, {0,0,222}, {0,0,224}, {0,0,224}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,8}, {0,0,8}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,230},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,230}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,9}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,9}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,1,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,7}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,9}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,0}, {0,0,230}, {0,0,230}, {0,0,220}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,230}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,230},}, - {{0,0,0}, {0,0,230}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,9}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,3,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,3,0}, {0,7,0}, {0,7,0}, {0,7,0},}, - {{0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,3,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0},}, - {{0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,3,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0},}, - {{0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,3,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0},}, - {{0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,3,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0},}, - {{0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,3,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0},}, - {{0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,3,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,7,0},}, - {{0,7,0}, {0,7,0}, {0,7,0}, {0,7,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0},}, - {{0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,2,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0},}, - {{0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,4,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,26}, {0,0,0},}, - {{0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,230}, {0,0,230}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {1,0,0}, {2,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {3,0,0}, {0,0,0}, {4,0,0}, {0,0,0}, {1,0,0},}, - {{2,0,0}, {0,0,0}, {1,0,0}, {2,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,220}, {0,0,0}, {0,0,0},}, - {{0,0,220}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,220}, {0,0,0}, {0,0,230}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,1}, {0,0,220}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,9},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,220}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,9}, {0,0,7}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,230}, {0,0,230}, {0,0,230}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,9}, {0,0,9}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,9}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,7}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,9}, {0,0,7}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,7}, {0,0,9}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,9}, {0,0,7}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,7}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,9}, {0,0,7}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,9}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,1}, {0,0,1}, {0,0,1}, {0,0,1}, {0,0,1}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,1}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,216}, {0,0,216}, {0,0,1}, {0,0,1}, {0,0,1}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,226}, {0,0,216}, {0,0,216}, {0,0,216}, {0,0,216}, {0,0,216}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,220},}, - {{0,0,220}, {0,0,220}, {0,0,220}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,220}, {0,0,220}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,230}, {0,0,230}, {0,0,230}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},}, - {{0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,220}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0}, {0,0,0},} -}; -#endif - -#if ENABLE_INTL_API #define kCharProp2MaxPlane 16 #define kCharProp2IndexBits 9 #define kCharProp2CharBits 7 @@ -674,1033 +300,6 @@ static const nsCharProps2 sCharProp2Values[216][128] = { {{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10}}, {{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,10},{1,12},{1,12},{1,12},{1,12},{1,12},{1,12},{1,12},{1,12},{1,12},{1,12},{1,12},{1,12},{1,12},{1,12},{1,12},{1,12}} }; -#endif - -#if !ENABLE_INTL_API -#define kCharProp2MaxPlane 16 -#define kCharProp2IndexBits 12 -#define kCharProp2CharBits 4 -static const uint8_t sCharProp2Planes[16] = {1,2,3,4,4,4,4,4,4,4,4,4,4,5,6,6}; - -static const uint16_t sCharProp2Pages[7][4096] = { - {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,16,16,17,18,16,16,19,20,21,22,23,24,25,26,27,16,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,59,59,60,60,60,61,61,62,63,63,63,64,63,63,63,63,63,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,81,82,83,84,85,86,81,81,81,81,87,88,89,90,91,92,93,94,81,81,81,95,95,96,97,98,99,100,101,102,103,104,105,106,107,108,108,108,108,109,110,111,111,112,113,114,115,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,194,195,196,197,198,198,199,200,201,202,203,204,198,198,205,206,207,208,209,210,211,212,213,214,215,216,217,218,198,198,219,219,220,221,222,223,224,225,226,227,228,228,229,230,230,231,232,232,232,232,232,233,234,235,235,235,236,237,237,237,237,237,238,238,238,238,239,240,238,238,239,238,238,241,242,243,238,238,238,242,238,238,238,244,245,246,238,247,248,248,248,248,248,249,250,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,252,251,253,254,255,255,255,255,256,257,258,259,260,261,262,263,264,265,266,266,267,268,269,270,271,272,273,274,275,275,276,275,275,277,275,275,278,251,251,251,251,279,280,281,282,283,284,285,286,287,288,288,289,288,290,291,292,292,293,294,295,295,295,296,297,298,299,299,300,301,198,198,198,198,302,303,303,304,305,306,307,308,309,310,311,312,313,313,314,315,316,316,317,318,319,320,321,322,198,198,198,198,323,324,325,326,37,37,327,328,329,330,331,332,37,333,334,335,336,337,338,339,16,16,16,16,16,16,16,16,16,340,16,16,16,16,16,341,342,343,342,342,343,344,342,345,346,346,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,379,382,383,384,385,386,387,388,389,390,391,392,393,394,390,390,395,390,396,397,398,399,400,400,400,401,402,403,390,404,405,406,407,408,402,402,409,410,411,410,412,413,414,415,416,416,416,416,417,418,419,419,419,419,420,419,419,421,419,422,423,424,425,426,427,428,429,430,402,431,432,402,433,434,402,435,436,437,438,439,440,441,442,402,402,402,402,443,444,445,446,447,379,379,448,390,449,390,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,450,390,390,390,390,390,390,390,390,451,452,390,390,390,453,390,454,455,390,390,390,390,390,390,456,390,390,390,390,390,455,390,390,379,457,402,390,458,459,379,460,379,461,379,462,463,464,465,410,466,466,467,468,468,469,470,471,472,472,472,472,472,472,473,474,475,475,476,477,477,477,478,479,238,480,481,481,481,481,482,482,483,484,485,486,487,198,198,198,488,489,488,488,488,488,488,490,491,491,491,491,491,491,491,491,491,491,491,491,491,492,410,493,494,495,496,497,498,499,500,499,501,502,503,504,505,504,506,507,508,509,510,511,512,512,513,512,514,515,509,516,517,517,518,519,520,521,522,523,524,525,520,526,522,523,523,527,528,529,529,530,531,531,531,531,531,532,523,533,523,523,523,523,523,534,523,535,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,537,402,402,402,402,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,537,538,538,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,541,542,542,542,543,544,544,545,546,546,546,546,546,546,546,546,546,546,546,546,546,546,546,546,547,546,548,198,61,61,549,550,61,551,552,552,552,552,553,554,42,555,556,557,558,558,558,559,560,561,562,563,198,198,198,564,565,566,567,568,569,569,569,570,571,572,572,573,574,575,576,577,578,579,580,581,582,583,232,584,585,586,586,587,588,589,590,591,592,592,593,594,595,596,219,597,598,598,598,599,600,601,602,603,604,605,481,606,606,607,608,609,609,609,609,609,610,610,611,612,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,617,615,613,614,615,616,615,618,235,619,237,237,620,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,624,625,626,623,623,623,627,623,623,623,623,623,623,628,538,538,629,630,631,632,633,634,634,634,634,634,634,635,636,637,634,634,634,634,634,634,634,634,634,634,634,634,634,634,634,634,634,634,634,634,634,638,111,634,634,634,634,639,634,634,640,198,198,641,642,643,644,645,646,647,648,649,634,634,634,634,634,634,634,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666}, - {667,668,669,670,671,671,198,198,668,668,668,668,668,668,668,672,673,674,674,675,676,676,676,677,678,679,680,198,198,400,400,681,198,198,198,198,198,198,198,198,682,683,684,684,684,685,686,687,688,688,689,690,691,692,692,693,694,695,696,696,697,698,198,198,699,699,700,701,701,702,702,702,703,704,705,198,198,198,198,198,706,706,707,708,708,708,709,198,198,198,198,198,198,198,198,198,710,710,710,710,710,710,710,710,710,710,710,710,710,710,710,710,710,710,710,711,710,712,713,198,198,198,198,198,198,198,198,198,714,715,715,716,717,718,719,720,721,722,723,108,108,108,724,725,726,727,728,729,108,108,108,108,730,730,731,732,733,734,733,733,735,736,737,738,739,740,741,742,743,744,108,108,745,746,747,748,749,749,749,750,751,752,753,754,755,756,757,108,108,108,108,108,758,758,758,758,759,108,108,108,760,760,760,761,762,762,762,763,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,764,765,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,766,767,767,768,769,770,771,772,773,774,774,775,776,777,778,779,780,781,782,783,784,785,785,786,787,788,788,789,790,791,792,793,794,795,796,797,198,198,198,198,798,799,800,801,801,802,803,804,805,806,807,808,809,810,811,812,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,813,813,813,814,815,816,198,198,198,198,198,198,198,198,198,198,817,817,818,819,820,821,410,410,822,822,822,823,824,825,198,198,826,826,827,828,829,198,198,198,830,831,832,833,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,834,834,835,835,836,837,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,838,838,838,839,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,840,841,198,198,198,198,198,198,842,842,842,842,842,842,843,844,840,840,840,840,840,840,840,840,840,840,840,840,845,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,846,846,846,846,846,846,846,846,846,846,846,846,846,846,846,846,846,846,846,846,846,846,846,846,846,846,846,846,846,846,846,846,846,846,846,846,846,847,846,846,848,846,846,846,846,846,846,846,846,846,846,846,846,846,846,849,846,846,846,846,846,846,846,846,846,846,850,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,851,851,851,851,851,851,851,851,851,851,851,851,851,851,851,851,851,851,851,851,851,851,851,851,851,851,851,851,852,851,851,851,851,851,851,851,853,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,854,855,856,857,198,198,198,198,198,198,858,859,860,861,861,861,862,863,864,865,866,861,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,867,867,867,867,868,869,870,871,872,873,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,874,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,875,875,875,875,875,875,876,877,878,879,880,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,881,881,881,881,881,881,881,881,881,881,881,881,881,881,881,882,881,881,883,881,881,884,885,886,887,881,888,889,890,881,891,410,892,892,892,892,893,198,198,198,198,198,198,198,198,198,198,198,402,402,402,402,402,894,895,896,198,198,198,198,198,198,198,198,897,898,899,900,901,902,903,897,904,905,906,907,908,897,898,899,909,910,899,911,912,913,914,897,915,899,897,898,899,900,901,899,903,897,904,914,897,915,899,897,898,899,916,897,917,918,919,920,899,921,897,922,923,924,925,899,926,897,927,899,928,929,930,931,932,932,932,932,932,932,932,932,932,932,932,932,932,932,932,932,932,932,932,932,932,932,932,932,932,932,932,932,932,932,932,932,933,933,933,934,933,933,935,936,937,938,939,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,940,940,940,940,940,940,940,940,940,940,940,940,941,942,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,943,634,944,945,946,947,948,949,950,951,952,951,111,111,111,953,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,954,954,955,954,954,954,954,954,954,956,957,958,958,958,954,959,960,416,961,416,416,962,963,962,962,964,410,410,410,410,965,966,967,523,523,968,969,970,410,410,410,410,410,410,410,410,410,410,954,954,954,954,954,954,954,954,954,971,954,972,954,954,954,973,954,954,954,954,954,954,954,954,954,954,974,975,954,954,954,954,976,977,978,979,980,954,954,981,954,954,982,954,954,983,954,984,954,954,954,954,954,402,402,985,954,954,954,954,954,986,987,956,402,402,402,402,402,402,402,988,402,402,402,402,402,989,410,410,679,379,379,379,990,991,379,379,990,379,992,198,198,198,198,198,198,993,198,198,198,198,198,198,994,198,198,198,995,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198}, - {536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,996,538,538,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,997,536,536,536,536,536,536,536,536,536,536,536,536,536,998,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,536,999,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,627,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,1000}, - {538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,538,1000}, - {198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198}, - {1001,198,1002,1002,1002,1002,1002,1003,198,198,198,198,198,198,198,198,642,642,642,642,642,642,642,642,642,642,642,642,642,642,642,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198,198}, - {622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,622,1004} -}; - -static const nsCharProps2 sCharProp2Values[1005][16] = { - {{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,8,8,-1,1,4},{0,0,0,0,7,8,-1,1,17},{0,0,0,0,8,8,-1,1,6},{0,0,0,0,9,8,-1,1,6},{0,0,0,0,7,8,-1,1,10},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9}}, - {{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,7,12,-1,1,9},{0,0,0,0,7,12,-1,1,9},{0,0,0,0,7,12,-1,1,9},{0,0,0,0,8,12,-1,1,9}}, - {{0,0,0,29,9,8,-1,1,26},{0,0,0,21,10,8,-1,1,11},{0,0,0,21,10,8,-1,1,23},{0,0,0,21,4,8,-1,1,2},{0,0,0,23,4,8,-1,1,22},{0,0,0,21,4,8,-1,1,21},{0,0,0,21,10,8,-1,1,2},{0,0,0,21,10,1,-1,1,23},{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,36},{0,0,0,21,10,8,-1,1,2},{0,0,0,25,3,8,-1,1,22},{0,0,0,21,6,8,-1,1,16},{0,0,0,17,3,1,-1,1,13},{0,0,0,21,6,1,-1,1,16},{0,0,0,21,6,8,-1,1,27}}, - {{0,0,0,13,2,0,0,1,19},{0,0,0,13,2,0,1,1,19},{0,0,0,13,2,0,2,1,19},{0,0,0,13,2,0,3,1,19},{0,0,0,13,2,0,4,1,19},{0,0,0,13,2,0,5,1,19},{0,0,0,13,2,0,6,1,19},{0,0,0,13,2,0,7,1,19},{0,0,0,13,2,0,8,1,19},{0,0,0,13,2,0,9,1,19},{0,0,0,21,6,1,-1,1,16},{0,0,0,21,10,8,-1,1,16},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,21,10,8,-1,1,11}}, - {{0,0,0,21,10,8,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2}}, - {{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{0,1,0,22,10,8,-1,1,20},{0,0,0,21,10,8,-1,1,22},{0,2,0,18,10,8,-1,1,36},{0,0,0,24,10,8,-1,1,2},{0,0,0,16,10,0,-1,1,2}}, - {{0,0,0,24,10,8,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2}}, - {{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{0,1,0,22,10,8,-1,1,20},{0,0,0,25,10,8,-1,1,4},{0,2,0,18,10,8,-1,1,8},{0,0,0,25,10,8,-1,1,2},{0,0,0,0,18,12,-1,1,9}}, - {{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,7,8,-1,1,29},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9}}, - {{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9},{0,0,0,0,18,12,-1,1,9}}, - {{0,0,0,29,6,9,-1,1,12},{0,0,0,21,10,8,-1,1,20},{0,0,0,23,4,8,-1,1,21},{0,0,0,23,4,8,-1,1,22},{0,0,0,23,4,8,-1,1,22},{0,0,0,23,4,8,-1,1,22},{0,0,0,26,10,8,-1,1,2},{0,0,0,21,10,8,-1,0,1},{0,0,0,24,10,9,-1,1,1},{0,0,0,26,10,8,-1,0,2},{25,0,0,7,0,9,-1,1,1},{0,0,0,20,10,8,-1,1,23},{0,0,0,25,10,8,-1,1,2},{0,0,0,1,18,10,-1,1,4},{0,0,0,26,10,8,-1,0,2},{0,0,0,24,10,9,-1,1,2}}, - {{0,0,0,26,4,8,-1,1,21},{0,0,0,25,4,8,-1,0,22},{0,0,0,15,2,9,2,1,1},{0,0,0,15,2,9,3,1,1},{0,0,0,24,10,9,-1,1,5},{0,0,0,5,0,9,-1,1,2},{0,0,0,21,10,8,-1,1,1},{0,0,0,21,10,1,-1,1,1},{0,0,0,24,10,9,-1,1,1},{0,0,0,15,2,9,1,1,1},{25,0,0,7,0,9,-1,1,1},{0,0,0,19,10,8,-1,1,23},{0,0,0,15,10,9,-1,0,1},{0,0,0,15,10,9,-1,0,1},{0,0,0,15,10,9,-1,0,1},{0,0,0,21,10,8,-1,1,20}}, - {{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2}}, - {{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{0,0,0,25,10,8,-1,0,1},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2}}, - {{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2}}, - {{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{0,0,0,25,10,8,-1,0,1},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2}}, - {{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2}}, - {{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,9,-1,1,2},{25,0,0,5,0,9,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,9,-1,1,2}}, - {{25,0,0,5,0,9,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,11,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2}}, - {{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,9,-1,1,2}}, - {{25,0,0,5,0,3,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,9,0,0,-1,1,2}}, - {{25,0,0,9,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2}}, - {{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,9,0,0,-1,1,2}}, - {{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,7,0,4,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2}}, - {{25,0,0,7,0,3,-1,1,2},{25,0,0,7,0,3,-1,1,2},{25,0,0,7,0,3,-1,1,2},{25,0,0,7,0,3,-1,1,2},{25,0,0,9,0,9,-1,1,2},{25,0,0,8,0,9,-1,1,2},{25,0,0,5,0,9,-1,1,2},{25,0,0,9,0,9,-1,1,2},{25,0,0,8,0,9,-1,1,2},{25,0,0,5,0,9,-1,1,2},{25,0,0,9,0,9,-1,1,2},{25,0,0,8,0,9,-1,1,2},{25,0,0,5,0,9,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2}}, - {{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2}}, - {{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2}}, - {{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,9,-1,1,2},{25,0,0,8,0,9,-1,1,2},{25,0,0,5,0,9,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2}}, - {{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2}}, - {{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2}}, - {{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2}}, - {{25,0,0,5,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2}}, - {{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,4,-1,1,2}}, - {{25,0,0,5,0,2,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,2,-1,1,2}}, - {{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2}}, - {{25,0,0,5,0,2,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2}}, - {{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,7,0,2,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,3,-1,1,2}}, - {{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2}}, - {{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{0,0,0,6,10,3,-1,1,2},{0,0,0,6,10,3,-1,1,2},{0,0,0,6,0,0,-1,1,2},{0,0,0,6,0,0,-1,1,2},{0,0,0,6,0,3,-1,1,2},{0,0,0,6,0,3,-1,1,2},{0,0,0,6,0,3,-1,1,2}}, - {{0,0,0,6,0,3,-1,1,2},{0,0,0,6,0,3,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,6,10,3,-1,1,2},{0,0,0,6,10,3,-1,1,1},{0,0,0,6,10,3,-1,1,5},{0,0,0,6,10,3,-1,1,1},{0,0,0,6,10,3,-1,1,1},{0,0,0,6,10,3,-1,1,1},{0,0,0,6,10,3,-1,1,5},{0,0,0,6,10,3,-1,1,1},{0,0,0,6,10,3,-1,1,2},{0,0,0,6,10,3,-1,1,2}}, - {{0,0,0,6,0,3,-1,1,1},{0,0,0,6,0,3,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,9,-1,1,1},{0,0,0,24,10,9,-1,1,1},{0,0,0,24,10,9,-1,1,1},{0,0,0,24,10,9,-1,1,1},{0,0,0,24,10,9,-1,1,2},{0,0,0,24,10,9,-1,1,1},{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,5}}, - {{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2},{5,0,0,24,10,8,-1,0,2},{5,0,0,24,10,8,-1,0,2},{0,0,0,6,10,0,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,6,0,3,-1,1,2},{0,0,0,24,10,8,-1,1,2}}, - {{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2}}, - {{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,2,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,2,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,0,-1,1,9}}, - {{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,2,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9}}, - {{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,2,-1,1,9},{1,0,0,12,17,2,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,3,-1,1,9}}, - {{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,2,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,2,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,2,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9}}, - {{1,0,0,12,17,9,-1,1,9},{1,0,0,12,17,9,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,9,-1,1,9},{1,0,0,12,17,9,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,10,-1,1,12}}, - {{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,2,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,12},{1,0,0,12,17,3,-1,1,12},{1,0,0,12,17,3,-1,1,12},{1,0,0,12,17,3,-1,1,12}}, - {{1,0,0,12,17,3,-1,1,12},{1,0,0,12,17,3,-1,1,12},{1,0,0,12,17,3,-1,1,12},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9}}, - {{14,0,0,9,0,4,-1,1,2},{14,0,0,5,0,4,-1,1,2},{14,0,0,9,0,4,-1,1,2},{14,0,0,5,0,4,-1,1,2},{0,0,0,6,10,9,-1,1,2},{14,0,0,24,10,1,-1,1,2},{14,0,0,9,0,4,-1,1,2},{14,0,0,5,0,4,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{14,0,0,6,0,9,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{0,0,0,21,10,9,-1,1,16},{14,0,0,9,0,4,-1,1,2}}, - {{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{14,0,0,24,10,9,-1,1,2},{0,0,0,24,10,9,-1,1,2},{14,0,0,9,0,0,-1,1,2},{0,0,0,21,10,9,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{14,0,0,9,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2}}, - {{14,0,0,5,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2}}, - {{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2}}, - {{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2}}, - {{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,9,0,3,-1,1,2}}, - {{14,0,0,5,0,9,-1,1,2},{14,0,0,5,0,9,-1,1,2},{14,0,0,9,0,9,-1,1,2},{14,0,0,9,0,9,-1,1,2},{14,0,0,9,0,9,-1,1,2},{14,0,0,5,0,9,-1,1,2},{14,0,0,5,0,9,-1,1,2},{14,0,0,5,0,3,-1,1,2},{14,0,0,9,0,4,-1,1,2},{14,0,0,5,0,4,-1,1,2},{14,0,0,9,0,4,-1,1,2},{14,0,0,5,0,4,-1,1,2},{14,0,0,9,0,4,-1,1,2},{14,0,0,5,0,4,-1,1,2},{14,0,0,9,0,4,-1,1,2},{14,0,0,5,0,4,-1,1,2}}, - {{14,0,0,9,0,4,-1,1,2},{14,0,0,5,0,4,-1,1,2},{7,0,0,9,0,7,-1,1,2},{7,0,0,5,0,7,-1,1,2},{7,0,0,9,0,7,-1,1,2},{7,0,0,5,0,7,-1,1,2},{7,0,0,9,0,7,-1,1,2},{7,0,0,5,0,7,-1,1,2},{7,0,0,9,0,7,-1,1,2},{7,0,0,5,0,7,-1,1,2},{7,0,0,9,0,7,-1,1,2},{7,0,0,5,0,7,-1,1,2},{7,0,0,9,0,7,-1,1,2},{7,0,0,5,0,7,-1,1,2},{7,0,0,9,0,7,-1,1,2},{7,0,0,5,0,7,-1,1,2}}, - {{14,0,0,5,0,9,-1,1,2},{14,0,0,5,0,9,-1,1,2},{14,0,0,5,0,9,-1,1,2},{14,0,0,5,0,4,-1,1,2},{14,0,0,9,0,9,-1,1,2},{14,0,0,5,0,9,-1,1,2},{14,0,0,25,10,8,-1,1,2},{14,0,0,9,0,4,-1,1,2},{14,0,0,5,0,4,-1,1,2},{14,0,0,9,0,9,-1,1,2},{14,0,0,9,0,4,-1,1,2},{14,0,0,5,0,4,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2}}, - {{8,0,0,9,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2}}, - {{8,0,0,5,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2}}, - {{8,0,0,9,0,4,-1,1,2},{8,0,0,5,0,4,-1,1,2},{8,0,0,9,0,4,-1,1,2},{8,0,0,5,0,4,-1,1,2},{8,0,0,9,0,4,-1,1,2},{8,0,0,5,0,4,-1,1,2},{8,0,0,9,0,4,-1,1,2},{8,0,0,5,0,4,-1,1,2},{8,0,0,9,0,4,-1,1,2},{8,0,0,5,0,4,-1,1,2},{8,0,0,9,0,4,-1,1,2},{8,0,0,5,0,4,-1,1,2},{8,0,0,9,0,4,-1,1,2},{8,0,0,5,0,4,-1,1,2},{8,0,0,9,0,4,-1,1,2},{8,0,0,5,0,4,-1,1,2}}, - {{8,0,0,9,0,4,-1,1,2},{8,0,0,5,0,4,-1,1,2},{8,0,0,26,0,8,-1,1,2},{8,0,0,12,17,4,-1,1,9},{8,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{8,0,0,12,17,4,-1,1,9},{8,0,0,11,17,8,-1,1,9},{8,0,0,11,17,8,-1,1,9},{8,0,0,9,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2}}, - {{8,0,0,9,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2}}, - {{8,0,0,9,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2}}, - {{8,0,0,9,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,9,0,4,-1,1,2},{8,0,0,5,0,4,-1,1,2},{8,0,0,9,0,4,-1,1,2},{8,0,0,5,0,4,-1,1,2},{8,0,0,9,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2}}, - {{103,0,0,2,0,12,-1,1,0},{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2}}, - {{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2}}, - {{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2},{3,0,0,9,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{3,0,0,6,0,0,-1,1,2},{3,0,0,21,0,8,-1,1,2},{3,0,0,21,0,8,-1,1,2},{3,0,0,21,0,8,-1,1,2},{3,0,0,21,0,8,-1,1,2},{3,0,0,21,0,8,-1,1,2},{3,0,0,21,0,8,-1,1,2}}, - {{103,0,0,2,0,12,-1,1,0},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2}}, - {{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2}}, - {{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,0,-1,1,2},{3,0,0,5,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0},{0,0,0,21,0,8,-1,1,16},{3,0,0,17,10,1,-1,1,4},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{3,0,0,26,10,8,-1,1,2},{3,0,0,26,10,8,-1,1,2},{3,0,0,23,4,8,-1,1,22}}, - {{103,0,0,2,1,12,-1,1,0},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9}}, - {{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,4,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9}}, - {{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,0,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,17,1,8,-1,1,4},{19,0,0,12,17,2,-1,1,9}}, - {{19,0,0,21,1,8,-1,1,2},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,2,-1,1,9},{19,0,0,21,1,8,-1,1,2},{19,0,0,12,17,2,-1,1,9},{19,0,0,12,17,4,-1,1,9},{19,0,0,21,1,8,-1,1,11},{19,0,0,12,17,4,-1,1,9},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0}}, - {{19,0,0,7,1,0,-1,1,38},{19,0,0,7,1,0,-1,1,38},{19,0,0,7,1,0,-1,1,38},{19,0,0,7,1,0,-1,1,38},{19,0,0,7,1,0,-1,1,38},{19,0,0,7,1,0,-1,1,38},{19,0,0,7,1,0,-1,1,38},{19,0,0,7,1,0,-1,1,38},{19,0,0,7,1,0,-1,1,38},{19,0,0,7,1,0,-1,1,38},{19,0,0,7,1,0,-1,1,38},{19,0,0,7,1,0,-1,1,38},{19,0,0,7,1,0,-1,1,38},{19,0,0,7,1,0,-1,1,38},{19,0,0,7,1,0,-1,1,38},{19,0,0,7,1,0,-1,1,38}}, - {{19,0,0,7,1,0,-1,1,38},{19,0,0,7,1,0,-1,1,38},{19,0,0,7,1,0,-1,1,38},{19,0,0,7,1,0,-1,1,38},{19,0,0,7,1,0,-1,1,38},{19,0,0,7,1,0,-1,1,38},{19,0,0,7,1,0,-1,1,38},{19,0,0,7,1,0,-1,1,38},{19,0,0,7,1,0,-1,1,38},{19,0,0,7,1,0,-1,1,38},{19,0,0,7,1,0,-1,1,38},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0}}, - {{19,0,0,7,1,0,-1,1,38},{19,0,0,7,1,0,-1,1,38},{19,0,0,7,1,0,-1,1,38},{19,0,0,21,1,1,-1,1,2},{19,0,0,21,1,1,-1,1,2},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0}}, - {{2,0,0,1,5,8,-1,1,2},{2,0,0,1,5,8,-1,1,2},{2,0,0,1,5,8,-1,1,2},{2,0,0,1,5,8,-1,1,2},{2,0,0,1,5,8,-1,1,2},{0,0,0,1,5,8,-1,1,2},{2,0,0,25,10,8,-1,1,2},{2,0,0,25,10,8,-1,1,2},{2,0,0,25,13,8,-1,1,2},{2,0,0,21,4,8,-1,1,21},{2,0,0,21,4,8,-1,1,21},{2,0,0,23,13,8,-1,1,21},{0,0,0,21,6,8,-1,1,16},{2,0,0,21,13,8,-1,1,16},{2,0,0,26,10,8,-1,1,2},{2,0,0,26,10,8,-1,1,2}}, - {{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{0,0,0,21,13,8,-1,1,11},{0,0,0,1,13,10,-1,1,9},{103,0,0,2,13,12,-1,1,0},{2,0,0,21,13,8,-1,1,11},{0,0,0,21,13,8,-1,1,11}}, - {{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2}}, - {{0,0,0,6,13,7,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,0,-1,1,9}}, - {{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,0,-1,1,9},{1,0,0,12,17,0,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9}}, - {{2,0,0,13,5,0,0,1,19},{2,0,0,13,5,0,1,1,19},{2,0,0,13,5,0,2,1,19},{2,0,0,13,5,0,3,1,19},{2,0,0,13,5,0,4,1,19},{2,0,0,13,5,0,5,1,19},{2,0,0,13,5,0,6,1,19},{2,0,0,13,5,0,7,1,19},{2,0,0,13,5,0,8,1,19},{2,0,0,13,5,0,9,1,19},{2,0,0,21,4,8,-1,1,21},{2,0,0,21,5,8,-1,1,19},{2,0,0,21,5,8,-1,1,19},{2,0,0,21,13,8,-1,1,2},{2,0,0,7,13,4,-1,1,2},{2,0,0,7,13,4,-1,1,2}}, - {{1,0,0,12,17,0,-1,1,9},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,11,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2}}, - {{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,4,-1,1,2},{2,0,0,7,13,0,-1,1,2}}, - {{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,21,13,8,-1,1,11},{2,0,0,7,13,0,-1,1,2},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{0,0,0,1,5,8,-1,1,2},{2,0,0,26,10,8,-1,1,2},{2,0,0,12,17,2,-1,1,9}}, - {{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,6,13,0,-1,1,2},{2,0,0,6,13,0,-1,1,2},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,26,10,8,-1,1,2},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2}}, - {{2,0,0,13,2,0,0,1,19},{2,0,0,13,2,0,1,1,19},{2,0,0,13,2,0,2,1,19},{2,0,0,13,2,0,3,1,19},{2,0,0,13,2,0,4,1,19},{2,0,0,13,2,0,5,1,19},{2,0,0,13,2,0,6,1,19},{2,0,0,13,2,0,7,1,19},{2,0,0,13,2,0,8,1,19},{2,0,0,13,2,0,9,1,19},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,26,13,1,-1,1,2},{2,0,0,26,13,1,-1,1,2},{2,0,0,7,13,0,-1,1,2}}, - {{34,0,0,21,13,8,-1,1,2},{34,0,0,21,13,8,-1,1,2},{34,0,0,21,13,8,-1,1,2},{34,0,0,21,13,8,-1,1,2},{34,0,0,21,13,8,-1,1,2},{34,0,0,21,13,8,-1,1,2},{34,0,0,21,13,8,-1,1,2},{34,0,0,21,13,8,-1,1,2},{34,0,0,21,13,8,-1,1,2},{34,0,0,21,13,8,-1,1,2},{34,0,0,21,13,8,-1,1,2},{34,0,0,21,13,8,-1,1,2},{34,0,0,21,13,8,-1,1,2},{34,0,0,21,13,8,-1,1,2},{103,0,0,2,13,12,-1,1,0},{34,0,0,1,13,8,-1,1,2}}, - {{34,0,0,7,13,6,-1,1,2},{34,0,0,12,17,6,-1,1,9},{34,0,0,7,13,6,-1,1,2},{34,0,0,7,13,6,-1,1,2},{34,0,0,7,13,6,-1,1,2},{34,0,0,7,13,6,-1,1,2},{34,0,0,7,13,6,-1,1,2},{34,0,0,7,13,6,-1,1,2},{34,0,0,7,13,6,-1,1,2},{34,0,0,7,13,6,-1,1,2},{34,0,0,7,13,6,-1,1,2},{34,0,0,7,13,6,-1,1,2},{34,0,0,7,13,6,-1,1,2},{34,0,0,7,13,6,-1,1,2},{34,0,0,7,13,6,-1,1,2},{34,0,0,7,13,6,-1,1,2}}, - {{34,0,0,7,13,6,-1,1,2},{34,0,0,7,13,6,-1,1,2},{34,0,0,7,13,6,-1,1,2},{34,0,0,7,13,6,-1,1,2},{34,0,0,7,13,6,-1,1,2},{34,0,0,7,13,6,-1,1,2},{34,0,0,7,13,6,-1,1,2},{34,0,0,7,13,6,-1,1,2},{34,0,0,7,13,6,-1,1,2},{34,0,0,7,13,6,-1,1,2},{34,0,0,7,13,6,-1,1,2},{34,0,0,7,13,6,-1,1,2},{34,0,0,7,13,6,-1,1,2},{34,0,0,7,13,6,-1,1,2},{34,0,0,7,13,6,-1,1,2},{34,0,0,7,13,6,-1,1,2}}, - {{34,0,0,12,17,6,-1,1,9},{34,0,0,12,17,6,-1,1,9},{34,0,0,12,17,6,-1,1,9},{34,0,0,12,17,6,-1,1,9},{34,0,0,12,17,6,-1,1,9},{34,0,0,12,17,6,-1,1,9},{34,0,0,12,17,6,-1,1,9},{34,0,0,12,17,6,-1,1,9},{34,0,0,12,17,6,-1,1,9},{34,0,0,12,17,6,-1,1,9},{34,0,0,12,17,6,-1,1,9},{34,0,0,12,17,6,-1,1,9},{34,0,0,12,17,6,-1,1,9},{34,0,0,12,17,6,-1,1,9},{34,0,0,12,17,6,-1,1,9},{34,0,0,12,17,6,-1,1,9}}, - {{34,0,0,12,17,6,-1,1,9},{34,0,0,12,17,6,-1,1,9},{34,0,0,12,17,6,-1,1,9},{34,0,0,12,17,6,-1,1,9},{34,0,0,12,17,6,-1,1,9},{34,0,0,12,17,6,-1,1,9},{34,0,0,12,17,6,-1,1,9},{34,0,0,12,17,6,-1,1,9},{34,0,0,12,17,6,-1,1,9},{34,0,0,12,17,6,-1,1,9},{34,0,0,12,17,6,-1,1,9},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{34,0,0,7,13,6,-1,1,2},{34,0,0,7,13,6,-1,1,2},{34,0,0,7,13,6,-1,1,2}}, - {{37,0,0,7,13,0,-1,1,2},{37,0,0,7,13,0,-1,1,2},{37,0,0,7,13,0,-1,1,2},{37,0,0,7,13,0,-1,1,2},{37,0,0,7,13,0,-1,1,2},{37,0,0,7,13,0,-1,1,2},{37,0,0,7,13,0,-1,1,2},{37,0,0,7,13,0,-1,1,2},{37,0,0,7,13,0,-1,1,2},{37,0,0,7,13,0,-1,1,2},{37,0,0,7,13,0,-1,1,2},{37,0,0,7,13,0,-1,1,2},{37,0,0,7,13,0,-1,1,2},{37,0,0,7,13,0,-1,1,2},{37,0,0,7,13,0,-1,1,2},{37,0,0,7,13,0,-1,1,2}}, - {{37,0,0,7,13,0,-1,1,2},{37,0,0,7,13,0,-1,1,2},{37,0,0,7,13,0,-1,1,2},{37,0,0,7,13,0,-1,1,2},{37,0,0,7,13,0,-1,1,2},{37,0,0,7,13,0,-1,1,2},{37,0,0,12,17,0,-1,1,9},{37,0,0,12,17,0,-1,1,9},{37,0,0,12,17,0,-1,1,9},{37,0,0,12,17,0,-1,1,9},{37,0,0,12,17,0,-1,1,9},{37,0,0,12,17,0,-1,1,9},{37,0,0,12,17,0,-1,1,9},{37,0,0,12,17,0,-1,1,9},{37,0,0,12,17,0,-1,1,9},{37,0,0,12,17,0,-1,1,9}}, - {{37,0,0,12,17,0,-1,1,9},{37,0,0,7,13,0,-1,1,2},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0}}, - {{87,0,0,13,1,6,0,1,19},{87,0,0,13,1,6,1,1,19},{87,0,0,13,1,6,2,1,19},{87,0,0,13,1,6,3,1,19},{87,0,0,13,1,6,4,1,19},{87,0,0,13,1,6,5,1,19},{87,0,0,13,1,6,6,1,19},{87,0,0,13,1,6,7,1,19},{87,0,0,13,1,6,8,1,19},{87,0,0,13,1,6,9,1,19},{87,0,0,7,1,6,-1,1,2},{87,0,0,7,1,6,-1,1,2},{87,0,0,7,1,6,-1,1,2},{87,0,0,7,1,6,-1,1,2},{87,0,0,7,1,6,-1,1,2},{87,0,0,7,1,6,-1,1,2}}, - {{87,0,0,7,1,6,-1,1,2},{87,0,0,7,1,6,-1,1,2},{87,0,0,7,1,6,-1,1,2},{87,0,0,7,1,6,-1,1,2},{87,0,0,7,1,6,-1,1,2},{87,0,0,7,1,6,-1,1,2},{87,0,0,7,1,6,-1,1,2},{87,0,0,7,1,6,-1,1,2},{87,0,0,7,1,6,-1,1,2},{87,0,0,7,1,6,-1,1,2},{87,0,0,7,1,6,-1,1,2},{87,0,0,7,1,6,-1,1,2},{87,0,0,7,1,6,-1,1,2},{87,0,0,7,1,6,-1,1,2},{87,0,0,7,1,6,-1,1,2},{87,0,0,7,1,6,-1,1,2}}, - {{87,0,0,7,1,6,-1,1,2},{87,0,0,7,1,6,-1,1,2},{87,0,0,7,1,6,-1,1,2},{87,0,0,7,1,6,-1,1,2},{87,0,0,7,1,6,-1,1,2},{87,0,0,7,1,6,-1,1,2},{87,0,0,7,1,6,-1,1,2},{87,0,0,7,1,6,-1,1,2},{87,0,0,7,1,6,-1,1,2},{87,0,0,7,1,6,-1,1,2},{87,0,0,7,1,6,-1,1,2},{87,0,0,12,17,6,-1,1,9},{87,0,0,12,17,6,-1,1,9},{87,0,0,12,17,6,-1,1,9},{87,0,0,12,17,6,-1,1,9},{87,0,0,12,17,6,-1,1,9}}, - {{87,0,0,12,17,6,-1,1,9},{87,0,0,12,17,6,-1,1,9},{87,0,0,12,17,6,-1,1,9},{87,0,0,12,17,6,-1,1,9},{87,0,0,6,1,6,-1,1,2},{87,0,0,6,1,6,-1,1,2},{87,0,0,26,10,8,-1,1,2},{87,0,0,21,10,8,-1,1,2},{87,0,0,21,10,8,-1,1,16},{87,0,0,21,10,8,-1,1,11},{87,0,0,6,1,7,-1,1,2},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0}}, - {{126,0,0,7,1,7,-1,1,2},{126,0,0,7,1,7,-1,1,2},{126,0,0,7,1,7,-1,1,2},{126,0,0,7,1,7,-1,1,2},{126,0,0,7,1,7,-1,1,2},{126,0,0,7,1,7,-1,1,2},{126,0,0,7,1,7,-1,1,2},{126,0,0,7,1,7,-1,1,2},{126,0,0,7,1,7,-1,1,2},{126,0,0,7,1,7,-1,1,2},{126,0,0,7,1,7,-1,1,2},{126,0,0,7,1,7,-1,1,2},{126,0,0,7,1,7,-1,1,2},{126,0,0,7,1,7,-1,1,2},{126,0,0,7,1,7,-1,1,2},{126,0,0,7,1,7,-1,1,2}}, - {{126,0,0,7,1,7,-1,1,2},{126,0,0,7,1,7,-1,1,2},{126,0,0,7,1,7,-1,1,2},{126,0,0,7,1,7,-1,1,2},{126,0,0,7,1,7,-1,1,2},{126,0,0,7,1,7,-1,1,2},{126,0,0,12,17,7,-1,1,9},{126,0,0,12,17,7,-1,1,9},{126,0,0,12,17,7,-1,1,9},{126,0,0,12,17,7,-1,1,9},{126,0,0,6,1,7,-1,1,2},{126,0,0,12,17,7,-1,1,9},{126,0,0,12,17,7,-1,1,9},{126,0,0,12,17,7,-1,1,9},{126,0,0,12,17,7,-1,1,9},{126,0,0,12,17,7,-1,1,9}}, - {{126,0,0,12,17,7,-1,1,9},{126,0,0,12,17,7,-1,1,9},{126,0,0,12,17,7,-1,1,9},{126,0,0,12,17,7,-1,1,9},{126,0,0,6,1,7,-1,1,2},{126,0,0,12,17,7,-1,1,9},{126,0,0,12,17,7,-1,1,9},{126,0,0,12,17,7,-1,1,9},{126,0,0,6,1,7,-1,1,2},{126,0,0,12,17,7,-1,1,9},{126,0,0,12,17,7,-1,1,9},{126,0,0,12,17,7,-1,1,9},{126,0,0,12,17,7,-1,1,9},{126,0,0,12,17,7,-1,1,9},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0}}, - {{126,0,0,21,1,8,-1,1,2},{126,0,0,21,1,8,-1,1,2},{126,0,0,21,1,8,-1,1,2},{126,0,0,21,1,8,-1,1,2},{126,0,0,21,1,8,-1,1,2},{126,0,0,21,1,8,-1,1,2},{126,0,0,21,1,8,-1,1,2},{126,0,0,21,1,8,-1,1,2},{126,0,0,21,1,8,-1,1,2},{126,0,0,21,1,8,-1,1,2},{126,0,0,21,1,8,-1,1,2},{126,0,0,21,1,8,-1,1,2},{126,0,0,21,1,8,-1,1,2},{126,0,0,21,1,8,-1,1,2},{126,0,0,21,1,8,-1,1,2},{103,0,0,2,1,12,-1,1,0}}, - {{84,0,0,7,1,6,-1,1,2},{84,0,0,7,1,6,-1,1,2},{84,0,0,7,1,6,-1,1,2},{84,0,0,7,1,6,-1,1,2},{84,0,0,7,1,6,-1,1,2},{84,0,0,7,1,6,-1,1,2},{84,0,0,7,1,6,-1,1,2},{84,0,0,7,1,6,-1,1,2},{84,0,0,7,1,6,-1,1,2},{84,0,0,7,1,6,-1,1,2},{84,0,0,7,1,6,-1,1,2},{84,0,0,7,1,6,-1,1,2},{84,0,0,7,1,6,-1,1,2},{84,0,0,7,1,6,-1,1,2},{84,0,0,7,1,6,-1,1,2},{84,0,0,7,1,6,-1,1,2}}, - {{84,0,0,7,1,6,-1,1,2},{84,0,0,7,1,6,-1,1,2},{84,0,0,7,1,6,-1,1,2},{84,0,0,7,1,6,-1,1,2},{84,0,0,7,1,6,-1,1,2},{84,0,0,7,1,6,-1,1,2},{84,0,0,7,1,6,-1,1,2},{84,0,0,7,1,6,-1,1,2},{84,0,0,7,1,6,-1,1,2},{84,0,0,12,17,6,-1,1,9},{84,0,0,12,17,6,-1,1,9},{84,0,0,12,17,6,-1,1,9},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{84,0,0,21,1,8,-1,1,2},{103,0,0,2,1,12,-1,1,0}}, - {{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0}}, - {{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,4,-1,1,2},{2,0,0,7,13,4,-1,1,2},{2,0,0,7,13,4,-1,1,2}}, - {{2,0,0,7,13,4,-1,1,2},{2,0,0,7,13,4,-1,1,2},{2,0,0,7,13,0,-1,1,2},{2,0,0,7,13,2,-1,1,2},{2,0,0,7,13,2,-1,1,2},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0}}, - {{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0}}, - {{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9}}, - {{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9},{2,0,0,12,17,2,-1,1,9}}, - {{10,0,0,12,17,2,-1,1,9},{10,0,0,12,17,0,-1,1,9},{10,0,0,12,17,0,-1,1,9},{10,0,0,10,0,0,-1,1,9},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2}}, - {{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2}}, - {{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,12,17,0,-1,1,9},{10,0,0,10,0,0,-1,1,9},{10,0,0,12,17,0,-1,1,9},{10,0,0,7,0,0,-1,1,2},{10,0,0,10,0,0,-1,1,9},{10,0,0,10,0,0,-1,1,9}}, - {{10,0,0,10,0,0,-1,1,9},{10,0,0,12,17,0,-1,1,9},{10,0,0,12,17,0,-1,1,9},{10,0,0,12,17,0,-1,1,9},{10,0,0,12,17,0,-1,1,9},{10,0,0,12,17,0,-1,1,9},{10,0,0,12,17,0,-1,1,9},{10,0,0,12,17,0,-1,1,9},{10,0,0,12,17,0,-1,1,9},{10,0,0,10,0,0,-1,1,9},{10,0,0,10,0,0,-1,1,9},{10,0,0,10,0,0,-1,1,9},{10,0,0,10,0,0,-1,1,9},{10,0,0,12,17,0,-1,1,9},{10,0,0,10,0,4,-1,1,9},{10,0,0,10,0,0,-1,1,9}}, - {{10,0,0,7,0,0,-1,1,2},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{10,0,0,12,17,3,-1,1,9},{10,0,0,12,17,3,-1,1,9},{10,0,0,12,17,2,-1,1,9},{10,0,0,12,17,0,-1,1,9},{10,0,0,12,17,0,-1,1,9},{10,0,0,7,0,9,-1,1,2},{10,0,0,7,0,9,-1,1,2},{10,0,0,7,0,9,-1,1,2},{10,0,0,7,0,9,-1,1,2},{10,0,0,7,0,9,-1,1,2},{10,0,0,7,0,9,-1,1,2},{10,0,0,7,0,9,-1,1,2},{10,0,0,7,0,9,-1,1,2}}, - {{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,12,17,0,-1,1,9},{10,0,0,12,17,0,-1,1,9},{0,0,0,21,0,8,-1,1,4},{0,0,0,21,0,8,-1,1,4},{10,0,0,13,0,0,0,1,19},{10,0,0,13,0,0,1,1,19},{10,0,0,13,0,0,2,1,19},{10,0,0,13,0,0,3,1,19},{10,0,0,13,0,0,4,1,19},{10,0,0,13,0,0,5,1,19},{10,0,0,13,0,0,6,1,19},{10,0,0,13,0,0,7,1,19},{10,0,0,13,0,0,8,1,19},{10,0,0,13,0,0,9,1,19}}, - {{10,0,0,21,0,8,-1,1,2},{10,0,0,6,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,4,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2},{10,0,0,7,0,0,-1,1,2}}, - {{4,0,0,7,0,4,-1,1,2},{4,0,0,12,17,0,-1,1,9},{4,0,0,10,0,0,-1,1,9},{4,0,0,10,0,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{4,0,0,7,0,0,-1,1,2}}, - {{4,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2}}, - {{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2}}, - {{4,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{4,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{4,0,0,12,17,0,-1,1,9},{4,0,0,7,0,0,-1,1,2},{4,0,0,10,0,0,-1,1,9},{4,0,0,10,0,0,-1,1,9}}, - {{4,0,0,10,0,0,-1,1,9},{4,0,0,12,17,0,-1,1,9},{4,0,0,12,17,0,-1,1,9},{4,0,0,12,17,0,-1,1,9},{4,0,0,12,17,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{4,0,0,10,0,0,-1,1,9},{4,0,0,10,0,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{4,0,0,10,0,0,-1,1,9},{4,0,0,10,0,0,-1,1,9},{4,0,0,12,17,0,-1,1,9},{4,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0}}, - {{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{4,0,0,10,0,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{4,0,0,7,0,9,-1,1,2},{4,0,0,7,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0},{4,0,0,7,0,9,-1,1,2}}, - {{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{4,0,0,12,17,0,-1,1,9},{4,0,0,12,17,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{4,0,0,13,0,0,0,1,19},{4,0,0,13,0,0,1,1,19},{4,0,0,13,0,0,2,1,19},{4,0,0,13,0,0,3,1,19},{4,0,0,13,0,0,4,1,19},{4,0,0,13,0,0,5,1,19},{4,0,0,13,0,0,6,1,19},{4,0,0,13,0,0,7,1,19},{4,0,0,13,0,0,8,1,19},{4,0,0,13,0,0,9,1,19}}, - {{4,0,0,7,0,0,-1,1,2},{4,0,0,7,0,0,-1,1,2},{4,0,0,23,4,8,-1,1,21},{4,0,0,23,4,8,-1,1,21},{4,0,0,15,0,8,-1,1,2},{4,0,0,15,0,8,-1,1,2},{4,0,0,15,0,8,-1,1,2},{4,0,0,15,0,8,-1,1,2},{4,0,0,15,0,8,-1,1,2},{4,0,0,15,0,8,-1,1,21},{4,0,0,26,0,8,-1,1,2},{4,0,0,23,4,8,-1,1,22},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{103,0,0,2,0,12,-1,1,0},{16,0,0,12,17,0,-1,1,9},{16,0,0,12,17,0,-1,1,9},{16,0,0,10,0,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{16,0,0,7,0,0,-1,1,2}}, - {{16,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,0,-1,1,2}}, - {{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,0,-1,1,2}}, - {{16,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{16,0,0,12,17,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{16,0,0,10,0,0,-1,1,9},{16,0,0,10,0,0,-1,1,9}}, - {{16,0,0,10,0,0,-1,1,9},{16,0,0,12,17,0,-1,1,9},{16,0,0,12,17,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{16,0,0,12,17,0,-1,1,9},{16,0,0,12,17,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{16,0,0,12,17,0,-1,1,9},{16,0,0,12,17,0,-1,1,9},{16,0,0,12,17,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{103,0,0,2,0,12,-1,1,0},{16,0,0,12,17,2,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{16,0,0,7,0,9,-1,1,2},{16,0,0,7,0,9,-1,1,2},{16,0,0,7,0,9,-1,1,2},{16,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{16,0,0,7,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0}}, - {{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{16,0,0,13,0,0,0,1,19},{16,0,0,13,0,0,1,1,19},{16,0,0,13,0,0,2,1,19},{16,0,0,13,0,0,3,1,19},{16,0,0,13,0,0,4,1,19},{16,0,0,13,0,0,5,1,19},{16,0,0,13,0,0,6,1,19},{16,0,0,13,0,0,7,1,19},{16,0,0,13,0,0,8,1,19},{16,0,0,13,0,0,9,1,19}}, - {{16,0,0,12,17,0,-1,1,9},{16,0,0,12,17,0,-1,1,9},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,0,-1,1,2},{16,0,0,7,0,0,-1,1,2},{16,0,0,12,17,2,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{103,0,0,2,0,12,-1,1,0},{15,0,0,12,17,0,-1,1,9},{15,0,0,12,17,0,-1,1,9},{15,0,0,10,0,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{15,0,0,7,0,0,-1,1,2}}, - {{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2}}, - {{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2}}, - {{15,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{15,0,0,12,17,0,-1,1,9},{15,0,0,7,0,0,-1,1,2},{15,0,0,10,0,0,-1,1,9},{15,0,0,10,0,0,-1,1,9}}, - {{15,0,0,10,0,0,-1,1,9},{15,0,0,12,17,0,-1,1,9},{15,0,0,12,17,0,-1,1,9},{15,0,0,12,17,0,-1,1,9},{15,0,0,12,17,0,-1,1,9},{15,0,0,12,17,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{15,0,0,12,17,0,-1,1,9},{15,0,0,12,17,0,-1,1,9},{15,0,0,10,0,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{15,0,0,10,0,0,-1,1,9},{15,0,0,10,0,0,-1,1,9},{15,0,0,12,17,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{15,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{15,0,0,7,0,0,-1,1,2},{15,0,0,7,0,0,-1,1,2},{15,0,0,12,17,0,-1,1,9},{15,0,0,12,17,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{15,0,0,13,0,0,0,1,19},{15,0,0,13,0,0,1,1,19},{15,0,0,13,0,0,2,1,19},{15,0,0,13,0,0,3,1,19},{15,0,0,13,0,0,4,1,19},{15,0,0,13,0,0,5,1,19},{15,0,0,13,0,0,6,1,19},{15,0,0,13,0,0,7,1,19},{15,0,0,13,0,0,8,1,19},{15,0,0,13,0,0,9,1,19}}, - {{15,0,0,21,0,8,-1,1,2},{15,0,0,23,4,8,-1,1,22},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{15,0,0,7,0,2,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{103,0,0,2,0,12,-1,1,0},{31,0,0,12,17,0,-1,1,9},{31,0,0,10,0,0,-1,1,9},{31,0,0,10,0,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{31,0,0,7,0,0,-1,1,2}}, - {{31,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2}}, - {{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2}}, - {{31,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{31,0,0,12,17,0,-1,1,9},{31,0,0,7,0,0,-1,1,2},{31,0,0,10,0,0,-1,1,9},{31,0,0,12,17,0,-1,1,9}}, - {{31,0,0,10,0,0,-1,1,9},{31,0,0,12,17,0,-1,1,9},{31,0,0,12,17,0,-1,1,9},{31,0,0,12,17,0,-1,1,9},{31,0,0,12,17,2,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{31,0,0,10,0,0,-1,1,9},{31,0,0,10,0,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{31,0,0,10,0,0,-1,1,9},{31,0,0,10,0,0,-1,1,9},{31,0,0,12,17,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{31,0,0,12,17,0,-1,1,9},{31,0,0,10,0,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{31,0,0,7,0,9,-1,1,2},{31,0,0,7,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0},{31,0,0,7,0,0,-1,1,2}}, - {{31,0,0,7,0,0,-1,1,2},{31,0,0,7,0,0,-1,1,2},{31,0,0,12,17,2,-1,1,9},{31,0,0,12,17,2,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{31,0,0,13,0,0,0,1,19},{31,0,0,13,0,0,1,1,19},{31,0,0,13,0,0,2,1,19},{31,0,0,13,0,0,3,1,19},{31,0,0,13,0,0,4,1,19},{31,0,0,13,0,0,5,1,19},{31,0,0,13,0,0,6,1,19},{31,0,0,13,0,0,7,1,19},{31,0,0,13,0,0,8,1,19},{31,0,0,13,0,0,9,1,19}}, - {{31,0,0,26,0,8,-1,1,2},{31,0,0,7,0,0,-1,1,2},{31,0,0,15,0,8,-1,1,2},{31,0,0,15,0,8,-1,1,2},{31,0,0,15,0,8,-1,1,2},{31,0,0,15,0,8,-1,1,2},{31,0,0,15,0,8,-1,1,2},{31,0,0,15,0,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{35,0,0,12,17,0,-1,1,9},{35,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{35,0,0,7,0,0,-1,1,2},{35,0,0,7,0,0,-1,1,2},{35,0,0,7,0,0,-1,1,2},{35,0,0,7,0,0,-1,1,2},{35,0,0,7,0,0,-1,1,2},{35,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{35,0,0,7,0,0,-1,1,2},{35,0,0,7,0,0,-1,1,2}}, - {{35,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{35,0,0,7,0,0,-1,1,2},{35,0,0,7,0,0,-1,1,2},{35,0,0,7,0,0,-1,1,2},{35,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{35,0,0,7,0,0,-1,1,2},{35,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{35,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{35,0,0,7,0,0,-1,1,2},{35,0,0,7,0,0,-1,1,2}}, - {{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{35,0,0,7,0,0,-1,1,2},{35,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{35,0,0,7,0,0,-1,1,2},{35,0,0,7,0,0,-1,1,2},{35,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{35,0,0,7,0,0,-1,1,2},{35,0,0,7,0,0,-1,1,2}}, - {{35,0,0,7,0,0,-1,1,2},{35,0,0,7,0,0,-1,1,2},{35,0,0,7,0,0,-1,1,2},{35,0,0,7,0,0,-1,1,2},{35,0,0,7,0,0,-1,1,2},{35,0,0,7,0,0,-1,1,2},{35,0,0,7,0,0,-1,1,2},{35,0,0,7,0,0,-1,1,2},{35,0,0,7,0,0,-1,1,2},{35,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{35,0,0,10,0,0,-1,1,9},{35,0,0,10,0,0,-1,1,9}}, - {{35,0,0,12,17,0,-1,1,9},{35,0,0,10,0,0,-1,1,9},{35,0,0,10,0,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{35,0,0,10,0,0,-1,1,9},{35,0,0,10,0,0,-1,1,9},{35,0,0,10,0,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{35,0,0,10,0,0,-1,1,9},{35,0,0,10,0,0,-1,1,9},{35,0,0,10,0,0,-1,1,9},{35,0,0,12,17,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{35,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{35,0,0,10,0,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{35,0,0,13,0,0,0,1,19},{35,0,0,13,0,0,1,1,19},{35,0,0,13,0,0,2,1,19},{35,0,0,13,0,0,3,1,19},{35,0,0,13,0,0,4,1,19},{35,0,0,13,0,0,5,1,19},{35,0,0,13,0,0,6,1,19},{35,0,0,13,0,0,7,1,19},{35,0,0,13,0,0,8,1,19},{35,0,0,13,0,0,9,1,19}}, - {{35,0,0,15,0,8,-1,1,2},{35,0,0,15,0,8,-1,1,2},{35,0,0,15,0,8,-1,1,2},{35,0,0,26,10,8,-1,1,2},{35,0,0,26,10,8,-1,1,2},{35,0,0,26,10,8,-1,1,2},{35,0,0,26,10,8,-1,1,2},{35,0,0,26,10,8,-1,1,2},{35,0,0,26,10,8,-1,1,2},{35,0,0,23,4,8,-1,1,22},{35,0,0,26,10,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{36,0,0,12,17,4,-1,1,9},{36,0,0,10,0,0,-1,1,9},{36,0,0,10,0,0,-1,1,9},{36,0,0,10,0,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2}}, - {{36,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2}}, - {{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2}}, - {{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,4,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{36,0,0,7,0,0,-1,1,2},{36,0,0,12,17,0,-1,1,9},{36,0,0,12,17,0,-1,1,9}}, - {{36,0,0,12,17,0,-1,1,9},{36,0,0,10,0,0,-1,1,9},{36,0,0,10,0,0,-1,1,9},{36,0,0,10,0,0,-1,1,9},{36,0,0,10,0,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{36,0,0,12,17,0,-1,1,9},{36,0,0,12,17,0,-1,1,9},{36,0,0,12,17,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{36,0,0,12,17,0,-1,1,9},{36,0,0,12,17,0,-1,1,9},{36,0,0,12,17,0,-1,1,9},{36,0,0,12,17,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{36,0,0,12,17,0,-1,1,9},{36,0,0,12,17,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{36,0,0,7,0,4,-1,1,2},{36,0,0,7,0,4,-1,1,2},{36,0,0,7,0,2,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{36,0,0,7,0,0,-1,1,2},{36,0,0,7,0,0,-1,1,2},{36,0,0,12,17,2,-1,1,9},{36,0,0,12,17,2,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{36,0,0,13,0,0,0,1,19},{36,0,0,13,0,0,1,1,19},{36,0,0,13,0,0,2,1,19},{36,0,0,13,0,0,3,1,19},{36,0,0,13,0,0,4,1,19},{36,0,0,13,0,0,5,1,19},{36,0,0,13,0,0,6,1,19},{36,0,0,13,0,0,7,1,19},{36,0,0,13,0,0,8,1,19},{36,0,0,13,0,0,9,1,19}}, - {{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{36,0,0,15,10,8,-1,1,2},{36,0,0,15,10,8,-1,1,2},{36,0,0,15,10,8,-1,1,2},{36,0,0,15,10,8,-1,1,2},{36,0,0,15,10,8,-1,1,2},{36,0,0,15,10,8,-1,1,2},{36,0,0,15,10,8,-1,1,2},{36,0,0,26,0,8,-1,1,2}}, - {{103,0,0,2,0,12,-1,1,0},{21,0,0,12,17,4,-1,1,9},{21,0,0,10,0,0,-1,1,9},{21,0,0,10,0,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2}}, - {{21,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2}}, - {{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2}}, - {{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{21,0,0,12,17,0,-1,1,9},{21,0,0,7,0,0,-1,1,2},{21,0,0,10,0,0,-1,1,9},{21,0,0,12,0,0,-1,1,9}}, - {{21,0,0,10,0,0,-1,1,9},{21,0,0,10,0,0,-1,1,9},{21,0,0,10,0,0,-1,1,9},{21,0,0,10,0,0,-1,1,9},{21,0,0,10,0,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{21,0,0,12,0,0,-1,1,9},{21,0,0,10,0,0,-1,1,9},{21,0,0,10,0,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{21,0,0,10,0,0,-1,1,9},{21,0,0,10,0,0,-1,1,9},{21,0,0,12,17,0,-1,1,9},{21,0,0,12,17,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{21,0,0,10,0,0,-1,1,9},{21,0,0,10,0,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{21,0,0,7,0,4,-1,1,2},{103,0,0,2,0,12,-1,1,0}}, - {{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{21,0,0,12,17,0,-1,1,9},{21,0,0,12,17,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{21,0,0,13,0,0,0,1,19},{21,0,0,13,0,0,1,1,19},{21,0,0,13,0,0,2,1,19},{21,0,0,13,0,0,3,1,19},{21,0,0,13,0,0,4,1,19},{21,0,0,13,0,0,5,1,19},{21,0,0,13,0,0,6,1,19},{21,0,0,13,0,0,7,1,19},{21,0,0,13,0,0,8,1,19},{21,0,0,13,0,0,9,1,19}}, - {{103,0,0,2,0,12,-1,1,0},{21,0,0,7,0,0,-1,1,2},{21,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{103,0,0,2,0,12,-1,1,0},{26,0,0,12,17,4,-1,1,9},{26,0,0,10,0,0,-1,1,9},{26,0,0,10,0,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2}}, - {{26,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2}}, - {{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2}}, - {{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{26,0,0,7,0,0,-1,1,2},{26,0,0,10,0,0,-1,1,9},{26,0,0,10,0,0,-1,1,9}}, - {{26,0,0,10,0,0,-1,1,9},{26,0,0,12,17,0,-1,1,9},{26,0,0,12,17,0,-1,1,9},{26,0,0,12,17,0,-1,1,9},{26,0,0,12,17,2,-1,1,9},{103,0,0,2,0,12,-1,1,0},{26,0,0,10,0,0,-1,1,9},{26,0,0,10,0,0,-1,1,9},{26,0,0,10,0,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{26,0,0,10,0,0,-1,1,9},{26,0,0,10,0,0,-1,1,9},{26,0,0,10,0,0,-1,1,9},{26,0,0,12,17,0,-1,1,9},{26,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0}}, - {{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{26,0,0,10,0,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{26,0,0,7,0,4,-1,1,2}}, - {{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,12,17,2,-1,1,9},{26,0,0,12,17,2,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{26,0,0,13,0,0,0,1,19},{26,0,0,13,0,0,1,1,19},{26,0,0,13,0,0,2,1,19},{26,0,0,13,0,0,3,1,19},{26,0,0,13,0,0,4,1,19},{26,0,0,13,0,0,5,1,19},{26,0,0,13,0,0,6,1,19},{26,0,0,13,0,0,7,1,19},{26,0,0,13,0,0,8,1,19},{26,0,0,13,0,0,9,1,19}}, - {{26,0,0,15,0,8,-1,1,2},{26,0,0,15,0,8,-1,1,2},{26,0,0,15,0,8,-1,1,2},{26,0,0,15,0,8,-1,1,2},{26,0,0,15,0,8,-1,1,2},{26,0,0,15,0,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{26,0,0,26,0,8,-1,1,21},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2},{26,0,0,7,0,0,-1,1,2}}, - {{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{33,0,0,10,0,0,-1,1,9},{33,0,0,10,0,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,3,-1,1,2}}, - {{33,0,0,7,0,3,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2}}, - {{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,3,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2}}, - {{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{33,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{33,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{33,0,0,12,17,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{33,0,0,10,0,0,-1,1,9}}, - {{33,0,0,10,0,0,-1,1,9},{33,0,0,10,0,0,-1,1,9},{33,0,0,12,17,0,-1,1,9},{33,0,0,12,17,0,-1,1,9},{33,0,0,12,17,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{33,0,0,12,17,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{33,0,0,10,0,0,-1,1,9},{33,0,0,10,0,0,-1,1,9},{33,0,0,10,0,0,-1,1,9},{33,0,0,10,0,0,-1,1,9},{33,0,0,10,0,0,-1,1,9},{33,0,0,10,0,0,-1,1,9},{33,0,0,10,0,0,-1,1,9},{33,0,0,10,0,3,-1,1,9}}, - {{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{33,0,0,13,0,4,0,1,19},{33,0,0,13,0,4,1,1,19},{33,0,0,13,0,4,2,1,19},{33,0,0,13,0,4,3,1,19},{33,0,0,13,0,4,4,1,19},{33,0,0,13,0,4,5,1,19},{33,0,0,13,0,4,6,1,19},{33,0,0,13,0,4,7,1,19},{33,0,0,13,0,4,8,1,19},{33,0,0,13,0,4,9,1,19}}, - {{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{33,0,0,10,0,0,-1,1,9},{33,0,0,10,0,3,-1,1,9},{33,0,0,21,0,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{103,0,0,2,0,12,-1,1,0},{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24}}, - {{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24}}, - {{38,0,0,7,0,0,-1,1,24},{38,0,0,12,17,0,-1,1,24},{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,9,-1,1,24},{38,0,0,12,17,0,-1,1,24},{38,0,0,12,17,0,-1,1,24},{38,0,0,12,17,0,-1,1,24},{38,0,0,12,17,0,-1,1,24},{38,0,0,12,17,0,-1,1,24},{38,0,0,12,17,0,-1,1,24},{38,0,0,12,17,0,-1,1,24},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{0,0,0,23,4,8,-1,1,22}}, - {{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24},{38,0,0,7,0,0,-1,1,24},{38,0,0,6,0,0,-1,1,24},{38,0,0,12,17,0,-1,1,24},{38,0,0,12,17,0,-1,1,24},{38,0,0,12,17,0,-1,1,24},{38,0,0,12,17,0,-1,1,24},{38,0,0,12,17,0,-1,1,24},{38,0,0,12,17,0,-1,1,24},{38,0,0,12,17,0,-1,1,24},{38,0,0,12,17,0,-1,1,24},{38,0,0,21,0,8,-1,1,2}}, - {{38,0,0,13,0,0,0,1,19},{38,0,0,13,0,0,1,1,19},{38,0,0,13,0,0,2,1,19},{38,0,0,13,0,0,3,1,19},{38,0,0,13,0,0,4,1,19},{38,0,0,13,0,0,5,1,19},{38,0,0,13,0,0,6,1,19},{38,0,0,13,0,0,7,1,19},{38,0,0,13,0,0,8,1,19},{38,0,0,13,0,0,9,1,19},{38,0,0,21,0,8,-1,1,4},{38,0,0,21,0,8,-1,1,4},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{103,0,0,2,0,12,-1,1,0},{24,0,0,7,0,0,-1,1,24},{24,0,0,7,0,0,-1,1,24},{103,0,0,2,0,12,-1,1,0},{24,0,0,7,0,0,-1,1,24},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{24,0,0,7,0,0,-1,1,24},{24,0,0,7,0,0,-1,1,24},{103,0,0,2,0,12,-1,1,0},{24,0,0,7,0,0,-1,1,24},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{24,0,0,7,0,0,-1,1,24},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{24,0,0,7,0,0,-1,1,24},{24,0,0,7,0,0,-1,1,24},{24,0,0,7,0,0,-1,1,24},{24,0,0,7,0,0,-1,1,24},{103,0,0,2,0,12,-1,1,0},{24,0,0,7,0,0,-1,1,24},{24,0,0,7,0,0,-1,1,24},{24,0,0,7,0,0,-1,1,24},{24,0,0,7,0,0,-1,1,24},{24,0,0,7,0,0,-1,1,24},{24,0,0,7,0,0,-1,1,24},{24,0,0,7,0,0,-1,1,24}}, - {{103,0,0,2,0,12,-1,1,0},{24,0,0,7,0,0,-1,1,24},{24,0,0,7,0,0,-1,1,24},{24,0,0,7,0,0,-1,1,24},{103,0,0,2,0,12,-1,1,0},{24,0,0,7,0,0,-1,1,24},{103,0,0,2,0,12,-1,1,0},{24,0,0,7,0,0,-1,1,24},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{24,0,0,7,0,0,-1,1,24},{24,0,0,7,0,0,-1,1,24},{103,0,0,2,0,12,-1,1,0},{24,0,0,7,0,0,-1,1,24},{24,0,0,7,0,0,-1,1,24},{24,0,0,7,0,0,-1,1,24}}, - {{24,0,0,7,0,0,-1,1,24},{24,0,0,12,17,0,-1,1,24},{24,0,0,7,0,0,-1,1,24},{24,0,0,7,0,9,-1,1,24},{24,0,0,12,17,0,-1,1,24},{24,0,0,12,17,0,-1,1,24},{24,0,0,12,17,0,-1,1,24},{24,0,0,12,17,0,-1,1,24},{24,0,0,12,17,0,-1,1,24},{24,0,0,12,17,0,-1,1,24},{103,0,0,2,0,12,-1,1,0},{24,0,0,12,17,0,-1,1,24},{24,0,0,12,17,0,-1,1,24},{24,0,0,7,0,0,-1,1,24},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{24,0,0,7,0,0,-1,1,24},{24,0,0,7,0,0,-1,1,24},{24,0,0,7,0,0,-1,1,24},{24,0,0,7,0,0,-1,1,24},{24,0,0,7,0,0,-1,1,24},{103,0,0,2,0,12,-1,1,0},{24,0,0,6,0,0,-1,1,24},{103,0,0,2,0,12,-1,1,0},{24,0,0,12,17,0,-1,1,24},{24,0,0,12,17,0,-1,1,24},{24,0,0,12,17,0,-1,1,24},{24,0,0,12,17,0,-1,1,24},{24,0,0,12,17,0,-1,1,24},{24,0,0,12,17,0,-1,1,24},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{24,0,0,13,0,0,0,1,19},{24,0,0,13,0,0,1,1,19},{24,0,0,13,0,0,2,1,19},{24,0,0,13,0,0,3,1,19},{24,0,0,13,0,0,4,1,19},{24,0,0,13,0,0,5,1,19},{24,0,0,13,0,0,6,1,19},{24,0,0,13,0,0,7,1,19},{24,0,0,13,0,0,8,1,19},{24,0,0,13,0,0,9,1,19},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{24,0,0,7,0,9,-1,1,24},{24,0,0,7,0,9,-1,1,24},{24,0,0,7,0,0,-1,1,24},{24,0,0,7,0,0,-1,1,24}}, - {{39,0,0,7,0,0,-1,1,2},{39,0,0,26,0,8,-1,1,5},{39,0,0,26,0,8,-1,1,5},{39,0,0,26,0,8,-1,1,5},{39,0,0,21,0,8,-1,1,5},{39,0,0,21,0,8,-1,1,2},{39,0,0,21,0,8,-1,1,5},{39,0,0,21,0,8,-1,1,5},{39,0,0,21,0,8,-1,1,12},{39,0,0,21,0,8,-1,1,5},{39,0,0,21,0,8,-1,1,5},{39,0,0,21,0,1,-1,1,4},{39,0,0,21,0,9,-1,1,12},{39,0,0,21,0,8,-1,1,11},{39,0,0,21,0,8,-1,1,11},{39,0,0,21,0,8,-1,1,11}}, - {{39,0,0,21,0,8,-1,1,11},{39,0,0,21,0,8,-1,1,11},{39,0,0,21,0,8,-1,1,12},{39,0,0,26,0,8,-1,1,2},{39,0,0,21,0,8,-1,1,11},{39,0,0,26,0,8,-1,1,2},{39,0,0,26,0,8,-1,1,2},{39,0,0,26,0,8,-1,1,2},{39,0,0,12,17,3,-1,1,9},{39,0,0,12,17,3,-1,1,9},{39,0,0,26,0,8,-1,1,2},{39,0,0,26,0,8,-1,1,2},{39,0,0,26,0,8,-1,1,2},{39,0,0,26,0,8,-1,1,2},{39,0,0,26,0,8,-1,1,2},{39,0,0,26,0,8,-1,1,2}}, - {{39,0,0,13,0,0,0,1,19},{39,0,0,13,0,0,1,1,19},{39,0,0,13,0,0,2,1,19},{39,0,0,13,0,0,3,1,19},{39,0,0,13,0,0,4,1,19},{39,0,0,13,0,0,5,1,19},{39,0,0,13,0,0,6,1,19},{39,0,0,13,0,0,7,1,19},{39,0,0,13,0,0,8,1,19},{39,0,0,13,0,0,9,1,19},{39,0,0,15,0,8,-1,1,2},{39,0,0,15,0,8,-1,1,2},{39,0,0,15,0,8,-1,1,2},{39,0,0,15,0,8,-1,1,2},{39,0,0,15,0,8,-1,1,2},{39,0,0,15,0,8,-1,1,2}}, - {{39,0,0,15,0,8,-1,1,2},{39,0,0,15,0,8,-1,1,2},{39,0,0,15,0,8,-1,1,2},{39,0,0,15,0,8,-1,1,2},{39,0,0,26,0,8,-1,1,4},{39,0,0,12,17,0,-1,1,9},{39,0,0,26,0,8,-1,1,2},{39,0,0,12,17,0,-1,1,9},{39,0,0,26,0,8,-1,1,2},{39,0,0,12,17,2,-1,1,9},{39,1,0,22,10,8,-1,1,20},{39,2,0,18,10,8,-1,1,8},{39,1,0,22,10,8,-1,1,20},{39,2,0,18,10,8,-1,1,8},{39,0,0,10,0,0,-1,1,9},{39,0,0,10,0,0,-1,1,9}}, - {{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,9,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,9,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,0,-1,1,2}}, - {{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,9,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,9,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,9,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,0,-1,1,2}}, - {{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,9,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{103,0,0,2,0,12,-1,1,0},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,9,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,9,-1,1,9},{39,0,0,12,17,9,-1,1,9},{39,0,0,12,17,11,-1,1,9},{39,0,0,12,17,9,-1,1,9},{39,0,0,12,17,11,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,10,0,0,-1,1,4}}, - {{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,9,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,21,0,8,-1,1,4},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,7,0,0,-1,1,2},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9}}, - {{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,9,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,9,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9}}, - {{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,9,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,9,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,9,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9}}, - {{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,9,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{39,0,0,12,17,0,-1,1,9},{103,0,0,2,0,12,-1,1,0},{39,0,0,26,0,8,-1,1,4},{39,0,0,26,0,8,-1,1,4}}, - {{39,0,0,26,0,8,-1,1,2},{39,0,0,26,0,8,-1,1,2},{39,0,0,26,0,8,-1,1,2},{39,0,0,26,0,8,-1,1,2},{39,0,0,26,0,8,-1,1,2},{39,0,0,26,0,8,-1,1,2},{39,0,0,12,17,0,-1,1,9},{39,0,0,26,0,8,-1,1,2},{39,0,0,26,0,8,-1,1,2},{39,0,0,26,0,8,-1,1,2},{39,0,0,26,0,8,-1,1,2},{39,0,0,26,0,8,-1,1,2},{39,0,0,26,0,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{39,0,0,26,0,8,-1,1,2},{39,0,0,26,0,8,-1,1,2}}, - {{39,0,0,21,0,8,-1,1,5},{39,0,0,21,0,8,-1,1,5},{39,0,0,21,0,8,-1,1,4},{39,0,0,21,0,8,-1,1,5},{39,0,0,21,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{39,0,0,21,0,8,-1,1,12},{39,0,0,21,0,8,-1,1,12},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24}}, - {{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,10,0,0,-1,1,24},{28,0,0,10,0,0,-1,1,24},{28,0,0,12,17,0,-1,1,24},{28,0,0,12,17,0,-1,1,24},{28,0,0,12,17,0,-1,1,24}}, - {{28,0,0,12,17,0,-1,1,24},{28,0,0,10,0,0,-1,1,24},{28,0,0,12,17,0,-1,1,24},{28,0,0,12,17,0,-1,1,24},{28,0,0,12,17,0,-1,1,24},{28,0,0,12,17,0,-1,1,24},{28,0,0,12,17,0,-1,1,24},{28,0,0,12,17,0,-1,1,24},{28,0,0,10,0,0,-1,1,24},{28,0,0,12,17,0,-1,1,24},{28,0,0,12,17,0,-1,1,24},{28,0,0,10,0,0,-1,1,24},{28,0,0,10,0,0,-1,1,24},{28,0,0,12,17,0,-1,1,24},{28,0,0,12,17,0,-1,1,24},{28,0,0,7,0,0,-1,1,24}}, - {{28,0,0,13,0,0,0,1,19},{28,0,0,13,0,0,1,1,19},{28,0,0,13,0,0,2,1,19},{28,0,0,13,0,0,3,1,19},{28,0,0,13,0,0,4,1,19},{28,0,0,13,0,0,5,1,19},{28,0,0,13,0,0,6,1,19},{28,0,0,13,0,0,7,1,19},{28,0,0,13,0,0,8,1,19},{28,0,0,13,0,0,9,1,19},{28,0,0,21,0,8,-1,1,4},{28,0,0,21,0,8,-1,1,4},{28,0,0,21,0,8,-1,1,2},{28,0,0,21,0,8,-1,1,2},{28,0,0,21,0,8,-1,1,2},{28,0,0,21,0,8,-1,1,2}}, - {{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,10,0,0,-1,1,24},{28,0,0,10,0,0,-1,1,24},{28,0,0,12,17,0,-1,1,24},{28,0,0,12,17,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,12,17,0,-1,1,24},{28,0,0,12,17,0,-1,1,24}}, - {{28,0,0,12,17,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,10,0,0,-1,1,24},{28,0,0,10,0,0,-1,1,24},{28,0,0,10,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,10,0,0,-1,1,24},{28,0,0,10,0,0,-1,1,24},{28,0,0,10,0,0,-1,1,24},{28,0,0,10,0,0,-1,1,24},{28,0,0,10,0,0,-1,1,24},{28,0,0,10,0,0,-1,1,24},{28,0,0,10,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24}}, - {{28,0,0,7,0,0,-1,1,24},{28,0,0,12,17,0,-1,1,24},{28,0,0,12,17,0,-1,1,24},{28,0,0,12,17,0,-1,1,24},{28,0,0,12,17,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24}}, - {{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,12,17,0,-1,1,24},{28,0,0,10,0,0,-1,1,24},{28,0,0,10,0,0,-1,1,24},{28,0,0,12,17,0,-1,1,24},{28,0,0,12,17,0,-1,1,24},{28,0,0,10,0,0,-1,1,24},{28,0,0,10,0,0,-1,1,24},{28,0,0,10,0,0,-1,1,24},{28,0,0,10,0,0,-1,1,24},{28,0,0,10,0,0,-1,1,24},{28,0,0,10,0,0,-1,1,24},{28,0,0,12,17,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,10,0,0,-1,1,24}}, - {{28,0,0,13,0,0,0,1,19},{28,0,0,13,0,0,1,1,19},{28,0,0,13,0,0,2,1,19},{28,0,0,13,0,0,3,1,19},{28,0,0,13,0,0,4,1,19},{28,0,0,13,0,0,5,1,19},{28,0,0,13,0,0,6,1,19},{28,0,0,13,0,0,7,1,19},{28,0,0,13,0,0,8,1,19},{28,0,0,13,0,0,9,1,19},{28,0,0,10,0,0,-1,1,24},{28,0,0,10,0,0,-1,1,24},{28,0,0,10,0,0,-1,1,24},{28,0,0,12,17,0,-1,1,24},{28,0,0,26,0,8,-1,1,24},{28,0,0,26,0,8,-1,1,24}}, - {{12,0,0,9,0,4,-1,1,2},{12,0,0,9,0,4,-1,1,2},{12,0,0,9,0,4,-1,1,2},{12,0,0,9,0,4,-1,1,2},{12,0,0,9,0,4,-1,1,2},{12,0,0,9,0,4,-1,1,2},{12,0,0,9,0,4,-1,1,2},{12,0,0,9,0,4,-1,1,2},{12,0,0,9,0,4,-1,1,2},{12,0,0,9,0,4,-1,1,2},{12,0,0,9,0,4,-1,1,2},{12,0,0,9,0,4,-1,1,2},{12,0,0,9,0,4,-1,1,2},{12,0,0,9,0,4,-1,1,2},{12,0,0,9,0,4,-1,1,2},{12,0,0,9,0,4,-1,1,2}}, - {{12,0,0,9,0,4,-1,1,2},{12,0,0,9,0,4,-1,1,2},{12,0,0,9,0,4,-1,1,2},{12,0,0,9,0,4,-1,1,2},{12,0,0,9,0,4,-1,1,2},{12,0,0,9,0,4,-1,1,2},{103,0,0,2,0,12,-1,1,0},{12,0,0,9,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{12,0,0,9,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{12,0,0,7,0,0,-1,1,2},{12,0,0,7,0,0,-1,1,2},{12,0,0,7,0,0,-1,1,2},{12,0,0,7,0,0,-1,1,2},{12,0,0,7,0,0,-1,1,2},{12,0,0,7,0,0,-1,1,2},{12,0,0,7,0,0,-1,1,2},{12,0,0,7,0,0,-1,1,2},{12,0,0,7,0,0,-1,1,2},{12,0,0,7,0,0,-1,1,2},{12,0,0,7,0,0,-1,1,2},{12,0,0,7,0,0,-1,1,2},{12,0,0,7,0,0,-1,1,2},{12,0,0,7,0,0,-1,1,2},{12,0,0,7,0,0,-1,1,2},{12,0,0,7,0,0,-1,1,2}}, - {{12,0,0,7,0,0,-1,1,2},{12,0,0,7,0,4,-1,1,2},{12,0,0,7,0,4,-1,1,2},{12,0,0,7,0,4,-1,1,2},{12,0,0,7,0,4,-1,1,2},{12,0,0,7,0,4,-1,1,2},{12,0,0,7,0,4,-1,1,2},{12,0,0,7,0,0,-1,1,2},{12,0,0,7,0,0,-1,1,2},{12,0,0,7,0,0,-1,1,2},{12,0,0,7,0,0,-1,1,2},{0,0,0,21,0,8,-1,1,2},{12,0,0,6,0,9,-1,1,2},{12,0,0,7,0,0,-1,1,2},{12,0,0,7,0,0,-1,1,2},{12,0,0,7,0,0,-1,1,2}}, - {{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33}}, - {{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,10,-1,0,33}}, - {{18,0,0,7,0,10,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35}}, - {{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35}}, - {{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34}}, - {{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34}}, - {{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2}}, - {{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{11,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{11,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0}}, - {{11,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2}}, - {{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2}}, - {{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{11,0,0,12,17,0,-1,1,9},{11,0,0,12,17,0,-1,1,9},{11,0,0,12,17,0,-1,1,9}}, - {{11,0,0,21,0,8,-1,1,2},{11,0,0,21,0,8,-1,1,4},{11,0,0,21,0,8,-1,1,2},{11,0,0,21,0,8,-1,1,2},{11,0,0,21,0,8,-1,1,2},{11,0,0,21,0,8,-1,1,2},{11,0,0,21,0,8,-1,1,2},{11,0,0,21,0,8,-1,1,2},{11,0,0,21,0,8,-1,1,2},{11,0,0,15,0,4,1,1,2},{11,0,0,15,0,4,2,1,2},{11,0,0,15,0,4,3,1,2},{11,0,0,15,0,4,4,1,2},{11,0,0,15,0,4,5,1,2},{11,0,0,15,0,4,6,1,2},{11,0,0,15,0,4,7,1,2}}, - {{11,0,0,15,0,4,8,1,2},{11,0,0,15,0,4,9,1,2},{11,0,0,15,0,8,-1,1,2},{11,0,0,15,0,8,-1,1,2},{11,0,0,15,0,8,-1,1,2},{11,0,0,15,0,8,-1,1,2},{11,0,0,15,0,8,-1,1,2},{11,0,0,15,0,8,-1,1,2},{11,0,0,15,0,8,-1,1,2},{11,0,0,15,0,8,-1,1,2},{11,0,0,15,0,8,-1,1,2},{11,0,0,15,0,8,-1,1,2},{11,0,0,15,0,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{11,0,0,26,10,8,-1,1,2},{11,0,0,26,10,8,-1,1,2},{11,0,0,26,10,8,-1,1,2},{11,0,0,26,10,8,-1,1,2},{11,0,0,26,10,8,-1,1,2},{11,0,0,26,10,8,-1,1,2},{11,0,0,26,10,8,-1,1,2},{11,0,0,26,10,8,-1,1,2},{11,0,0,26,10,8,-1,1,2},{11,0,0,26,10,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{6,0,0,9,0,6,-1,1,2},{6,0,0,9,0,6,-1,1,2},{6,0,0,9,0,6,-1,1,2},{6,0,0,9,0,6,-1,1,2},{6,0,0,9,0,6,-1,1,2},{6,0,0,9,0,6,-1,1,2},{6,0,0,9,0,6,-1,1,2},{6,0,0,9,0,6,-1,1,2},{6,0,0,9,0,6,-1,1,2},{6,0,0,9,0,6,-1,1,2},{6,0,0,9,0,6,-1,1,2},{6,0,0,9,0,6,-1,1,2},{6,0,0,9,0,6,-1,1,2},{6,0,0,9,0,6,-1,1,2},{6,0,0,9,0,6,-1,1,2},{6,0,0,9,0,6,-1,1,2}}, - {{6,0,0,9,0,6,-1,1,2},{6,0,0,9,0,6,-1,1,2},{6,0,0,9,0,6,-1,1,2},{6,0,0,9,0,6,-1,1,2},{6,0,0,9,0,6,-1,1,2},{6,0,0,9,0,6,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{6,0,0,5,0,6,-1,1,2},{6,0,0,5,0,6,-1,1,2},{6,0,0,5,0,6,-1,1,2},{6,0,0,5,0,6,-1,1,2},{6,0,0,5,0,6,-1,1,2},{6,0,0,5,0,6,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{40,0,0,17,10,8,-1,1,4},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2}}, - {{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2}}, - {{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,21,0,8,-1,0,2},{40,0,0,21,0,8,-1,0,2},{40,0,0,7,0,5,-1,0,2}}, - {{29,0,0,29,9,8,-1,1,4},{29,0,0,7,0,7,-1,1,2},{29,0,0,7,0,7,-1,1,2},{29,0,0,7,0,7,-1,1,2},{29,0,0,7,0,7,-1,1,2},{29,0,0,7,0,7,-1,1,2},{29,0,0,7,0,7,-1,1,2},{29,0,0,7,0,7,-1,1,2},{29,0,0,7,0,7,-1,1,2},{29,0,0,7,0,7,-1,1,2},{29,0,0,7,0,7,-1,1,2},{29,0,0,7,0,7,-1,1,2},{29,0,0,7,0,7,-1,1,2},{29,0,0,7,0,7,-1,1,2},{29,0,0,7,0,7,-1,1,2},{29,0,0,7,0,7,-1,1,2}}, - {{29,0,0,7,0,7,-1,1,2},{29,0,0,7,0,7,-1,1,2},{29,0,0,7,0,7,-1,1,2},{29,0,0,7,0,7,-1,1,2},{29,0,0,7,0,7,-1,1,2},{29,0,0,7,0,7,-1,1,2},{29,0,0,7,0,7,-1,1,2},{29,0,0,7,0,7,-1,1,2},{29,0,0,7,0,7,-1,1,2},{29,0,0,7,0,7,-1,1,2},{29,0,0,7,0,7,-1,1,2},{29,1,0,22,10,8,-1,1,20},{29,2,0,18,10,8,-1,1,8},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{32,0,0,7,0,7,-1,1,2},{32,0,0,7,0,7,-1,1,2},{32,0,0,7,0,7,-1,1,2},{32,0,0,7,0,7,-1,1,2},{32,0,0,7,0,7,-1,1,2},{32,0,0,7,0,7,-1,1,2},{32,0,0,7,0,7,-1,1,2},{32,0,0,7,0,7,-1,1,2},{32,0,0,7,0,7,-1,1,2},{32,0,0,7,0,7,-1,1,2},{32,0,0,7,0,7,-1,1,2},{32,0,0,7,0,7,-1,1,2},{32,0,0,7,0,7,-1,1,2},{32,0,0,7,0,7,-1,1,2},{32,0,0,7,0,7,-1,1,2},{32,0,0,7,0,7,-1,1,2}}, - {{32,0,0,7,0,7,-1,1,2},{32,0,0,7,0,7,-1,1,2},{32,0,0,7,0,7,-1,1,2},{32,0,0,7,0,7,-1,1,2},{32,0,0,7,0,7,-1,1,2},{32,0,0,7,0,7,-1,1,2},{32,0,0,7,0,7,-1,1,2},{32,0,0,7,0,7,-1,1,2},{32,0,0,7,0,7,-1,1,2},{32,0,0,7,0,7,-1,1,2},{32,0,0,7,0,7,-1,1,2},{0,0,0,21,0,8,-1,1,4},{0,0,0,21,0,8,-1,1,4},{0,0,0,21,0,8,-1,1,4},{32,0,0,14,0,7,-1,1,2},{32,0,0,14,0,7,-1,1,2}}, - {{32,0,0,14,0,7,-1,1,2},{32,0,0,7,0,7,-1,1,2},{32,0,0,7,0,7,-1,1,2},{32,0,0,7,0,7,-1,1,2},{32,0,0,7,0,7,-1,1,2},{32,0,0,7,0,7,-1,1,2},{32,0,0,7,0,7,-1,1,2},{32,0,0,7,0,7,-1,1,2},{32,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{42,0,0,7,0,7,-1,1,2},{42,0,0,7,0,7,-1,1,2},{42,0,0,7,0,7,-1,1,2},{42,0,0,7,0,7,-1,1,2},{42,0,0,7,0,7,-1,1,2},{42,0,0,7,0,7,-1,1,2},{42,0,0,7,0,7,-1,1,2},{42,0,0,7,0,7,-1,1,2},{42,0,0,7,0,7,-1,1,2},{42,0,0,7,0,7,-1,1,2},{42,0,0,7,0,7,-1,1,2},{42,0,0,7,0,7,-1,1,2},{42,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{42,0,0,7,0,7,-1,1,2},{42,0,0,7,0,7,-1,1,2}}, - {{42,0,0,7,0,7,-1,1,2},{42,0,0,7,0,7,-1,1,2},{42,0,0,12,17,7,-1,1,9},{42,0,0,12,17,7,-1,1,9},{42,0,0,12,17,7,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{43,0,0,7,0,7,-1,1,2},{43,0,0,7,0,7,-1,1,2},{43,0,0,7,0,7,-1,1,2},{43,0,0,7,0,7,-1,1,2},{43,0,0,7,0,7,-1,1,2},{43,0,0,7,0,7,-1,1,2},{43,0,0,7,0,7,-1,1,2},{43,0,0,7,0,7,-1,1,2},{43,0,0,7,0,7,-1,1,2},{43,0,0,7,0,7,-1,1,2},{43,0,0,7,0,7,-1,1,2},{43,0,0,7,0,7,-1,1,2},{43,0,0,7,0,7,-1,1,2},{43,0,0,7,0,7,-1,1,2},{43,0,0,7,0,7,-1,1,2},{43,0,0,7,0,7,-1,1,2}}, - {{43,0,0,7,0,7,-1,1,2},{43,0,0,7,0,7,-1,1,2},{43,0,0,12,17,7,-1,1,9},{43,0,0,12,17,7,-1,1,9},{43,0,0,12,17,7,-1,1,9},{0,0,0,21,0,8,-1,1,4},{0,0,0,21,0,8,-1,1,4},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{44,0,0,7,0,7,-1,1,2},{44,0,0,7,0,7,-1,1,2},{44,0,0,7,0,7,-1,1,2},{44,0,0,7,0,7,-1,1,2},{44,0,0,7,0,7,-1,1,2},{44,0,0,7,0,7,-1,1,2},{44,0,0,7,0,7,-1,1,2},{44,0,0,7,0,7,-1,1,2},{44,0,0,7,0,7,-1,1,2},{44,0,0,7,0,7,-1,1,2},{44,0,0,7,0,7,-1,1,2},{44,0,0,7,0,7,-1,1,2},{44,0,0,7,0,7,-1,1,2},{44,0,0,7,0,7,-1,1,2},{44,0,0,7,0,7,-1,1,2},{44,0,0,7,0,7,-1,1,2}}, - {{44,0,0,7,0,7,-1,1,2},{44,0,0,7,0,7,-1,1,2},{44,0,0,12,17,7,-1,1,9},{44,0,0,12,17,7,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{45,0,0,7,0,7,-1,1,2},{45,0,0,7,0,7,-1,1,2},{45,0,0,7,0,7,-1,1,2},{45,0,0,7,0,7,-1,1,2},{45,0,0,7,0,7,-1,1,2},{45,0,0,7,0,7,-1,1,2},{45,0,0,7,0,7,-1,1,2},{45,0,0,7,0,7,-1,1,2},{45,0,0,7,0,7,-1,1,2},{45,0,0,7,0,7,-1,1,2},{45,0,0,7,0,7,-1,1,2},{45,0,0,7,0,7,-1,1,2},{45,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{45,0,0,7,0,7,-1,1,2},{45,0,0,7,0,7,-1,1,2}}, - {{45,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{45,0,0,12,17,7,-1,1,9},{45,0,0,12,17,7,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{23,0,0,7,0,0,-1,1,24},{23,0,0,7,0,0,-1,1,24},{23,0,0,7,0,0,-1,1,24},{23,0,0,7,0,0,-1,1,24},{23,0,0,7,0,0,-1,1,24},{23,0,0,7,0,0,-1,1,24},{23,0,0,7,0,0,-1,1,24},{23,0,0,7,0,0,-1,1,24},{23,0,0,7,0,0,-1,1,24},{23,0,0,7,0,0,-1,1,24},{23,0,0,7,0,0,-1,1,24},{23,0,0,7,0,0,-1,1,24},{23,0,0,7,0,0,-1,1,24},{23,0,0,7,0,0,-1,1,24},{23,0,0,7,0,0,-1,1,24},{23,0,0,7,0,0,-1,1,24}}, - {{23,0,0,7,0,0,-1,1,24},{23,0,0,7,0,0,-1,1,24},{23,0,0,7,0,0,-1,1,24},{23,0,0,7,0,11,-1,1,24},{23,0,0,7,0,11,-1,1,24},{23,0,0,7,0,0,-1,1,24},{23,0,0,7,0,0,-1,1,24},{23,0,0,7,0,0,-1,1,24},{23,0,0,7,0,4,-1,1,24},{23,0,0,7,0,0,-1,1,24},{23,0,0,7,0,0,-1,1,24},{23,0,0,7,0,0,-1,1,24},{23,0,0,7,0,0,-1,1,24},{23,0,0,7,0,0,-1,1,24},{23,0,0,7,0,0,-1,1,24},{23,0,0,7,0,0,-1,1,24}}, - {{23,0,0,7,0,0,-1,1,24},{23,0,0,7,0,0,-1,1,24},{23,0,0,7,0,0,-1,1,24},{23,0,0,7,0,0,-1,1,24},{23,0,0,12,17,10,-1,1,24},{23,0,0,12,17,10,-1,1,24},{23,0,0,10,0,0,-1,1,24},{23,0,0,12,17,0,-1,1,24},{23,0,0,12,17,0,-1,1,24},{23,0,0,12,17,0,-1,1,24},{23,0,0,12,17,0,-1,1,24},{23,0,0,12,17,0,-1,1,24},{23,0,0,12,17,0,-1,1,24},{23,0,0,12,17,0,-1,1,24},{23,0,0,10,0,0,-1,1,24},{23,0,0,10,0,0,-1,1,24}}, - {{23,0,0,10,0,0,-1,1,24},{23,0,0,10,0,0,-1,1,24},{23,0,0,10,0,0,-1,1,24},{23,0,0,10,0,0,-1,1,24},{23,0,0,10,0,0,-1,1,24},{23,0,0,10,0,0,-1,1,24},{23,0,0,12,17,0,-1,1,24},{23,0,0,10,0,0,-1,1,24},{23,0,0,10,0,0,-1,1,24},{23,0,0,12,17,0,-1,1,24},{23,0,0,12,17,0,-1,1,24},{23,0,0,12,17,3,-1,1,24},{23,0,0,12,17,3,-1,1,24},{23,0,0,12,17,3,-1,1,24},{23,0,0,12,17,3,-1,1,24},{23,0,0,12,17,3,-1,1,24}}, - {{23,0,0,12,17,3,-1,1,24},{23,0,0,12,17,4,-1,1,24},{23,0,0,12,17,0,-1,1,24},{23,0,0,12,17,4,-1,1,24},{23,0,0,21,0,8,-1,1,4},{23,0,0,21,0,8,-1,1,4},{23,0,0,21,0,8,-1,1,18},{23,0,0,6,0,0,-1,1,24},{23,0,0,21,0,8,-1,1,4},{23,0,0,21,0,8,-1,1,2},{23,0,0,21,0,8,-1,1,4},{23,0,0,23,4,8,-1,1,22},{23,0,0,7,0,0,-1,1,24},{23,0,0,12,17,4,-1,1,24},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{23,0,0,13,0,0,0,1,19},{23,0,0,13,0,0,1,1,19},{23,0,0,13,0,0,2,1,19},{23,0,0,13,0,0,3,1,19},{23,0,0,13,0,0,4,1,19},{23,0,0,13,0,0,5,1,19},{23,0,0,13,0,0,6,1,19},{23,0,0,13,0,0,7,1,19},{23,0,0,13,0,0,8,1,19},{23,0,0,13,0,0,9,1,19},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{23,0,0,15,10,8,-1,1,2},{23,0,0,15,10,8,-1,1,2},{23,0,0,15,10,8,-1,1,2},{23,0,0,15,10,8,-1,1,2},{23,0,0,15,10,8,-1,1,2},{23,0,0,15,10,8,-1,1,2},{23,0,0,15,10,8,-1,1,2},{23,0,0,15,10,8,-1,1,2},{23,0,0,15,10,8,-1,1,2},{23,0,0,15,10,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{27,0,0,21,10,8,-1,1,2},{27,0,0,21,10,8,-1,1,2},{0,0,0,21,10,8,-1,1,11},{0,0,0,21,10,8,-1,1,11},{27,0,0,21,10,8,-1,1,4},{0,0,0,21,10,8,-1,1,4},{27,0,0,17,10,8,-1,1,5},{27,0,0,21,10,8,-1,1,2},{27,0,0,21,10,8,-1,1,11},{27,0,0,21,10,8,-1,1,11},{27,0,0,21,10,8,-1,1,2},{27,0,0,12,17,10,-1,1,9},{27,0,0,12,17,10,-1,1,9},{27,0,0,12,17,10,-1,1,9},{27,0,0,1,18,10,-1,1,12},{103,0,0,2,0,12,-1,1,0}}, - {{27,0,0,13,0,5,0,1,19},{27,0,0,13,0,5,1,1,19},{27,0,0,13,0,5,2,1,19},{27,0,0,13,0,5,3,1,19},{27,0,0,13,0,5,4,1,19},{27,0,0,13,0,5,5,1,19},{27,0,0,13,0,5,6,1,19},{27,0,0,13,0,5,7,1,19},{27,0,0,13,0,5,8,1,19},{27,0,0,13,0,5,9,1,19},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2}}, - {{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,6,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2}}, - {{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,7,0,5,-1,1,2},{27,0,0,12,17,5,-1,1,9},{27,0,0,7,0,5,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{40,0,0,7,0,5,-1,0,2},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{48,0,0,7,0,6,-1,1,2},{48,0,0,7,0,6,-1,1,2},{48,0,0,7,0,6,-1,1,2},{48,0,0,7,0,6,-1,1,2},{48,0,0,7,0,6,-1,1,2},{48,0,0,7,0,6,-1,1,2},{48,0,0,7,0,6,-1,1,2},{48,0,0,7,0,6,-1,1,2},{48,0,0,7,0,6,-1,1,2},{48,0,0,7,0,6,-1,1,2},{48,0,0,7,0,6,-1,1,2},{48,0,0,7,0,6,-1,1,2},{48,0,0,7,0,6,-1,1,2},{48,0,0,7,0,6,-1,1,2},{48,0,0,7,0,6,-1,1,2},{48,0,0,7,0,6,-1,1,2}}, - {{48,0,0,7,0,6,-1,1,2},{48,0,0,7,0,6,-1,1,2},{48,0,0,7,0,6,-1,1,2},{48,0,0,7,0,6,-1,1,2},{48,0,0,7,0,6,-1,1,2},{48,0,0,7,0,6,-1,1,2},{48,0,0,7,0,6,-1,1,2},{48,0,0,7,0,6,-1,1,2},{48,0,0,7,0,6,-1,1,2},{48,0,0,7,0,6,-1,1,2},{48,0,0,7,0,6,-1,1,2},{48,0,0,7,0,6,-1,1,2},{48,0,0,7,0,6,-1,1,2},{48,0,0,7,0,6,-1,1,2},{48,0,0,7,0,6,-1,1,2},{103,0,0,2,0,12,-1,1,0}}, - {{48,0,0,12,17,6,-1,1,9},{48,0,0,12,17,6,-1,1,9},{48,0,0,12,17,6,-1,1,9},{48,0,0,10,0,6,-1,1,9},{48,0,0,10,0,6,-1,1,9},{48,0,0,10,0,6,-1,1,9},{48,0,0,10,0,6,-1,1,9},{48,0,0,12,17,6,-1,1,9},{48,0,0,12,17,6,-1,1,9},{48,0,0,10,0,6,-1,1,9},{48,0,0,10,0,6,-1,1,9},{48,0,0,10,0,6,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{48,0,0,10,0,6,-1,1,9},{48,0,0,10,0,6,-1,1,9},{48,0,0,12,17,6,-1,1,9},{48,0,0,10,0,6,-1,1,9},{48,0,0,10,0,6,-1,1,9},{48,0,0,10,0,6,-1,1,9},{48,0,0,10,0,6,-1,1,9},{48,0,0,10,0,6,-1,1,9},{48,0,0,10,0,6,-1,1,9},{48,0,0,12,17,6,-1,1,9},{48,0,0,12,17,6,-1,1,9},{48,0,0,12,17,6,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{48,0,0,26,10,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{48,0,0,21,10,8,-1,1,11},{48,0,0,21,10,8,-1,1,11},{48,0,0,13,0,6,0,1,19},{48,0,0,13,0,6,1,1,19},{48,0,0,13,0,6,2,1,19},{48,0,0,13,0,6,3,1,19},{48,0,0,13,0,6,4,1,19},{48,0,0,13,0,6,5,1,19},{48,0,0,13,0,6,6,1,19},{48,0,0,13,0,6,7,1,19},{48,0,0,13,0,6,8,1,19},{48,0,0,13,0,6,9,1,19}}, - {{52,0,0,7,0,6,-1,1,24},{52,0,0,7,0,6,-1,1,24},{52,0,0,7,0,6,-1,1,24},{52,0,0,7,0,6,-1,1,24},{52,0,0,7,0,6,-1,1,24},{52,0,0,7,0,6,-1,1,24},{52,0,0,7,0,6,-1,1,24},{52,0,0,7,0,6,-1,1,24},{52,0,0,7,0,6,-1,1,24},{52,0,0,7,0,6,-1,1,24},{52,0,0,7,0,6,-1,1,24},{52,0,0,7,0,6,-1,1,24},{52,0,0,7,0,6,-1,1,24},{52,0,0,7,0,6,-1,1,24},{52,0,0,7,0,6,-1,1,24},{52,0,0,7,0,6,-1,1,24}}, - {{52,0,0,7,0,6,-1,1,24},{52,0,0,7,0,6,-1,1,24},{52,0,0,7,0,6,-1,1,24},{52,0,0,7,0,6,-1,1,24},{52,0,0,7,0,6,-1,1,24},{52,0,0,7,0,6,-1,1,24},{52,0,0,7,0,6,-1,1,24},{52,0,0,7,0,6,-1,1,24},{52,0,0,7,0,6,-1,1,24},{52,0,0,7,0,6,-1,1,24},{52,0,0,7,0,6,-1,1,24},{52,0,0,7,0,6,-1,1,24},{52,0,0,7,0,6,-1,1,24},{52,0,0,7,0,6,-1,1,24},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{52,0,0,7,0,6,-1,1,24},{52,0,0,7,0,6,-1,1,24},{52,0,0,7,0,6,-1,1,24},{52,0,0,7,0,6,-1,1,24},{52,0,0,7,0,6,-1,1,24},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24}}, - {{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{59,0,0,7,0,6,-1,1,24},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{59,0,0,13,0,6,0,1,19},{59,0,0,13,0,6,1,1,19},{59,0,0,13,0,6,2,1,19},{59,0,0,13,0,6,3,1,19},{59,0,0,13,0,6,4,1,19},{59,0,0,13,0,6,5,1,19},{59,0,0,13,0,6,6,1,19},{59,0,0,13,0,6,7,1,19},{59,0,0,13,0,6,8,1,19},{59,0,0,13,0,6,9,1,19},{59,0,0,15,0,6,1,1,24},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{59,0,0,26,10,8,-1,1,24},{59,0,0,26,10,8,-1,1,24}}, - {{23,0,0,26,10,8,-1,1,2},{23,0,0,26,10,8,-1,1,2},{23,0,0,26,10,8,-1,1,2},{23,0,0,26,10,8,-1,1,2},{23,0,0,26,10,8,-1,1,2},{23,0,0,26,10,8,-1,1,2},{23,0,0,26,10,8,-1,1,2},{23,0,0,26,10,8,-1,1,2},{23,0,0,26,10,8,-1,1,2},{23,0,0,26,10,8,-1,1,2},{23,0,0,26,10,8,-1,1,2},{23,0,0,26,10,8,-1,1,2},{23,0,0,26,10,8,-1,1,2},{23,0,0,26,10,8,-1,1,2},{23,0,0,26,10,8,-1,1,2},{23,0,0,26,10,8,-1,1,2}}, - {{55,0,0,7,0,7,-1,1,2},{55,0,0,7,0,7,-1,1,2},{55,0,0,7,0,7,-1,1,2},{55,0,0,7,0,7,-1,1,2},{55,0,0,7,0,7,-1,1,2},{55,0,0,7,0,7,-1,1,2},{55,0,0,7,0,7,-1,1,2},{55,0,0,7,0,7,-1,1,2},{55,0,0,7,0,7,-1,1,2},{55,0,0,7,0,7,-1,1,2},{55,0,0,7,0,7,-1,1,2},{55,0,0,7,0,7,-1,1,2},{55,0,0,7,0,7,-1,1,2},{55,0,0,7,0,7,-1,1,2},{55,0,0,7,0,7,-1,1,2},{55,0,0,7,0,7,-1,1,2}}, - {{55,0,0,7,0,7,-1,1,2},{55,0,0,7,0,7,-1,1,2},{55,0,0,7,0,7,-1,1,2},{55,0,0,7,0,7,-1,1,2},{55,0,0,7,0,7,-1,1,2},{55,0,0,7,0,7,-1,1,2},{55,0,0,7,0,7,-1,1,2},{55,0,0,12,17,7,-1,1,9},{55,0,0,12,17,7,-1,1,9},{55,0,0,10,0,7,-1,1,9},{55,0,0,10,0,7,-1,1,9},{55,0,0,12,17,7,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{55,0,0,21,0,8,-1,1,2},{55,0,0,21,0,8,-1,1,2}}, - {{106,0,0,7,0,6,-1,1,24},{106,0,0,7,0,6,-1,1,24},{106,0,0,7,0,6,-1,1,24},{106,0,0,7,0,6,-1,1,24},{106,0,0,7,0,6,-1,1,24},{106,0,0,7,0,6,-1,1,24},{106,0,0,7,0,6,-1,1,24},{106,0,0,7,0,6,-1,1,24},{106,0,0,7,0,6,-1,1,24},{106,0,0,7,0,6,-1,1,24},{106,0,0,7,0,6,-1,1,24},{106,0,0,7,0,6,-1,1,24},{106,0,0,7,0,6,-1,1,24},{106,0,0,7,0,6,-1,1,24},{106,0,0,7,0,6,-1,1,24},{106,0,0,7,0,6,-1,1,24}}, - {{106,0,0,7,0,6,-1,1,24},{106,0,0,7,0,6,-1,1,24},{106,0,0,7,0,6,-1,1,24},{106,0,0,7,0,6,-1,1,24},{106,0,0,7,0,6,-1,1,24},{106,0,0,10,0,6,-1,1,24},{106,0,0,12,17,6,-1,1,24},{106,0,0,10,0,6,-1,1,24},{106,0,0,12,17,6,-1,1,24},{106,0,0,12,17,6,-1,1,24},{106,0,0,12,17,6,-1,1,24},{106,0,0,12,17,6,-1,1,24},{106,0,0,12,17,6,-1,1,24},{106,0,0,12,17,6,-1,1,24},{106,0,0,12,17,6,-1,1,24},{103,0,0,2,0,12,-1,1,0}}, - {{106,0,0,12,17,6,-1,1,24},{106,0,0,10,0,6,-1,1,24},{106,0,0,12,17,6,-1,1,24},{106,0,0,10,0,6,-1,1,24},{106,0,0,10,0,6,-1,1,24},{106,0,0,12,17,6,-1,1,24},{106,0,0,12,17,6,-1,1,24},{106,0,0,12,17,6,-1,1,24},{106,0,0,12,17,6,-1,1,24},{106,0,0,12,17,6,-1,1,24},{106,0,0,12,17,6,-1,1,24},{106,0,0,12,17,6,-1,1,24},{106,0,0,12,17,6,-1,1,24},{106,0,0,10,0,6,-1,1,24},{106,0,0,10,0,6,-1,1,24},{106,0,0,10,0,6,-1,1,24}}, - {{106,0,0,10,0,6,-1,1,24},{106,0,0,10,0,6,-1,1,24},{106,0,0,10,0,6,-1,1,24},{106,0,0,12,17,6,-1,1,24},{106,0,0,12,17,6,-1,1,24},{106,0,0,12,17,6,-1,1,24},{106,0,0,12,17,6,-1,1,24},{106,0,0,12,17,6,-1,1,24},{106,0,0,12,17,6,-1,1,24},{106,0,0,12,17,6,-1,1,24},{106,0,0,12,17,6,-1,1,24},{106,0,0,12,17,6,-1,1,24},{106,0,0,12,17,6,-1,1,24},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{106,0,0,12,17,6,-1,1,9}}, - {{106,0,0,13,0,6,0,1,19},{106,0,0,13,0,6,1,1,19},{106,0,0,13,0,6,2,1,19},{106,0,0,13,0,6,3,1,19},{106,0,0,13,0,6,4,1,19},{106,0,0,13,0,6,5,1,19},{106,0,0,13,0,6,6,1,19},{106,0,0,13,0,6,7,1,19},{106,0,0,13,0,6,8,1,19},{106,0,0,13,0,6,9,1,19},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{106,0,0,21,0,8,-1,1,24},{106,0,0,21,0,8,-1,1,24},{106,0,0,21,0,8,-1,1,24},{106,0,0,21,0,8,-1,1,24},{106,0,0,21,0,8,-1,1,24},{106,0,0,21,0,8,-1,1,24},{106,0,0,21,0,8,-1,1,24},{106,0,0,6,0,6,-1,1,24},{106,0,0,21,0,8,-1,1,24},{106,0,0,21,0,8,-1,1,24},{106,0,0,21,0,8,-1,1,24},{106,0,0,21,0,8,-1,1,24},{106,0,0,21,0,8,-1,1,24},{106,0,0,21,0,8,-1,1,24},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,11,17,8,-1,1,9},{103,0,0,2,0,12,-1,1,0}}, - {{62,0,0,12,17,6,-1,1,9},{62,0,0,12,17,6,-1,1,9},{62,0,0,12,17,6,-1,1,9},{62,0,0,12,17,6,-1,1,9},{62,0,0,10,0,6,-1,1,9},{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2}}, - {{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2}}, - {{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2},{62,0,0,12,17,6,-1,1,9},{62,0,0,10,0,6,-1,1,9},{62,0,0,12,17,6,-1,1,9},{62,0,0,12,17,6,-1,1,9},{62,0,0,12,17,6,-1,1,9},{62,0,0,12,17,6,-1,1,9},{62,0,0,12,17,6,-1,1,9},{62,0,0,10,0,6,-1,1,9},{62,0,0,12,17,6,-1,1,9},{62,0,0,10,0,6,-1,1,9},{62,0,0,10,0,6,-1,1,9},{62,0,0,10,0,6,-1,1,9}}, - {{62,0,0,10,0,6,-1,1,9},{62,0,0,10,0,6,-1,1,9},{62,0,0,12,17,6,-1,1,9},{62,0,0,10,0,6,-1,1,9},{62,0,0,10,0,6,-1,1,9},{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2},{62,0,0,7,0,6,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{62,0,0,13,0,6,0,1,19},{62,0,0,13,0,6,1,1,19},{62,0,0,13,0,6,2,1,19},{62,0,0,13,0,6,3,1,19},{62,0,0,13,0,6,4,1,19},{62,0,0,13,0,6,5,1,19},{62,0,0,13,0,6,6,1,19},{62,0,0,13,0,6,7,1,19},{62,0,0,13,0,6,8,1,19},{62,0,0,13,0,6,9,1,19},{62,0,0,21,0,8,-1,1,4},{62,0,0,21,0,8,-1,1,4},{62,0,0,21,0,8,-1,1,2},{62,0,0,21,0,8,-1,1,4},{62,0,0,21,0,8,-1,1,4},{62,0,0,21,0,8,-1,1,4}}, - {{62,0,0,21,0,8,-1,1,4},{62,0,0,26,0,8,-1,1,2},{62,0,0,26,0,8,-1,1,2},{62,0,0,26,0,8,-1,1,2},{62,0,0,26,0,8,-1,1,2},{62,0,0,26,0,8,-1,1,2},{62,0,0,26,0,8,-1,1,2},{62,0,0,26,0,8,-1,1,2},{62,0,0,26,0,8,-1,1,2},{62,0,0,26,0,8,-1,1,2},{62,0,0,26,0,8,-1,1,2},{62,0,0,12,17,6,-1,1,9},{62,0,0,12,17,6,-1,1,9},{62,0,0,12,17,6,-1,1,9},{62,0,0,12,17,6,-1,1,9},{62,0,0,12,17,6,-1,1,9}}, - {{62,0,0,12,17,6,-1,1,9},{62,0,0,12,17,6,-1,1,9},{62,0,0,12,17,6,-1,1,9},{62,0,0,12,17,6,-1,1,9},{62,0,0,26,0,8,-1,1,2},{62,0,0,26,0,8,-1,1,2},{62,0,0,26,0,8,-1,1,2},{62,0,0,26,0,8,-1,1,2},{62,0,0,26,0,8,-1,1,2},{62,0,0,26,0,8,-1,1,2},{62,0,0,26,0,8,-1,1,2},{62,0,0,26,0,8,-1,1,2},{62,0,0,26,0,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{113,0,0,12,17,6,-1,1,9},{113,0,0,12,17,6,-1,1,9},{113,0,0,10,0,6,-1,1,9},{113,0,0,7,0,6,-1,1,2},{113,0,0,7,0,6,-1,1,2},{113,0,0,7,0,6,-1,1,2},{113,0,0,7,0,6,-1,1,2},{113,0,0,7,0,6,-1,1,2},{113,0,0,7,0,6,-1,1,2},{113,0,0,7,0,6,-1,1,2},{113,0,0,7,0,6,-1,1,2},{113,0,0,7,0,6,-1,1,2},{113,0,0,7,0,6,-1,1,2},{113,0,0,7,0,6,-1,1,2},{113,0,0,7,0,6,-1,1,2},{113,0,0,7,0,6,-1,1,2}}, - {{113,0,0,7,0,6,-1,1,2},{113,0,0,7,0,6,-1,1,2},{113,0,0,7,0,6,-1,1,2},{113,0,0,7,0,6,-1,1,2},{113,0,0,7,0,6,-1,1,2},{113,0,0,7,0,6,-1,1,2},{113,0,0,7,0,6,-1,1,2},{113,0,0,7,0,6,-1,1,2},{113,0,0,7,0,6,-1,1,2},{113,0,0,7,0,6,-1,1,2},{113,0,0,7,0,6,-1,1,2},{113,0,0,7,0,6,-1,1,2},{113,0,0,7,0,6,-1,1,2},{113,0,0,7,0,6,-1,1,2},{113,0,0,7,0,6,-1,1,2},{113,0,0,7,0,6,-1,1,2}}, - {{113,0,0,7,0,6,-1,1,2},{113,0,0,10,0,6,-1,1,9},{113,0,0,12,17,6,-1,1,9},{113,0,0,12,17,6,-1,1,9},{113,0,0,12,17,6,-1,1,9},{113,0,0,12,17,6,-1,1,9},{113,0,0,10,0,6,-1,1,9},{113,0,0,10,0,6,-1,1,9},{113,0,0,12,17,6,-1,1,9},{113,0,0,12,17,6,-1,1,9},{113,0,0,10,0,6,-1,1,9},{113,0,0,12,17,6,-1,1,9},{113,0,0,12,17,6,-1,1,9},{113,0,0,12,17,6,-1,1,9},{113,0,0,7,0,6,-1,1,2},{113,0,0,7,0,6,-1,1,2}}, - {{113,0,0,13,0,6,0,1,19},{113,0,0,13,0,6,1,1,19},{113,0,0,13,0,6,2,1,19},{113,0,0,13,0,6,3,1,19},{113,0,0,13,0,6,4,1,19},{113,0,0,13,0,6,5,1,19},{113,0,0,13,0,6,6,1,19},{113,0,0,13,0,6,7,1,19},{113,0,0,13,0,6,8,1,19},{113,0,0,13,0,6,9,1,19},{113,0,0,7,0,6,-1,1,2},{113,0,0,7,0,6,-1,1,2},{113,0,0,7,0,6,-1,1,2},{113,0,0,7,0,6,-1,1,2},{113,0,0,7,0,6,-1,1,2},{113,0,0,7,0,6,-1,1,2}}, - {{63,0,0,7,0,6,-1,1,2},{63,0,0,7,0,6,-1,1,2},{63,0,0,7,0,6,-1,1,2},{63,0,0,7,0,6,-1,1,2},{63,0,0,7,0,6,-1,1,2},{63,0,0,7,0,6,-1,1,2},{63,0,0,7,0,6,-1,1,2},{63,0,0,7,0,6,-1,1,2},{63,0,0,7,0,6,-1,1,2},{63,0,0,7,0,6,-1,1,2},{63,0,0,7,0,6,-1,1,2},{63,0,0,7,0,6,-1,1,2},{63,0,0,7,0,6,-1,1,2},{63,0,0,7,0,6,-1,1,2},{63,0,0,7,0,6,-1,1,2},{63,0,0,7,0,6,-1,1,2}}, - {{63,0,0,7,0,6,-1,1,2},{63,0,0,7,0,6,-1,1,2},{63,0,0,7,0,6,-1,1,2},{63,0,0,7,0,6,-1,1,2},{63,0,0,7,0,6,-1,1,2},{63,0,0,7,0,6,-1,1,2},{63,0,0,12,17,6,-1,1,9},{63,0,0,10,0,6,-1,1,9},{63,0,0,12,17,6,-1,1,9},{63,0,0,12,17,6,-1,1,9},{63,0,0,10,0,6,-1,1,9},{63,0,0,10,0,6,-1,1,9},{63,0,0,10,0,6,-1,1,9},{63,0,0,12,17,6,-1,1,9},{63,0,0,10,0,6,-1,1,9},{63,0,0,12,17,6,-1,1,9}}, - {{63,0,0,12,17,6,-1,1,9},{63,0,0,12,17,6,-1,1,9},{63,0,0,10,0,6,-1,1,9},{63,0,0,10,0,6,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{63,0,0,21,0,8,-1,1,2},{63,0,0,21,0,8,-1,1,2},{63,0,0,21,0,8,-1,1,2},{63,0,0,21,0,8,-1,1,2}}, - {{82,0,0,7,0,6,-1,1,2},{82,0,0,7,0,6,-1,1,2},{82,0,0,7,0,6,-1,1,2},{82,0,0,7,0,6,-1,1,2},{82,0,0,7,0,6,-1,1,2},{82,0,0,7,0,6,-1,1,2},{82,0,0,7,0,6,-1,1,2},{82,0,0,7,0,6,-1,1,2},{82,0,0,7,0,6,-1,1,2},{82,0,0,7,0,6,-1,1,2},{82,0,0,7,0,6,-1,1,2},{82,0,0,7,0,6,-1,1,2},{82,0,0,7,0,6,-1,1,2},{82,0,0,7,0,6,-1,1,2},{82,0,0,7,0,6,-1,1,2},{82,0,0,7,0,6,-1,1,2}}, - {{82,0,0,7,0,6,-1,1,2},{82,0,0,7,0,6,-1,1,2},{82,0,0,7,0,6,-1,1,2},{82,0,0,7,0,6,-1,1,2},{82,0,0,10,0,6,-1,1,9},{82,0,0,10,0,6,-1,1,9},{82,0,0,10,0,6,-1,1,9},{82,0,0,10,0,6,-1,1,9},{82,0,0,10,0,6,-1,1,9},{82,0,0,10,0,6,-1,1,9},{82,0,0,10,0,6,-1,1,9},{82,0,0,10,0,6,-1,1,9},{82,0,0,12,17,6,-1,1,9},{82,0,0,12,17,6,-1,1,9},{82,0,0,12,17,6,-1,1,9},{82,0,0,12,17,6,-1,1,9}}, - {{82,0,0,12,17,6,-1,1,9},{82,0,0,12,17,6,-1,1,9},{82,0,0,12,17,6,-1,1,9},{82,0,0,12,17,6,-1,1,9},{82,0,0,10,0,6,-1,1,9},{82,0,0,10,0,6,-1,1,9},{82,0,0,12,17,6,-1,1,9},{82,0,0,12,17,6,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{82,0,0,21,0,8,-1,1,4},{82,0,0,21,0,8,-1,1,4},{82,0,0,21,0,8,-1,1,4},{82,0,0,21,0,8,-1,1,4},{82,0,0,21,0,8,-1,1,4}}, - {{82,0,0,13,0,6,0,1,19},{82,0,0,13,0,6,1,1,19},{82,0,0,13,0,6,2,1,19},{82,0,0,13,0,6,3,1,19},{82,0,0,13,0,6,4,1,19},{82,0,0,13,0,6,5,1,19},{82,0,0,13,0,6,6,1,19},{82,0,0,13,0,6,7,1,19},{82,0,0,13,0,6,8,1,19},{82,0,0,13,0,6,9,1,19},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{82,0,0,7,0,6,-1,1,2},{82,0,0,7,0,6,-1,1,2},{82,0,0,7,0,6,-1,1,2}}, - {{109,0,0,13,0,6,0,1,19},{109,0,0,13,0,6,1,1,19},{109,0,0,13,0,6,2,1,19},{109,0,0,13,0,6,3,1,19},{109,0,0,13,0,6,4,1,19},{109,0,0,13,0,6,5,1,19},{109,0,0,13,0,6,6,1,19},{109,0,0,13,0,6,7,1,19},{109,0,0,13,0,6,8,1,19},{109,0,0,13,0,6,9,1,19},{109,0,0,7,0,6,-1,1,2},{109,0,0,7,0,6,-1,1,2},{109,0,0,7,0,6,-1,1,2},{109,0,0,7,0,6,-1,1,2},{109,0,0,7,0,6,-1,1,2},{109,0,0,7,0,6,-1,1,2}}, - {{109,0,0,7,0,6,-1,1,2},{109,0,0,7,0,6,-1,1,2},{109,0,0,7,0,6,-1,1,2},{109,0,0,7,0,6,-1,1,2},{109,0,0,7,0,6,-1,1,2},{109,0,0,7,0,6,-1,1,2},{109,0,0,7,0,6,-1,1,2},{109,0,0,7,0,6,-1,1,2},{109,0,0,7,0,6,-1,1,2},{109,0,0,7,0,6,-1,1,2},{109,0,0,7,0,6,-1,1,2},{109,0,0,7,0,6,-1,1,2},{109,0,0,7,0,6,-1,1,2},{109,0,0,7,0,6,-1,1,2},{109,0,0,7,0,6,-1,1,2},{109,0,0,7,0,6,-1,1,2}}, - {{109,0,0,7,0,6,-1,1,2},{109,0,0,7,0,6,-1,1,2},{109,0,0,7,0,6,-1,1,2},{109,0,0,7,0,6,-1,1,2},{109,0,0,7,0,6,-1,1,2},{109,0,0,7,0,6,-1,1,2},{109,0,0,7,0,6,-1,1,2},{109,0,0,7,0,6,-1,1,2},{109,0,0,6,0,6,-1,1,2},{109,0,0,6,0,6,-1,1,2},{109,0,0,6,0,6,-1,1,2},{109,0,0,6,0,6,-1,1,2},{109,0,0,6,0,6,-1,1,2},{109,0,0,6,0,6,-1,1,2},{109,0,0,21,0,8,-1,1,4},{109,0,0,21,0,8,-1,1,4}}, - {{113,0,0,21,0,8,-1,1,2},{113,0,0,21,0,8,-1,1,2},{113,0,0,21,0,8,-1,1,2},{113,0,0,21,0,8,-1,1,2},{113,0,0,21,0,8,-1,1,2},{113,0,0,21,0,8,-1,1,2},{113,0,0,21,0,8,-1,1,2},{113,0,0,21,0,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{0,0,0,21,0,8,-1,1,2},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9}}, - {{1,0,0,12,17,4,-1,1,9},{0,0,0,10,0,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{0,0,0,7,0,4,-1,1,2},{0,0,0,7,0,4,-1,1,2},{0,0,0,7,0,4,-1,1,2},{0,0,0,7,0,4,-1,1,2},{1,0,0,12,17,4,-1,1,9},{0,0,0,7,0,4,-1,1,2},{0,0,0,7,0,4,-1,1,2}}, - {{0,0,0,7,0,4,-1,1,2},{0,0,0,7,0,4,-1,1,2},{0,0,0,10,0,4,-1,1,9},{0,0,0,10,0,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{0,0,0,7,0,4,-1,1,2},{0,0,0,7,0,4,-1,1,2},{103,0,0,2,0,12,-1,1,0},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{14,0,0,5,0,3,-1,1,2},{14,0,0,5,0,3,-1,1,2},{14,0,0,5,0,3,-1,1,2},{14,0,0,5,0,3,-1,1,2},{14,0,0,5,0,3,-1,1,2},{8,0,0,5,0,3,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,3,-1,1,2}}, - {{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,3,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2}}, - {{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,3,-1,1,2},{25,0,0,6,0,9,-1,1,2}}, - {{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{14,0,0,6,0,9,-1,1,2},{14,0,0,6,0,9,-1,1,2},{14,0,0,6,0,9,-1,1,2}}, - {{14,0,0,6,0,9,-1,1,2},{14,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{14,0,0,6,0,9,-1,1,2},{14,0,0,6,0,9,-1,1,2},{14,0,0,6,0,9,-1,1,2},{14,0,0,6,0,9,-1,1,2},{14,0,0,6,0,9,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2}}, - {{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{8,0,0,6,0,9,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2}}, - {{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2}}, - {{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2}}, - {{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{14,0,0,6,0,9,-1,1,2}}, - {{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,3,-1,1,9}}, - {{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9}}, - {{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,4,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9}}, - {{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9}}, - {{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,9,-1,1,2},{25,0,0,5,0,9,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,3,-1,1,2}}, - {{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,9,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,9,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2}}, - {{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2}}, - {{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{14,0,0,9,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{14,0,0,9,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{14,0,0,9,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{14,0,0,9,0,0,-1,1,2}}, - {{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,9,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,9,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,9,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,9,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,9,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,9,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,8,0,0,-1,1,2},{14,0,0,8,0,0,-1,1,2},{14,0,0,8,0,0,-1,1,2},{14,0,0,8,0,0,-1,1,2},{14,0,0,8,0,0,-1,1,2},{14,0,0,8,0,0,-1,1,2},{14,0,0,8,0,0,-1,1,2},{14,0,0,8,0,0,-1,1,2}}, - {{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,9,-1,1,2},{14,0,0,8,0,0,-1,1,2},{14,0,0,24,10,9,-1,1,2},{14,0,0,5,0,9,-1,1,2},{14,0,0,24,10,9,-1,1,2}}, - {{14,0,0,24,10,9,-1,1,2},{14,0,0,24,10,9,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,9,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,9,-1,1,2},{14,0,0,8,0,0,-1,1,2},{14,0,0,24,10,9,-1,1,2},{14,0,0,24,10,9,-1,1,2},{14,0,0,24,10,9,-1,1,2}}, - {{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0},{14,0,0,24,10,9,-1,1,2},{14,0,0,24,10,9,-1,1,2},{14,0,0,24,10,9,-1,1,2}}, - {{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,9,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,9,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,24,10,9,-1,1,2},{14,0,0,24,10,9,-1,1,2},{14,0,0,24,10,9,-1,1,2}}, - {{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{14,0,0,5,0,0,-1,1,2},{14,0,0,5,0,0,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,9,-1,1,2},{14,0,0,9,0,0,-1,1,2},{14,0,0,9,0,9,-1,1,2},{14,0,0,8,0,0,-1,1,2},{14,0,0,24,10,9,-1,1,5},{14,0,0,24,10,9,-1,1,2},{103,0,0,2,0,12,-1,1,0}}, - {{0,0,0,29,9,9,-1,1,4},{0,0,0,29,9,9,-1,1,4},{0,0,0,29,9,9,-1,1,4},{0,0,0,29,9,9,-1,1,4},{0,0,0,29,9,9,-1,1,4},{0,0,0,29,9,9,-1,1,4},{0,0,0,29,9,9,-1,1,4},{0,0,0,29,9,9,-1,1,12},{0,0,0,29,9,9,-1,1,4},{0,0,0,29,9,9,-1,1,4},{0,0,0,29,9,9,-1,1,4},{0,0,0,1,18,10,-1,1,28},{1,0,0,1,18,1,-1,1,9},{1,0,0,1,18,1,-1,1,9},{0,0,0,1,0,10,-1,1,9},{0,0,0,1,1,10,-1,1,9}}, - {{0,0,0,17,10,1,-1,1,4},{0,0,0,17,10,9,-1,1,12},{0,0,0,17,10,8,-1,1,4},{0,0,0,17,10,8,-1,1,4},{0,0,0,17,10,8,-1,1,3},{0,0,0,17,10,8,-1,1,1},{0,0,0,21,10,8,-1,0,1},{0,0,0,21,10,9,-1,1,2},{0,0,0,20,10,8,-1,1,23},{0,0,0,19,10,1,-1,1,23},{0,0,0,22,10,8,-1,1,20},{0,0,0,20,10,8,-1,1,23},{0,0,0,20,10,8,-1,1,23},{0,0,0,19,10,8,-1,1,23},{0,0,0,22,10,8,-1,1,20},{0,0,0,20,10,8,-1,1,23}}, - {{0,0,0,21,10,8,-1,0,1},{0,0,0,21,10,8,-1,0,1},{0,0,0,21,10,8,-1,1,2},{0,0,0,21,10,8,-1,1,2},{0,0,0,21,10,9,-1,1,15},{0,0,0,21,10,9,-1,1,15},{0,0,0,21,10,9,-1,1,15},{0,0,0,21,10,1,-1,1,4},{0,0,0,27,9,8,-1,1,6},{0,0,0,28,7,8,-1,1,6},{0,0,0,1,11,10,-1,1,9},{0,0,0,1,14,10,-1,1,9},{0,0,0,1,16,10,-1,1,9},{0,0,0,1,12,10,-1,1,9},{0,0,0,1,15,10,-1,1,9},{0,0,0,29,6,9,-1,1,12}}, - {{0,0,0,21,4,8,-1,0,21},{0,0,0,21,4,8,-1,0,21},{0,0,0,21,4,8,-1,1,21},{0,0,0,21,4,9,-1,1,21},{0,0,0,21,4,9,-1,1,21},{0,0,0,21,10,8,-1,1,21},{0,0,0,21,10,9,-1,1,21},{0,0,0,21,10,9,-1,1,21},{0,0,0,21,10,8,-1,1,2},{0,0,0,20,10,8,-1,1,23},{0,0,0,19,10,8,-1,1,23},{0,0,0,21,10,8,-1,0,1},{0,0,0,21,10,9,-1,0,18},{0,0,0,21,10,8,-1,1,18},{0,0,0,21,10,9,-1,1,2},{0,0,0,16,10,3,-1,1,2}}, - {{0,0,0,16,10,3,-1,1,2},{0,0,0,21,10,8,-1,1,2},{0,0,0,21,10,8,-1,0,2},{0,0,0,21,10,8,-1,1,2},{0,0,0,25,6,8,-1,1,16},{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,8},{0,0,0,21,10,9,-1,0,18},{0,0,0,21,10,9,-1,0,18},{0,0,0,21,10,9,-1,0,18},{0,0,0,21,10,8,-1,1,2},{0,0,0,21,10,8,-1,1,2},{0,0,0,21,10,8,-1,1,2},{0,0,0,21,10,8,-1,1,2},{0,0,0,21,10,8,-1,1,2},{0,0,0,21,10,8,-1,1,2}}, - {{0,0,0,21,10,8,-1,1,2},{0,0,0,21,10,8,-1,0,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,21,10,8,-1,1,2},{0,0,0,16,10,2,-1,1,2},{0,0,0,21,10,8,-1,1,2},{0,0,0,21,10,8,-1,1,4},{0,0,0,21,10,9,-1,1,2},{0,0,0,21,10,8,-1,1,4},{0,0,0,21,10,8,-1,1,4},{0,0,0,21,10,8,-1,1,4},{0,0,0,21,10,8,-1,1,4},{0,0,0,21,10,8,-1,1,2},{0,0,0,21,10,8,-1,1,4},{0,0,0,21,10,8,-1,1,4},{0,0,0,29,9,9,-1,1,4}}, - {{0,0,0,1,18,10,-1,1,30},{0,0,0,1,18,10,-1,1,2},{0,0,0,1,18,10,-1,1,2},{0,0,0,1,18,10,-1,1,2},{0,0,0,1,18,10,-1,1,2},{103,0,0,2,0,12,-1,0,0},{0,0,0,1,20,10,-1,1,9},{0,0,0,1,21,10,-1,1,9},{0,0,0,1,19,10,-1,1,9},{0,0,0,1,22,10,-1,1,9},{0,0,0,1,18,11,-1,1,9},{0,0,0,1,18,11,-1,1,9},{0,0,0,1,18,11,-1,1,9},{0,0,0,1,18,11,-1,1,9},{0,0,0,1,18,11,-1,1,9},{0,0,0,1,18,11,-1,1,9}}, - {{0,0,0,15,2,9,0,1,2},{25,0,0,6,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{0,0,0,15,2,9,4,1,1},{0,0,0,15,2,9,5,1,2},{0,0,0,15,2,9,6,1,2},{0,0,0,15,2,9,7,1,2},{0,0,0,15,2,9,8,1,2},{0,0,0,15,2,9,9,1,2},{0,0,0,25,3,9,-1,1,2},{0,0,0,25,3,9,-1,1,2},{0,0,0,25,10,9,-1,1,2},{0,1,0,22,10,9,-1,1,20},{0,2,0,18,10,9,-1,1,8},{25,0,0,6,0,9,-1,1,1}}, - {{0,0,0,15,2,9,0,1,2},{0,0,0,15,2,9,1,1,1},{0,0,0,15,2,9,2,1,1},{0,0,0,15,2,9,3,1,1},{0,0,0,15,2,9,4,1,1},{0,0,0,15,2,9,5,1,2},{0,0,0,15,2,9,6,1,2},{0,0,0,15,2,9,7,1,2},{0,0,0,15,2,9,8,1,2},{0,0,0,15,2,9,9,1,2},{0,0,0,25,3,9,-1,1,2},{0,0,0,25,3,9,-1,1,2},{0,0,0,25,10,9,-1,1,2},{0,1,0,22,10,9,-1,1,20},{0,2,0,18,10,9,-1,1,8},{103,0,0,2,0,12,-1,1,0}}, - {{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{0,0,0,23,4,8,-1,1,22},{0,0,0,23,4,8,-1,1,22},{0,0,0,23,4,8,-1,1,22},{0,0,0,23,4,8,-1,1,22},{0,0,0,23,4,8,-1,1,22},{0,0,0,23,4,8,-1,1,22},{0,0,0,23,4,8,-1,1,22},{0,0,0,23,4,8,-1,1,21},{0,0,0,23,4,9,-1,1,22},{0,0,1,23,4,8,-1,1,22},{0,0,0,23,4,8,-1,1,22},{0,0,0,23,4,8,-1,1,22},{0,0,0,23,4,8,-1,1,22},{0,0,0,23,4,8,-1,1,22},{0,0,0,23,4,8,-1,1,22},{0,0,0,23,4,8,-1,1,22}}, - {{0,0,0,23,4,8,-1,1,22},{0,0,0,23,4,8,-1,1,22},{0,0,0,23,4,8,-1,1,22},{0,0,0,23,4,8,-1,1,22},{0,0,0,23,4,8,-1,1,22},{0,0,0,23,4,8,-1,1,22},{0,0,0,23,4,8,-1,1,21},{0,0,0,23,4,8,-1,1,22},{0,0,0,23,4,8,-1,1,22},{0,0,0,23,4,8,-1,1,22},{0,0,0,23,4,8,-1,1,22},{0,0,0,23,4,8,-1,1,21},{0,0,0,23,4,8,-1,1,22},{0,0,0,23,4,8,-1,1,22},{0,0,0,23,4,8,-1,1,21},{103,0,0,2,4,12,-1,1,22}}, - {{103,0,0,2,4,12,-1,1,22},{103,0,0,2,4,12,-1,1,22},{103,0,0,2,4,12,-1,1,22},{103,0,0,2,4,12,-1,1,22},{103,0,0,2,4,12,-1,1,22},{103,0,0,2,4,12,-1,1,22},{103,0,0,2,4,12,-1,1,22},{103,0,0,2,4,12,-1,1,22},{103,0,0,2,4,12,-1,1,22},{103,0,0,2,4,12,-1,1,22},{103,0,0,2,4,12,-1,1,22},{103,0,0,2,4,12,-1,1,22},{103,0,0,2,4,12,-1,1,22},{103,0,0,2,4,12,-1,1,22},{103,0,0,2,4,12,-1,1,22},{103,0,0,2,4,12,-1,1,22}}, - {{1,0,0,12,17,7,-1,1,9},{1,0,0,12,17,7,-1,1,9},{1,0,0,12,17,7,-1,1,9},{1,0,0,12,17,7,-1,1,9},{1,0,0,12,17,7,-1,1,9},{1,0,0,12,17,7,-1,1,9},{1,0,0,12,17,7,-1,1,9},{1,0,0,12,17,7,-1,1,9},{1,0,0,12,17,7,-1,1,9},{1,0,0,12,17,7,-1,1,9},{1,0,0,12,17,7,-1,1,9},{1,0,0,12,17,7,-1,1,9},{1,0,0,12,17,7,-1,1,9},{1,0,0,11,17,8,-1,0,9},{1,0,0,11,17,8,-1,0,9},{1,0,0,11,17,8,-1,0,9}}, - {{1,0,0,11,17,8,-1,0,9},{1,0,0,12,17,7,-1,1,9},{1,0,0,11,17,8,-1,0,9},{1,0,0,11,17,8,-1,0,9},{1,0,0,11,17,8,-1,0,9},{1,0,0,12,17,7,-1,1,9},{1,0,0,12,17,7,-1,1,9},{1,0,0,12,17,7,-1,1,9},{1,0,0,12,17,7,-1,1,9},{1,0,0,12,17,7,-1,1,9},{1,0,0,12,17,7,-1,1,9},{1,0,0,12,17,7,-1,1,9},{1,0,0,12,17,7,-1,1,9},{1,0,0,12,17,7,-1,1,9},{1,0,0,12,17,7,-1,1,9},{1,0,0,12,17,7,-1,1,9}}, - {{1,0,0,12,17,7,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{0,0,0,26,10,9,-1,0,2},{0,0,0,26,10,9,-1,0,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,26,10,9,-1,0,21},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,9,-1,0,1},{0,0,0,26,10,9,-1,0,2},{0,0,0,9,0,9,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,9,-1,0,21},{0,0,0,5,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,0,2}}, - {{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,5,0,9,-1,0,1},{0,0,0,26,10,8,-1,0,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,26,10,9,-1,0,22},{0,0,0,26,10,8,-1,0,2},{0,0,0,25,10,3,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2}}, - {{0,0,0,26,10,9,-1,0,2},{0,0,0,26,10,9,-1,0,1},{0,0,0,26,10,9,-1,0,1},{0,0,0,26,10,8,-1,0,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,26,10,8,-1,0,2},{14,0,0,9,0,9,-1,1,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,26,10,8,-1,0,2},{25,0,0,9,0,9,-1,1,2},{25,0,0,9,0,9,-1,1,1},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,26,4,3,-1,0,2},{0,0,0,5,0,9,-1,1,2}}, - {{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{25,0,0,9,0,4,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,7,0,9,-1,0,2},{0,0,0,7,0,9,-1,0,2},{0,0,0,7,0,9,-1,0,2},{0,0,0,7,0,9,-1,0,2},{0,0,0,5,0,9,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,9,-1,0,2},{0,0,0,5,0,9,-1,0,2},{0,0,0,5,0,9,-1,0,2},{0,0,0,9,0,9,-1,0,2},{0,0,0,9,0,9,-1,0,2}}, - {{0,0,0,25,10,9,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,9,0,9,-1,0,2},{0,0,0,5,0,9,-1,0,2},{0,0,0,5,0,9,-1,0,2},{0,0,0,5,0,9,-1,0,2},{0,0,0,5,0,9,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{25,0,0,5,0,4,-1,1,2},{0,0,0,26,0,8,-1,0,2}}, - {{0,0,0,15,10,9,-1,0,2},{0,0,0,15,10,9,-1,0,2},{0,0,0,15,10,9,-1,0,2},{0,0,0,15,10,9,-1,0,2},{0,0,0,15,10,9,-1,0,1},{0,0,0,15,10,9,-1,0,1},{0,0,0,15,10,9,-1,0,2},{0,0,0,15,10,9,-1,0,2},{0,0,0,15,10,9,-1,0,2},{0,0,0,15,10,9,-1,0,2},{0,0,0,15,10,9,-1,0,2},{0,0,0,15,10,9,-1,0,1},{0,0,0,15,10,9,-1,0,2},{0,0,0,15,10,9,-1,0,2},{0,0,0,15,10,9,-1,0,1},{0,0,0,15,10,9,-1,0,2}}, - {{25,0,0,14,0,9,-1,0,1},{25,0,0,14,0,9,-1,0,1},{25,0,0,14,0,9,-1,0,1},{25,0,0,14,0,9,-1,0,1},{25,0,0,14,0,9,-1,0,1},{25,0,0,14,0,9,-1,0,1},{25,0,0,14,0,9,-1,0,1},{25,0,0,14,0,9,-1,0,1},{25,0,0,14,0,9,-1,0,1},{25,0,0,14,0,9,-1,0,1},{25,0,0,14,0,9,-1,0,1},{25,0,0,14,0,9,-1,0,1},{25,0,0,14,0,9,-1,0,2},{25,0,0,14,0,9,-1,0,2},{25,0,0,14,0,9,-1,0,2},{25,0,0,14,0,9,-1,0,2}}, - {{25,0,0,14,0,9,-1,0,1},{25,0,0,14,0,9,-1,0,1},{25,0,0,14,0,9,-1,0,1},{25,0,0,14,0,9,-1,0,1},{25,0,0,14,0,9,-1,0,1},{25,0,0,14,0,9,-1,0,1},{25,0,0,14,0,9,-1,0,1},{25,0,0,14,0,9,-1,0,1},{25,0,0,14,0,9,-1,0,1},{25,0,0,14,0,9,-1,0,1},{25,0,0,14,0,9,-1,0,2},{25,0,0,14,0,9,-1,0,2},{25,0,0,14,0,9,-1,0,2},{25,0,0,14,0,9,-1,0,2},{25,0,0,14,0,9,-1,0,2},{25,0,0,14,0,9,-1,0,2}}, - {{25,0,0,14,0,4,-1,0,2},{25,0,0,14,0,4,-1,0,2},{25,0,0,14,0,4,-1,0,2},{25,0,0,9,0,4,-1,0,2},{25,0,0,5,0,4,-1,0,2},{25,0,0,14,0,4,-1,0,2},{25,0,0,14,0,4,-1,0,2},{25,0,0,14,0,4,-1,0,2},{25,0,0,14,0,4,-1,0,2},{0,0,0,15,10,9,-1,0,1},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2}}, - {{0,0,0,25,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2}}, - {{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2}}, - {{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2}}, - {{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2}}, - {{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2}}, - {{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,1}}, - {{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,3,8,-1,1,22},{0,0,0,25,4,8,-1,1,22},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,0,1},{0,0,0,25,10,8,-1,1,1}}, - {{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,9,-1,1,1},{0,0,0,25,10,9,-1,1,2},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,9,-1,1,2}}, - {{0,0,0,25,10,9,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,0,1},{0,0,0,25,10,8,-1,0,1},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2}}, - {{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2}}, - {{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2}}, - {{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,1}}, - {{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2}}, - {{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2}}, - {{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2}}, - {{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,1},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2}}, - {{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,1}}, - {{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,15}}, - {{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,8},{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,8},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2}}, - {{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2}}, - {{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,1,1,22,10,11,-1,3,20},{0,2,1,18,10,11,-1,3,8},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2}}, - {{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2}}, - {{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2}}, - {{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2}}, - {{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2}}, - {{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2}}, - {{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2}}, - {{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,0,2}}, - {{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2}}, - {{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2}}, - {{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{0,0,0,15,10,9,1,0,1},{0,0,0,15,10,9,2,0,1},{0,0,0,15,10,9,3,0,1},{0,0,0,15,10,9,4,0,1},{0,0,0,15,10,9,5,0,1},{0,0,0,15,10,9,6,0,1},{0,0,0,15,10,9,7,0,1},{0,0,0,15,10,9,8,0,1},{0,0,0,15,10,9,9,0,1},{0,0,0,15,10,9,-1,0,1},{0,0,0,15,10,9,-1,0,1},{0,0,0,15,10,9,-1,0,1},{0,0,0,15,10,9,-1,0,1},{0,0,0,15,10,9,-1,0,1},{0,0,0,15,10,9,-1,0,1},{0,0,0,15,10,9,-1,0,1}}, - {{0,0,0,15,10,9,-1,0,1},{0,0,0,15,10,9,-1,0,1},{0,0,0,15,10,9,-1,0,1},{0,0,0,15,10,9,-1,0,1},{0,0,0,15,10,9,1,0,1},{0,0,0,15,10,9,2,0,1},{0,0,0,15,10,9,3,0,1},{0,0,0,15,10,9,4,0,1},{0,0,0,15,10,9,5,0,1},{0,0,0,15,10,9,6,0,1},{0,0,0,15,10,9,7,0,1},{0,0,0,15,10,9,8,0,1},{0,0,0,15,10,9,9,0,1},{0,0,0,15,10,9,-1,0,1},{0,0,0,15,10,9,-1,0,1},{0,0,0,15,10,9,-1,0,1}}, - {{0,0,0,15,10,9,-1,0,1},{0,0,0,15,10,9,-1,0,1},{0,0,0,15,10,9,-1,0,1},{0,0,0,15,10,9,-1,0,1},{0,0,0,15,10,9,-1,0,1},{0,0,0,15,10,9,-1,0,1},{0,0,0,15,10,9,-1,0,1},{0,0,0,15,10,9,-1,0,1},{0,0,0,15,2,9,1,0,1},{0,0,0,15,2,9,2,0,1},{0,0,0,15,2,9,3,0,1},{0,0,0,15,2,9,4,0,1},{0,0,0,15,2,9,5,0,1},{0,0,0,15,2,9,6,0,1},{0,0,0,15,2,9,7,0,1},{0,0,0,15,2,9,8,0,1}}, - {{0,0,0,15,2,9,9,0,1},{0,0,0,15,2,9,-1,0,1},{0,0,0,15,2,9,-1,0,1},{0,0,0,15,2,9,-1,0,1},{0,0,0,15,2,9,-1,0,1},{0,0,0,15,2,9,-1,0,1},{0,0,0,15,2,9,-1,0,1},{0,0,0,15,2,9,-1,0,1},{0,0,0,15,2,9,-1,0,1},{0,0,0,15,2,9,-1,0,1},{0,0,0,15,2,9,-1,0,1},{0,0,0,15,2,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1}}, - {{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1}}, - {{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,15,10,9,0,0,1},{0,0,0,15,10,8,-1,0,1},{0,0,0,15,10,8,-1,0,1},{0,0,0,15,10,8,-1,0,1},{0,0,0,15,10,8,-1,0,1},{0,0,0,15,10,8,-1,0,1}}, - {{0,0,0,15,10,8,-1,0,1},{0,0,0,15,10,8,-1,0,1},{0,0,0,15,10,8,-1,0,1},{0,0,0,15,10,8,-1,0,1},{0,0,0,15,10,8,-1,0,1},{0,0,0,15,10,8,1,0,1},{0,0,0,15,10,8,2,0,1},{0,0,0,15,10,8,3,0,1},{0,0,0,15,10,8,4,0,1},{0,0,0,15,10,8,5,0,1},{0,0,0,15,10,8,6,0,1},{0,0,0,15,10,8,7,0,1},{0,0,0,15,10,8,8,0,1},{0,0,0,15,10,8,9,0,1},{0,0,0,15,10,8,-1,0,1},{0,0,0,15,10,8,0,0,2}}, - {{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1}}, - {{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2}}, - {{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2}}, - {{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,1},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2}}, - {{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2}}, - {{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,1},{0,0,0,25,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2}}, - {{0,0,0,26,10,8,-1,0,1},{0,0,0,25,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1}}, - {{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2}}, - {{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,1}}, - {{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,25,10,8,-1,0,2},{0,0,0,25,10,8,-1,0,2},{0,0,0,25,10,8,-1,0,2},{0,0,0,25,10,8,-1,0,2},{0,0,0,25,10,8,-1,0,2},{0,0,0,25,10,8,-1,0,2},{0,0,0,25,10,8,-1,0,2},{0,0,0,25,10,8,-1,0,2}}, - {{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1}}, - {{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,1,14},{0,0,0,26,10,8,-1,1,14},{0,0,0,26,10,8,-1,1,14},{0,0,0,26,10,8,-1,1,14},{0,0,0,26,10,8,-1,1,14},{0,0,0,26,10,8,-1,1,14}}, - {{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2}}, - {{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2}}, - {{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,2},{0,0,0,25,10,8,-1,0,1}}, - {{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,14}}, - {{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1}}, - {{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2}}, - {{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14}}, - {{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,14}}, - {{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,14}}, - {{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1}}, - {{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14}}, - {{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2}}, - {{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,23},{0,0,0,26,10,8,-1,0,23},{0,0,0,26,10,8,-1,0,23},{0,0,0,26,10,8,-1,0,23},{0,0,0,26,10,8,-1,0,23}}, - {{0,0,0,26,10,8,-1,0,23},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,11},{0,0,0,26,10,8,-1,0,11},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,8},{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,8},{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,8},{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,8}}, - {{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,8},{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,8},{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,8},{0,0,0,15,10,8,1,0,1},{0,0,0,15,10,8,2,0,1},{0,0,0,15,10,8,3,0,1},{0,0,0,15,10,8,4,0,1},{0,0,0,15,10,8,5,0,1},{0,0,0,15,10,8,6,0,1},{0,0,0,15,10,8,7,0,1},{0,0,0,15,10,8,8,0,1},{0,0,0,15,10,8,9,0,1},{0,0,0,15,10,8,-1,0,1}}, - {{0,0,0,15,10,8,1,0,1},{0,0,0,15,10,8,2,0,1},{0,0,0,15,10,8,3,0,1},{0,0,0,15,10,8,4,0,1},{0,0,0,15,10,8,5,0,1},{0,0,0,15,10,8,6,0,1},{0,0,0,15,10,8,7,0,1},{0,0,0,15,10,8,8,0,1},{0,0,0,15,10,8,9,0,1},{0,0,0,15,10,8,-1,0,1},{0,0,0,15,10,8,1,0,1},{0,0,0,15,10,8,2,0,1},{0,0,0,15,10,8,3,0,1},{0,0,0,15,10,8,4,0,1},{0,0,0,15,10,8,5,0,1},{0,0,0,15,10,8,6,0,1}}, - {{0,0,0,15,10,8,7,0,1},{0,0,0,15,10,8,8,0,1},{0,0,0,15,10,8,9,0,1},{0,0,0,15,10,8,-1,0,1},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2}}, - {{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,8},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2}}, - {{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,8},{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,8},{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,8},{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,8},{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,8}}, - {{46,0,0,26,0,8,-1,1,2},{46,0,0,26,0,8,-1,1,2},{46,0,0,26,0,8,-1,1,2},{46,0,0,26,0,8,-1,1,2},{46,0,0,26,0,8,-1,1,2},{46,0,0,26,0,8,-1,1,2},{46,0,0,26,0,8,-1,1,2},{46,0,0,26,0,8,-1,1,2},{46,0,0,26,0,8,-1,1,2},{46,0,0,26,0,8,-1,1,2},{46,0,0,26,0,8,-1,1,2},{46,0,0,26,0,8,-1,1,2},{46,0,0,26,0,8,-1,1,2},{46,0,0,26,0,8,-1,1,2},{46,0,0,26,0,8,-1,1,2},{46,0,0,26,0,8,-1,1,2}}, - {{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,8},{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,8},{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,8},{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,8},{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,8},{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,8},{0,1,0,22,10,8,-1,1,20}}, - {{0,2,0,18,10,8,-1,1,8},{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,8},{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,8},{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,8},{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,8},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2}}, - {{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,8},{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,8},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2}}, - {{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,8},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2}}, - {{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,9,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2}}, - {{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,9,-1,1,2},{0,0,0,25,10,9,-1,1,2},{0,0,0,25,10,9,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2}}, - {{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2}}, - {{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,25,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2}}, - {{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,0,1},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2}}, - {{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2}}, - {{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2}}, - {{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2}}, - {{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{103,0,0,2,0,12,-1,0,0},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2}}, - {{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2}}, - {{56,0,0,9,0,7,-1,1,2},{56,0,0,9,0,7,-1,1,2},{56,0,0,9,0,7,-1,1,2},{56,0,0,9,0,7,-1,1,2},{56,0,0,9,0,7,-1,1,2},{56,0,0,9,0,7,-1,1,2},{56,0,0,9,0,7,-1,1,2},{56,0,0,9,0,7,-1,1,2},{56,0,0,9,0,7,-1,1,2},{56,0,0,9,0,7,-1,1,2},{56,0,0,9,0,7,-1,1,2},{56,0,0,9,0,7,-1,1,2},{56,0,0,9,0,7,-1,1,2},{56,0,0,9,0,7,-1,1,2},{56,0,0,9,0,7,-1,1,2},{56,0,0,9,0,7,-1,1,2}}, - {{56,0,0,9,0,7,-1,1,2},{56,0,0,9,0,7,-1,1,2},{56,0,0,9,0,7,-1,1,2},{56,0,0,9,0,7,-1,1,2},{56,0,0,9,0,7,-1,1,2},{56,0,0,9,0,7,-1,1,2},{56,0,0,9,0,7,-1,1,2},{56,0,0,9,0,7,-1,1,2},{56,0,0,9,0,7,-1,1,2},{56,0,0,9,0,7,-1,1,2},{56,0,0,9,0,7,-1,1,2},{56,0,0,9,0,7,-1,1,2},{56,0,0,9,0,7,-1,1,2},{56,0,0,9,0,7,-1,1,2},{56,0,0,9,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0}}, - {{56,0,0,5,0,7,-1,1,2},{56,0,0,5,0,7,-1,1,2},{56,0,0,5,0,7,-1,1,2},{56,0,0,5,0,7,-1,1,2},{56,0,0,5,0,7,-1,1,2},{56,0,0,5,0,7,-1,1,2},{56,0,0,5,0,7,-1,1,2},{56,0,0,5,0,7,-1,1,2},{56,0,0,5,0,7,-1,1,2},{56,0,0,5,0,7,-1,1,2},{56,0,0,5,0,7,-1,1,2},{56,0,0,5,0,7,-1,1,2},{56,0,0,5,0,7,-1,1,2},{56,0,0,5,0,7,-1,1,2},{56,0,0,5,0,7,-1,1,2},{56,0,0,5,0,7,-1,1,2}}, - {{56,0,0,5,0,7,-1,1,2},{56,0,0,5,0,7,-1,1,2},{56,0,0,5,0,7,-1,1,2},{56,0,0,5,0,7,-1,1,2},{56,0,0,5,0,7,-1,1,2},{56,0,0,5,0,7,-1,1,2},{56,0,0,5,0,7,-1,1,2},{56,0,0,5,0,7,-1,1,2},{56,0,0,5,0,7,-1,1,2},{56,0,0,5,0,7,-1,1,2},{56,0,0,5,0,7,-1,1,2},{56,0,0,5,0,7,-1,1,2},{56,0,0,5,0,7,-1,1,2},{56,0,0,5,0,7,-1,1,2},{56,0,0,5,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0}}, - {{25,0,0,9,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,9,0,3,-1,1,2},{25,0,0,9,0,3,-1,1,2},{25,0,0,9,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2}}, - {{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,5,0,3,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2}}, - {{7,0,0,9,0,7,-1,1,2},{7,0,0,5,0,7,-1,1,2},{7,0,0,9,0,7,-1,1,2},{7,0,0,5,0,7,-1,1,2},{7,0,0,9,0,7,-1,1,2},{7,0,0,5,0,7,-1,1,2},{7,0,0,9,0,7,-1,1,2},{7,0,0,5,0,7,-1,1,2},{7,0,0,9,0,7,-1,1,2},{7,0,0,5,0,7,-1,1,2},{7,0,0,9,0,7,-1,1,2},{7,0,0,5,0,7,-1,1,2},{7,0,0,9,0,7,-1,1,2},{7,0,0,5,0,7,-1,1,2},{7,0,0,9,0,7,-1,1,2},{7,0,0,5,0,7,-1,1,2}}, - {{7,0,0,9,0,7,-1,1,2},{7,0,0,5,0,7,-1,1,2},{7,0,0,9,0,7,-1,1,2},{7,0,0,5,0,7,-1,1,2},{7,0,0,5,0,7,-1,1,2},{7,0,0,26,10,8,-1,1,2},{7,0,0,26,10,8,-1,1,2},{7,0,0,26,10,8,-1,1,2},{7,0,0,26,10,8,-1,1,2},{7,0,0,26,10,8,-1,1,2},{7,0,0,26,10,8,-1,1,2},{7,0,0,9,0,7,-1,1,2},{7,0,0,5,0,7,-1,1,2},{7,0,0,9,0,7,-1,1,2},{7,0,0,5,0,7,-1,1,2},{7,0,0,12,17,7,-1,1,9}}, - {{7,0,0,12,17,7,-1,1,9},{7,0,0,12,17,7,-1,1,9},{7,0,0,9,0,7,-1,1,2},{7,0,0,5,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{7,0,0,21,10,8,-1,1,11},{7,0,0,21,10,8,-1,1,4},{7,0,0,21,10,8,-1,1,4},{7,0,0,21,10,8,-1,1,4},{7,0,0,15,10,8,-1,1,2},{7,0,0,21,10,8,-1,1,11},{7,0,0,21,10,8,-1,1,4}}, - {{12,0,0,5,0,4,-1,1,2},{12,0,0,5,0,4,-1,1,2},{12,0,0,5,0,4,-1,1,2},{12,0,0,5,0,4,-1,1,2},{12,0,0,5,0,4,-1,1,2},{12,0,0,5,0,4,-1,1,2},{12,0,0,5,0,4,-1,1,2},{12,0,0,5,0,4,-1,1,2},{12,0,0,5,0,4,-1,1,2},{12,0,0,5,0,4,-1,1,2},{12,0,0,5,0,4,-1,1,2},{12,0,0,5,0,4,-1,1,2},{12,0,0,5,0,4,-1,1,2},{12,0,0,5,0,4,-1,1,2},{12,0,0,5,0,4,-1,1,2},{12,0,0,5,0,4,-1,1,2}}, - {{12,0,0,5,0,4,-1,1,2},{12,0,0,5,0,4,-1,1,2},{12,0,0,5,0,4,-1,1,2},{12,0,0,5,0,4,-1,1,2},{12,0,0,5,0,4,-1,1,2},{12,0,0,5,0,4,-1,1,2},{103,0,0,2,0,12,-1,1,0},{12,0,0,5,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{12,0,0,5,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{60,0,0,7,0,5,-1,1,2},{60,0,0,7,0,5,-1,1,2},{60,0,0,7,0,5,-1,1,2},{60,0,0,7,0,5,-1,1,2},{60,0,0,7,0,5,-1,1,2},{60,0,0,7,0,5,-1,1,2},{60,0,0,7,0,5,-1,1,2},{60,0,0,7,0,5,-1,1,2},{60,0,0,7,0,5,-1,1,2},{60,0,0,7,0,5,-1,1,2},{60,0,0,7,0,5,-1,1,2},{60,0,0,7,0,5,-1,1,2},{60,0,0,7,0,5,-1,1,2},{60,0,0,7,0,5,-1,1,2},{60,0,0,7,0,5,-1,1,2},{60,0,0,7,0,5,-1,1,2}}, - {{60,0,0,7,0,5,-1,1,2},{60,0,0,7,0,5,-1,1,2},{60,0,0,7,0,5,-1,1,2},{60,0,0,7,0,5,-1,1,2},{60,0,0,7,0,5,-1,1,2},{60,0,0,7,0,5,-1,1,2},{60,0,0,7,0,5,-1,1,2},{60,0,0,7,0,5,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{60,0,0,6,0,9,-1,1,2}}, - {{60,0,0,21,0,8,-1,1,4},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{60,0,0,12,17,5,-1,1,9}}, - {{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0}}, - {{8,0,0,12,17,4,-1,1,9},{8,0,0,12,17,4,-1,1,9},{8,0,0,12,17,4,-1,1,9},{8,0,0,12,17,4,-1,1,9},{8,0,0,12,17,4,-1,1,9},{8,0,0,12,17,4,-1,1,9},{8,0,0,12,17,4,-1,1,9},{8,0,0,12,17,4,-1,1,9},{8,0,0,12,17,4,-1,1,9},{8,0,0,12,17,4,-1,1,9},{8,0,0,12,17,4,-1,1,9},{8,0,0,12,17,4,-1,1,9},{8,0,0,12,17,4,-1,1,9},{8,0,0,12,17,4,-1,1,9},{8,0,0,12,17,4,-1,1,9},{8,0,0,12,17,4,-1,1,9}}, - {{0,0,0,21,10,8,-1,1,23},{0,0,0,21,10,8,-1,1,23},{0,0,0,20,10,8,-1,1,23},{0,0,0,19,10,8,-1,1,23},{0,0,0,20,10,8,-1,1,23},{0,0,0,19,10,8,-1,1,23},{0,0,0,21,10,8,-1,1,23},{0,0,0,21,10,8,-1,1,23},{0,0,0,21,10,8,-1,1,23},{0,0,0,20,10,8,-1,1,23},{0,0,0,19,10,8,-1,1,23},{0,0,0,21,10,8,-1,1,23},{0,0,0,20,10,8,-1,1,23},{0,0,0,19,10,8,-1,1,23},{0,0,0,21,10,8,-1,1,4},{0,0,0,21,10,8,-1,1,4}}, - {{0,0,0,21,10,8,-1,1,4},{0,0,0,21,10,8,-1,1,4},{0,0,0,21,10,8,-1,1,4},{0,0,0,21,10,8,-1,1,4},{0,0,0,21,10,8,-1,1,4},{0,0,0,21,10,8,-1,1,4},{0,0,0,21,10,8,-1,1,2},{0,0,0,17,10,8,-1,1,4},{0,0,0,21,10,8,-1,1,20},{0,0,0,21,10,8,-1,1,4},{0,0,0,17,10,8,-1,1,2},{0,0,0,21,10,8,-1,1,2},{0,0,0,20,10,8,-1,1,23},{0,0,0,19,10,8,-1,1,23},{0,0,0,21,10,8,-1,1,2},{0,0,0,21,10,8,-1,1,2}}, - {{0,0,0,20,10,8,-1,1,23},{0,0,0,19,10,8,-1,1,23},{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,8},{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,8},{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,8},{0,1,0,22,10,8,-1,1,20},{0,2,0,18,10,8,-1,1,8},{0,0,0,21,10,8,-1,1,4},{0,0,0,21,10,8,-1,1,4},{0,0,0,21,10,8,-1,1,4},{0,0,0,21,10,8,-1,1,4},{0,0,0,21,10,8,-1,1,11},{0,0,0,6,10,8,-1,1,2}}, - {{0,0,0,21,10,8,-1,1,4},{0,0,0,21,10,8,-1,1,4},{0,0,0,21,10,8,-1,1,2},{0,0,0,21,10,8,-1,1,4},{0,0,0,21,10,8,-1,1,4},{0,0,0,21,10,8,-1,1,2},{0,0,0,21,10,8,-1,1,2},{0,0,0,21,10,8,-1,1,2},{0,0,0,21,10,8,-1,1,2},{0,0,0,21,10,8,-1,1,2},{0,0,0,17,10,8,-1,1,3},{0,0,0,17,10,8,-1,1,3},{0,0,0,21,10,8,-1,1,4},{0,0,0,21,10,8,-1,1,4},{0,0,0,21,10,8,-1,1,4},{0,0,0,21,10,8,-1,1,2}}, - {{0,0,0,17,10,8,-1,1,4},{0,0,0,21,10,8,-1,1,4},{0,0,0,22,10,8,-1,1,20},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{17,0,1,26,10,8,-1,0,14},{17,0,1,26,10,8,-1,0,14},{17,0,1,26,10,8,-1,0,14},{17,0,1,26,10,8,-1,0,14},{17,0,1,26,10,8,-1,0,14},{17,0,1,26,10,8,-1,0,14},{17,0,1,26,10,8,-1,0,14},{17,0,1,26,10,8,-1,0,14},{17,0,1,26,10,8,-1,0,14},{17,0,1,26,10,8,-1,0,14},{17,0,1,26,10,8,-1,0,14},{17,0,1,26,10,8,-1,0,14},{17,0,1,26,10,8,-1,0,14},{17,0,1,26,10,8,-1,0,14},{17,0,1,26,10,8,-1,0,14},{17,0,1,26,10,8,-1,0,14}}, - {{17,0,1,26,10,8,-1,0,14},{17,0,1,26,10,8,-1,0,14},{17,0,1,26,10,8,-1,0,14},{17,0,1,26,10,8,-1,0,14},{17,0,1,26,10,8,-1,0,14},{17,0,1,26,10,8,-1,0,14},{17,0,1,26,10,8,-1,0,14},{17,0,1,26,10,8,-1,0,14},{17,0,1,26,10,8,-1,0,14},{17,0,1,26,10,8,-1,0,14},{103,0,0,2,0,12,-1,0,0},{17,0,1,26,10,8,-1,0,14},{17,0,1,26,10,8,-1,0,14},{17,0,1,26,10,8,-1,0,14},{17,0,1,26,10,8,-1,0,14},{17,0,1,26,10,9,-1,0,14}}, - {{17,0,1,26,10,8,-1,0,14},{17,0,1,26,10,8,-1,0,14},{17,0,1,26,10,8,-1,0,14},{17,0,1,26,10,9,-1,0,14},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{17,0,1,26,10,9,-1,0,14},{17,0,1,26,10,9,-1,0,14},{17,0,1,26,10,9,-1,0,14},{17,0,1,26,10,9,-1,0,14},{17,0,1,26,10,9,-1,0,14},{17,0,1,26,10,9,-1,0,14},{17,0,1,26,10,9,-1,0,14},{17,0,1,26,10,9,-1,0,14},{17,0,1,26,10,9,-1,0,14},{17,0,1,26,10,9,-1,0,14},{17,0,1,26,10,9,-1,0,14},{17,0,1,26,10,9,-1,0,14},{17,0,1,26,10,9,-1,0,14},{17,0,1,26,10,9,-1,0,14},{17,0,1,26,10,9,-1,0,14},{17,0,1,26,10,9,-1,0,14}}, - {{17,0,1,26,10,9,-1,0,14},{17,0,1,26,10,9,-1,0,14},{17,0,1,26,10,9,-1,0,14},{17,0,1,26,10,9,-1,0,14},{17,0,1,26,10,9,-1,0,14},{17,0,1,26,10,9,-1,0,14},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{0,0,1,26,10,8,-1,0,14},{0,0,1,26,10,8,-1,0,14},{0,0,1,26,10,8,-1,0,14},{0,0,1,26,10,8,-1,0,14},{0,0,1,26,10,8,-1,0,14},{0,0,1,26,10,8,-1,0,14},{0,0,1,26,10,8,-1,0,14},{0,0,1,26,10,8,-1,0,14},{0,0,1,26,10,8,-1,0,14},{0,0,1,26,10,8,-1,0,14},{0,0,1,26,10,8,-1,0,14},{0,0,1,26,10,8,-1,0,14},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{0,0,1,29,9,9,-1,0,4},{0,0,1,21,10,8,-1,2,8},{0,0,1,21,10,8,-1,2,8},{0,0,1,21,10,8,-1,0,14},{0,0,1,26,10,8,-1,0,14},{17,0,1,6,0,0,-1,0,18},{0,0,1,7,0,0,-1,0,14},{17,0,1,14,0,0,-1,0,14},{0,1,1,22,10,8,-1,3,20},{0,2,1,18,10,8,-1,3,8},{0,1,1,22,10,8,-1,3,20},{0,2,1,18,10,8,-1,3,8},{0,1,1,22,10,8,-1,3,20},{0,2,1,18,10,8,-1,3,8},{0,1,1,22,10,8,-1,3,20},{0,2,1,18,10,8,-1,3,8}}, - {{0,1,1,22,10,8,-1,3,20},{0,2,1,18,10,8,-1,3,8},{0,0,1,26,10,8,-1,0,14},{0,0,1,26,10,8,-1,0,14},{0,1,1,22,10,8,-1,3,20},{0,2,1,18,10,8,-1,3,8},{0,1,1,22,10,8,-1,3,20},{0,2,1,18,10,8,-1,3,8},{0,1,1,22,10,8,-1,3,20},{0,2,1,18,10,8,-1,3,8},{0,1,1,22,10,8,-1,3,20},{0,2,1,18,10,8,-1,3,8},{0,0,1,17,10,8,-1,3,18},{0,0,1,22,10,8,-1,3,20},{0,0,1,18,10,8,-1,3,8},{0,0,1,18,10,8,-1,3,8}}, - {{0,0,1,26,10,8,-1,0,14},{17,0,1,14,0,3,-1,0,14},{17,0,1,14,0,3,-1,0,14},{17,0,1,14,0,3,-1,0,14},{17,0,1,14,0,3,-1,0,14},{17,0,1,14,0,3,-1,0,14},{17,0,1,14,0,3,-1,0,14},{17,0,1,14,0,3,-1,0,14},{17,0,1,14,0,3,-1,0,14},{17,0,1,14,0,3,-1,0,14},{1,0,1,12,17,3,-1,0,9},{1,0,1,12,17,3,-1,0,9},{1,0,1,12,17,3,-1,0,9},{1,0,1,12,17,3,-1,0,9},{18,0,1,10,0,4,-1,0,9},{18,0,1,10,0,4,-1,0,9}}, - {{0,0,1,17,10,8,-1,3,14},{0,0,1,6,0,3,-1,0,14},{0,0,1,6,0,3,-1,0,14},{0,0,1,6,0,3,-1,0,14},{0,0,1,6,0,3,-1,0,14},{0,0,1,6,0,3,-1,0,9},{0,0,1,26,10,9,-1,0,14},{0,0,1,26,10,8,-1,0,14},{17,0,1,14,0,9,-1,0,14},{17,0,1,14,0,9,-1,0,14},{17,0,1,14,0,9,-1,0,14},{17,0,1,6,0,3,-1,0,18},{0,0,1,7,0,3,-1,0,18},{0,0,1,21,10,8,-1,0,14},{0,0,1,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14}}, - {{103,0,0,2,0,12,-1,0,0},{20,0,1,7,0,0,-1,2,37},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,2,37},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,2,37},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,2,37},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,2,37},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14}}, - {{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14}}, - {{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,2,37},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14}}, - {{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,2,37},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,2,37},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,2,37},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,2,37},{20,0,1,7,0,0,-1,0,14}}, - {{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,0,14},{20,0,1,7,0,0,-1,2,37},{20,0,1,7,0,0,-1,2,37},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{1,0,1,12,17,0,-1,0,9},{1,0,1,12,17,0,-1,0,9},{0,0,1,24,10,9,-1,2,18},{0,0,1,24,10,9,-1,2,18},{20,0,1,6,0,0,-1,0,18},{20,0,1,6,0,0,-1,0,18},{20,0,1,7,0,9,-1,0,14}}, - {{0,0,1,17,10,1,-1,3,18},{22,0,1,7,0,0,-1,2,37},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,2,37},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,2,37},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,2,37},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,2,37},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14}}, - {{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14}}, - {{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,2,37},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14}}, - {{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,2,37},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,2,37},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,2,37},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,2,37},{22,0,1,7,0,0,-1,0,14}}, - {{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,2,37},{22,0,1,7,0,0,-1,2,37},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{22,0,1,7,0,0,-1,0,14},{0,0,1,21,10,1,-1,0,18},{0,0,1,6,0,0,-1,3,37},{22,0,1,6,0,0,-1,0,18},{22,0,1,6,0,0,-1,0,18},{22,0,1,7,0,9,-1,0,14}}, - {{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14}}, - {{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14}}, - {{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,2,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{103,0,0,2,0,12,-1,0,0},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14}}, - {{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14}}, - {{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,10,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14}}, - {{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{18,0,1,7,0,9,-1,0,14},{103,0,0,2,0,12,-1,0,0}}, - {{0,0,1,26,0,8,-1,0,14},{0,0,1,26,0,8,-1,0,14},{0,0,1,15,0,9,-1,0,14},{0,0,1,15,0,9,-1,0,14},{0,0,1,15,0,9,-1,0,14},{0,0,1,15,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14}}, - {{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{5,0,1,7,0,0,-1,0,14},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{0,0,1,26,10,8,-1,0,14},{0,0,1,26,10,8,-1,0,14},{0,0,1,26,10,8,-1,0,14},{0,0,1,26,10,8,-1,0,14},{0,0,1,26,10,8,-1,0,14},{0,0,1,26,10,8,-1,0,14},{0,0,1,26,10,8,-1,0,14},{0,0,1,26,10,8,-1,0,14},{0,0,1,26,10,8,-1,0,14},{0,0,1,26,10,8,-1,0,14},{0,0,1,26,10,8,-1,0,14},{0,0,1,26,10,8,-1,0,14},{0,0,1,26,10,8,-1,0,14},{0,0,1,26,10,8,-1,0,14},{0,0,1,26,10,8,-1,0,14},{0,0,1,26,10,8,-1,0,14}}, - {{0,0,1,26,10,8,-1,0,14},{0,0,1,26,10,8,-1,0,14},{0,0,1,26,10,8,-1,0,14},{0,0,1,26,10,8,-1,0,14},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{22,0,1,7,0,3,-1,2,37},{22,0,1,7,0,3,-1,2,37},{22,0,1,7,0,3,-1,2,37},{22,0,1,7,0,3,-1,2,37},{22,0,1,7,0,3,-1,2,37},{22,0,1,7,0,3,-1,2,37},{22,0,1,7,0,3,-1,2,37},{22,0,1,7,0,3,-1,2,37},{22,0,1,7,0,3,-1,2,37},{22,0,1,7,0,3,-1,2,37},{22,0,1,7,0,3,-1,2,37},{22,0,1,7,0,3,-1,2,37},{22,0,1,7,0,3,-1,2,37},{22,0,1,7,0,3,-1,2,37},{22,0,1,7,0,3,-1,2,37},{22,0,1,7,0,3,-1,2,37}}, - {{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14}}, - {{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,10,9,-1,0,14},{18,0,1,26,10,9,-1,0,14},{103,0,0,2,0,12,-1,0,0}}, - {{0,0,1,15,0,9,-1,0,14},{0,0,1,15,0,9,-1,0,14},{0,0,1,15,0,9,-1,0,14},{0,0,1,15,0,9,-1,0,14},{0,0,1,15,0,9,-1,0,14},{0,0,1,15,0,9,-1,0,14},{0,0,1,15,0,9,-1,0,14},{0,0,1,15,0,9,-1,0,14},{0,0,1,15,0,9,-1,0,14},{0,0,1,15,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14}}, - {{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14}}, - {{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,0,15,0,8,-1,0,1},{0,0,0,15,0,8,-1,0,1},{0,0,0,15,0,8,-1,0,1},{0,0,0,15,0,8,-1,0,1},{0,0,0,15,0,8,-1,0,1},{0,0,0,15,0,8,-1,0,1},{0,0,0,15,0,8,-1,0,1},{0,0,0,15,0,8,-1,0,1}}, - {{0,0,1,26,10,9,-1,0,14},{0,0,1,15,10,9,-1,0,14},{0,0,1,15,10,9,-1,0,14},{0,0,1,15,10,9,-1,0,14},{0,0,1,15,10,9,-1,0,14},{0,0,1,15,10,9,-1,0,14},{0,0,1,15,10,9,-1,0,14},{0,0,1,15,10,9,-1,0,14},{0,0,1,15,10,9,-1,0,14},{0,0,1,15,10,9,-1,0,14},{0,0,1,15,10,9,-1,0,14},{0,0,1,15,10,9,-1,0,14},{0,0,1,15,10,9,-1,0,14},{0,0,1,15,10,9,-1,0,14},{0,0,1,15,10,9,-1,0,14},{0,0,1,15,10,9,-1,0,14}}, - {{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,0,9,-1,0,14},{18,0,1,26,10,9,-1,0,14},{18,0,1,26,10,9,-1,0,14},{18,0,1,26,10,9,-1,0,14},{0,0,1,26,0,8,-1,0,14}}, - {{0,0,1,26,0,9,-1,0,14},{0,0,1,15,10,9,-1,0,14},{0,0,1,15,10,9,-1,0,14},{0,0,1,15,10,9,-1,0,14},{0,0,1,15,10,9,-1,0,14},{0,0,1,15,10,9,-1,0,14},{0,0,1,15,10,9,-1,0,14},{0,0,1,15,10,9,-1,0,14},{0,0,1,15,10,9,-1,0,14},{0,0,1,15,10,9,-1,0,14},{0,0,1,15,10,9,-1,0,14},{0,0,1,15,10,9,-1,0,14},{0,0,1,15,10,9,-1,0,14},{0,0,1,15,10,9,-1,0,14},{0,0,1,15,10,9,-1,0,14},{0,0,1,15,10,9,-1,0,14}}, - {{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,10,9,-1,0,14},{0,0,1,26,10,9,-1,0,14},{0,0,1,26,10,9,-1,0,14},{0,0,1,26,10,9,-1,0,14}}, - {{22,0,1,26,0,9,-1,0,14},{22,0,1,26,0,9,-1,0,14},{22,0,1,26,0,9,-1,0,14},{22,0,1,26,0,9,-1,0,14},{22,0,1,26,0,9,-1,0,14},{22,0,1,26,0,9,-1,0,14},{22,0,1,26,0,9,-1,0,14},{22,0,1,26,0,9,-1,0,14},{22,0,1,26,0,9,-1,0,14},{22,0,1,26,0,9,-1,0,14},{22,0,1,26,0,9,-1,0,14},{22,0,1,26,0,9,-1,0,14},{22,0,1,26,0,9,-1,0,14},{22,0,1,26,0,9,-1,0,14},{22,0,1,26,0,9,-1,0,14},{22,0,1,26,0,9,-1,0,14}}, - {{22,0,1,26,0,9,-1,0,14},{22,0,1,26,0,9,-1,0,14},{22,0,1,26,0,9,-1,0,14},{22,0,1,26,0,9,-1,0,14},{22,0,1,26,0,9,-1,0,14},{22,0,1,26,0,9,-1,0,14},{22,0,1,26,0,9,-1,0,14},{22,0,1,26,0,9,-1,0,14},{22,0,1,26,0,9,-1,0,14},{22,0,1,26,0,9,-1,0,14},{22,0,1,26,0,9,-1,0,14},{22,0,1,26,0,9,-1,0,14},{22,0,1,26,0,9,-1,0,14},{22,0,1,26,0,9,-1,0,14},{22,0,1,26,0,9,-1,0,14},{103,0,0,2,0,12,-1,0,0}}, - {{22,0,1,26,0,9,-1,2,14},{22,0,1,26,0,9,-1,2,14},{22,0,1,26,0,9,-1,2,14},{22,0,1,26,0,9,-1,2,14},{22,0,1,26,0,9,-1,2,14},{22,0,1,26,0,9,-1,2,14},{22,0,1,26,0,9,-1,2,14},{22,0,1,26,0,9,-1,2,14},{22,0,1,26,0,9,-1,2,14},{22,0,1,26,0,9,-1,2,14},{22,0,1,26,0,9,-1,2,14},{22,0,1,26,0,9,-1,2,14},{22,0,1,26,0,9,-1,2,14},{22,0,1,26,0,9,-1,2,14},{22,0,1,26,0,9,-1,2,14},{22,0,1,26,0,9,-1,2,14}}, - {{22,0,1,26,0,9,-1,2,14},{22,0,1,26,0,9,-1,2,14},{22,0,1,26,0,9,-1,2,14},{22,0,1,26,0,9,-1,2,14},{22,0,1,26,0,9,-1,2,14},{22,0,1,26,0,9,-1,2,14},{22,0,1,26,0,9,-1,2,14},{22,0,1,26,0,9,-1,2,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14}}, - {{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,10,9,-1,0,14},{0,0,1,26,10,9,-1,0,14},{0,0,1,26,10,9,-1,0,14},{0,0,1,26,10,9,-1,0,14},{0,0,1,26,0,9,-1,2,14},{0,0,1,26,0,9,-1,2,14},{0,0,1,26,0,9,-1,2,14},{0,0,1,26,0,9,-1,2,14},{0,0,1,26,0,9,-1,2,14}}, - {{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,10,9,-1,0,14},{0,0,1,26,10,9,-1,0,14}}, - {{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,10,9,-1,0,14}}, - {{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14}}, - {{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14}}, - {{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14}}, - {{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14}}, - {{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,6,0,5,-1,0,18},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14}}, - {{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{41,0,1,7,0,5,-1,0,14},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{41,0,1,26,10,8,-1,0,14},{41,0,1,26,10,8,-1,0,14},{41,0,1,26,10,8,-1,0,14},{41,0,1,26,10,8,-1,0,14},{41,0,1,26,10,8,-1,0,14},{41,0,1,26,10,8,-1,0,14},{41,0,1,26,10,8,-1,0,14},{41,0,1,26,10,8,-1,0,14},{41,0,1,26,10,8,-1,0,14},{41,0,1,26,10,8,-1,0,14},{41,0,1,26,10,8,-1,0,14},{41,0,1,26,10,8,-1,0,14},{41,0,1,26,10,8,-1,0,14},{41,0,1,26,10,8,-1,0,14},{41,0,1,26,10,8,-1,0,14},{41,0,1,26,10,8,-1,0,14}}, - {{41,0,1,26,10,8,-1,0,14},{41,0,1,26,10,8,-1,0,14},{41,0,1,26,10,8,-1,0,14},{41,0,1,26,10,8,-1,0,14},{41,0,1,26,10,8,-1,0,14},{41,0,1,26,10,8,-1,0,14},{41,0,1,26,10,8,-1,0,14},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{131,0,0,7,0,6,-1,1,2},{131,0,0,7,0,6,-1,1,2},{131,0,0,7,0,6,-1,1,2},{131,0,0,7,0,6,-1,1,2},{131,0,0,7,0,6,-1,1,2},{131,0,0,7,0,6,-1,1,2},{131,0,0,7,0,6,-1,1,2},{131,0,0,7,0,6,-1,1,2},{131,0,0,7,0,6,-1,1,2},{131,0,0,7,0,6,-1,1,2},{131,0,0,7,0,6,-1,1,2},{131,0,0,7,0,6,-1,1,2},{131,0,0,7,0,6,-1,1,2},{131,0,0,7,0,6,-1,1,2},{131,0,0,7,0,6,-1,1,2},{131,0,0,7,0,6,-1,1,2}}, - {{131,0,0,7,0,6,-1,1,2},{131,0,0,7,0,6,-1,1,2},{131,0,0,7,0,6,-1,1,2},{131,0,0,7,0,6,-1,1,2},{131,0,0,7,0,6,-1,1,2},{131,0,0,7,0,6,-1,1,2},{131,0,0,7,0,6,-1,1,2},{131,0,0,7,0,6,-1,1,2},{131,0,0,6,0,6,-1,1,2},{131,0,0,6,0,6,-1,1,2},{131,0,0,6,0,6,-1,1,2},{131,0,0,6,0,6,-1,1,2},{131,0,0,6,0,6,-1,1,2},{131,0,0,6,0,6,-1,1,2},{131,0,0,21,0,8,-1,1,4},{131,0,0,21,0,8,-1,1,4}}, - {{99,0,0,7,0,6,-1,1,2},{99,0,0,7,0,6,-1,1,2},{99,0,0,7,0,6,-1,1,2},{99,0,0,7,0,6,-1,1,2},{99,0,0,7,0,6,-1,1,2},{99,0,0,7,0,6,-1,1,2},{99,0,0,7,0,6,-1,1,2},{99,0,0,7,0,6,-1,1,2},{99,0,0,7,0,6,-1,1,2},{99,0,0,7,0,6,-1,1,2},{99,0,0,7,0,6,-1,1,2},{99,0,0,7,0,6,-1,1,2},{99,0,0,7,0,6,-1,1,2},{99,0,0,7,0,6,-1,1,2},{99,0,0,7,0,6,-1,1,2},{99,0,0,7,0,6,-1,1,2}}, - {{99,0,0,7,0,6,-1,1,2},{99,0,0,7,0,6,-1,1,2},{99,0,0,7,0,6,-1,1,2},{99,0,0,7,0,6,-1,1,2},{99,0,0,7,0,6,-1,1,2},{99,0,0,7,0,6,-1,1,2},{99,0,0,7,0,6,-1,1,2},{99,0,0,7,0,6,-1,1,2},{99,0,0,7,0,6,-1,1,2},{99,0,0,7,0,6,-1,1,2},{99,0,0,7,0,6,-1,1,2},{99,0,0,7,0,6,-1,1,2},{99,0,0,6,0,6,-1,1,2},{99,0,0,21,10,8,-1,1,4},{99,0,0,21,10,8,-1,1,11},{99,0,0,21,10,8,-1,1,4}}, - {{99,0,0,13,0,6,0,1,19},{99,0,0,13,0,6,1,1,19},{99,0,0,13,0,6,2,1,19},{99,0,0,13,0,6,3,1,19},{99,0,0,13,0,6,4,1,19},{99,0,0,13,0,6,5,1,19},{99,0,0,13,0,6,6,1,19},{99,0,0,13,0,6,7,1,19},{99,0,0,13,0,6,8,1,19},{99,0,0,13,0,6,9,1,19},{99,0,0,7,0,6,-1,1,2},{99,0,0,7,0,6,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{8,0,0,9,0,0,-1,1,2},{8,0,0,5,0,0,-1,1,2},{8,0,0,9,0,4,-1,1,2},{8,0,0,5,0,4,-1,1,2},{8,0,0,9,0,4,-1,1,2},{8,0,0,5,0,4,-1,1,2},{8,0,0,9,0,4,-1,1,2},{8,0,0,5,0,4,-1,1,2},{8,0,0,9,0,4,-1,1,2},{8,0,0,5,0,4,-1,1,2},{8,0,0,9,0,4,-1,1,2},{8,0,0,5,0,4,-1,1,2},{8,0,0,9,0,4,-1,1,2},{8,0,0,5,0,4,-1,1,2},{8,0,0,7,0,4,-1,1,2},{8,0,0,12,17,2,-1,1,9}}, - {{8,0,0,11,17,8,-1,1,9},{8,0,0,11,17,8,-1,1,9},{8,0,0,11,17,8,-1,1,9},{8,0,0,21,10,8,-1,1,2},{8,0,0,12,17,0,-1,1,9},{8,0,0,12,17,0,-1,1,9},{8,0,0,12,17,0,-1,1,9},{8,0,0,12,17,0,-1,1,9},{8,0,0,12,17,0,-1,1,9},{8,0,0,12,17,0,-1,1,9},{8,0,0,12,17,0,-1,1,9},{8,0,0,12,17,0,-1,1,9},{8,0,0,12,17,2,-1,1,9},{8,0,0,12,17,2,-1,1,9},{8,0,0,21,10,8,-1,1,2},{8,0,0,6,10,0,-1,1,2}}, - {{8,0,0,9,0,4,-1,1,2},{8,0,0,5,0,4,-1,1,2},{8,0,0,9,0,4,-1,1,2},{8,0,0,5,0,4,-1,1,2},{8,0,0,9,0,4,-1,1,2},{8,0,0,5,0,4,-1,1,2},{8,0,0,9,0,4,-1,1,2},{8,0,0,5,0,4,-1,1,2},{8,0,0,9,0,4,-1,1,2},{8,0,0,5,0,4,-1,1,2},{8,0,0,9,0,4,-1,1,2},{8,0,0,5,0,4,-1,1,2},{8,0,0,6,0,9,-1,1,2},{8,0,0,6,0,9,-1,1,2},{8,0,0,12,17,2,-1,1,9},{8,0,0,12,17,0,-1,1,9}}, - {{130,0,0,7,0,6,-1,1,2},{130,0,0,7,0,6,-1,1,2},{130,0,0,7,0,6,-1,1,2},{130,0,0,7,0,6,-1,1,2},{130,0,0,7,0,6,-1,1,2},{130,0,0,7,0,6,-1,1,2},{130,0,0,7,0,6,-1,1,2},{130,0,0,7,0,6,-1,1,2},{130,0,0,7,0,6,-1,1,2},{130,0,0,7,0,6,-1,1,2},{130,0,0,7,0,6,-1,1,2},{130,0,0,7,0,6,-1,1,2},{130,0,0,7,0,6,-1,1,2},{130,0,0,7,0,6,-1,1,2},{130,0,0,7,0,6,-1,1,2},{130,0,0,7,0,6,-1,1,2}}, - {{130,0,0,7,0,6,-1,1,2},{130,0,0,7,0,6,-1,1,2},{130,0,0,7,0,6,-1,1,2},{130,0,0,7,0,6,-1,1,2},{130,0,0,7,0,6,-1,1,2},{130,0,0,7,0,6,-1,1,2},{130,0,0,14,0,6,-1,1,2},{130,0,0,14,0,6,-1,1,2},{130,0,0,14,0,6,-1,1,2},{130,0,0,14,0,6,-1,1,2},{130,0,0,14,0,6,-1,1,2},{130,0,0,14,0,6,-1,1,2},{130,0,0,14,0,6,-1,1,2},{130,0,0,14,0,6,-1,1,2},{130,0,0,14,0,6,-1,1,2},{130,0,0,14,0,6,-1,1,2}}, - {{130,0,0,12,17,6,-1,1,9},{130,0,0,12,17,6,-1,1,9},{130,0,0,21,0,8,-1,1,2},{130,0,0,21,0,8,-1,1,4},{130,0,0,21,0,8,-1,1,4},{130,0,0,21,0,8,-1,1,4},{130,0,0,21,0,8,-1,1,4},{130,0,0,21,0,8,-1,1,4},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2},{0,0,0,6,10,0,-1,1,2},{0,0,0,6,10,0,-1,1,2},{0,0,0,6,10,0,-1,1,2},{0,0,0,6,10,0,-1,1,2},{0,0,0,6,10,0,-1,1,2},{0,0,0,6,10,0,-1,1,2},{0,0,0,6,10,0,-1,1,2},{0,0,0,6,10,0,-1,1,2},{0,0,0,6,10,0,-1,1,2}}, - {{0,0,0,24,10,8,-1,1,2},{0,0,0,24,10,8,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2}}, - {{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2}}, - {{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2}}, - {{25,0,0,6,0,9,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2}}, - {{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{0,0,0,6,10,0,-1,1,2},{0,0,0,24,0,8,-1,1,2},{0,0,0,24,0,8,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,7,0,2,-1,1,2}}, - {{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2}}, - {{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,9,0,0,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{25,0,0,9,0,4,-1,1,2},{25,0,0,9,0,4,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,9,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{25,0,0,7,0,4,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,5,0,0,-1,1,2},{25,0,0,7,0,4,-1,1,2},{25,0,0,7,0,4,-1,1,2},{25,0,0,7,0,4,-1,1,2},{25,0,0,7,0,4,-1,1,2},{25,0,0,7,0,4,-1,1,2}}, - {{58,0,0,7,0,6,-1,1,2},{58,0,0,7,0,6,-1,1,2},{58,0,0,12,17,6,-1,1,9},{58,0,0,7,0,6,-1,1,2},{58,0,0,7,0,6,-1,1,2},{58,0,0,7,0,6,-1,1,2},{58,0,0,12,17,6,-1,1,9},{58,0,0,7,0,6,-1,1,2},{58,0,0,7,0,6,-1,1,2},{58,0,0,7,0,6,-1,1,2},{58,0,0,7,0,6,-1,1,2},{58,0,0,12,17,6,-1,1,9},{58,0,0,7,0,6,-1,1,2},{58,0,0,7,0,6,-1,1,2},{58,0,0,7,0,6,-1,1,2},{58,0,0,7,0,6,-1,1,2}}, - {{58,0,0,7,0,6,-1,1,2},{58,0,0,7,0,6,-1,1,2},{58,0,0,7,0,6,-1,1,2},{58,0,0,7,0,6,-1,1,2},{58,0,0,7,0,6,-1,1,2},{58,0,0,7,0,6,-1,1,2},{58,0,0,7,0,6,-1,1,2},{58,0,0,7,0,6,-1,1,2},{58,0,0,7,0,6,-1,1,2},{58,0,0,7,0,6,-1,1,2},{58,0,0,7,0,6,-1,1,2},{58,0,0,7,0,6,-1,1,2},{58,0,0,7,0,6,-1,1,2},{58,0,0,7,0,6,-1,1,2},{58,0,0,7,0,6,-1,1,2},{58,0,0,7,0,6,-1,1,2}}, - {{58,0,0,7,0,6,-1,1,2},{58,0,0,7,0,6,-1,1,2},{58,0,0,7,0,6,-1,1,2},{58,0,0,10,0,6,-1,1,9},{58,0,0,10,0,6,-1,1,9},{58,0,0,12,17,6,-1,1,9},{58,0,0,12,17,6,-1,1,9},{58,0,0,10,0,6,-1,1,9},{58,0,0,26,10,8,-1,1,2},{58,0,0,26,10,8,-1,1,2},{58,0,0,26,10,8,-1,1,2},{58,0,0,26,10,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{0,0,0,15,0,8,-1,1,2},{0,0,0,15,0,8,-1,1,2},{0,0,0,15,0,8,-1,1,2},{0,0,0,15,0,8,-1,1,2},{0,0,0,15,0,8,-1,1,2},{0,0,0,15,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,23,4,8,-1,1,21},{0,0,0,26,4,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{90,0,0,7,0,7,-1,1,2},{90,0,0,7,0,7,-1,1,2},{90,0,0,7,0,7,-1,1,2},{90,0,0,7,0,7,-1,1,2},{90,0,0,7,0,7,-1,1,2},{90,0,0,7,0,7,-1,1,2},{90,0,0,7,0,7,-1,1,2},{90,0,0,7,0,7,-1,1,2},{90,0,0,7,0,7,-1,1,2},{90,0,0,7,0,7,-1,1,2},{90,0,0,7,0,7,-1,1,2},{90,0,0,7,0,7,-1,1,2},{90,0,0,7,0,7,-1,1,2},{90,0,0,7,0,7,-1,1,2},{90,0,0,7,0,7,-1,1,2},{90,0,0,7,0,7,-1,1,2}}, - {{90,0,0,7,0,7,-1,1,2},{90,0,0,7,0,7,-1,1,2},{90,0,0,7,0,7,-1,1,2},{90,0,0,7,0,7,-1,1,2},{90,0,0,21,10,8,-1,1,5},{90,0,0,21,10,8,-1,1,5},{90,0,0,21,10,8,-1,1,11},{90,0,0,21,10,8,-1,1,11},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{111,0,0,10,0,6,-1,1,9},{111,0,0,10,0,6,-1,1,9},{111,0,0,7,0,6,-1,1,2},{111,0,0,7,0,6,-1,1,2},{111,0,0,7,0,6,-1,1,2},{111,0,0,7,0,6,-1,1,2},{111,0,0,7,0,6,-1,1,2},{111,0,0,7,0,6,-1,1,2},{111,0,0,7,0,6,-1,1,2},{111,0,0,7,0,6,-1,1,2},{111,0,0,7,0,6,-1,1,2},{111,0,0,7,0,6,-1,1,2},{111,0,0,7,0,6,-1,1,2},{111,0,0,7,0,6,-1,1,2},{111,0,0,7,0,6,-1,1,2},{111,0,0,7,0,6,-1,1,2}}, - {{111,0,0,7,0,6,-1,1,2},{111,0,0,7,0,6,-1,1,2},{111,0,0,7,0,6,-1,1,2},{111,0,0,7,0,6,-1,1,2},{111,0,0,7,0,6,-1,1,2},{111,0,0,7,0,6,-1,1,2},{111,0,0,7,0,6,-1,1,2},{111,0,0,7,0,6,-1,1,2},{111,0,0,7,0,6,-1,1,2},{111,0,0,7,0,6,-1,1,2},{111,0,0,7,0,6,-1,1,2},{111,0,0,7,0,6,-1,1,2},{111,0,0,7,0,6,-1,1,2},{111,0,0,7,0,6,-1,1,2},{111,0,0,7,0,6,-1,1,2},{111,0,0,7,0,6,-1,1,2}}, - {{111,0,0,7,0,6,-1,1,2},{111,0,0,7,0,6,-1,1,2},{111,0,0,7,0,6,-1,1,2},{111,0,0,7,0,6,-1,1,2},{111,0,0,10,0,6,-1,1,9},{111,0,0,10,0,6,-1,1,9},{111,0,0,10,0,6,-1,1,9},{111,0,0,10,0,6,-1,1,9},{111,0,0,10,0,6,-1,1,9},{111,0,0,10,0,6,-1,1,9},{111,0,0,10,0,6,-1,1,9},{111,0,0,10,0,6,-1,1,9},{111,0,0,10,0,6,-1,1,9},{111,0,0,10,0,6,-1,1,9},{111,0,0,10,0,6,-1,1,9},{111,0,0,10,0,6,-1,1,9}}, - {{111,0,0,10,0,6,-1,1,9},{111,0,0,10,0,6,-1,1,9},{111,0,0,10,0,6,-1,1,9},{111,0,0,10,0,6,-1,1,9},{111,0,0,12,17,6,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{111,0,0,21,0,8,-1,1,4},{111,0,0,21,0,8,-1,1,4}}, - {{111,0,0,13,0,6,0,1,19},{111,0,0,13,0,6,1,1,19},{111,0,0,13,0,6,2,1,19},{111,0,0,13,0,6,3,1,19},{111,0,0,13,0,6,4,1,19},{111,0,0,13,0,6,5,1,19},{111,0,0,13,0,6,6,1,19},{111,0,0,13,0,6,7,1,19},{111,0,0,13,0,6,8,1,19},{111,0,0,13,0,6,9,1,19},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{10,0,0,12,17,4,-1,1,9},{10,0,0,12,17,4,-1,1,9},{10,0,0,12,17,4,-1,1,9},{10,0,0,12,17,4,-1,1,9},{10,0,0,12,17,4,-1,1,9},{10,0,0,12,17,4,-1,1,9},{10,0,0,12,17,4,-1,1,9},{10,0,0,12,17,4,-1,1,9},{10,0,0,12,17,4,-1,1,9},{10,0,0,12,17,4,-1,1,9},{10,0,0,12,17,4,-1,1,9},{10,0,0,12,17,4,-1,1,9},{10,0,0,12,17,4,-1,1,9},{10,0,0,12,17,4,-1,1,9},{10,0,0,12,17,4,-1,1,9},{10,0,0,12,17,4,-1,1,9}}, - {{10,0,0,12,17,4,-1,1,9},{10,0,0,12,17,4,-1,1,9},{10,0,0,7,0,4,-1,1,2},{10,0,0,7,0,4,-1,1,2},{10,0,0,7,0,4,-1,1,2},{10,0,0,7,0,4,-1,1,2},{10,0,0,7,0,4,-1,1,2},{10,0,0,7,0,4,-1,1,2},{10,0,0,21,0,8,-1,1,2},{10,0,0,21,0,8,-1,1,2},{10,0,0,21,0,8,-1,1,2},{10,0,0,7,0,4,-1,1,2},{10,0,0,21,0,8,-1,1,5},{10,0,0,7,0,4,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{79,0,0,13,0,6,0,1,19},{79,0,0,13,0,6,1,1,19},{79,0,0,13,0,6,2,1,19},{79,0,0,13,0,6,3,1,19},{79,0,0,13,0,6,4,1,19},{79,0,0,13,0,6,5,1,19},{79,0,0,13,0,6,6,1,19},{79,0,0,13,0,6,7,1,19},{79,0,0,13,0,6,8,1,19},{79,0,0,13,0,6,9,1,19},{79,0,0,7,0,6,-1,1,2},{79,0,0,7,0,6,-1,1,2},{79,0,0,7,0,6,-1,1,2},{79,0,0,7,0,6,-1,1,2},{79,0,0,7,0,6,-1,1,2},{79,0,0,7,0,6,-1,1,2}}, - {{79,0,0,7,0,6,-1,1,2},{79,0,0,7,0,6,-1,1,2},{79,0,0,7,0,6,-1,1,2},{79,0,0,7,0,6,-1,1,2},{79,0,0,7,0,6,-1,1,2},{79,0,0,7,0,6,-1,1,2},{79,0,0,7,0,6,-1,1,2},{79,0,0,7,0,6,-1,1,2},{79,0,0,7,0,6,-1,1,2},{79,0,0,7,0,6,-1,1,2},{79,0,0,7,0,6,-1,1,2},{79,0,0,7,0,6,-1,1,2},{79,0,0,7,0,6,-1,1,2},{79,0,0,7,0,6,-1,1,2},{79,0,0,7,0,6,-1,1,2},{79,0,0,7,0,6,-1,1,2}}, - {{79,0,0,7,0,6,-1,1,2},{79,0,0,7,0,6,-1,1,2},{79,0,0,7,0,6,-1,1,2},{79,0,0,7,0,6,-1,1,2},{79,0,0,7,0,6,-1,1,2},{79,0,0,7,0,6,-1,1,2},{79,0,0,12,17,6,-1,1,9},{79,0,0,12,17,6,-1,1,9},{79,0,0,12,17,6,-1,1,9},{79,0,0,12,17,6,-1,1,9},{79,0,0,12,17,6,-1,1,9},{79,0,0,12,17,6,-1,1,9},{79,0,0,12,17,6,-1,1,9},{79,0,0,12,17,6,-1,1,9},{0,0,0,21,0,8,-1,1,4},{79,0,0,21,0,8,-1,1,4}}, - {{110,0,0,7,0,7,-1,1,2},{110,0,0,7,0,7,-1,1,2},{110,0,0,7,0,7,-1,1,2},{110,0,0,7,0,7,-1,1,2},{110,0,0,7,0,7,-1,1,2},{110,0,0,7,0,7,-1,1,2},{110,0,0,7,0,7,-1,1,2},{110,0,0,7,0,7,-1,1,2},{110,0,0,7,0,7,-1,1,2},{110,0,0,7,0,7,-1,1,2},{110,0,0,7,0,7,-1,1,2},{110,0,0,7,0,7,-1,1,2},{110,0,0,7,0,7,-1,1,2},{110,0,0,7,0,7,-1,1,2},{110,0,0,7,0,7,-1,1,2},{110,0,0,7,0,7,-1,1,2}}, - {{110,0,0,7,0,7,-1,1,2},{110,0,0,7,0,7,-1,1,2},{110,0,0,7,0,7,-1,1,2},{110,0,0,7,0,7,-1,1,2},{110,0,0,7,0,7,-1,1,2},{110,0,0,7,0,7,-1,1,2},{110,0,0,7,0,7,-1,1,2},{110,0,0,12,17,7,-1,1,9},{110,0,0,12,17,7,-1,1,9},{110,0,0,12,17,7,-1,1,9},{110,0,0,12,17,7,-1,1,9},{110,0,0,12,17,7,-1,1,9},{110,0,0,12,17,7,-1,1,9},{110,0,0,12,17,7,-1,1,9},{110,0,0,12,17,7,-1,1,9},{110,0,0,12,17,7,-1,1,9}}, - {{110,0,0,12,17,7,-1,1,9},{110,0,0,12,17,7,-1,1,9},{110,0,0,10,0,7,-1,1,9},{110,0,0,10,0,7,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{110,0,0,21,0,8,-1,1,2}}, - {{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{18,0,1,7,0,4,-1,0,33},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{78,0,0,12,17,6,-1,1,9},{78,0,0,12,17,6,-1,1,9},{78,0,0,12,17,6,-1,1,9},{78,0,0,10,0,6,-1,1,9},{78,0,0,7,0,6,-1,1,2},{78,0,0,7,0,6,-1,1,2},{78,0,0,7,0,6,-1,1,2},{78,0,0,7,0,6,-1,1,2},{78,0,0,7,0,6,-1,1,2},{78,0,0,7,0,6,-1,1,2},{78,0,0,7,0,6,-1,1,2},{78,0,0,7,0,6,-1,1,2},{78,0,0,7,0,6,-1,1,2},{78,0,0,7,0,6,-1,1,2},{78,0,0,7,0,6,-1,1,2},{78,0,0,7,0,6,-1,1,2}}, - {{78,0,0,7,0,6,-1,1,2},{78,0,0,7,0,6,-1,1,2},{78,0,0,7,0,6,-1,1,2},{78,0,0,7,0,6,-1,1,2},{78,0,0,7,0,6,-1,1,2},{78,0,0,7,0,6,-1,1,2},{78,0,0,7,0,6,-1,1,2},{78,0,0,7,0,6,-1,1,2},{78,0,0,7,0,6,-1,1,2},{78,0,0,7,0,6,-1,1,2},{78,0,0,7,0,6,-1,1,2},{78,0,0,7,0,6,-1,1,2},{78,0,0,7,0,6,-1,1,2},{78,0,0,7,0,6,-1,1,2},{78,0,0,7,0,6,-1,1,2},{78,0,0,7,0,6,-1,1,2}}, - {{78,0,0,7,0,6,-1,1,2},{78,0,0,7,0,6,-1,1,2},{78,0,0,7,0,6,-1,1,2},{78,0,0,12,17,6,-1,1,9},{78,0,0,10,0,6,-1,1,9},{78,0,0,10,0,6,-1,1,9},{78,0,0,12,17,6,-1,1,9},{78,0,0,12,17,6,-1,1,9},{78,0,0,12,17,6,-1,1,9},{78,0,0,12,17,6,-1,1,9},{78,0,0,10,0,6,-1,1,9},{78,0,0,10,0,6,-1,1,9},{78,0,0,12,17,6,-1,1,9},{78,0,0,10,0,6,-1,1,9},{78,0,0,10,0,6,-1,1,9},{78,0,0,10,0,6,-1,1,9}}, - {{78,0,0,10,0,6,-1,1,9},{78,0,0,21,0,8,-1,1,2},{78,0,0,21,0,8,-1,1,2},{78,0,0,21,0,8,-1,1,2},{78,0,0,21,0,8,-1,1,2},{78,0,0,21,0,8,-1,1,2},{78,0,0,21,0,8,-1,1,2},{78,0,0,21,0,8,-1,1,4},{78,0,0,21,0,8,-1,1,4},{78,0,0,21,0,8,-1,1,4},{78,0,0,21,0,8,-1,1,2},{78,0,0,21,0,8,-1,1,2},{78,0,0,21,0,8,-1,1,2},{78,0,0,21,0,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{0,0,0,6,0,7,-1,1,2}}, - {{78,0,0,13,0,6,0,1,19},{78,0,0,13,0,6,1,1,19},{78,0,0,13,0,6,2,1,19},{78,0,0,13,0,6,3,1,19},{78,0,0,13,0,6,4,1,19},{78,0,0,13,0,6,5,1,19},{78,0,0,13,0,6,6,1,19},{78,0,0,13,0,6,7,1,19},{78,0,0,13,0,6,8,1,19},{78,0,0,13,0,6,9,1,19},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{78,0,0,21,0,8,-1,1,2},{78,0,0,21,0,8,-1,1,2}}, - {{28,0,0,7,0,4,-1,1,24},{28,0,0,7,0,4,-1,1,24},{28,0,0,7,0,4,-1,1,24},{28,0,0,7,0,4,-1,1,24},{28,0,0,7,0,4,-1,1,24},{28,0,0,12,17,4,-1,1,24},{28,0,0,6,0,4,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24}}, - {{28,0,0,13,0,0,0,1,19},{28,0,0,13,0,0,1,1,19},{28,0,0,13,0,0,2,1,19},{28,0,0,13,0,0,3,1,19},{28,0,0,13,0,0,4,1,19},{28,0,0,13,0,0,5,1,19},{28,0,0,13,0,0,6,1,19},{28,0,0,13,0,0,7,1,19},{28,0,0,13,0,0,8,1,19},{28,0,0,13,0,0,9,1,19},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{103,0,0,2,0,12,-1,1,0}}, - {{66,0,0,7,0,6,-1,1,2},{66,0,0,7,0,6,-1,1,2},{66,0,0,7,0,6,-1,1,2},{66,0,0,7,0,6,-1,1,2},{66,0,0,7,0,6,-1,1,2},{66,0,0,7,0,6,-1,1,2},{66,0,0,7,0,6,-1,1,2},{66,0,0,7,0,6,-1,1,2},{66,0,0,7,0,6,-1,1,2},{66,0,0,7,0,6,-1,1,2},{66,0,0,7,0,6,-1,1,2},{66,0,0,7,0,6,-1,1,2},{66,0,0,7,0,6,-1,1,2},{66,0,0,7,0,6,-1,1,2},{66,0,0,7,0,6,-1,1,2},{66,0,0,7,0,6,-1,1,2}}, - {{66,0,0,7,0,6,-1,1,2},{66,0,0,7,0,6,-1,1,2},{66,0,0,7,0,6,-1,1,2},{66,0,0,7,0,6,-1,1,2},{66,0,0,7,0,6,-1,1,2},{66,0,0,7,0,6,-1,1,2},{66,0,0,7,0,6,-1,1,2},{66,0,0,7,0,6,-1,1,2},{66,0,0,7,0,6,-1,1,2},{66,0,0,12,17,6,-1,1,9},{66,0,0,12,17,6,-1,1,9},{66,0,0,12,17,6,-1,1,9},{66,0,0,12,17,6,-1,1,9},{66,0,0,12,17,6,-1,1,9},{66,0,0,12,17,6,-1,1,9},{66,0,0,10,0,6,-1,1,9}}, - {{66,0,0,10,0,6,-1,1,9},{66,0,0,12,17,6,-1,1,9},{66,0,0,12,17,6,-1,1,9},{66,0,0,10,0,6,-1,1,9},{66,0,0,10,0,6,-1,1,9},{66,0,0,12,17,6,-1,1,9},{66,0,0,12,17,6,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{66,0,0,7,0,6,-1,1,2},{66,0,0,7,0,6,-1,1,2},{66,0,0,7,0,6,-1,1,2},{66,0,0,12,17,6,-1,1,9},{66,0,0,7,0,6,-1,1,2},{66,0,0,7,0,6,-1,1,2},{66,0,0,7,0,6,-1,1,2},{66,0,0,7,0,6,-1,1,2},{66,0,0,7,0,6,-1,1,2},{66,0,0,7,0,6,-1,1,2},{66,0,0,7,0,6,-1,1,2},{66,0,0,7,0,6,-1,1,2},{66,0,0,12,17,6,-1,1,9},{66,0,0,10,0,6,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{66,0,0,13,0,6,0,1,19},{66,0,0,13,0,6,1,1,19},{66,0,0,13,0,6,2,1,19},{66,0,0,13,0,6,3,1,19},{66,0,0,13,0,6,4,1,19},{66,0,0,13,0,6,5,1,19},{66,0,0,13,0,6,6,1,19},{66,0,0,13,0,6,7,1,19},{66,0,0,13,0,6,8,1,19},{66,0,0,13,0,6,9,1,19},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{66,0,0,21,0,8,-1,1,2},{66,0,0,21,0,8,-1,1,4},{66,0,0,21,0,8,-1,1,4},{66,0,0,21,0,8,-1,1,4}}, - {{28,0,0,6,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,26,0,8,-1,1,24},{28,0,0,26,0,8,-1,1,24},{28,0,0,26,0,8,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,10,0,0,-1,1,24},{28,0,0,12,17,0,-1,1,24},{28,0,0,10,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24},{28,0,0,7,0,0,-1,1,24}}, - {{127,0,0,7,0,6,-1,1,24},{127,0,0,7,0,6,-1,1,24},{127,0,0,7,0,6,-1,1,24},{127,0,0,7,0,6,-1,1,24},{127,0,0,7,0,6,-1,1,24},{127,0,0,7,0,6,-1,1,24},{127,0,0,7,0,6,-1,1,24},{127,0,0,7,0,6,-1,1,24},{127,0,0,7,0,6,-1,1,24},{127,0,0,7,0,6,-1,1,24},{127,0,0,7,0,6,-1,1,24},{127,0,0,7,0,6,-1,1,24},{127,0,0,7,0,6,-1,1,24},{127,0,0,7,0,6,-1,1,24},{127,0,0,7,0,6,-1,1,24},{127,0,0,7,0,6,-1,1,24}}, - {{127,0,0,12,17,6,-1,1,24},{127,0,0,7,0,6,-1,1,24},{127,0,0,12,17,6,-1,1,24},{127,0,0,12,17,6,-1,1,24},{127,0,0,12,17,6,-1,1,24},{127,0,0,7,0,6,-1,1,24},{127,0,0,7,0,6,-1,1,24},{127,0,0,12,17,6,-1,1,24},{127,0,0,12,17,6,-1,1,24},{127,0,0,7,0,6,-1,1,24},{127,0,0,7,0,6,-1,1,24},{127,0,0,7,0,6,-1,1,24},{127,0,0,7,0,6,-1,1,24},{127,0,0,7,0,6,-1,1,24},{127,0,0,12,17,6,-1,1,24},{127,0,0,12,17,6,-1,1,24}}, - {{127,0,0,7,0,6,-1,1,24},{127,0,0,12,17,6,-1,1,24},{127,0,0,7,0,6,-1,1,24},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{127,0,0,7,0,6,-1,1,24},{127,0,0,7,0,6,-1,1,24},{127,0,0,6,0,6,-1,1,24},{127,0,0,21,0,8,-1,1,24},{127,0,0,21,0,8,-1,1,24}}, - {{115,0,0,7,0,6,-1,1,2},{115,0,0,7,0,6,-1,1,2},{115,0,0,7,0,6,-1,1,2},{115,0,0,7,0,6,-1,1,2},{115,0,0,7,0,6,-1,1,2},{115,0,0,7,0,6,-1,1,2},{115,0,0,7,0,6,-1,1,2},{115,0,0,7,0,6,-1,1,2},{115,0,0,7,0,6,-1,1,2},{115,0,0,7,0,6,-1,1,2},{115,0,0,7,0,6,-1,1,2},{115,0,0,10,0,6,-1,1,9},{115,0,0,12,17,6,-1,1,9},{115,0,0,12,17,6,-1,1,9},{115,0,0,10,0,6,-1,1,9},{115,0,0,10,0,6,-1,1,9}}, - {{115,0,0,21,0,8,-1,1,4},{115,0,0,21,0,8,-1,1,4},{115,0,0,7,0,6,-1,1,2},{115,0,0,6,0,6,-1,1,2},{115,0,0,6,0,6,-1,1,2},{115,0,0,10,0,6,-1,1,9},{115,0,0,12,17,6,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{103,0,0,2,0,12,-1,1,0},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0}}, - {{103,0,0,2,0,12,-1,1,0},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{11,0,0,7,0,0,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2}}, - {{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{25,0,0,5,0,4,-1,1,2},{0,0,0,24,0,8,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2},{25,0,0,6,0,9,-1,1,2}}, - {{25,0,0,5,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,5,0,2,-1,1,2},{25,0,0,5,0,4,-1,1,2},{14,0,0,5,0,4,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{6,0,0,5,0,6,-1,1,2},{6,0,0,5,0,6,-1,1,2},{6,0,0,5,0,6,-1,1,2},{6,0,0,5,0,6,-1,1,2},{6,0,0,5,0,6,-1,1,2},{6,0,0,5,0,6,-1,1,2},{6,0,0,5,0,6,-1,1,2},{6,0,0,5,0,6,-1,1,2},{6,0,0,5,0,6,-1,1,2},{6,0,0,5,0,6,-1,1,2},{6,0,0,5,0,6,-1,1,2},{6,0,0,5,0,6,-1,1,2},{6,0,0,5,0,6,-1,1,2},{6,0,0,5,0,6,-1,1,2},{6,0,0,5,0,6,-1,1,2},{6,0,0,5,0,6,-1,1,2}}, - {{115,0,0,7,0,6,-1,1,2},{115,0,0,7,0,6,-1,1,2},{115,0,0,7,0,6,-1,1,2},{115,0,0,7,0,6,-1,1,2},{115,0,0,7,0,6,-1,1,2},{115,0,0,7,0,6,-1,1,2},{115,0,0,7,0,6,-1,1,2},{115,0,0,7,0,6,-1,1,2},{115,0,0,7,0,6,-1,1,2},{115,0,0,7,0,6,-1,1,2},{115,0,0,7,0,6,-1,1,2},{115,0,0,7,0,6,-1,1,2},{115,0,0,7,0,6,-1,1,2},{115,0,0,7,0,6,-1,1,2},{115,0,0,7,0,6,-1,1,2},{115,0,0,7,0,6,-1,1,2}}, - {{115,0,0,7,0,6,-1,1,2},{115,0,0,7,0,6,-1,1,2},{115,0,0,7,0,6,-1,1,2},{115,0,0,10,0,6,-1,1,9},{115,0,0,10,0,6,-1,1,9},{115,0,0,12,17,6,-1,1,9},{115,0,0,10,0,6,-1,1,9},{115,0,0,10,0,6,-1,1,9},{115,0,0,12,17,6,-1,1,9},{115,0,0,10,0,6,-1,1,9},{115,0,0,10,0,6,-1,1,9},{115,0,0,21,0,8,-1,1,4},{115,0,0,10,0,6,-1,1,9},{115,0,0,12,17,6,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{115,0,0,13,0,6,0,1,19},{115,0,0,13,0,6,1,1,19},{115,0,0,13,0,6,2,1,19},{115,0,0,13,0,6,3,1,19},{115,0,0,13,0,6,4,1,19},{115,0,0,13,0,6,5,1,19},{115,0,0,13,0,6,6,1,19},{115,0,0,13,0,6,7,1,19},{115,0,0,13,0,6,8,1,19},{115,0,0,13,0,6,9,1,19},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{18,0,1,7,0,0,-1,0,31},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32}}, - {{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,31},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32}}, - {{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32}}, - {{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,31},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32}}, - {{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,31},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32}}, - {{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{18,0,1,7,0,0,-1,0,32},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{18,0,0,7,0,4,-1,0,35},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34}}, - {{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{18,0,0,7,0,4,-1,0,34},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{103,0,0,4,0,12,-1,1,25},{103,0,0,4,0,12,-1,1,25},{103,0,0,4,0,12,-1,1,25},{103,0,0,4,0,12,-1,1,25},{103,0,0,4,0,12,-1,1,25},{103,0,0,4,0,12,-1,1,25},{103,0,0,4,0,12,-1,1,25},{103,0,0,4,0,12,-1,1,25},{103,0,0,4,0,12,-1,1,25},{103,0,0,4,0,12,-1,1,25},{103,0,0,4,0,12,-1,1,25},{103,0,0,4,0,12,-1,1,25},{103,0,0,4,0,12,-1,1,25},{103,0,0,4,0,12,-1,1,25},{103,0,0,4,0,12,-1,1,25},{103,0,0,4,0,12,-1,1,25}}, - {{103,0,0,3,0,12,-1,0,0},{103,0,0,3,0,12,-1,0,0},{103,0,0,3,0,12,-1,0,0},{103,0,0,3,0,12,-1,0,0},{103,0,0,3,0,12,-1,0,0},{103,0,0,3,0,12,-1,0,0},{103,0,0,3,0,12,-1,0,0},{103,0,0,3,0,12,-1,0,0},{103,0,0,3,0,12,-1,0,0},{103,0,0,3,0,12,-1,0,0},{103,0,0,3,0,12,-1,0,0},{103,0,0,3,0,12,-1,0,0},{103,0,0,3,0,12,-1,0,0},{103,0,0,3,0,12,-1,0,0},{103,0,0,3,0,12,-1,0,0},{103,0,0,3,0,12,-1,0,0}}, - {{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14}}, - {{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14}}, - {{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,0,-1,0,14}}, - {{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14}}, - {{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14}}, - {{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{17,0,1,7,0,9,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14}}, - {{25,0,0,5,0,9,-1,1,2},{25,0,0,5,0,9,-1,1,2},{25,0,0,5,0,9,-1,1,2},{25,0,0,5,0,9,-1,1,2},{25,0,0,5,0,9,-1,1,2},{25,0,0,5,0,9,-1,1,2},{25,0,0,5,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{3,0,0,5,0,9,-1,1,2},{3,0,0,5,0,9,-1,1,2},{3,0,0,5,0,9,-1,1,2},{3,0,0,5,0,9,-1,1,2},{3,0,0,5,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{19,0,0,7,1,9,-1,1,38},{19,0,0,12,17,3,-1,1,9},{19,0,0,7,1,9,-1,1,38}}, - {{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38},{19,0,0,25,3,9,-1,1,2},{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38}}, - {{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38},{103,0,0,2,1,12,-1,1,0},{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38},{103,0,0,2,1,12,-1,1,0},{19,0,0,7,1,9,-1,1,38},{103,0,0,2,1,12,-1,1,0}}, - {{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38},{103,0,0,2,1,12,-1,1,0},{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38},{103,0,0,2,1,12,-1,1,0},{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38},{19,0,0,7,1,9,-1,1,38}}, - {{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2}}, - {{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,24,13,8,-1,1,2},{2,0,0,24,13,8,-1,1,2},{2,0,0,24,13,8,-1,1,2},{2,0,0,24,13,8,-1,1,2},{2,0,0,24,13,8,-1,1,2},{2,0,0,24,13,8,-1,1,2},{2,0,0,24,13,8,-1,1,2},{2,0,0,24,13,8,-1,1,2},{2,0,0,24,13,8,-1,1,2},{2,0,0,24,13,8,-1,1,2},{2,0,0,24,13,8,-1,1,2},{2,0,0,24,13,8,-1,1,2},{2,0,0,24,13,8,-1,1,2},{2,0,0,24,13,8,-1,1,2}}, - {{2,0,0,24,13,8,-1,1,2},{2,0,0,24,13,8,-1,1,2},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0}}, - {{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2}}, - {{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{0,0,0,18,10,8,-1,1,8},{0,0,0,22,10,8,-1,1,20}}, - {{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2}}, - {{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0}}, - {{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,23,13,9,-1,1,21},{2,0,0,26,10,8,-1,1,2},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0}}, - {{1,0,0,12,17,10,-1,1,9},{1,0,0,12,17,10,-1,1,9},{1,0,0,12,17,10,-1,1,9},{1,0,0,12,17,10,-1,1,9},{1,0,0,12,17,10,-1,1,9},{1,0,0,12,17,10,-1,1,9},{1,0,0,12,17,10,-1,1,9},{1,0,0,12,17,10,-1,1,9},{1,0,0,12,17,10,-1,1,9},{1,0,0,12,17,10,-1,1,9},{1,0,0,12,17,10,-1,1,9},{1,0,0,12,17,10,-1,1,9},{1,0,0,12,17,10,-1,1,9},{1,0,0,12,17,10,-1,1,9},{1,0,0,12,17,10,-1,1,9},{1,0,0,12,17,10,-1,1,9}}, - {{0,0,1,21,10,9,-1,0,16},{0,0,1,21,10,9,-1,0,8},{0,0,1,21,10,9,-1,0,8},{0,0,1,21,10,9,-1,0,16},{0,0,1,21,10,9,-1,0,16},{0,0,1,21,10,9,-1,0,11},{0,0,1,21,10,9,-1,0,11},{0,0,1,22,10,9,-1,0,20},{0,0,1,18,10,9,-1,0,8},{0,0,1,21,10,9,-1,0,15},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{1,0,0,12,17,3,-1,1,9},{8,0,0,12,17,3,-1,1,9},{8,0,0,12,17,3,-1,1,9}}, - {{0,0,1,21,10,9,-1,0,14},{0,0,1,17,10,9,-1,0,14},{0,0,1,17,10,9,-1,0,14},{0,0,1,16,10,9,-1,0,14},{0,0,1,16,10,9,-1,0,14},{0,0,1,22,10,9,-1,0,20},{0,0,1,18,10,9,-1,0,8},{0,0,1,22,10,9,-1,0,20},{0,0,1,18,10,9,-1,0,8},{0,0,1,22,10,9,-1,0,20},{0,0,1,18,10,9,-1,0,8},{0,0,1,22,10,9,-1,0,20},{0,0,1,18,10,9,-1,0,8},{0,0,1,22,10,9,-1,0,20},{0,0,1,18,10,9,-1,0,8},{0,0,1,22,10,9,-1,0,20}}, - {{0,0,1,18,10,9,-1,0,8},{0,0,1,22,10,9,-1,0,20},{0,0,1,18,10,9,-1,0,8},{0,0,1,22,10,9,-1,0,20},{0,0,1,18,10,9,-1,0,8},{0,0,1,21,10,8,-1,0,14},{0,0,1,21,10,8,-1,0,14},{0,0,1,22,10,9,-1,0,20},{0,0,1,18,10,9,-1,0,8},{0,0,1,21,10,9,-1,1,14},{0,0,1,21,10,9,-1,1,14},{0,0,1,21,10,9,-1,1,14},{0,0,1,21,10,9,-1,1,14},{0,0,1,16,10,9,-1,1,14},{0,0,1,16,10,9,-1,1,14},{0,0,1,16,10,9,-1,1,14}}, - {{0,0,1,21,6,9,-1,2,8},{0,0,1,21,10,9,-1,2,14},{0,0,1,21,6,9,-1,2,8},{103,0,0,2,0,12,-1,0,0},{0,0,1,21,10,9,-1,0,18},{0,0,1,21,6,9,-1,0,18},{0,0,1,21,10,9,-1,0,11},{0,0,1,21,10,9,-1,0,11},{0,0,1,17,10,9,-1,1,14},{0,1,1,22,10,9,-1,3,20},{0,2,1,18,10,9,-1,3,8},{0,1,1,22,10,9,-1,3,20},{0,2,1,18,10,9,-1,3,8},{0,1,1,22,10,9,-1,3,20},{0,2,1,18,10,9,-1,3,8},{0,0,1,21,4,9,-1,0,14}}, - {{0,0,1,21,10,9,-1,0,14},{0,0,1,21,10,9,-1,0,14},{0,0,1,25,3,9,-1,0,14},{0,0,1,17,3,9,-1,1,14},{0,0,1,25,10,9,-1,1,14},{0,0,1,25,10,9,-1,1,14},{0,0,1,25,10,9,-1,1,14},{103,0,0,2,0,12,-1,0,0},{0,0,1,21,10,9,-1,0,14},{0,0,1,23,4,9,-1,0,22},{0,0,1,21,4,9,-1,0,21},{0,0,1,21,10,9,-1,0,14},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,3,-1,1,2},{2,0,0,7,13,9,-1,1,2},{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2}}, - {{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{0,0,0,1,18,10,-1,1,30}}, - {{103,0,0,2,0,12,-1,1,0},{0,0,1,21,10,9,-1,2,11},{0,0,1,21,10,9,-1,0,14},{0,0,1,21,4,9,-1,0,14},{0,0,1,23,4,9,-1,0,22},{0,0,1,21,4,9,-1,0,21},{0,0,1,21,10,9,-1,0,14},{0,0,1,21,10,9,-1,0,14},{0,1,1,22,10,9,-1,3,20},{0,2,1,18,10,9,-1,3,8},{0,0,1,21,10,9,-1,0,14},{0,0,1,25,3,9,-1,0,14},{0,0,1,21,6,9,-1,2,8},{0,0,1,17,3,9,-1,1,14},{0,0,1,21,6,9,-1,2,8},{0,0,1,21,6,9,-1,0,14}}, - {{0,0,1,13,2,9,0,0,14},{0,0,1,13,2,9,1,0,14},{0,0,1,13,2,9,2,0,14},{0,0,1,13,2,9,3,0,14},{0,0,1,13,2,9,4,0,14},{0,0,1,13,2,9,5,0,14},{0,0,1,13,2,9,6,0,14},{0,0,1,13,2,9,7,0,14},{0,0,1,13,2,9,8,0,14},{0,0,1,13,2,9,9,0,14},{0,0,1,21,6,9,-1,3,18},{0,0,1,21,10,9,-1,3,18},{0,0,1,25,10,9,-1,1,14},{0,0,1,25,10,9,-1,1,14},{0,0,1,25,10,9,-1,1,14},{0,0,1,21,10,9,-1,2,11}}, - {{0,0,1,21,10,9,-1,0,14},{25,0,1,9,0,9,-1,0,14},{25,0,1,9,0,9,-1,0,14},{25,0,1,9,0,9,-1,0,14},{25,0,1,9,0,9,-1,0,14},{25,0,1,9,0,9,-1,0,14},{25,0,1,9,0,9,-1,0,14},{25,0,1,9,0,9,-1,0,14},{25,0,1,9,0,9,-1,0,14},{25,0,1,9,0,9,-1,0,14},{25,0,1,9,0,9,-1,0,14},{25,0,1,9,0,9,-1,0,14},{25,0,1,9,0,9,-1,0,14},{25,0,1,9,0,9,-1,0,14},{25,0,1,9,0,9,-1,0,14},{25,0,1,9,0,9,-1,0,14}}, - {{25,0,1,9,0,9,-1,0,14},{25,0,1,9,0,9,-1,0,14},{25,0,1,9,0,9,-1,0,14},{25,0,1,9,0,9,-1,0,14},{25,0,1,9,0,9,-1,0,14},{25,0,1,9,0,9,-1,0,14},{25,0,1,9,0,9,-1,0,14},{25,0,1,9,0,9,-1,0,14},{25,0,1,9,0,9,-1,0,14},{25,0,1,9,0,9,-1,0,14},{25,0,1,9,0,9,-1,0,14},{0,1,1,22,10,9,-1,3,20},{0,0,1,21,10,9,-1,0,14},{0,2,1,18,10,9,-1,3,8},{0,0,1,24,10,9,-1,0,14},{0,0,1,16,10,9,-1,3,14}}, - {{0,0,1,24,10,9,-1,0,14},{25,0,1,5,0,9,-1,0,14},{25,0,1,5,0,9,-1,0,14},{25,0,1,5,0,9,-1,0,14},{25,0,1,5,0,9,-1,0,14},{25,0,1,5,0,9,-1,0,14},{25,0,1,5,0,9,-1,0,14},{25,0,1,5,0,9,-1,0,14},{25,0,1,5,0,9,-1,0,14},{25,0,1,5,0,9,-1,0,14},{25,0,1,5,0,9,-1,0,14},{25,0,1,5,0,9,-1,0,14},{25,0,1,5,0,9,-1,0,14},{25,0,1,5,0,9,-1,0,14},{25,0,1,5,0,9,-1,0,14},{25,0,1,5,0,9,-1,0,14}}, - {{25,0,1,5,0,9,-1,0,14},{25,0,1,5,0,9,-1,0,14},{25,0,1,5,0,9,-1,0,14},{25,0,1,5,0,9,-1,0,14},{25,0,1,5,0,9,-1,0,14},{25,0,1,5,0,9,-1,0,14},{25,0,1,5,0,9,-1,0,14},{25,0,1,5,0,9,-1,0,14},{25,0,1,5,0,9,-1,0,14},{25,0,1,5,0,9,-1,0,14},{25,0,1,5,0,9,-1,0,14},{0,1,1,22,10,9,-1,3,20},{0,0,1,25,10,9,-1,3,14},{0,2,1,18,10,9,-1,3,8},{0,0,1,25,10,9,-1,3,14},{0,1,1,22,10,9,-1,3,20}}, - {{0,2,1,18,10,9,-1,3,8},{0,0,1,21,10,9,-1,1,8},{0,1,1,22,10,9,-1,1,20},{0,2,1,18,10,9,-1,1,8},{0,0,1,21,10,9,-1,1,8},{0,0,1,21,10,9,-1,1,18},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,37},{22,0,1,7,0,9,-1,1,37},{22,0,1,7,0,9,-1,1,37},{22,0,1,7,0,9,-1,1,37},{22,0,1,7,0,9,-1,1,37},{22,0,1,7,0,9,-1,1,37},{22,0,1,7,0,9,-1,1,37},{22,0,1,7,0,9,-1,1,37},{22,0,1,7,0,9,-1,1,37}}, - {{0,0,1,6,0,9,-1,1,37},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2}}, - {{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2}}, - {{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{22,0,1,7,0,9,-1,1,2},{0,0,1,6,0,9,-1,1,18},{0,0,1,6,0,9,-1,1,18}}, - {{18,0,1,7,0,10,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2}}, - {{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0}}, - {{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2}}, - {{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{18,0,1,7,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{0,0,1,23,4,9,-1,0,21},{0,0,1,23,4,9,-1,0,22},{0,0,1,25,10,9,-1,0,14},{0,0,1,24,10,9,-1,3,14},{0,0,1,26,10,9,-1,0,14},{0,0,1,23,4,9,-1,0,22},{0,0,1,23,4,9,-1,0,22},{103,0,0,2,0,12,-1,0,0},{0,0,1,26,10,9,-1,1,2},{0,0,1,25,10,9,-1,1,2},{0,0,1,25,10,9,-1,1,2},{0,0,1,25,10,9,-1,1,2},{0,0,1,25,10,9,-1,1,2},{0,0,1,26,10,9,-1,1,2},{0,0,1,26,10,9,-1,1,2},{103,0,0,2,0,12,-1,1,0}}, - {{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{0,0,0,1,10,8,-1,1,9},{0,0,0,1,10,8,-1,1,9},{0,0,0,1,10,8,-1,1,9},{0,0,0,26,10,8,-1,0,7},{0,0,0,26,10,8,-1,0,1},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2}}, - {{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2}}, - {{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2}}, - {{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{49,0,0,7,0,7,-1,1,2}}, - {{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{49,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{0,0,0,21,0,8,-1,1,4},{0,0,0,21,10,8,-1,1,4},{0,0,0,21,0,8,-1,1,4},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{0,0,0,15,0,8,-1,1,2},{0,0,0,15,0,8,-1,1,2},{0,0,0,15,0,8,-1,1,2},{0,0,0,15,0,8,-1,1,2},{0,0,0,15,0,8,-1,1,2},{0,0,0,15,0,8,-1,1,2},{0,0,0,15,0,8,-1,1,2},{0,0,0,15,0,8,-1,1,2},{0,0,0,15,0,8,-1,1,2}}, - {{0,0,0,15,0,8,-1,1,2},{0,0,0,15,0,8,-1,1,2},{0,0,0,15,0,8,-1,1,2},{0,0,0,15,0,8,-1,1,2},{0,0,0,15,0,8,-1,1,2},{0,0,0,15,0,8,-1,1,2},{0,0,0,15,0,8,-1,1,2},{0,0,0,15,0,8,-1,1,2},{0,0,0,15,0,8,-1,1,2},{0,0,0,15,0,8,-1,1,2},{0,0,0,15,0,8,-1,1,2},{0,0,0,15,0,8,-1,1,2},{0,0,0,15,0,8,-1,1,2},{0,0,0,15,0,8,-1,1,2},{0,0,0,15,0,8,-1,1,2},{0,0,0,15,0,8,-1,1,2}}, - {{0,0,0,15,0,8,-1,1,2},{0,0,0,15,0,8,-1,1,2},{0,0,0,15,0,8,-1,1,2},{0,0,0,15,0,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2}}, - {{14,0,0,14,10,4,-1,1,2},{14,0,0,14,10,4,-1,1,2},{14,0,0,14,10,4,-1,1,2},{14,0,0,14,10,4,-1,1,2},{14,0,0,14,10,4,-1,1,2},{14,0,0,14,10,4,-1,1,2},{14,0,0,14,10,4,-1,1,2},{14,0,0,14,10,4,-1,1,2},{14,0,0,14,10,4,-1,1,2},{14,0,0,14,10,4,-1,1,2},{14,0,0,14,10,4,-1,1,2},{14,0,0,14,10,4,-1,1,2},{14,0,0,14,10,4,-1,1,2},{14,0,0,14,10,4,-1,1,2},{14,0,0,14,10,4,-1,1,2},{14,0,0,14,10,4,-1,1,2}}, - {{14,0,0,14,10,4,-1,1,2},{14,0,0,14,10,4,-1,1,2},{14,0,0,14,10,4,-1,1,2},{14,0,0,14,10,4,-1,1,2},{14,0,0,14,10,4,-1,1,2},{14,0,0,15,10,8,-1,1,2},{14,0,0,15,10,8,-1,1,2},{14,0,0,15,10,8,-1,1,2},{14,0,0,15,10,8,-1,1,2},{14,0,0,26,10,8,-1,1,2},{14,0,0,26,10,8,-1,1,2},{14,0,0,26,10,8,-1,1,2},{14,0,0,26,10,8,-1,1,2},{14,0,0,26,10,8,-1,1,2},{14,0,0,26,10,8,-1,1,2},{14,0,0,26,10,8,-1,1,2}}, - {{14,0,0,26,10,8,-1,1,2},{14,0,0,26,10,8,-1,1,2},{14,0,0,26,10,8,-1,1,2},{14,0,0,26,10,8,-1,1,2},{14,0,0,26,10,8,-1,1,2},{14,0,0,26,10,8,-1,1,2},{14,0,0,26,10,8,-1,1,2},{14,0,0,26,10,8,-1,1,2},{14,0,0,26,10,8,-1,1,2},{14,0,0,26,10,8,-1,1,2},{14,0,0,15,10,8,-1,1,2},{14,0,0,15,10,8,-1,1,2},{14,0,0,26,10,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{14,0,0,26,10,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{0,0,0,26,0,8,-1,1,2},{1,0,0,12,17,7,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{107,0,0,7,0,7,-1,1,2},{107,0,0,7,0,7,-1,1,2},{107,0,0,7,0,7,-1,1,2},{107,0,0,7,0,7,-1,1,2},{107,0,0,7,0,7,-1,1,2},{107,0,0,7,0,7,-1,1,2},{107,0,0,7,0,7,-1,1,2},{107,0,0,7,0,7,-1,1,2},{107,0,0,7,0,7,-1,1,2},{107,0,0,7,0,7,-1,1,2},{107,0,0,7,0,7,-1,1,2},{107,0,0,7,0,7,-1,1,2},{107,0,0,7,0,7,-1,1,2},{107,0,0,7,0,7,-1,1,2},{107,0,0,7,0,7,-1,1,2},{107,0,0,7,0,7,-1,1,2}}, - {{107,0,0,7,0,7,-1,1,2},{107,0,0,7,0,7,-1,1,2},{107,0,0,7,0,7,-1,1,2},{107,0,0,7,0,7,-1,1,2},{107,0,0,7,0,7,-1,1,2},{107,0,0,7,0,7,-1,1,2},{107,0,0,7,0,7,-1,1,2},{107,0,0,7,0,7,-1,1,2},{107,0,0,7,0,7,-1,1,2},{107,0,0,7,0,7,-1,1,2},{107,0,0,7,0,7,-1,1,2},{107,0,0,7,0,7,-1,1,2},{107,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{104,0,0,7,0,7,-1,1,2},{104,0,0,7,0,7,-1,1,2},{104,0,0,7,0,7,-1,1,2},{104,0,0,7,0,7,-1,1,2},{104,0,0,7,0,7,-1,1,2},{104,0,0,7,0,7,-1,1,2},{104,0,0,7,0,7,-1,1,2},{104,0,0,7,0,7,-1,1,2},{104,0,0,7,0,7,-1,1,2},{104,0,0,7,0,7,-1,1,2},{104,0,0,7,0,7,-1,1,2},{104,0,0,7,0,7,-1,1,2},{104,0,0,7,0,7,-1,1,2},{104,0,0,7,0,7,-1,1,2},{104,0,0,7,0,7,-1,1,2},{104,0,0,7,0,7,-1,1,2}}, - {{104,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{1,0,0,12,17,4,-1,1,9},{0,0,0,15,2,8,-1,1,2},{0,0,0,15,2,8,-1,1,2},{0,0,0,15,2,8,-1,1,2},{0,0,0,15,2,8,-1,1,2},{0,0,0,15,2,8,-1,1,2},{0,0,0,15,2,8,-1,1,2},{0,0,0,15,2,8,-1,1,2},{0,0,0,15,2,8,-1,1,2},{0,0,0,15,2,8,-1,1,2},{0,0,0,15,2,8,-1,1,2},{0,0,0,15,2,8,-1,1,2},{0,0,0,15,2,8,-1,1,2},{0,0,0,15,2,8,-1,1,2},{0,0,0,15,2,8,-1,1,2},{0,0,0,15,2,8,-1,1,2}}, - {{0,0,0,15,2,8,-1,1,2},{0,0,0,15,2,8,-1,1,2},{0,0,0,15,2,8,-1,1,2},{0,0,0,15,2,8,-1,1,2},{0,0,0,15,2,8,-1,1,2},{0,0,0,15,2,8,-1,1,2},{0,0,0,15,2,8,-1,1,2},{0,0,0,15,2,8,-1,1,2},{0,0,0,15,2,8,-1,1,2},{0,0,0,15,2,8,-1,1,2},{0,0,0,15,2,8,-1,1,2},{0,0,0,15,2,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{30,0,0,7,0,7,-1,1,2},{30,0,0,7,0,7,-1,1,2},{30,0,0,7,0,7,-1,1,2},{30,0,0,7,0,7,-1,1,2},{30,0,0,7,0,7,-1,1,2},{30,0,0,7,0,7,-1,1,2},{30,0,0,7,0,7,-1,1,2},{30,0,0,7,0,7,-1,1,2},{30,0,0,7,0,7,-1,1,2},{30,0,0,7,0,7,-1,1,2},{30,0,0,7,0,7,-1,1,2},{30,0,0,7,0,7,-1,1,2},{30,0,0,7,0,7,-1,1,2},{30,0,0,7,0,7,-1,1,2},{30,0,0,7,0,7,-1,1,2},{30,0,0,7,0,7,-1,1,2}}, - {{30,0,0,15,0,8,-1,1,2},{30,0,0,15,0,8,-1,1,2},{30,0,0,15,0,8,-1,1,2},{30,0,0,15,0,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{13,0,0,7,0,7,-1,1,2},{13,0,0,7,0,7,-1,1,2},{13,0,0,7,0,7,-1,1,2},{13,0,0,7,0,7,-1,1,2},{13,0,0,7,0,7,-1,1,2},{13,0,0,7,0,7,-1,1,2},{13,0,0,7,0,7,-1,1,2},{13,0,0,7,0,7,-1,1,2},{13,0,0,7,0,7,-1,1,2},{13,0,0,7,0,7,-1,1,2},{13,0,0,7,0,7,-1,1,2},{13,0,0,7,0,7,-1,1,2},{13,0,0,7,0,7,-1,1,2},{13,0,0,7,0,7,-1,1,2},{13,0,0,7,0,7,-1,1,2},{13,0,0,7,0,7,-1,1,2}}, - {{13,0,0,7,0,7,-1,1,2},{13,0,0,14,0,7,-1,1,2},{13,0,0,7,0,7,-1,1,2},{13,0,0,7,0,7,-1,1,2},{13,0,0,7,0,7,-1,1,2},{13,0,0,7,0,7,-1,1,2},{13,0,0,7,0,7,-1,1,2},{13,0,0,7,0,7,-1,1,2},{13,0,0,7,0,7,-1,1,2},{13,0,0,7,0,7,-1,1,2},{13,0,0,14,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{89,0,0,7,0,7,-1,1,2},{89,0,0,7,0,7,-1,1,2},{89,0,0,7,0,7,-1,1,2},{89,0,0,7,0,7,-1,1,2},{89,0,0,7,0,7,-1,1,2},{89,0,0,7,0,7,-1,1,2},{89,0,0,7,0,7,-1,1,2},{89,0,0,7,0,7,-1,1,2},{89,0,0,7,0,7,-1,1,2},{89,0,0,7,0,7,-1,1,2},{89,0,0,7,0,7,-1,1,2},{89,0,0,7,0,7,-1,1,2},{89,0,0,7,0,7,-1,1,2},{89,0,0,7,0,7,-1,1,2},{89,0,0,7,0,7,-1,1,2},{89,0,0,7,0,7,-1,1,2}}, - {{89,0,0,7,0,7,-1,1,2},{89,0,0,7,0,7,-1,1,2},{89,0,0,7,0,7,-1,1,2},{89,0,0,7,0,7,-1,1,2},{89,0,0,7,0,7,-1,1,2},{89,0,0,7,0,7,-1,1,2},{89,0,0,12,17,7,-1,1,9},{89,0,0,12,17,7,-1,1,9},{89,0,0,12,17,7,-1,1,9},{89,0,0,12,17,7,-1,1,9},{89,0,0,12,17,7,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{53,0,0,7,0,7,-1,1,2},{53,0,0,7,0,7,-1,1,2},{53,0,0,7,0,7,-1,1,2},{53,0,0,7,0,7,-1,1,2},{53,0,0,7,0,7,-1,1,2},{53,0,0,7,0,7,-1,1,2},{53,0,0,7,0,7,-1,1,2},{53,0,0,7,0,7,-1,1,2},{53,0,0,7,0,7,-1,1,2},{53,0,0,7,0,7,-1,1,2},{53,0,0,7,0,7,-1,1,2},{53,0,0,7,0,7,-1,1,2},{53,0,0,7,0,7,-1,1,2},{53,0,0,7,0,7,-1,1,2},{53,0,0,7,0,7,-1,1,2},{53,0,0,7,0,7,-1,1,2}}, - {{53,0,0,7,0,7,-1,1,2},{53,0,0,7,0,7,-1,1,2},{53,0,0,7,0,7,-1,1,2},{53,0,0,7,0,7,-1,1,2},{53,0,0,7,0,7,-1,1,2},{53,0,0,7,0,7,-1,1,2},{53,0,0,7,0,7,-1,1,2},{53,0,0,7,0,7,-1,1,2},{53,0,0,7,0,7,-1,1,2},{53,0,0,7,0,7,-1,1,2},{53,0,0,7,0,7,-1,1,2},{53,0,0,7,0,7,-1,1,2},{53,0,0,7,0,7,-1,1,2},{53,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{53,0,0,21,0,8,-1,1,4}}, - {{61,0,0,7,0,7,-1,1,2},{61,0,0,7,0,7,-1,1,2},{61,0,0,7,0,7,-1,1,2},{61,0,0,7,0,7,-1,1,2},{61,0,0,7,0,7,-1,1,2},{61,0,0,7,0,7,-1,1,2},{61,0,0,7,0,7,-1,1,2},{61,0,0,7,0,7,-1,1,2},{61,0,0,7,0,7,-1,1,2},{61,0,0,7,0,7,-1,1,2},{61,0,0,7,0,7,-1,1,2},{61,0,0,7,0,7,-1,1,2},{61,0,0,7,0,7,-1,1,2},{61,0,0,7,0,7,-1,1,2},{61,0,0,7,0,7,-1,1,2},{61,0,0,7,0,7,-1,1,2}}, - {{61,0,0,7,0,7,-1,1,2},{61,0,0,7,0,7,-1,1,2},{61,0,0,7,0,7,-1,1,2},{61,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{61,0,0,7,0,7,-1,1,2},{61,0,0,7,0,7,-1,1,2},{61,0,0,7,0,7,-1,1,2},{61,0,0,7,0,7,-1,1,2},{61,0,0,7,0,7,-1,1,2},{61,0,0,7,0,7,-1,1,2},{61,0,0,7,0,7,-1,1,2},{61,0,0,7,0,7,-1,1,2}}, - {{61,0,0,21,0,8,-1,1,4},{61,0,0,14,0,7,-1,1,2},{61,0,0,14,0,7,-1,1,2},{61,0,0,14,0,7,-1,1,2},{61,0,0,14,0,7,-1,1,2},{61,0,0,14,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{9,0,0,9,0,7,-1,1,2},{9,0,0,9,0,7,-1,1,2},{9,0,0,9,0,7,-1,1,2},{9,0,0,9,0,7,-1,1,2},{9,0,0,9,0,7,-1,1,2},{9,0,0,9,0,7,-1,1,2},{9,0,0,9,0,7,-1,1,2},{9,0,0,9,0,7,-1,1,2},{9,0,0,9,0,7,-1,1,2},{9,0,0,9,0,7,-1,1,2},{9,0,0,9,0,7,-1,1,2},{9,0,0,9,0,7,-1,1,2},{9,0,0,9,0,7,-1,1,2},{9,0,0,9,0,7,-1,1,2},{9,0,0,9,0,7,-1,1,2},{9,0,0,9,0,7,-1,1,2}}, - {{9,0,0,9,0,7,-1,1,2},{9,0,0,9,0,7,-1,1,2},{9,0,0,9,0,7,-1,1,2},{9,0,0,9,0,7,-1,1,2},{9,0,0,9,0,7,-1,1,2},{9,0,0,9,0,7,-1,1,2},{9,0,0,9,0,7,-1,1,2},{9,0,0,9,0,7,-1,1,2},{9,0,0,5,0,7,-1,1,2},{9,0,0,5,0,7,-1,1,2},{9,0,0,5,0,7,-1,1,2},{9,0,0,5,0,7,-1,1,2},{9,0,0,5,0,7,-1,1,2},{9,0,0,5,0,7,-1,1,2},{9,0,0,5,0,7,-1,1,2},{9,0,0,5,0,7,-1,1,2}}, - {{9,0,0,5,0,7,-1,1,2},{9,0,0,5,0,7,-1,1,2},{9,0,0,5,0,7,-1,1,2},{9,0,0,5,0,7,-1,1,2},{9,0,0,5,0,7,-1,1,2},{9,0,0,5,0,7,-1,1,2},{9,0,0,5,0,7,-1,1,2},{9,0,0,5,0,7,-1,1,2},{9,0,0,5,0,7,-1,1,2},{9,0,0,5,0,7,-1,1,2},{9,0,0,5,0,7,-1,1,2},{9,0,0,5,0,7,-1,1,2},{9,0,0,5,0,7,-1,1,2},{9,0,0,5,0,7,-1,1,2},{9,0,0,5,0,7,-1,1,2},{9,0,0,5,0,7,-1,1,2}}, - {{51,0,0,7,0,7,-1,1,2},{51,0,0,7,0,7,-1,1,2},{51,0,0,7,0,7,-1,1,2},{51,0,0,7,0,7,-1,1,2},{51,0,0,7,0,7,-1,1,2},{51,0,0,7,0,7,-1,1,2},{51,0,0,7,0,7,-1,1,2},{51,0,0,7,0,7,-1,1,2},{51,0,0,7,0,7,-1,1,2},{51,0,0,7,0,7,-1,1,2},{51,0,0,7,0,7,-1,1,2},{51,0,0,7,0,7,-1,1,2},{51,0,0,7,0,7,-1,1,2},{51,0,0,7,0,7,-1,1,2},{51,0,0,7,0,7,-1,1,2},{51,0,0,7,0,7,-1,1,2}}, - {{50,0,0,7,0,7,-1,1,2},{50,0,0,7,0,7,-1,1,2},{50,0,0,7,0,7,-1,1,2},{50,0,0,7,0,7,-1,1,2},{50,0,0,7,0,7,-1,1,2},{50,0,0,7,0,7,-1,1,2},{50,0,0,7,0,7,-1,1,2},{50,0,0,7,0,7,-1,1,2},{50,0,0,7,0,7,-1,1,2},{50,0,0,7,0,7,-1,1,2},{50,0,0,7,0,7,-1,1,2},{50,0,0,7,0,7,-1,1,2},{50,0,0,7,0,7,-1,1,2},{50,0,0,7,0,7,-1,1,2},{50,0,0,7,0,7,-1,1,2},{50,0,0,7,0,7,-1,1,2}}, - {{50,0,0,7,0,7,-1,1,2},{50,0,0,7,0,7,-1,1,2},{50,0,0,7,0,7,-1,1,2},{50,0,0,7,0,7,-1,1,2},{50,0,0,7,0,7,-1,1,2},{50,0,0,7,0,7,-1,1,2},{50,0,0,7,0,7,-1,1,2},{50,0,0,7,0,7,-1,1,2},{50,0,0,7,0,7,-1,1,2},{50,0,0,7,0,7,-1,1,2},{50,0,0,7,0,7,-1,1,2},{50,0,0,7,0,7,-1,1,2},{50,0,0,7,0,7,-1,1,2},{50,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{50,0,0,13,0,7,0,1,19},{50,0,0,13,0,7,1,1,19},{50,0,0,13,0,7,2,1,19},{50,0,0,13,0,7,3,1,19},{50,0,0,13,0,7,4,1,19},{50,0,0,13,0,7,5,1,19},{50,0,0,13,0,7,6,1,19},{50,0,0,13,0,7,7,1,19},{50,0,0,13,0,7,8,1,19},{50,0,0,13,0,7,9,1,19},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{136,0,0,7,0,7,-1,1,2},{136,0,0,7,0,7,-1,1,2},{136,0,0,7,0,7,-1,1,2},{136,0,0,7,0,7,-1,1,2},{136,0,0,7,0,7,-1,1,2},{136,0,0,7,0,7,-1,1,2},{136,0,0,7,0,7,-1,1,2},{136,0,0,7,0,7,-1,1,2},{136,0,0,7,0,7,-1,1,2},{136,0,0,7,0,7,-1,1,2},{136,0,0,7,0,7,-1,1,2},{136,0,0,7,0,7,-1,1,2},{136,0,0,7,0,7,-1,1,2},{136,0,0,7,0,7,-1,1,2},{136,0,0,7,0,7,-1,1,2},{136,0,0,7,0,7,-1,1,2}}, - {{136,0,0,7,0,7,-1,1,2},{136,0,0,7,0,7,-1,1,2},{136,0,0,7,0,7,-1,1,2},{136,0,0,7,0,7,-1,1,2},{136,0,0,7,0,7,-1,1,2},{136,0,0,7,0,7,-1,1,2},{136,0,0,7,0,7,-1,1,2},{136,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{159,0,0,7,0,7,-1,1,2},{159,0,0,7,0,7,-1,1,2},{159,0,0,7,0,7,-1,1,2},{159,0,0,7,0,7,-1,1,2},{159,0,0,7,0,7,-1,1,2},{159,0,0,7,0,7,-1,1,2},{159,0,0,7,0,7,-1,1,2},{159,0,0,7,0,7,-1,1,2},{159,0,0,7,0,7,-1,1,2},{159,0,0,7,0,7,-1,1,2},{159,0,0,7,0,7,-1,1,2},{159,0,0,7,0,7,-1,1,2},{159,0,0,7,0,7,-1,1,2},{159,0,0,7,0,7,-1,1,2},{159,0,0,7,0,7,-1,1,2},{159,0,0,7,0,7,-1,1,2}}, - {{159,0,0,7,0,7,-1,1,2},{159,0,0,7,0,7,-1,1,2},{159,0,0,7,0,7,-1,1,2},{159,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{159,0,0,21,0,8,-1,1,2}}, - {{83,0,0,7,0,7,-1,1,2},{83,0,0,7,0,7,-1,1,2},{83,0,0,7,0,7,-1,1,2},{83,0,0,7,0,7,-1,1,2},{83,0,0,7,0,7,-1,1,2},{83,0,0,7,0,7,-1,1,2},{83,0,0,7,0,7,-1,1,2},{83,0,0,7,0,7,-1,1,2},{83,0,0,7,0,7,-1,1,2},{83,0,0,7,0,7,-1,1,2},{83,0,0,7,0,7,-1,1,2},{83,0,0,7,0,7,-1,1,2},{83,0,0,7,0,7,-1,1,2},{83,0,0,7,0,7,-1,1,2},{83,0,0,7,0,7,-1,1,2},{83,0,0,7,0,7,-1,1,2}}, - {{83,0,0,7,0,7,-1,1,2},{83,0,0,7,0,7,-1,1,2},{83,0,0,7,0,7,-1,1,2},{83,0,0,7,0,7,-1,1,2},{83,0,0,7,0,7,-1,1,2},{83,0,0,7,0,7,-1,1,2},{83,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{83,0,0,7,0,7,-1,1,2},{83,0,0,7,0,7,-1,1,2},{83,0,0,7,0,7,-1,1,2},{83,0,0,7,0,7,-1,1,2},{83,0,0,7,0,7,-1,1,2},{83,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{83,0,0,7,0,7,-1,1,2},{83,0,0,7,0,7,-1,1,2},{83,0,0,7,0,7,-1,1,2},{83,0,0,7,0,7,-1,1,2},{83,0,0,7,0,7,-1,1,2},{83,0,0,7,0,7,-1,1,2},{83,0,0,7,0,7,-1,1,2},{83,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{47,0,0,7,1,7,-1,1,2},{47,0,0,7,1,7,-1,1,2},{47,0,0,7,1,7,-1,1,2},{47,0,0,7,1,7,-1,1,2},{47,0,0,7,1,7,-1,1,2},{47,0,0,7,1,7,-1,1,2},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{47,0,0,7,1,7,-1,1,2},{103,0,0,2,1,12,-1,1,0},{47,0,0,7,1,7,-1,1,2},{47,0,0,7,1,7,-1,1,2},{47,0,0,7,1,7,-1,1,2},{47,0,0,7,1,7,-1,1,2},{47,0,0,7,1,7,-1,1,2},{47,0,0,7,1,7,-1,1,2}}, - {{47,0,0,7,1,7,-1,1,2},{47,0,0,7,1,7,-1,1,2},{47,0,0,7,1,7,-1,1,2},{47,0,0,7,1,7,-1,1,2},{47,0,0,7,1,7,-1,1,2},{47,0,0,7,1,7,-1,1,2},{47,0,0,7,1,7,-1,1,2},{47,0,0,7,1,7,-1,1,2},{47,0,0,7,1,7,-1,1,2},{47,0,0,7,1,7,-1,1,2},{47,0,0,7,1,7,-1,1,2},{47,0,0,7,1,7,-1,1,2},{47,0,0,7,1,7,-1,1,2},{47,0,0,7,1,7,-1,1,2},{47,0,0,7,1,7,-1,1,2},{47,0,0,7,1,7,-1,1,2}}, - {{47,0,0,7,1,7,-1,1,2},{47,0,0,7,1,7,-1,1,2},{47,0,0,7,1,7,-1,1,2},{47,0,0,7,1,7,-1,1,2},{47,0,0,7,1,7,-1,1,2},{47,0,0,7,1,7,-1,1,2},{103,0,0,2,1,12,-1,1,0},{47,0,0,7,1,7,-1,1,2},{47,0,0,7,1,7,-1,1,2},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{47,0,0,7,1,7,-1,1,2},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{47,0,0,7,1,7,-1,1,2}}, - {{116,0,0,7,1,7,-1,1,2},{116,0,0,7,1,7,-1,1,2},{116,0,0,7,1,7,-1,1,2},{116,0,0,7,1,7,-1,1,2},{116,0,0,7,1,7,-1,1,2},{116,0,0,7,1,7,-1,1,2},{116,0,0,7,1,7,-1,1,2},{116,0,0,7,1,7,-1,1,2},{116,0,0,7,1,7,-1,1,2},{116,0,0,7,1,7,-1,1,2},{116,0,0,7,1,7,-1,1,2},{116,0,0,7,1,7,-1,1,2},{116,0,0,7,1,7,-1,1,2},{116,0,0,7,1,7,-1,1,2},{116,0,0,7,1,7,-1,1,2},{116,0,0,7,1,7,-1,1,2}}, - {{116,0,0,7,1,7,-1,1,2},{116,0,0,7,1,7,-1,1,2},{116,0,0,7,1,7,-1,1,2},{116,0,0,7,1,7,-1,1,2},{116,0,0,7,1,7,-1,1,2},{116,0,0,7,1,7,-1,1,2},{103,0,0,2,1,12,-1,1,0},{116,0,0,21,1,8,-1,1,4},{116,0,0,15,1,8,-1,1,2},{116,0,0,15,1,8,-1,1,2},{116,0,0,15,1,8,-1,1,2},{116,0,0,15,1,8,-1,1,2},{116,0,0,15,1,8,-1,1,2},{116,0,0,15,1,8,-1,1,2},{116,0,0,15,1,8,-1,1,2},{116,0,0,15,1,8,-1,1,2}}, - {{144,0,0,7,1,7,-1,1,2},{144,0,0,7,1,7,-1,1,2},{144,0,0,7,1,7,-1,1,2},{144,0,0,7,1,7,-1,1,2},{144,0,0,7,1,7,-1,1,2},{144,0,0,7,1,7,-1,1,2},{144,0,0,7,1,7,-1,1,2},{144,0,0,7,1,7,-1,1,2},{144,0,0,7,1,7,-1,1,2},{144,0,0,7,1,7,-1,1,2},{144,0,0,7,1,7,-1,1,2},{144,0,0,7,1,7,-1,1,2},{144,0,0,7,1,7,-1,1,2},{144,0,0,7,1,7,-1,1,2},{144,0,0,7,1,7,-1,1,2},{144,0,0,7,1,7,-1,1,2}}, - {{144,0,0,7,1,7,-1,1,2},{144,0,0,7,1,7,-1,1,2},{144,0,0,7,1,7,-1,1,2},{144,0,0,7,1,7,-1,1,2},{144,0,0,7,1,7,-1,1,2},{144,0,0,7,1,7,-1,1,2},{144,0,0,7,1,7,-1,1,2},{144,0,0,26,1,8,-1,1,2},{144,0,0,26,1,8,-1,1,2},{144,0,0,15,1,8,-1,1,2},{144,0,0,15,1,8,-1,1,2},{144,0,0,15,1,8,-1,1,2},{144,0,0,15,1,8,-1,1,2},{144,0,0,15,1,8,-1,1,2},{144,0,0,15,1,8,-1,1,2},{144,0,0,15,1,8,-1,1,2}}, - {{143,0,0,7,1,7,-1,1,2},{143,0,0,7,1,7,-1,1,2},{143,0,0,7,1,7,-1,1,2},{143,0,0,7,1,7,-1,1,2},{143,0,0,7,1,7,-1,1,2},{143,0,0,7,1,7,-1,1,2},{143,0,0,7,1,7,-1,1,2},{143,0,0,7,1,7,-1,1,2},{143,0,0,7,1,7,-1,1,2},{143,0,0,7,1,7,-1,1,2},{143,0,0,7,1,7,-1,1,2},{143,0,0,7,1,7,-1,1,2},{143,0,0,7,1,7,-1,1,2},{143,0,0,7,1,7,-1,1,2},{143,0,0,7,1,7,-1,1,2},{143,0,0,7,1,7,-1,1,2}}, - {{143,0,0,7,1,7,-1,1,2},{143,0,0,7,1,7,-1,1,2},{143,0,0,7,1,7,-1,1,2},{143,0,0,7,1,7,-1,1,2},{143,0,0,7,1,7,-1,1,2},{143,0,0,7,1,7,-1,1,2},{143,0,0,7,1,7,-1,1,2},{143,0,0,7,1,7,-1,1,2},{143,0,0,7,1,7,-1,1,2},{143,0,0,7,1,7,-1,1,2},{143,0,0,7,1,7,-1,1,2},{143,0,0,7,1,7,-1,1,2},{143,0,0,7,1,7,-1,1,2},{143,0,0,7,1,7,-1,1,2},{143,0,0,7,1,7,-1,1,2},{103,0,0,2,1,12,-1,1,0}}, - {{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{143,0,0,15,1,8,-1,1,2},{143,0,0,15,1,8,-1,1,2},{143,0,0,15,1,8,-1,1,2},{143,0,0,15,1,8,-1,1,2},{143,0,0,15,1,8,-1,1,2},{143,0,0,15,1,8,-1,1,2},{143,0,0,15,1,8,-1,1,2},{143,0,0,15,1,8,-1,1,2},{143,0,0,15,1,8,-1,1,2}}, - {{162,0,0,7,1,7,-1,1,2},{162,0,0,7,1,7,-1,1,2},{162,0,0,7,1,7,-1,1,2},{162,0,0,7,1,7,-1,1,2},{162,0,0,7,1,7,-1,1,2},{162,0,0,7,1,7,-1,1,2},{162,0,0,7,1,7,-1,1,2},{162,0,0,7,1,7,-1,1,2},{162,0,0,7,1,7,-1,1,2},{162,0,0,7,1,7,-1,1,2},{162,0,0,7,1,7,-1,1,2},{162,0,0,7,1,7,-1,1,2},{162,0,0,7,1,7,-1,1,2},{162,0,0,7,1,7,-1,1,2},{162,0,0,7,1,7,-1,1,2},{162,0,0,7,1,7,-1,1,2}}, - {{162,0,0,7,1,7,-1,1,2},{162,0,0,7,1,7,-1,1,2},{162,0,0,7,1,7,-1,1,2},{103,0,0,2,1,12,-1,1,0},{162,0,0,7,1,7,-1,1,2},{162,0,0,7,1,7,-1,1,2},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{162,0,0,15,1,8,-1,1,2},{162,0,0,15,1,8,-1,1,2},{162,0,0,15,1,8,-1,1,2},{162,0,0,15,1,8,-1,1,2},{162,0,0,15,1,8,-1,1,2}}, - {{91,0,0,7,1,7,-1,1,2},{91,0,0,7,1,7,-1,1,2},{91,0,0,7,1,7,-1,1,2},{91,0,0,7,1,7,-1,1,2},{91,0,0,7,1,7,-1,1,2},{91,0,0,7,1,7,-1,1,2},{91,0,0,7,1,7,-1,1,2},{91,0,0,7,1,7,-1,1,2},{91,0,0,7,1,7,-1,1,2},{91,0,0,7,1,7,-1,1,2},{91,0,0,7,1,7,-1,1,2},{91,0,0,7,1,7,-1,1,2},{91,0,0,7,1,7,-1,1,2},{91,0,0,7,1,7,-1,1,2},{91,0,0,7,1,7,-1,1,2},{91,0,0,7,1,7,-1,1,2}}, - {{91,0,0,7,1,7,-1,1,2},{91,0,0,7,1,7,-1,1,2},{91,0,0,7,1,7,-1,1,2},{91,0,0,7,1,7,-1,1,2},{91,0,0,7,1,7,-1,1,2},{91,0,0,7,1,7,-1,1,2},{91,0,0,15,1,8,-1,1,2},{91,0,0,15,1,8,-1,1,2},{91,0,0,15,1,8,-1,1,2},{91,0,0,15,1,8,-1,1,2},{91,0,0,15,1,8,-1,1,2},{91,0,0,15,1,8,-1,1,2},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{91,0,0,21,10,8,-1,1,4}}, - {{108,0,0,7,1,7,-1,1,2},{108,0,0,7,1,7,-1,1,2},{108,0,0,7,1,7,-1,1,2},{108,0,0,7,1,7,-1,1,2},{108,0,0,7,1,7,-1,1,2},{108,0,0,7,1,7,-1,1,2},{108,0,0,7,1,7,-1,1,2},{108,0,0,7,1,7,-1,1,2},{108,0,0,7,1,7,-1,1,2},{108,0,0,7,1,7,-1,1,2},{108,0,0,7,1,7,-1,1,2},{108,0,0,7,1,7,-1,1,2},{108,0,0,7,1,7,-1,1,2},{108,0,0,7,1,7,-1,1,2},{108,0,0,7,1,7,-1,1,2},{108,0,0,7,1,7,-1,1,2}}, - {{108,0,0,7,1,7,-1,1,2},{108,0,0,7,1,7,-1,1,2},{108,0,0,7,1,7,-1,1,2},{108,0,0,7,1,7,-1,1,2},{108,0,0,7,1,7,-1,1,2},{108,0,0,7,1,7,-1,1,2},{108,0,0,7,1,7,-1,1,2},{108,0,0,7,1,7,-1,1,2},{108,0,0,7,1,7,-1,1,2},{108,0,0,7,1,7,-1,1,2},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{108,0,0,21,1,8,-1,1,2}}, - {{86,0,0,7,1,7,-1,0,2},{86,0,0,7,1,7,-1,0,2},{86,0,0,7,1,7,-1,0,2},{86,0,0,7,1,7,-1,0,2},{86,0,0,7,1,7,-1,0,2},{86,0,0,7,1,7,-1,0,2},{86,0,0,7,1,7,-1,0,2},{86,0,0,7,1,7,-1,0,2},{86,0,0,7,1,7,-1,0,2},{86,0,0,7,1,7,-1,0,2},{86,0,0,7,1,7,-1,0,2},{86,0,0,7,1,7,-1,0,2},{86,0,0,7,1,7,-1,0,2},{86,0,0,7,1,7,-1,0,2},{86,0,0,7,1,7,-1,0,2},{86,0,0,7,1,7,-1,0,2}}, - {{141,0,0,7,1,7,-1,1,2},{141,0,0,7,1,7,-1,1,2},{141,0,0,7,1,7,-1,1,2},{141,0,0,7,1,7,-1,1,2},{141,0,0,7,1,7,-1,1,2},{141,0,0,7,1,7,-1,1,2},{141,0,0,7,1,7,-1,1,2},{141,0,0,7,1,7,-1,1,2},{141,0,0,7,1,7,-1,1,2},{141,0,0,7,1,7,-1,1,2},{141,0,0,7,1,7,-1,1,2},{141,0,0,7,1,7,-1,1,2},{141,0,0,7,1,7,-1,1,2},{141,0,0,7,1,7,-1,1,2},{141,0,0,7,1,7,-1,1,2},{141,0,0,7,1,7,-1,1,2}}, - {{141,0,0,7,1,7,-1,1,2},{141,0,0,7,1,7,-1,1,2},{141,0,0,7,1,7,-1,1,2},{141,0,0,7,1,7,-1,1,2},{141,0,0,7,1,7,-1,1,2},{141,0,0,7,1,7,-1,1,2},{141,0,0,7,1,7,-1,1,2},{141,0,0,7,1,7,-1,1,2},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{141,0,0,15,1,8,-1,1,2},{141,0,0,15,1,8,-1,1,2},{141,0,0,7,1,7,-1,1,2},{141,0,0,7,1,7,-1,1,2}}, - {{141,0,0,15,1,8,-1,1,2},{141,0,0,15,1,8,-1,1,2},{141,0,0,15,1,8,-1,1,2},{141,0,0,15,1,8,-1,1,2},{141,0,0,15,1,8,-1,1,2},{141,0,0,15,1,8,-1,1,2},{141,0,0,15,1,8,-1,1,2},{141,0,0,15,1,8,-1,1,2},{141,0,0,15,1,8,-1,1,2},{141,0,0,15,1,8,-1,1,2},{141,0,0,15,1,8,-1,1,2},{141,0,0,15,1,8,-1,1,2},{141,0,0,15,1,8,-1,1,2},{141,0,0,15,1,8,-1,1,2},{141,0,0,15,1,8,-1,1,2},{141,0,0,15,1,8,-1,1,2}}, - {{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{141,0,0,15,1,8,-1,1,2},{141,0,0,15,1,8,-1,1,2},{141,0,0,15,1,8,-1,1,2},{141,0,0,15,1,8,-1,1,2},{141,0,0,15,1,8,-1,1,2},{141,0,0,15,1,8,-1,1,2},{141,0,0,15,1,8,-1,1,2},{141,0,0,15,1,8,-1,1,2},{141,0,0,15,1,8,-1,1,2},{141,0,0,15,1,8,-1,1,2},{141,0,0,15,1,8,-1,1,2},{141,0,0,15,1,8,-1,1,2},{141,0,0,15,1,8,-1,1,2},{141,0,0,15,1,8,-1,1,2}}, - {{57,0,0,7,1,7,-1,1,2},{57,0,0,12,17,7,-1,1,9},{57,0,0,12,17,7,-1,1,9},{57,0,0,12,17,7,-1,1,9},{103,0,0,2,1,12,-1,1,0},{57,0,0,12,17,7,-1,1,9},{57,0,0,12,17,7,-1,1,9},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{57,0,0,12,17,7,-1,1,9},{57,0,0,12,17,7,-1,1,9},{57,0,0,12,17,7,-1,1,9},{57,0,0,12,17,7,-1,1,9}}, - {{57,0,0,7,1,7,-1,1,2},{57,0,0,7,1,7,-1,1,2},{57,0,0,7,1,7,-1,1,2},{57,0,0,7,1,7,-1,1,2},{103,0,0,2,1,12,-1,1,0},{57,0,0,7,1,7,-1,1,2},{57,0,0,7,1,7,-1,1,2},{57,0,0,7,1,7,-1,1,2},{103,0,0,2,1,12,-1,1,0},{57,0,0,7,1,7,-1,1,2},{57,0,0,7,1,7,-1,1,2},{57,0,0,7,1,7,-1,1,2},{57,0,0,7,1,7,-1,1,2},{57,0,0,7,1,7,-1,1,2},{57,0,0,7,1,7,-1,1,2},{57,0,0,7,1,7,-1,1,2}}, - {{57,0,0,7,1,7,-1,1,2},{57,0,0,7,1,7,-1,1,2},{57,0,0,7,1,7,-1,1,2},{57,0,0,7,1,7,-1,1,2},{57,0,0,7,1,7,-1,1,2},{57,0,0,7,1,7,-1,1,2},{57,0,0,7,1,7,-1,1,2},{57,0,0,7,1,7,-1,1,2},{57,0,0,7,1,7,-1,1,2},{57,0,0,7,1,7,-1,1,2},{57,0,0,7,1,7,-1,1,2},{57,0,0,7,1,7,-1,1,2},{57,0,0,7,1,7,-1,1,2},{57,0,0,7,1,7,-1,1,2},{57,0,0,7,1,7,-1,1,2},{57,0,0,7,1,7,-1,1,2}}, - {{57,0,0,7,1,7,-1,1,2},{57,0,0,7,1,7,-1,1,2},{57,0,0,7,1,7,-1,1,2},{57,0,0,7,1,7,-1,1,2},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{57,0,0,12,17,7,-1,1,9},{57,0,0,12,17,7,-1,1,9},{57,0,0,12,17,7,-1,1,9},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{57,0,0,12,17,7,-1,1,9}}, - {{57,0,0,15,1,8,1,1,2},{57,0,0,15,1,8,2,1,2},{57,0,0,15,1,8,3,1,2},{57,0,0,15,1,8,4,1,2},{57,0,0,15,1,8,-1,1,2},{57,0,0,15,1,8,-1,1,2},{57,0,0,15,1,8,-1,1,2},{57,0,0,15,1,8,-1,1,2},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0}}, - {{57,0,0,21,1,8,-1,1,4},{57,0,0,21,1,8,-1,1,4},{57,0,0,21,1,8,-1,1,4},{57,0,0,21,1,8,-1,1,4},{57,0,0,21,1,8,-1,1,4},{57,0,0,21,1,8,-1,1,4},{57,0,0,21,1,8,-1,1,4},{57,0,0,21,1,8,-1,1,4},{57,0,0,21,1,8,-1,1,2},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0}}, - {{133,0,0,7,1,7,-1,1,2},{133,0,0,7,1,7,-1,1,2},{133,0,0,7,1,7,-1,1,2},{133,0,0,7,1,7,-1,1,2},{133,0,0,7,1,7,-1,1,2},{133,0,0,7,1,7,-1,1,2},{133,0,0,7,1,7,-1,1,2},{133,0,0,7,1,7,-1,1,2},{133,0,0,7,1,7,-1,1,2},{133,0,0,7,1,7,-1,1,2},{133,0,0,7,1,7,-1,1,2},{133,0,0,7,1,7,-1,1,2},{133,0,0,7,1,7,-1,1,2},{133,0,0,7,1,7,-1,1,2},{133,0,0,7,1,7,-1,1,2},{133,0,0,7,1,7,-1,1,2}}, - {{133,0,0,7,1,7,-1,1,2},{133,0,0,7,1,7,-1,1,2},{133,0,0,7,1,7,-1,1,2},{133,0,0,7,1,7,-1,1,2},{133,0,0,7,1,7,-1,1,2},{133,0,0,7,1,7,-1,1,2},{133,0,0,7,1,7,-1,1,2},{133,0,0,7,1,7,-1,1,2},{133,0,0,7,1,7,-1,1,2},{133,0,0,7,1,7,-1,1,2},{133,0,0,7,1,7,-1,1,2},{133,0,0,7,1,7,-1,1,2},{133,0,0,7,1,7,-1,1,2},{133,0,0,15,1,8,-1,1,2},{133,0,0,15,1,8,-1,1,2},{133,0,0,21,1,8,-1,1,2}}, - {{142,0,0,7,1,7,-1,1,2},{142,0,0,7,1,7,-1,1,2},{142,0,0,7,1,7,-1,1,2},{142,0,0,7,1,7,-1,1,2},{142,0,0,7,1,7,-1,1,2},{142,0,0,7,1,7,-1,1,2},{142,0,0,7,1,7,-1,1,2},{142,0,0,7,1,7,-1,1,2},{142,0,0,7,1,7,-1,1,2},{142,0,0,7,1,7,-1,1,2},{142,0,0,7,1,7,-1,1,2},{142,0,0,7,1,7,-1,1,2},{142,0,0,7,1,7,-1,1,2},{142,0,0,7,1,7,-1,1,2},{142,0,0,7,1,7,-1,1,2},{142,0,0,7,1,7,-1,1,2}}, - {{142,0,0,7,1,7,-1,1,2},{142,0,0,7,1,7,-1,1,2},{142,0,0,7,1,7,-1,1,2},{142,0,0,7,1,7,-1,1,2},{142,0,0,7,1,7,-1,1,2},{142,0,0,7,1,7,-1,1,2},{142,0,0,7,1,7,-1,1,2},{142,0,0,7,1,7,-1,1,2},{142,0,0,7,1,7,-1,1,2},{142,0,0,7,1,7,-1,1,2},{142,0,0,7,1,7,-1,1,2},{142,0,0,7,1,7,-1,1,2},{142,0,0,7,1,7,-1,1,2},{142,0,0,15,1,8,-1,1,2},{142,0,0,15,1,8,-1,1,2},{142,0,0,15,1,8,-1,1,2}}, - {{121,0,0,7,1,7,-1,1,2},{121,0,0,7,1,7,-1,1,2},{121,0,0,7,1,7,-1,1,2},{121,0,0,7,1,7,-1,1,2},{121,0,0,7,1,7,-1,1,2},{121,0,0,7,1,7,-1,1,2},{121,0,0,7,1,7,-1,1,2},{121,0,0,7,1,7,-1,1,2},{121,0,0,26,1,8,-1,1,2},{121,0,0,7,1,7,-1,1,2},{121,0,0,7,1,7,-1,1,2},{121,0,0,7,1,7,-1,1,2},{121,0,0,7,1,7,-1,1,2},{121,0,0,7,1,7,-1,1,2},{121,0,0,7,1,7,-1,1,2},{121,0,0,7,1,7,-1,1,2}}, - {{121,0,0,7,1,7,-1,1,2},{121,0,0,7,1,7,-1,1,2},{121,0,0,7,1,7,-1,1,2},{121,0,0,7,1,7,-1,1,2},{121,0,0,7,1,7,-1,1,2},{121,0,0,7,1,7,-1,1,2},{121,0,0,7,1,7,-1,1,2},{121,0,0,7,1,7,-1,1,2},{121,0,0,7,1,7,-1,1,2},{121,0,0,7,1,7,-1,1,2},{121,0,0,7,1,7,-1,1,2},{121,0,0,7,1,7,-1,1,2},{121,0,0,7,1,7,-1,1,2},{121,0,0,7,1,7,-1,1,2},{121,0,0,7,1,7,-1,1,2},{121,0,0,7,1,7,-1,1,2}}, - {{121,0,0,7,1,7,-1,1,2},{121,0,0,7,1,7,-1,1,2},{121,0,0,7,1,7,-1,1,2},{121,0,0,7,1,7,-1,1,2},{121,0,0,7,1,7,-1,1,2},{121,0,0,12,17,7,-1,1,9},{121,0,0,12,17,7,-1,1,9},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{121,0,0,15,1,8,-1,1,2},{121,0,0,15,1,8,-1,1,2},{121,0,0,15,1,8,-1,1,2},{121,0,0,15,1,8,-1,1,2},{121,0,0,15,1,8,-1,1,2}}, - {{121,0,0,21,1,8,-1,1,4},{121,0,0,21,1,8,-1,1,4},{121,0,0,21,1,8,-1,1,4},{121,0,0,21,1,8,-1,1,4},{121,0,0,21,1,8,-1,1,4},{121,0,0,21,1,8,-1,1,4},{121,0,0,21,1,8,-1,1,15},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0}}, - {{117,0,0,7,1,7,-1,1,2},{117,0,0,7,1,7,-1,1,2},{117,0,0,7,1,7,-1,1,2},{117,0,0,7,1,7,-1,1,2},{117,0,0,7,1,7,-1,1,2},{117,0,0,7,1,7,-1,1,2},{117,0,0,7,1,7,-1,1,2},{117,0,0,7,1,7,-1,1,2},{117,0,0,7,1,7,-1,1,2},{117,0,0,7,1,7,-1,1,2},{117,0,0,7,1,7,-1,1,2},{117,0,0,7,1,7,-1,1,2},{117,0,0,7,1,7,-1,1,2},{117,0,0,7,1,7,-1,1,2},{117,0,0,7,1,7,-1,1,2},{117,0,0,7,1,7,-1,1,2}}, - {{117,0,0,7,1,7,-1,1,2},{117,0,0,7,1,7,-1,1,2},{117,0,0,7,1,7,-1,1,2},{117,0,0,7,1,7,-1,1,2},{117,0,0,7,1,7,-1,1,2},{117,0,0,7,1,7,-1,1,2},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{117,0,0,21,10,8,-1,1,4},{117,0,0,21,10,8,-1,1,4},{117,0,0,21,10,8,-1,1,4},{117,0,0,21,10,8,-1,1,4},{117,0,0,21,10,8,-1,1,4},{117,0,0,21,10,8,-1,1,4},{117,0,0,21,10,8,-1,1,4}}, - {{125,0,0,7,1,7,-1,1,2},{125,0,0,7,1,7,-1,1,2},{125,0,0,7,1,7,-1,1,2},{125,0,0,7,1,7,-1,1,2},{125,0,0,7,1,7,-1,1,2},{125,0,0,7,1,7,-1,1,2},{125,0,0,7,1,7,-1,1,2},{125,0,0,7,1,7,-1,1,2},{125,0,0,7,1,7,-1,1,2},{125,0,0,7,1,7,-1,1,2},{125,0,0,7,1,7,-1,1,2},{125,0,0,7,1,7,-1,1,2},{125,0,0,7,1,7,-1,1,2},{125,0,0,7,1,7,-1,1,2},{125,0,0,7,1,7,-1,1,2},{125,0,0,7,1,7,-1,1,2}}, - {{125,0,0,7,1,7,-1,1,2},{125,0,0,7,1,7,-1,1,2},{125,0,0,7,1,7,-1,1,2},{125,0,0,7,1,7,-1,1,2},{125,0,0,7,1,7,-1,1,2},{125,0,0,7,1,7,-1,1,2},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{125,0,0,15,1,8,-1,1,2},{125,0,0,15,1,8,-1,1,2},{125,0,0,15,1,8,-1,1,2},{125,0,0,15,1,8,-1,1,2},{125,0,0,15,1,8,-1,1,2},{125,0,0,15,1,8,-1,1,2},{125,0,0,15,1,8,-1,1,2},{125,0,0,15,1,8,-1,1,2}}, - {{122,0,0,7,1,7,-1,1,2},{122,0,0,7,1,7,-1,1,2},{122,0,0,7,1,7,-1,1,2},{122,0,0,7,1,7,-1,1,2},{122,0,0,7,1,7,-1,1,2},{122,0,0,7,1,7,-1,1,2},{122,0,0,7,1,7,-1,1,2},{122,0,0,7,1,7,-1,1,2},{122,0,0,7,1,7,-1,1,2},{122,0,0,7,1,7,-1,1,2},{122,0,0,7,1,7,-1,1,2},{122,0,0,7,1,7,-1,1,2},{122,0,0,7,1,7,-1,1,2},{122,0,0,7,1,7,-1,1,2},{122,0,0,7,1,7,-1,1,2},{122,0,0,7,1,7,-1,1,2}}, - {{122,0,0,7,1,7,-1,1,2},{122,0,0,7,1,7,-1,1,2},{122,0,0,7,1,7,-1,1,2},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{122,0,0,15,1,8,-1,1,2},{122,0,0,15,1,8,-1,1,2},{122,0,0,15,1,8,-1,1,2},{122,0,0,15,1,8,-1,1,2},{122,0,0,15,1,8,-1,1,2},{122,0,0,15,1,8,-1,1,2},{122,0,0,15,1,8,-1,1,2},{122,0,0,15,1,8,-1,1,2}}, - {{123,0,0,7,1,7,-1,1,2},{123,0,0,7,1,7,-1,1,2},{123,0,0,7,1,7,-1,1,2},{123,0,0,7,1,7,-1,1,2},{123,0,0,7,1,7,-1,1,2},{123,0,0,7,1,7,-1,1,2},{123,0,0,7,1,7,-1,1,2},{123,0,0,7,1,7,-1,1,2},{123,0,0,7,1,7,-1,1,2},{123,0,0,7,1,7,-1,1,2},{123,0,0,7,1,7,-1,1,2},{123,0,0,7,1,7,-1,1,2},{123,0,0,7,1,7,-1,1,2},{123,0,0,7,1,7,-1,1,2},{123,0,0,7,1,7,-1,1,2},{123,0,0,7,1,7,-1,1,2}}, - {{123,0,0,7,1,7,-1,1,2},{123,0,0,7,1,7,-1,1,2},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{123,0,0,21,1,8,-1,1,2},{123,0,0,21,1,8,-1,1,2},{123,0,0,21,1,8,-1,1,2},{123,0,0,21,1,8,-1,1,2},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0}}, - {{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{123,0,0,15,1,8,-1,1,2},{123,0,0,15,1,8,-1,1,2},{123,0,0,15,1,8,-1,1,2},{123,0,0,15,1,8,-1,1,2},{123,0,0,15,1,8,-1,1,2},{123,0,0,15,1,8,-1,1,2},{123,0,0,15,1,8,-1,1,2}}, - {{88,0,0,7,1,7,-1,1,2},{88,0,0,7,1,7,-1,1,2},{88,0,0,7,1,7,-1,1,2},{88,0,0,7,1,7,-1,1,2},{88,0,0,7,1,7,-1,1,2},{88,0,0,7,1,7,-1,1,2},{88,0,0,7,1,7,-1,1,2},{88,0,0,7,1,7,-1,1,2},{88,0,0,7,1,7,-1,1,2},{88,0,0,7,1,7,-1,1,2},{88,0,0,7,1,7,-1,1,2},{88,0,0,7,1,7,-1,1,2},{88,0,0,7,1,7,-1,1,2},{88,0,0,7,1,7,-1,1,2},{88,0,0,7,1,7,-1,1,2},{88,0,0,7,1,7,-1,1,2}}, - {{88,0,0,7,1,7,-1,1,2},{88,0,0,7,1,7,-1,1,2},{88,0,0,7,1,7,-1,1,2},{88,0,0,7,1,7,-1,1,2},{88,0,0,7,1,7,-1,1,2},{88,0,0,7,1,7,-1,1,2},{88,0,0,7,1,7,-1,1,2},{88,0,0,7,1,7,-1,1,2},{88,0,0,7,1,7,-1,1,2},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0}}, - {{76,0,0,9,1,7,-1,1,2},{76,0,0,9,1,7,-1,1,2},{76,0,0,9,1,7,-1,1,2},{76,0,0,9,1,7,-1,1,2},{76,0,0,9,1,7,-1,1,2},{76,0,0,9,1,7,-1,1,2},{76,0,0,9,1,7,-1,1,2},{76,0,0,9,1,7,-1,1,2},{76,0,0,9,1,7,-1,1,2},{76,0,0,9,1,7,-1,1,2},{76,0,0,9,1,7,-1,1,2},{76,0,0,9,1,7,-1,1,2},{76,0,0,9,1,7,-1,1,2},{76,0,0,9,1,7,-1,1,2},{76,0,0,9,1,7,-1,1,2},{76,0,0,9,1,7,-1,1,2}}, - {{76,0,0,9,1,7,-1,1,2},{76,0,0,9,1,7,-1,1,2},{76,0,0,9,1,7,-1,1,2},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0}}, - {{76,0,0,5,1,7,-1,1,2},{76,0,0,5,1,7,-1,1,2},{76,0,0,5,1,7,-1,1,2},{76,0,0,5,1,7,-1,1,2},{76,0,0,5,1,7,-1,1,2},{76,0,0,5,1,7,-1,1,2},{76,0,0,5,1,7,-1,1,2},{76,0,0,5,1,7,-1,1,2},{76,0,0,5,1,7,-1,1,2},{76,0,0,5,1,7,-1,1,2},{76,0,0,5,1,7,-1,1,2},{76,0,0,5,1,7,-1,1,2},{76,0,0,5,1,7,-1,1,2},{76,0,0,5,1,7,-1,1,2},{76,0,0,5,1,7,-1,1,2},{76,0,0,5,1,7,-1,1,2}}, - {{76,0,0,5,1,7,-1,1,2},{76,0,0,5,1,7,-1,1,2},{76,0,0,5,1,7,-1,1,2},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{76,0,0,15,1,8,-1,1,2},{76,0,0,15,1,8,-1,1,2},{76,0,0,15,1,8,-1,1,2},{76,0,0,15,1,8,-1,1,2},{76,0,0,15,1,8,-1,1,2},{76,0,0,15,1,8,-1,1,2}}, - {{2,0,0,15,5,8,1,1,2},{2,0,0,15,5,8,2,1,2},{2,0,0,15,5,8,3,1,2},{2,0,0,15,5,8,4,1,2},{2,0,0,15,5,8,5,1,2},{2,0,0,15,5,8,6,1,2},{2,0,0,15,5,8,7,1,2},{2,0,0,15,5,8,8,1,2},{2,0,0,15,5,8,9,1,2},{2,0,0,15,5,8,-1,1,2},{2,0,0,15,5,8,-1,1,2},{2,0,0,15,5,8,-1,1,2},{2,0,0,15,5,8,-1,1,2},{2,0,0,15,5,8,-1,1,2},{2,0,0,15,5,8,-1,1,2},{2,0,0,15,5,8,-1,1,2}}, - {{2,0,0,15,5,8,-1,1,2},{2,0,0,15,5,8,-1,1,2},{2,0,0,15,5,8,-1,1,2},{2,0,0,15,5,8,-1,1,2},{2,0,0,15,5,8,-1,1,2},{2,0,0,15,5,8,-1,1,2},{2,0,0,15,5,8,-1,1,2},{2,0,0,15,5,8,-1,1,2},{2,0,0,15,5,8,-1,1,2},{2,0,0,15,5,8,-1,1,2},{2,0,0,15,5,8,-1,1,2},{2,0,0,15,5,8,-1,1,2},{2,0,0,15,5,8,-1,1,2},{2,0,0,15,5,8,-1,1,2},{2,0,0,15,5,8,-1,1,2},{103,0,0,2,1,12,-1,1,0}}, - {{65,0,0,10,0,7,-1,1,9},{65,0,0,12,17,7,-1,1,9},{65,0,0,10,0,7,-1,1,9},{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2}}, - {{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2}}, - {{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2},{65,0,0,7,0,7,-1,1,2},{65,0,0,12,17,7,-1,1,9},{65,0,0,12,17,7,-1,1,9},{65,0,0,12,17,7,-1,1,9},{65,0,0,12,17,7,-1,1,9},{65,0,0,12,17,7,-1,1,9},{65,0,0,12,17,7,-1,1,9},{65,0,0,12,17,7,-1,1,9},{65,0,0,12,17,7,-1,1,9}}, - {{65,0,0,12,17,7,-1,1,9},{65,0,0,12,17,7,-1,1,9},{65,0,0,12,17,7,-1,1,9},{65,0,0,12,17,7,-1,1,9},{65,0,0,12,17,7,-1,1,9},{65,0,0,12,17,7,-1,1,9},{65,0,0,12,17,7,-1,1,9},{65,0,0,21,0,8,-1,1,4},{65,0,0,21,0,8,-1,1,4},{65,0,0,21,0,8,-1,1,2},{65,0,0,21,0,8,-1,1,2},{65,0,0,21,0,8,-1,1,2},{65,0,0,21,0,8,-1,1,2},{65,0,0,21,0,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{65,0,0,15,10,8,1,1,2},{65,0,0,15,10,8,2,1,2},{65,0,0,15,10,8,3,1,2},{65,0,0,15,10,8,4,1,2},{65,0,0,15,10,8,5,1,2},{65,0,0,15,10,8,6,1,2},{65,0,0,15,10,8,7,1,2},{65,0,0,15,10,8,8,1,2},{65,0,0,15,10,8,9,1,2},{65,0,0,15,10,8,-1,1,2},{65,0,0,15,10,8,-1,1,2},{65,0,0,15,10,8,-1,1,2},{65,0,0,15,10,8,-1,1,2},{65,0,0,15,10,8,-1,1,2}}, - {{65,0,0,15,10,8,-1,1,2},{65,0,0,15,10,8,-1,1,2},{65,0,0,15,10,8,-1,1,2},{65,0,0,15,10,8,-1,1,2},{65,0,0,15,10,8,-1,1,2},{65,0,0,15,10,8,-1,1,2},{65,0,0,13,0,7,0,1,19},{65,0,0,13,0,7,1,1,19},{65,0,0,13,0,7,2,1,19},{65,0,0,13,0,7,3,1,19},{65,0,0,13,0,7,4,1,19},{65,0,0,13,0,7,5,1,19},{65,0,0,13,0,7,6,1,19},{65,0,0,13,0,7,7,1,19},{65,0,0,13,0,7,8,1,19},{65,0,0,13,0,7,9,1,19}}, - {{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{65,0,0,12,17,7,-1,1,9}}, - {{120,0,0,12,17,7,-1,1,9},{120,0,0,12,17,7,-1,1,9},{120,0,0,10,0,7,-1,1,9},{120,0,0,7,0,7,-1,1,2},{120,0,0,7,0,7,-1,1,2},{120,0,0,7,0,7,-1,1,2},{120,0,0,7,0,7,-1,1,2},{120,0,0,7,0,7,-1,1,2},{120,0,0,7,0,7,-1,1,2},{120,0,0,7,0,7,-1,1,2},{120,0,0,7,0,7,-1,1,2},{120,0,0,7,0,7,-1,1,2},{120,0,0,7,0,7,-1,1,2},{120,0,0,7,0,7,-1,1,2},{120,0,0,7,0,7,-1,1,2},{120,0,0,7,0,7,-1,1,2}}, - {{120,0,0,7,0,7,-1,1,2},{120,0,0,7,0,7,-1,1,2},{120,0,0,7,0,7,-1,1,2},{120,0,0,7,0,7,-1,1,2},{120,0,0,7,0,7,-1,1,2},{120,0,0,7,0,7,-1,1,2},{120,0,0,7,0,7,-1,1,2},{120,0,0,7,0,7,-1,1,2},{120,0,0,7,0,7,-1,1,2},{120,0,0,7,0,7,-1,1,2},{120,0,0,7,0,7,-1,1,2},{120,0,0,7,0,7,-1,1,2},{120,0,0,7,0,7,-1,1,2},{120,0,0,7,0,7,-1,1,2},{120,0,0,7,0,7,-1,1,2},{120,0,0,7,0,7,-1,1,2}}, - {{120,0,0,10,0,7,-1,1,9},{120,0,0,10,0,7,-1,1,9},{120,0,0,10,0,7,-1,1,9},{120,0,0,12,17,7,-1,1,9},{120,0,0,12,17,7,-1,1,9},{120,0,0,12,17,7,-1,1,9},{120,0,0,12,17,7,-1,1,9},{120,0,0,10,0,7,-1,1,9},{120,0,0,10,0,7,-1,1,9},{120,0,0,12,17,7,-1,1,9},{120,0,0,12,17,7,-1,1,9},{120,0,0,21,0,8,-1,1,2},{120,0,0,21,0,8,-1,1,2},{120,0,0,1,0,8,-1,1,2},{120,0,0,21,0,8,-1,1,4},{120,0,0,21,0,8,-1,1,4}}, - {{120,0,0,21,0,8,-1,1,4},{120,0,0,21,0,8,-1,1,4},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{152,0,0,7,0,7,-1,1,2},{152,0,0,7,0,7,-1,1,2},{152,0,0,7,0,7,-1,1,2},{152,0,0,7,0,7,-1,1,2},{152,0,0,7,0,7,-1,1,2},{152,0,0,7,0,7,-1,1,2},{152,0,0,7,0,7,-1,1,2},{152,0,0,7,0,7,-1,1,2},{152,0,0,7,0,7,-1,1,2},{152,0,0,7,0,7,-1,1,2},{152,0,0,7,0,7,-1,1,2},{152,0,0,7,0,7,-1,1,2},{152,0,0,7,0,7,-1,1,2},{152,0,0,7,0,7,-1,1,2},{152,0,0,7,0,7,-1,1,2},{152,0,0,7,0,7,-1,1,2}}, - {{152,0,0,7,0,7,-1,1,2},{152,0,0,7,0,7,-1,1,2},{152,0,0,7,0,7,-1,1,2},{152,0,0,7,0,7,-1,1,2},{152,0,0,7,0,7,-1,1,2},{152,0,0,7,0,7,-1,1,2},{152,0,0,7,0,7,-1,1,2},{152,0,0,7,0,7,-1,1,2},{152,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{152,0,0,13,0,7,0,1,19},{152,0,0,13,0,7,1,1,19},{152,0,0,13,0,7,2,1,19},{152,0,0,13,0,7,3,1,19},{152,0,0,13,0,7,4,1,19},{152,0,0,13,0,7,5,1,19},{152,0,0,13,0,7,6,1,19},{152,0,0,13,0,7,7,1,19},{152,0,0,13,0,7,8,1,19},{152,0,0,13,0,7,9,1,19},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{118,0,0,12,17,6,-1,1,9},{118,0,0,12,17,6,-1,1,9},{118,0,0,12,17,6,-1,1,9},{118,0,0,7,0,6,-1,1,2},{118,0,0,7,0,6,-1,1,2},{118,0,0,7,0,6,-1,1,2},{118,0,0,7,0,6,-1,1,2},{118,0,0,7,0,6,-1,1,2},{118,0,0,7,0,6,-1,1,2},{118,0,0,7,0,6,-1,1,2},{118,0,0,7,0,6,-1,1,2},{118,0,0,7,0,6,-1,1,2},{118,0,0,7,0,6,-1,1,2},{118,0,0,7,0,6,-1,1,2},{118,0,0,7,0,6,-1,1,2},{118,0,0,7,0,6,-1,1,2}}, - {{118,0,0,7,0,6,-1,1,2},{118,0,0,7,0,6,-1,1,2},{118,0,0,7,0,6,-1,1,2},{118,0,0,7,0,6,-1,1,2},{118,0,0,7,0,6,-1,1,2},{118,0,0,7,0,6,-1,1,2},{118,0,0,7,0,6,-1,1,2},{118,0,0,7,0,6,-1,1,2},{118,0,0,7,0,6,-1,1,2},{118,0,0,7,0,6,-1,1,2},{118,0,0,7,0,6,-1,1,2},{118,0,0,7,0,6,-1,1,2},{118,0,0,7,0,6,-1,1,2},{118,0,0,7,0,6,-1,1,2},{118,0,0,7,0,6,-1,1,2},{118,0,0,7,0,6,-1,1,2}}, - {{118,0,0,7,0,6,-1,1,2},{118,0,0,7,0,6,-1,1,2},{118,0,0,7,0,6,-1,1,2},{118,0,0,7,0,6,-1,1,2},{118,0,0,7,0,6,-1,1,2},{118,0,0,7,0,6,-1,1,2},{118,0,0,7,0,6,-1,1,2},{118,0,0,12,17,6,-1,1,9},{118,0,0,12,17,6,-1,1,9},{118,0,0,12,17,6,-1,1,9},{118,0,0,12,17,6,-1,1,9},{118,0,0,12,17,6,-1,1,9},{118,0,0,10,0,6,-1,1,9},{118,0,0,12,17,6,-1,1,9},{118,0,0,12,17,6,-1,1,9},{118,0,0,12,17,6,-1,1,9}}, - {{118,0,0,12,17,6,-1,1,9},{118,0,0,12,17,6,-1,1,9},{118,0,0,12,17,6,-1,1,9},{118,0,0,12,17,6,-1,1,9},{118,0,0,12,17,6,-1,1,9},{103,0,0,2,0,12,-1,1,0},{118,0,0,13,0,6,0,1,19},{118,0,0,13,0,6,1,1,19},{118,0,0,13,0,6,2,1,19},{118,0,0,13,0,6,3,1,19},{118,0,0,13,0,6,4,1,19},{118,0,0,13,0,6,5,1,19},{118,0,0,13,0,6,6,1,19},{118,0,0,13,0,6,7,1,19},{118,0,0,13,0,6,8,1,19},{118,0,0,13,0,6,9,1,19}}, - {{118,0,0,21,0,8,-1,1,4},{118,0,0,21,0,8,-1,1,4},{118,0,0,21,0,8,-1,1,4},{118,0,0,21,0,8,-1,1,4},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{160,0,0,7,0,7,-1,1,2},{160,0,0,7,0,7,-1,1,2},{160,0,0,7,0,7,-1,1,2},{160,0,0,7,0,7,-1,1,2},{160,0,0,7,0,7,-1,1,2},{160,0,0,7,0,7,-1,1,2},{160,0,0,7,0,7,-1,1,2},{160,0,0,7,0,7,-1,1,2},{160,0,0,7,0,7,-1,1,2},{160,0,0,7,0,7,-1,1,2},{160,0,0,7,0,7,-1,1,2},{160,0,0,7,0,7,-1,1,2},{160,0,0,7,0,7,-1,1,2},{160,0,0,7,0,7,-1,1,2},{160,0,0,7,0,7,-1,1,2},{160,0,0,7,0,7,-1,1,2}}, - {{160,0,0,7,0,7,-1,1,2},{160,0,0,7,0,7,-1,1,2},{160,0,0,7,0,7,-1,1,2},{160,0,0,12,17,7,-1,1,9},{160,0,0,21,0,8,-1,1,2},{160,0,0,21,0,8,-1,1,5},{160,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{151,0,0,12,17,7,-1,1,9},{151,0,0,12,17,7,-1,1,9},{151,0,0,10,0,7,-1,1,9},{151,0,0,7,0,7,-1,1,2},{151,0,0,7,0,7,-1,1,2},{151,0,0,7,0,7,-1,1,2},{151,0,0,7,0,7,-1,1,2},{151,0,0,7,0,7,-1,1,2},{151,0,0,7,0,7,-1,1,2},{151,0,0,7,0,7,-1,1,2},{151,0,0,7,0,7,-1,1,2},{151,0,0,7,0,7,-1,1,2},{151,0,0,7,0,7,-1,1,2},{151,0,0,7,0,7,-1,1,2},{151,0,0,7,0,7,-1,1,2},{151,0,0,7,0,7,-1,1,2}}, - {{151,0,0,7,0,7,-1,1,2},{151,0,0,7,0,7,-1,1,2},{151,0,0,7,0,7,-1,1,2},{151,0,0,7,0,7,-1,1,2},{151,0,0,7,0,7,-1,1,2},{151,0,0,7,0,7,-1,1,2},{151,0,0,7,0,7,-1,1,2},{151,0,0,7,0,7,-1,1,2},{151,0,0,7,0,7,-1,1,2},{151,0,0,7,0,7,-1,1,2},{151,0,0,7,0,7,-1,1,2},{151,0,0,7,0,7,-1,1,2},{151,0,0,7,0,7,-1,1,2},{151,0,0,7,0,7,-1,1,2},{151,0,0,7,0,7,-1,1,2},{151,0,0,7,0,7,-1,1,2}}, - {{151,0,0,7,0,7,-1,1,2},{151,0,0,7,0,7,-1,1,2},{151,0,0,7,0,7,-1,1,2},{151,0,0,10,0,7,-1,1,9},{151,0,0,10,0,7,-1,1,9},{151,0,0,10,0,7,-1,1,9},{151,0,0,12,17,7,-1,1,9},{151,0,0,12,17,7,-1,1,9},{151,0,0,12,17,7,-1,1,9},{151,0,0,12,17,7,-1,1,9},{151,0,0,12,17,7,-1,1,9},{151,0,0,12,17,7,-1,1,9},{151,0,0,12,17,7,-1,1,9},{151,0,0,12,17,7,-1,1,9},{151,0,0,12,17,7,-1,1,9},{151,0,0,10,0,7,-1,1,9}}, - {{151,0,0,10,0,7,-1,1,9},{151,0,0,7,0,7,-1,1,2},{151,0,0,7,0,7,-1,1,2},{151,0,0,7,0,7,-1,1,2},{151,0,0,7,0,7,-1,1,2},{151,0,0,21,0,8,-1,1,4},{151,0,0,21,0,8,-1,1,4},{151,0,0,21,0,8,-1,1,2},{151,0,0,21,0,8,-1,1,4},{151,0,0,21,0,8,-1,1,2},{151,0,0,12,17,7,-1,1,9},{151,0,0,12,17,7,-1,1,9},{151,0,0,12,17,7,-1,1,9},{151,0,0,21,0,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{151,0,0,13,0,7,0,1,19},{151,0,0,13,0,7,1,1,19},{151,0,0,13,0,7,2,1,19},{151,0,0,13,0,7,3,1,19},{151,0,0,13,0,7,4,1,19},{151,0,0,13,0,7,5,1,19},{151,0,0,13,0,7,6,1,19},{151,0,0,13,0,7,7,1,19},{151,0,0,13,0,7,8,1,19},{151,0,0,13,0,7,9,1,19},{151,0,0,7,0,7,-1,1,2},{151,0,0,21,0,8,-1,1,5},{151,0,0,7,0,7,-1,1,2},{151,0,0,21,0,8,-1,1,4},{151,0,0,21,0,8,-1,1,4},{151,0,0,21,0,8,-1,1,4}}, - {{103,0,0,2,0,12,-1,1,0},{33,0,0,15,0,8,-1,1,2},{33,0,0,15,0,8,-1,1,2},{33,0,0,15,0,8,-1,1,2},{33,0,0,15,0,8,-1,1,2},{33,0,0,15,0,8,-1,1,2},{33,0,0,15,0,8,-1,1,2},{33,0,0,15,0,8,-1,1,2},{33,0,0,15,0,8,-1,1,2},{33,0,0,15,0,8,-1,1,2},{33,0,0,15,0,8,-1,1,2},{33,0,0,15,0,8,-1,1,2},{33,0,0,15,0,8,-1,1,2},{33,0,0,15,0,8,-1,1,2},{33,0,0,15,0,8,-1,1,2},{33,0,0,15,0,8,-1,1,2}}, - {{33,0,0,15,0,8,-1,1,2},{33,0,0,15,0,8,-1,1,2},{33,0,0,15,0,8,-1,1,2},{33,0,0,15,0,8,-1,1,2},{33,0,0,15,0,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2}}, - {{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2}}, - {{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,7,0,7,-1,1,2},{157,0,0,10,0,7,-1,1,9},{157,0,0,10,0,7,-1,1,9},{157,0,0,10,0,7,-1,1,9},{157,0,0,12,17,7,-1,1,9}}, - {{157,0,0,12,17,7,-1,1,9},{157,0,0,12,17,7,-1,1,9},{157,0,0,10,0,7,-1,1,9},{157,0,0,10,0,7,-1,1,9},{157,0,0,12,17,7,-1,1,9},{157,0,0,10,0,7,-1,1,9},{157,0,0,12,17,7,-1,1,9},{157,0,0,12,17,7,-1,1,9},{157,0,0,21,0,8,-1,1,4},{157,0,0,21,0,8,-1,1,4},{157,0,0,21,0,8,-1,1,2},{157,0,0,21,0,8,-1,1,4},{157,0,0,21,0,8,-1,1,4},{157,0,0,21,0,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{164,0,0,7,0,7,-1,1,2},{164,0,0,7,0,7,-1,1,2},{164,0,0,7,0,7,-1,1,2},{164,0,0,7,0,7,-1,1,2},{164,0,0,7,0,7,-1,1,2},{164,0,0,7,0,7,-1,1,2},{164,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{164,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{164,0,0,7,0,7,-1,1,2},{164,0,0,7,0,7,-1,1,2},{164,0,0,7,0,7,-1,1,2},{164,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{164,0,0,7,0,7,-1,1,2}}, - {{164,0,0,7,0,7,-1,1,2},{164,0,0,7,0,7,-1,1,2},{164,0,0,7,0,7,-1,1,2},{164,0,0,7,0,7,-1,1,2},{164,0,0,7,0,7,-1,1,2},{164,0,0,7,0,7,-1,1,2},{164,0,0,7,0,7,-1,1,2},{164,0,0,7,0,7,-1,1,2},{164,0,0,7,0,7,-1,1,2},{164,0,0,7,0,7,-1,1,2},{164,0,0,7,0,7,-1,1,2},{164,0,0,7,0,7,-1,1,2},{164,0,0,7,0,7,-1,1,2},{164,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{164,0,0,7,0,7,-1,1,2}}, - {{164,0,0,7,0,7,-1,1,2},{164,0,0,7,0,7,-1,1,2},{164,0,0,7,0,7,-1,1,2},{164,0,0,7,0,7,-1,1,2},{164,0,0,7,0,7,-1,1,2},{164,0,0,7,0,7,-1,1,2},{164,0,0,7,0,7,-1,1,2},{164,0,0,7,0,7,-1,1,2},{164,0,0,7,0,7,-1,1,2},{164,0,0,21,0,8,-1,1,4},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{145,0,0,7,0,7,-1,1,2},{145,0,0,7,0,7,-1,1,2},{145,0,0,7,0,7,-1,1,2},{145,0,0,7,0,7,-1,1,2},{145,0,0,7,0,7,-1,1,2},{145,0,0,7,0,7,-1,1,2},{145,0,0,7,0,7,-1,1,2},{145,0,0,7,0,7,-1,1,2},{145,0,0,7,0,7,-1,1,2},{145,0,0,7,0,7,-1,1,2},{145,0,0,7,0,7,-1,1,2},{145,0,0,7,0,7,-1,1,2},{145,0,0,7,0,7,-1,1,2},{145,0,0,7,0,7,-1,1,2},{145,0,0,7,0,7,-1,1,2},{145,0,0,7,0,7,-1,1,2}}, - {{145,0,0,7,0,7,-1,1,2},{145,0,0,7,0,7,-1,1,2},{145,0,0,7,0,7,-1,1,2},{145,0,0,7,0,7,-1,1,2},{145,0,0,7,0,7,-1,1,2},{145,0,0,7,0,7,-1,1,2},{145,0,0,7,0,7,-1,1,2},{145,0,0,7,0,7,-1,1,2},{145,0,0,7,0,7,-1,1,2},{145,0,0,7,0,7,-1,1,2},{145,0,0,7,0,7,-1,1,2},{145,0,0,7,0,7,-1,1,2},{145,0,0,7,0,7,-1,1,2},{145,0,0,7,0,7,-1,1,2},{145,0,0,7,0,7,-1,1,2},{145,0,0,12,17,7,-1,1,9}}, - {{145,0,0,10,0,7,-1,1,9},{145,0,0,10,0,7,-1,1,9},{145,0,0,10,0,7,-1,1,9},{145,0,0,12,17,7,-1,1,9},{145,0,0,12,17,7,-1,1,9},{145,0,0,12,17,7,-1,1,9},{145,0,0,12,17,7,-1,1,9},{145,0,0,12,17,7,-1,1,9},{145,0,0,12,17,7,-1,1,9},{145,0,0,12,17,7,-1,1,9},{145,0,0,12,17,7,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{145,0,0,13,0,7,0,1,19},{145,0,0,13,0,7,1,1,19},{145,0,0,13,0,7,2,1,19},{145,0,0,13,0,7,3,1,19},{145,0,0,13,0,7,4,1,19},{145,0,0,13,0,7,5,1,19},{145,0,0,13,0,7,6,1,19},{145,0,0,13,0,7,7,1,19},{145,0,0,13,0,7,8,1,19},{145,0,0,13,0,7,9,1,19},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{137,0,0,12,17,7,-1,1,9},{137,0,0,12,17,7,-1,1,9},{137,0,0,10,0,7,-1,1,9},{137,0,0,10,0,7,-1,1,9},{103,0,0,2,0,12,-1,1,0},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{137,0,0,7,0,7,-1,1,2}}, - {{137,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2}}, - {{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2}}, - {{137,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{137,0,0,12,17,7,-1,1,9},{137,0,0,7,0,7,-1,1,2},{137,0,0,10,0,7,-1,1,9},{137,0,0,10,0,7,-1,1,9}}, - {{137,0,0,12,17,7,-1,1,9},{137,0,0,10,0,7,-1,1,9},{137,0,0,10,0,7,-1,1,9},{137,0,0,10,0,7,-1,1,9},{137,0,0,10,0,7,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{137,0,0,10,0,7,-1,1,9},{137,0,0,10,0,7,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{137,0,0,10,0,7,-1,1,9},{137,0,0,10,0,7,-1,1,9},{137,0,0,10,0,7,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{137,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{137,0,0,10,0,7,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2}}, - {{137,0,0,7,0,7,-1,1,2},{137,0,0,7,0,7,-1,1,2},{137,0,0,10,0,7,-1,1,9},{137,0,0,10,0,7,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{137,0,0,12,17,7,-1,1,9},{137,0,0,12,17,7,-1,1,9},{137,0,0,12,17,7,-1,1,9},{137,0,0,12,17,7,-1,1,9},{137,0,0,12,17,7,-1,1,9},{137,0,0,12,17,7,-1,1,9},{137,0,0,12,17,7,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{137,0,0,12,17,7,-1,1,9},{137,0,0,12,17,7,-1,1,9},{137,0,0,12,17,7,-1,1,9},{137,0,0,12,17,7,-1,1,9},{137,0,0,12,17,7,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{158,0,0,7,0,7,-1,1,2},{158,0,0,7,0,7,-1,1,2},{158,0,0,7,0,7,-1,1,2},{158,0,0,7,0,7,-1,1,2},{158,0,0,7,0,7,-1,1,2},{158,0,0,7,0,7,-1,1,2},{158,0,0,7,0,7,-1,1,2},{158,0,0,7,0,7,-1,1,2},{158,0,0,7,0,7,-1,1,2},{158,0,0,7,0,7,-1,1,2},{158,0,0,7,0,7,-1,1,2},{158,0,0,7,0,7,-1,1,2},{158,0,0,7,0,7,-1,1,2},{158,0,0,7,0,7,-1,1,2},{158,0,0,7,0,7,-1,1,2},{158,0,0,7,0,7,-1,1,2}}, - {{158,0,0,10,0,7,-1,1,9},{158,0,0,10,0,7,-1,1,9},{158,0,0,10,0,7,-1,1,9},{158,0,0,12,17,7,-1,1,9},{158,0,0,12,17,7,-1,1,9},{158,0,0,12,17,7,-1,1,9},{158,0,0,12,17,7,-1,1,9},{158,0,0,12,17,7,-1,1,9},{158,0,0,12,17,7,-1,1,9},{158,0,0,10,0,7,-1,1,9},{158,0,0,12,17,7,-1,1,9},{158,0,0,10,0,7,-1,1,9},{158,0,0,10,0,7,-1,1,9},{158,0,0,10,0,7,-1,1,9},{158,0,0,10,0,7,-1,1,9},{158,0,0,12,17,7,-1,1,9}}, - {{158,0,0,12,17,7,-1,1,9},{158,0,0,10,0,7,-1,1,9},{158,0,0,12,17,7,-1,1,9},{158,0,0,12,17,7,-1,1,9},{158,0,0,7,0,7,-1,1,2},{158,0,0,7,0,7,-1,1,2},{158,0,0,21,0,8,-1,1,2},{158,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{158,0,0,13,0,7,0,1,19},{158,0,0,13,0,7,1,1,19},{158,0,0,13,0,7,2,1,19},{158,0,0,13,0,7,3,1,19},{158,0,0,13,0,7,4,1,19},{158,0,0,13,0,7,5,1,19},{158,0,0,13,0,7,6,1,19},{158,0,0,13,0,7,7,1,19},{158,0,0,13,0,7,8,1,19},{158,0,0,13,0,7,9,1,19},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{166,0,0,7,0,7,-1,0,2},{166,0,0,7,0,7,-1,0,2},{166,0,0,7,0,7,-1,0,2},{166,0,0,7,0,7,-1,0,2},{166,0,0,7,0,7,-1,0,2},{166,0,0,7,0,7,-1,0,2},{166,0,0,7,0,7,-1,0,2},{166,0,0,7,0,7,-1,0,2},{166,0,0,7,0,7,-1,0,2},{166,0,0,7,0,7,-1,0,2},{166,0,0,7,0,7,-1,0,2},{166,0,0,7,0,7,-1,0,2},{166,0,0,7,0,7,-1,0,2},{166,0,0,7,0,7,-1,0,2},{166,0,0,7,0,7,-1,0,2},{166,0,0,7,0,7,-1,0,2}}, - {{166,0,0,7,0,7,-1,0,2},{166,0,0,7,0,7,-1,0,2},{166,0,0,7,0,7,-1,0,2},{166,0,0,7,0,7,-1,0,2},{166,0,0,7,0,7,-1,0,2},{166,0,0,7,0,7,-1,0,2},{166,0,0,7,0,7,-1,0,2},{166,0,0,7,0,7,-1,0,2},{166,0,0,7,0,7,-1,0,2},{166,0,0,7,0,7,-1,0,2},{166,0,0,7,0,7,-1,0,2},{166,0,0,7,0,7,-1,0,2},{166,0,0,7,0,7,-1,0,2},{166,0,0,7,0,7,-1,0,2},{166,0,0,7,0,7,-1,0,2},{166,0,0,10,0,7,-1,0,9}}, - {{166,0,0,10,0,7,-1,0,9},{166,0,0,10,0,7,-1,0,9},{166,0,0,12,17,7,-1,0,9},{166,0,0,12,17,7,-1,0,9},{166,0,0,12,17,7,-1,0,9},{166,0,0,12,17,7,-1,0,9},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{166,0,0,10,0,7,-1,0,9},{166,0,0,10,0,7,-1,0,9},{166,0,0,10,0,7,-1,0,9},{166,0,0,10,0,7,-1,0,9},{166,0,0,12,17,7,-1,0,9},{166,0,0,12,17,7,-1,0,9},{166,0,0,10,0,7,-1,0,9},{166,0,0,12,17,7,-1,0,9}}, - {{166,0,0,12,17,7,-1,0,9},{166,0,0,21,0,8,-1,0,5},{166,0,0,21,0,8,-1,0,4},{166,0,0,21,0,8,-1,0,4},{166,0,0,21,0,8,-1,0,11},{166,0,0,21,0,8,-1,0,11},{166,0,0,21,0,8,-1,0,2},{166,0,0,21,0,8,-1,0,2},{166,0,0,21,0,8,-1,0,2},{166,0,0,21,0,8,-1,0,4},{166,0,0,21,0,8,-1,0,4},{166,0,0,21,0,8,-1,0,4},{166,0,0,21,0,8,-1,0,4},{166,0,0,21,0,8,-1,0,4},{166,0,0,21,0,8,-1,0,4},{166,0,0,21,0,8,-1,0,4}}, - {{166,0,0,21,0,8,-1,0,4},{166,0,0,21,0,8,-1,0,4},{166,0,0,21,0,8,-1,0,4},{166,0,0,21,0,8,-1,0,4},{166,0,0,21,0,8,-1,0,4},{166,0,0,21,0,8,-1,0,4},{166,0,0,21,0,8,-1,0,4},{166,0,0,21,0,8,-1,0,4},{166,0,0,7,0,7,-1,0,2},{166,0,0,7,0,7,-1,0,2},{166,0,0,7,0,7,-1,0,2},{166,0,0,7,0,7,-1,0,2},{166,0,0,12,17,7,-1,0,9},{166,0,0,12,17,7,-1,0,9},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{163,0,0,7,0,7,-1,1,2},{163,0,0,7,0,7,-1,1,2},{163,0,0,7,0,7,-1,1,2},{163,0,0,7,0,7,-1,1,2},{163,0,0,7,0,7,-1,1,2},{163,0,0,7,0,7,-1,1,2},{163,0,0,7,0,7,-1,1,2},{163,0,0,7,0,7,-1,1,2},{163,0,0,7,0,7,-1,1,2},{163,0,0,7,0,7,-1,1,2},{163,0,0,7,0,7,-1,1,2},{163,0,0,7,0,7,-1,1,2},{163,0,0,7,0,7,-1,1,2},{163,0,0,7,0,7,-1,1,2},{163,0,0,7,0,7,-1,1,2},{163,0,0,7,0,7,-1,1,2}}, - {{163,0,0,10,0,7,-1,1,9},{163,0,0,10,0,7,-1,1,9},{163,0,0,10,0,7,-1,1,9},{163,0,0,12,17,7,-1,1,9},{163,0,0,12,17,7,-1,1,9},{163,0,0,12,17,7,-1,1,9},{163,0,0,12,17,7,-1,1,9},{163,0,0,12,17,7,-1,1,9},{163,0,0,12,17,7,-1,1,9},{163,0,0,12,17,7,-1,1,9},{163,0,0,12,17,7,-1,1,9},{163,0,0,10,0,7,-1,1,9},{163,0,0,10,0,7,-1,1,9},{163,0,0,12,17,7,-1,1,9},{163,0,0,10,0,7,-1,1,9},{163,0,0,12,17,7,-1,1,9}}, - {{163,0,0,12,17,7,-1,1,9},{163,0,0,21,0,8,-1,1,4},{163,0,0,21,0,8,-1,1,4},{163,0,0,21,0,8,-1,1,2},{163,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{163,0,0,13,0,7,0,1,19},{163,0,0,13,0,7,1,1,19},{163,0,0,13,0,7,2,1,19},{163,0,0,13,0,7,3,1,19},{163,0,0,13,0,7,4,1,19},{163,0,0,13,0,7,5,1,19},{163,0,0,13,0,7,6,1,19},{163,0,0,13,0,7,7,1,19},{163,0,0,13,0,7,8,1,19},{163,0,0,13,0,7,9,1,19},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{153,0,0,7,0,7,-1,1,2},{153,0,0,7,0,7,-1,1,2},{153,0,0,7,0,7,-1,1,2},{153,0,0,7,0,7,-1,1,2},{153,0,0,7,0,7,-1,1,2},{153,0,0,7,0,7,-1,1,2},{153,0,0,7,0,7,-1,1,2},{153,0,0,7,0,7,-1,1,2},{153,0,0,7,0,7,-1,1,2},{153,0,0,7,0,7,-1,1,2},{153,0,0,7,0,7,-1,1,2},{153,0,0,7,0,7,-1,1,2},{153,0,0,7,0,7,-1,1,2},{153,0,0,7,0,7,-1,1,2},{153,0,0,7,0,7,-1,1,2},{153,0,0,7,0,7,-1,1,2}}, - {{153,0,0,7,0,7,-1,1,2},{153,0,0,7,0,7,-1,1,2},{153,0,0,7,0,7,-1,1,2},{153,0,0,7,0,7,-1,1,2},{153,0,0,7,0,7,-1,1,2},{153,0,0,7,0,7,-1,1,2},{153,0,0,7,0,7,-1,1,2},{153,0,0,7,0,7,-1,1,2},{153,0,0,7,0,7,-1,1,2},{153,0,0,7,0,7,-1,1,2},{153,0,0,7,0,7,-1,1,2},{153,0,0,12,17,7,-1,1,9},{153,0,0,10,0,7,-1,1,9},{153,0,0,12,17,7,-1,1,9},{153,0,0,10,0,7,-1,1,9},{153,0,0,10,0,7,-1,1,9}}, - {{153,0,0,12,17,7,-1,1,9},{153,0,0,12,17,7,-1,1,9},{153,0,0,12,17,7,-1,1,9},{153,0,0,12,17,7,-1,1,9},{153,0,0,12,17,7,-1,1,9},{153,0,0,12,17,7,-1,1,9},{153,0,0,10,0,7,-1,1,9},{153,0,0,12,17,7,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{153,0,0,13,0,7,0,1,19},{153,0,0,13,0,7,1,1,19},{153,0,0,13,0,7,2,1,19},{153,0,0,13,0,7,3,1,19},{153,0,0,13,0,7,4,1,19},{153,0,0,13,0,7,5,1,19},{153,0,0,13,0,7,6,1,19},{153,0,0,13,0,7,7,1,19},{153,0,0,13,0,7,8,1,19},{153,0,0,13,0,7,9,1,19},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{161,0,0,7,0,7,-1,1,24},{161,0,0,7,0,7,-1,1,24},{161,0,0,7,0,7,-1,1,24},{161,0,0,7,0,7,-1,1,24},{161,0,0,7,0,7,-1,1,24},{161,0,0,7,0,7,-1,1,24},{161,0,0,7,0,7,-1,1,24},{161,0,0,7,0,7,-1,1,24},{161,0,0,7,0,7,-1,1,24},{161,0,0,7,0,7,-1,1,24},{161,0,0,7,0,7,-1,1,24},{161,0,0,7,0,7,-1,1,24},{161,0,0,7,0,7,-1,1,24},{161,0,0,7,0,7,-1,1,24},{161,0,0,7,0,7,-1,1,24},{161,0,0,7,0,7,-1,1,24}}, - {{161,0,0,7,0,7,-1,1,24},{161,0,0,7,0,7,-1,1,24},{161,0,0,7,0,7,-1,1,24},{161,0,0,7,0,7,-1,1,24},{161,0,0,7,0,7,-1,1,24},{161,0,0,7,0,7,-1,1,24},{161,0,0,7,0,7,-1,1,24},{161,0,0,7,0,7,-1,1,24},{161,0,0,7,0,7,-1,1,24},{161,0,0,7,0,7,-1,1,24},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{161,0,0,12,17,7,-1,1,24},{161,0,0,12,17,7,-1,1,24},{161,0,0,12,17,7,-1,1,24}}, - {{161,0,0,10,0,7,-1,1,24},{161,0,0,10,0,7,-1,1,24},{161,0,0,12,17,7,-1,1,24},{161,0,0,12,17,7,-1,1,24},{161,0,0,12,17,7,-1,1,24},{161,0,0,12,17,7,-1,1,24},{161,0,0,10,0,7,-1,1,24},{161,0,0,12,17,7,-1,1,24},{161,0,0,12,17,7,-1,1,24},{161,0,0,12,17,7,-1,1,24},{161,0,0,12,17,7,-1,1,24},{161,0,0,12,17,7,-1,1,24},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{161,0,0,13,0,7,0,1,19},{161,0,0,13,0,7,1,1,19},{161,0,0,13,0,7,2,1,19},{161,0,0,13,0,7,3,1,19},{161,0,0,13,0,7,4,1,19},{161,0,0,13,0,7,5,1,19},{161,0,0,13,0,7,6,1,19},{161,0,0,13,0,7,7,1,19},{161,0,0,13,0,7,8,1,19},{161,0,0,13,0,7,9,1,19},{161,0,0,15,0,8,-1,1,24},{161,0,0,15,0,8,-1,1,24},{161,0,0,21,0,8,-1,1,4},{161,0,0,21,0,8,-1,1,4},{161,0,0,21,0,8,-1,1,4},{161,0,0,26,0,8,-1,1,24}}, - {{146,0,0,9,0,7,-1,1,2},{146,0,0,9,0,7,-1,1,2},{146,0,0,9,0,7,-1,1,2},{146,0,0,9,0,7,-1,1,2},{146,0,0,9,0,7,-1,1,2},{146,0,0,9,0,7,-1,1,2},{146,0,0,9,0,7,-1,1,2},{146,0,0,9,0,7,-1,1,2},{146,0,0,9,0,7,-1,1,2},{146,0,0,9,0,7,-1,1,2},{146,0,0,9,0,7,-1,1,2},{146,0,0,9,0,7,-1,1,2},{146,0,0,9,0,7,-1,1,2},{146,0,0,9,0,7,-1,1,2},{146,0,0,9,0,7,-1,1,2},{146,0,0,9,0,7,-1,1,2}}, - {{146,0,0,5,0,7,-1,1,2},{146,0,0,5,0,7,-1,1,2},{146,0,0,5,0,7,-1,1,2},{146,0,0,5,0,7,-1,1,2},{146,0,0,5,0,7,-1,1,2},{146,0,0,5,0,7,-1,1,2},{146,0,0,5,0,7,-1,1,2},{146,0,0,5,0,7,-1,1,2},{146,0,0,5,0,7,-1,1,2},{146,0,0,5,0,7,-1,1,2},{146,0,0,5,0,7,-1,1,2},{146,0,0,5,0,7,-1,1,2},{146,0,0,5,0,7,-1,1,2},{146,0,0,5,0,7,-1,1,2},{146,0,0,5,0,7,-1,1,2},{146,0,0,5,0,7,-1,1,2}}, - {{146,0,0,13,0,7,0,1,19},{146,0,0,13,0,7,1,1,19},{146,0,0,13,0,7,2,1,19},{146,0,0,13,0,7,3,1,19},{146,0,0,13,0,7,4,1,19},{146,0,0,13,0,7,5,1,19},{146,0,0,13,0,7,6,1,19},{146,0,0,13,0,7,7,1,19},{146,0,0,13,0,7,8,1,19},{146,0,0,13,0,7,9,1,19},{146,0,0,15,0,8,-1,1,2},{146,0,0,15,0,8,-1,1,2},{146,0,0,15,0,8,-1,1,2},{146,0,0,15,0,8,-1,1,2},{146,0,0,15,0,8,-1,1,2},{146,0,0,15,0,8,-1,1,2}}, - {{146,0,0,15,0,8,-1,1,2},{146,0,0,15,0,8,-1,1,2},{146,0,0,15,0,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{146,0,0,7,0,7,-1,1,2}}, - {{165,0,0,7,0,7,-1,1,2},{165,0,0,7,0,7,-1,1,2},{165,0,0,7,0,7,-1,1,2},{165,0,0,7,0,7,-1,1,2},{165,0,0,7,0,7,-1,1,2},{165,0,0,7,0,7,-1,1,2},{165,0,0,7,0,7,-1,1,2},{165,0,0,7,0,7,-1,1,2},{165,0,0,7,0,7,-1,1,2},{165,0,0,7,0,7,-1,1,2},{165,0,0,7,0,7,-1,1,2},{165,0,0,7,0,7,-1,1,2},{165,0,0,7,0,7,-1,1,2},{165,0,0,7,0,7,-1,1,2},{165,0,0,7,0,7,-1,1,2},{165,0,0,7,0,7,-1,1,2}}, - {{165,0,0,7,0,7,-1,1,2},{165,0,0,7,0,7,-1,1,2},{165,0,0,7,0,7,-1,1,2},{165,0,0,7,0,7,-1,1,2},{165,0,0,7,0,7,-1,1,2},{165,0,0,7,0,7,-1,1,2},{165,0,0,7,0,7,-1,1,2},{165,0,0,7,0,7,-1,1,2},{165,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{101,0,0,7,0,7,-1,1,2},{101,0,0,7,0,7,-1,1,2},{101,0,0,7,0,7,-1,1,2},{101,0,0,7,0,7,-1,1,2},{101,0,0,7,0,7,-1,1,2},{101,0,0,7,0,7,-1,1,2},{101,0,0,7,0,7,-1,1,2},{101,0,0,7,0,7,-1,1,2},{101,0,0,7,0,7,-1,1,2},{101,0,0,7,0,7,-1,1,2},{101,0,0,7,0,7,-1,1,2},{101,0,0,7,0,7,-1,1,2},{101,0,0,7,0,7,-1,1,2},{101,0,0,7,0,7,-1,1,2},{101,0,0,7,0,7,-1,1,2},{101,0,0,7,0,7,-1,1,2}}, - {{101,0,0,7,0,7,-1,1,2},{101,0,0,7,0,7,-1,1,2},{101,0,0,7,0,7,-1,1,2},{101,0,0,7,0,7,-1,1,2},{101,0,0,7,0,7,-1,1,2},{101,0,0,7,0,7,-1,1,2},{101,0,0,7,0,7,-1,1,2},{101,0,0,7,0,7,-1,1,2},{101,0,0,7,0,7,-1,1,2},{101,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{101,0,0,14,0,7,-1,1,2},{101,0,0,14,0,7,-1,1,2},{101,0,0,14,0,7,-1,1,2},{101,0,0,14,0,7,-1,1,2},{101,0,0,14,0,7,-1,1,2},{101,0,0,14,0,7,-1,1,2},{101,0,0,14,0,7,-1,1,2},{101,0,0,14,0,7,-1,1,2},{101,0,0,14,0,7,-1,1,2},{101,0,0,14,0,7,-1,1,2},{101,0,0,14,0,7,-1,1,2},{101,0,0,14,0,7,-1,1,2},{101,0,0,14,0,7,-1,1,2},{101,0,0,14,0,7,-1,1,2},{101,0,0,14,0,7,-1,1,2},{101,0,0,14,0,7,-1,1,2}}, - {{101,0,0,14,0,7,-1,1,2},{101,0,0,14,0,7,-1,1,2},{101,0,0,14,0,7,-1,1,2},{101,0,0,14,0,7,-1,1,2},{101,0,0,14,0,7,-1,1,2},{101,0,0,14,0,7,-1,1,2},{101,0,0,14,0,7,-1,1,2},{101,0,0,14,0,7,-1,1,2},{101,0,0,14,0,7,-1,1,2},{101,0,0,14,0,7,-1,1,2},{101,0,0,14,0,7,-1,1,2},{101,0,0,14,0,7,-1,1,2},{101,0,0,14,0,7,-1,1,2},{101,0,0,14,0,7,-1,1,2},{101,0,0,14,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0}}, - {{101,0,0,21,0,8,-1,1,4},{101,0,0,21,0,8,-1,1,4},{101,0,0,21,0,8,-1,1,4},{101,0,0,21,0,8,-1,1,4},{101,0,0,21,0,8,-1,1,4},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{101,0,0,7,0,7,-1,1,2},{101,0,0,7,0,7,-1,1,2},{101,0,0,7,0,7,-1,1,2},{101,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2}}, - {{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,20},{71,0,0,7,0,7,-1,0,20},{71,0,0,7,0,7,-1,0,20},{71,0,0,7,0,7,-1,0,8},{71,0,0,7,0,7,-1,0,8},{71,0,0,7,0,7,-1,0,8},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2}}, - {{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,8},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,20},{71,0,0,7,0,7,-1,0,8},{71,0,0,7,0,7,-1,0,20},{71,0,0,7,0,7,-1,0,8},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2}}, - {{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,20},{71,0,0,7,0,7,-1,0,8},{71,0,0,7,0,7,-1,0,8},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2}}, - {{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{71,0,0,7,0,7,-1,0,2},{103,0,0,2,0,12,-1,0,0}}, - {{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2}}, - {{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,20},{156,0,0,7,0,7,-1,1,8}}, - {{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2},{156,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{130,0,0,7,0,6,-1,1,2},{130,0,0,7,0,6,-1,1,2},{130,0,0,7,0,6,-1,1,2},{130,0,0,7,0,6,-1,1,2},{130,0,0,7,0,6,-1,1,2},{130,0,0,7,0,6,-1,1,2},{130,0,0,7,0,6,-1,1,2},{130,0,0,7,0,6,-1,1,2},{130,0,0,7,0,6,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{149,0,0,7,0,7,-1,1,2},{149,0,0,7,0,7,-1,1,2},{149,0,0,7,0,7,-1,1,2},{149,0,0,7,0,7,-1,1,2},{149,0,0,7,0,7,-1,1,2},{149,0,0,7,0,7,-1,1,2},{149,0,0,7,0,7,-1,1,2},{149,0,0,7,0,7,-1,1,2},{149,0,0,7,0,7,-1,1,2},{149,0,0,7,0,7,-1,1,2},{149,0,0,7,0,7,-1,1,2},{149,0,0,7,0,7,-1,1,2},{149,0,0,7,0,7,-1,1,2},{149,0,0,7,0,7,-1,1,2},{149,0,0,7,0,7,-1,1,2},{149,0,0,7,0,7,-1,1,2}}, - {{149,0,0,7,0,7,-1,1,2},{149,0,0,7,0,7,-1,1,2},{149,0,0,7,0,7,-1,1,2},{149,0,0,7,0,7,-1,1,2},{149,0,0,7,0,7,-1,1,2},{149,0,0,7,0,7,-1,1,2},{149,0,0,7,0,7,-1,1,2},{149,0,0,7,0,7,-1,1,2},{149,0,0,7,0,7,-1,1,2},{149,0,0,7,0,7,-1,1,2},{149,0,0,7,0,7,-1,1,2},{149,0,0,7,0,7,-1,1,2},{149,0,0,7,0,7,-1,1,2},{149,0,0,7,0,7,-1,1,2},{149,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0}}, - {{149,0,0,13,0,7,0,1,19},{149,0,0,13,0,7,1,1,19},{149,0,0,13,0,7,2,1,19},{149,0,0,13,0,7,3,1,19},{149,0,0,13,0,7,4,1,19},{149,0,0,13,0,7,5,1,19},{149,0,0,13,0,7,6,1,19},{149,0,0,13,0,7,7,1,19},{149,0,0,13,0,7,8,1,19},{149,0,0,13,0,7,9,1,19},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{149,0,0,21,0,8,-1,1,4},{149,0,0,21,0,8,-1,1,4}}, - {{134,0,0,7,0,7,-1,1,2},{134,0,0,7,0,7,-1,1,2},{134,0,0,7,0,7,-1,1,2},{134,0,0,7,0,7,-1,1,2},{134,0,0,7,0,7,-1,1,2},{134,0,0,7,0,7,-1,1,2},{134,0,0,7,0,7,-1,1,2},{134,0,0,7,0,7,-1,1,2},{134,0,0,7,0,7,-1,1,2},{134,0,0,7,0,7,-1,1,2},{134,0,0,7,0,7,-1,1,2},{134,0,0,7,0,7,-1,1,2},{134,0,0,7,0,7,-1,1,2},{134,0,0,7,0,7,-1,1,2},{134,0,0,7,0,7,-1,1,2},{134,0,0,7,0,7,-1,1,2}}, - {{134,0,0,7,0,7,-1,1,2},{134,0,0,7,0,7,-1,1,2},{134,0,0,7,0,7,-1,1,2},{134,0,0,7,0,7,-1,1,2},{134,0,0,7,0,7,-1,1,2},{134,0,0,7,0,7,-1,1,2},{134,0,0,7,0,7,-1,1,2},{134,0,0,7,0,7,-1,1,2},{134,0,0,7,0,7,-1,1,2},{134,0,0,7,0,7,-1,1,2},{134,0,0,7,0,7,-1,1,2},{134,0,0,7,0,7,-1,1,2},{134,0,0,7,0,7,-1,1,2},{134,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{134,0,0,12,17,7,-1,1,9},{134,0,0,12,17,7,-1,1,9},{134,0,0,12,17,7,-1,1,9},{134,0,0,12,17,7,-1,1,9},{134,0,0,12,17,7,-1,1,9},{134,0,0,21,0,8,-1,1,4},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2}}, - {{75,0,0,12,17,7,-1,1,9},{75,0,0,12,17,7,-1,1,9},{75,0,0,12,17,7,-1,1,9},{75,0,0,12,17,7,-1,1,9},{75,0,0,12,17,7,-1,1,9},{75,0,0,12,17,7,-1,1,9},{75,0,0,12,17,7,-1,1,9},{75,0,0,21,0,8,-1,1,4},{75,0,0,21,0,8,-1,1,4},{75,0,0,21,0,8,-1,1,4},{75,0,0,21,0,8,-1,1,2},{75,0,0,21,0,8,-1,1,2},{75,0,0,26,0,8,-1,1,2},{75,0,0,26,0,8,-1,1,2},{75,0,0,26,0,8,-1,1,2},{75,0,0,26,0,8,-1,1,2}}, - {{75,0,0,6,0,7,-1,1,2},{75,0,0,6,0,7,-1,1,2},{75,0,0,6,0,7,-1,1,2},{75,0,0,6,0,7,-1,1,2},{75,0,0,21,0,8,-1,1,4},{75,0,0,26,0,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{75,0,0,13,0,7,0,1,19},{75,0,0,13,0,7,1,1,19},{75,0,0,13,0,7,2,1,19},{75,0,0,13,0,7,3,1,19},{75,0,0,13,0,7,4,1,19},{75,0,0,13,0,7,5,1,19},{75,0,0,13,0,7,6,1,19},{75,0,0,13,0,7,7,1,19},{75,0,0,13,0,7,8,1,19},{75,0,0,13,0,7,9,1,19},{103,0,0,2,0,12,-1,1,0},{75,0,0,15,0,8,-1,1,2},{75,0,0,15,0,8,-1,1,2},{75,0,0,15,0,8,-1,1,2},{75,0,0,15,0,8,-1,1,2},{75,0,0,15,0,8,-1,1,2}}, - {{75,0,0,15,0,8,-1,1,2},{75,0,0,15,0,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2}}, - {{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2},{75,0,0,7,0,7,-1,1,2}}, - {{92,0,0,7,0,5,-1,1,2},{92,0,0,7,0,5,-1,1,2},{92,0,0,7,0,5,-1,1,2},{92,0,0,7,0,5,-1,1,2},{92,0,0,7,0,5,-1,1,2},{92,0,0,7,0,5,-1,1,2},{92,0,0,7,0,5,-1,1,2},{92,0,0,7,0,5,-1,1,2},{92,0,0,7,0,5,-1,1,2},{92,0,0,7,0,5,-1,1,2},{92,0,0,7,0,5,-1,1,2},{92,0,0,7,0,5,-1,1,2},{92,0,0,7,0,5,-1,1,2},{92,0,0,7,0,5,-1,1,2},{92,0,0,7,0,5,-1,1,2},{92,0,0,7,0,5,-1,1,2}}, - {{92,0,0,7,0,5,-1,1,2},{92,0,0,7,0,5,-1,1,2},{92,0,0,7,0,5,-1,1,2},{92,0,0,7,0,5,-1,1,2},{92,0,0,7,0,5,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{92,0,0,7,0,5,-1,1,2},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9}}, - {{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9}}, - {{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{92,0,0,10,0,5,-1,1,9},{103,0,0,2,0,12,-1,1,0}}, - {{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{92,0,0,12,17,5,-1,1,9}}, - {{92,0,0,12,17,5,-1,1,9},{92,0,0,12,17,5,-1,1,9},{92,0,0,12,17,5,-1,1,9},{92,0,0,6,0,5,-1,1,2},{92,0,0,6,0,5,-1,1,2},{92,0,0,6,0,5,-1,1,2},{92,0,0,6,0,5,-1,1,2},{92,0,0,6,0,5,-1,1,2},{92,0,0,6,0,5,-1,1,2},{92,0,0,6,0,5,-1,1,2},{92,0,0,6,0,5,-1,1,2},{92,0,0,6,0,5,-1,1,2},{92,0,0,6,0,5,-1,1,2},{92,0,0,6,0,5,-1,1,2},{92,0,0,6,0,5,-1,1,2},{92,0,0,6,0,5,-1,1,2}}, - {{22,0,1,7,0,4,-1,0,14},{20,0,1,7,0,4,-1,0,14},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2}}, - {{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{135,0,0,7,0,7,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{135,0,0,26,0,8,-1,1,2},{135,0,0,12,17,7,-1,1,9},{135,0,0,12,17,7,-1,1,9},{135,0,0,21,0,8,-1,1,4}}, - {{0,0,0,1,18,10,-1,1,9},{0,0,0,1,18,10,-1,1,9},{0,0,0,1,18,10,-1,1,9},{0,0,0,1,18,10,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2}}, - {{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2}}, - {{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,9,-1,0,2},{0,0,0,26,0,9,-1,0,2}}, - {{0,0,0,26,0,9,-1,0,2},{0,0,0,26,0,9,-1,0,2},{0,0,0,26,0,9,-1,0,2},{0,0,0,26,0,9,-1,0,2},{0,0,0,26,0,9,-1,0,2},{0,0,0,10,0,7,-1,0,9},{0,0,0,10,0,7,-1,0,9},{1,0,0,12,17,7,-1,0,9},{1,0,0,12,17,7,-1,0,9},{1,0,0,12,17,7,-1,0,9},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,10,0,7,-1,0,9},{0,0,0,10,0,7,-1,0,9},{0,0,0,10,0,7,-1,0,9}}, - {{0,0,0,10,0,7,-1,0,9},{0,0,0,10,0,7,-1,0,9},{0,0,0,10,0,7,-1,0,9},{0,0,0,1,18,10,-1,0,9},{0,0,0,1,18,10,-1,0,9},{0,0,0,1,18,10,-1,0,9},{0,0,0,1,18,10,-1,0,9},{0,0,0,1,18,10,-1,0,9},{0,0,0,1,18,10,-1,0,9},{0,0,0,1,18,10,-1,0,9},{0,0,0,1,18,10,-1,0,9},{1,0,0,12,17,7,-1,0,9},{1,0,0,12,17,7,-1,0,9},{1,0,0,12,17,7,-1,0,9},{1,0,0,12,17,7,-1,0,9},{1,0,0,12,17,7,-1,0,9}}, - {{1,0,0,12,17,7,-1,0,9},{1,0,0,12,17,7,-1,0,9},{1,0,0,12,17,7,-1,0,9},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{1,0,0,12,17,7,-1,0,9},{1,0,0,12,17,7,-1,0,9},{1,0,0,12,17,7,-1,0,9},{1,0,0,12,17,7,-1,0,9},{1,0,0,12,17,7,-1,0,9},{1,0,0,12,17,7,-1,0,9},{1,0,0,12,17,7,-1,0,9},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2}}, - {{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{1,0,0,12,17,7,-1,0,9},{1,0,0,12,17,7,-1,0,9},{1,0,0,12,17,7,-1,0,9},{1,0,0,12,17,7,-1,0,9},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2}}, - {{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,9,-1,0,2},{0,0,0,26,0,9,-1,0,2},{0,0,0,26,0,9,-1,0,2},{0,0,0,26,0,9,-1,0,2},{0,0,0,26,0,9,-1,0,2}}, - {{0,0,0,26,0,9,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2}}, - {{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{0,0,0,26,0,8,-1,0,2},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{14,0,0,26,10,8,-1,1,2},{14,0,0,26,10,8,-1,1,2},{14,0,0,26,10,8,-1,1,2},{14,0,0,26,10,8,-1,1,2},{14,0,0,26,10,8,-1,1,2},{14,0,0,26,10,8,-1,1,2},{14,0,0,26,10,8,-1,1,2},{14,0,0,26,10,8,-1,1,2},{14,0,0,26,10,8,-1,1,2},{14,0,0,26,10,8,-1,1,2},{14,0,0,26,10,8,-1,1,2},{14,0,0,26,10,8,-1,1,2},{14,0,0,26,10,8,-1,1,2},{14,0,0,26,10,8,-1,1,2},{14,0,0,26,10,8,-1,1,2},{14,0,0,26,10,8,-1,1,2}}, - {{14,0,0,26,10,8,-1,1,2},{14,0,0,26,10,8,-1,1,2},{14,0,0,12,17,7,-1,1,9},{14,0,0,12,17,7,-1,1,9},{14,0,0,12,17,7,-1,1,9},{14,0,0,26,10,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{0,0,0,15,0,8,-1,0,2},{0,0,0,15,0,8,-1,0,2},{0,0,0,15,0,8,-1,0,2},{0,0,0,15,0,8,-1,0,2},{0,0,0,15,0,8,-1,0,2},{0,0,0,15,0,8,-1,0,2},{0,0,0,15,0,8,-1,0,2},{0,0,0,15,0,8,-1,0,2},{0,0,0,15,0,8,-1,0,2},{0,0,0,15,0,8,-1,0,2},{0,0,0,15,0,8,-1,0,2},{0,0,0,15,0,8,-1,0,2},{0,0,0,15,0,8,-1,0,2},{0,0,0,15,0,8,-1,0,2},{0,0,0,15,0,8,-1,0,2},{0,0,0,15,0,8,-1,0,2}}, - {{0,0,0,15,0,8,-1,0,2},{0,0,0,15,0,8,-1,0,2},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2}}, - {{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2}}, - {{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2}}, - {{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2}}, - {{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2}}, - {{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2}}, - {{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2}}, - {{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2}}, - {{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2}}, - {{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{0,0,0,9,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2}}, - {{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0},{0,0,0,5,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2}}, - {{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2}}, - {{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2}}, - {{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2}}, - {{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0}}, - {{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0},{0,0,0,9,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2}}, - {{0,0,0,9,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2}}, - {{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2}}, - {{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2}}, - {{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2}}, - {{0,0,0,9,0,9,-1,1,2},{0,0,0,25,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2}}, - {{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,25,10,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2}}, - {{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2}}, - {{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,25,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2}}, - {{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,25,10,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2}}, - {{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,25,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2}}, - {{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,25,10,9,-1,1,2}}, - {{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2}}, - {{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,25,0,9,-1,1,2}}, - {{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,25,10,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2}}, - {{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,25,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2}}, - {{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,25,10,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{0,0,0,9,0,9,-1,1,2},{0,0,0,5,0,9,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{0,0,0,13,2,9,0,1,19},{0,0,0,13,2,9,1,1,19}}, - {{0,0,0,13,2,9,2,1,19},{0,0,0,13,2,9,3,1,19},{0,0,0,13,2,9,4,1,19},{0,0,0,13,2,9,5,1,19},{0,0,0,13,2,9,6,1,19},{0,0,0,13,2,9,7,1,19},{0,0,0,13,2,9,8,1,19},{0,0,0,13,2,9,9,1,19},{0,0,0,13,2,9,0,1,19},{0,0,0,13,2,9,1,1,19},{0,0,0,13,2,9,2,1,19},{0,0,0,13,2,9,3,1,19},{0,0,0,13,2,9,4,1,19},{0,0,0,13,2,9,5,1,19},{0,0,0,13,2,9,6,1,19},{0,0,0,13,2,9,7,1,19}}, - {{0,0,0,13,2,9,8,1,19},{0,0,0,13,2,9,9,1,19},{0,0,0,13,2,9,0,1,19},{0,0,0,13,2,9,1,1,19},{0,0,0,13,2,9,2,1,19},{0,0,0,13,2,9,3,1,19},{0,0,0,13,2,9,4,1,19},{0,0,0,13,2,9,5,1,19},{0,0,0,13,2,9,6,1,19},{0,0,0,13,2,9,7,1,19},{0,0,0,13,2,9,8,1,19},{0,0,0,13,2,9,9,1,19},{0,0,0,13,2,9,0,1,19},{0,0,0,13,2,9,1,1,19},{0,0,0,13,2,9,2,1,19},{0,0,0,13,2,9,3,1,19}}, - {{0,0,0,13,2,9,4,1,19},{0,0,0,13,2,9,5,1,19},{0,0,0,13,2,9,6,1,19},{0,0,0,13,2,9,7,1,19},{0,0,0,13,2,9,8,1,19},{0,0,0,13,2,9,9,1,19},{0,0,0,13,2,9,0,1,19},{0,0,0,13,2,9,1,1,19},{0,0,0,13,2,9,2,1,19},{0,0,0,13,2,9,3,1,19},{0,0,0,13,2,9,4,1,19},{0,0,0,13,2,9,5,1,19},{0,0,0,13,2,9,6,1,19},{0,0,0,13,2,9,7,1,19},{0,0,0,13,2,9,8,1,19},{0,0,0,13,2,9,9,1,19}}, - {{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2}}, - {{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9}}, - {{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9}}, - {{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2}}, - {{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,12,17,7,-1,1,9},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2}}, - {{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,12,17,7,-1,1,9},{112,0,0,26,0,8,-1,1,2},{112,0,0,26,0,8,-1,1,2},{112,0,0,21,0,8,-1,1,4},{112,0,0,21,0,8,-1,1,4},{112,0,0,21,0,8,-1,1,4},{112,0,0,21,0,8,-1,1,4},{112,0,0,21,0,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9}}, - {{103,0,0,2,0,12,-1,1,0},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9},{112,0,0,12,17,7,-1,1,9}}, - {{140,0,0,7,1,7,-1,1,2},{140,0,0,7,1,7,-1,1,2},{140,0,0,7,1,7,-1,1,2},{140,0,0,7,1,7,-1,1,2},{140,0,0,7,1,7,-1,1,2},{140,0,0,7,1,7,-1,1,2},{140,0,0,7,1,7,-1,1,2},{140,0,0,7,1,7,-1,1,2},{140,0,0,7,1,7,-1,1,2},{140,0,0,7,1,7,-1,1,2},{140,0,0,7,1,7,-1,1,2},{140,0,0,7,1,7,-1,1,2},{140,0,0,7,1,7,-1,1,2},{140,0,0,7,1,7,-1,1,2},{140,0,0,7,1,7,-1,1,2},{140,0,0,7,1,7,-1,1,2}}, - {{140,0,0,7,1,7,-1,1,2},{140,0,0,7,1,7,-1,1,2},{140,0,0,7,1,7,-1,1,2},{140,0,0,7,1,7,-1,1,2},{140,0,0,7,1,7,-1,1,2},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{140,0,0,15,1,8,-1,1,2},{140,0,0,15,1,8,-1,1,2},{140,0,0,15,1,8,-1,1,2},{140,0,0,15,1,8,-1,1,2},{140,0,0,15,1,8,-1,1,2},{140,0,0,15,1,8,-1,1,2},{140,0,0,15,1,8,-1,1,2},{140,0,0,15,1,8,-1,1,2},{140,0,0,15,1,8,-1,1,2}}, - {{140,0,0,12,17,7,-1,1,9},{140,0,0,12,17,7,-1,1,9},{140,0,0,12,17,7,-1,1,9},{140,0,0,12,17,7,-1,1,9},{140,0,0,12,17,7,-1,1,9},{140,0,0,12,17,7,-1,1,9},{140,0,0,12,17,7,-1,1,9},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0},{103,0,0,2,1,12,-1,1,0}}, - {{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2}}, - {{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2},{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2}}, - {{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2},{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0}}, - {{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2},{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2},{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2},{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2}}, - {{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2},{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2},{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2},{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2},{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2}}, - {{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2}}, - {{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2},{103,0,0,2,13,12,-1,1,0}}, - {{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2}}, - {{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0}}, - {{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{103,0,0,2,13,12,-1,1,0},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2},{2,0,0,7,13,9,-1,1,2}}, - {{2,0,0,25,10,8,-1,1,2},{2,0,0,25,10,8,-1,1,2},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0},{103,0,0,2,13,12,-1,1,0}}, - {{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14}}, - {{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{103,0,0,2,0,12,-1,0,0}}, - {{103,0,0,2,0,12,-1,0,0},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14}}, - {{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{0,0,0,15,2,9,0,0,1},{0,0,0,15,2,9,0,0,1},{0,0,0,15,2,9,1,0,1},{0,0,0,15,2,9,2,0,1},{0,0,0,15,2,9,3,0,1},{0,0,0,15,2,9,4,0,1},{0,0,0,15,2,9,5,0,1},{0,0,0,15,2,9,6,0,1},{0,0,0,15,2,9,7,0,1},{0,0,0,15,2,9,8,0,1},{0,0,0,15,2,9,9,0,1},{0,0,0,15,10,8,-1,0,1},{0,0,0,15,10,8,-1,0,1},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,9,-1,0,2},{103,0,0,2,0,12,-1,0,0}}, - {{0,0,0,26,0,8,-1,0,1},{0,0,0,26,0,8,-1,0,1},{0,0,0,26,0,8,-1,0,1},{0,0,0,26,0,8,-1,0,1},{0,0,0,26,0,8,-1,0,1},{0,0,0,26,0,8,-1,0,1},{0,0,0,26,0,8,-1,0,1},{0,0,0,26,0,8,-1,0,1},{0,0,0,26,0,8,-1,0,1},{0,0,0,26,0,8,-1,0,1},{0,0,0,26,0,8,-1,0,1},{0,0,0,26,0,8,-1,0,1},{0,0,0,26,0,8,-1,0,1},{0,0,0,26,0,8,-1,0,1},{0,0,0,26,0,8,-1,0,1},{0,0,0,26,0,8,-1,0,1}}, - {{0,0,0,26,0,8,-1,0,1},{0,0,0,26,0,8,-1,0,1},{0,0,0,26,0,8,-1,0,1},{0,0,0,26,0,8,-1,0,1},{0,0,0,26,0,8,-1,0,1},{0,0,0,26,0,8,-1,0,1},{0,0,0,26,0,8,-1,0,1},{0,0,0,26,0,8,-1,0,1},{0,0,0,26,0,8,-1,0,1},{0,0,0,26,0,8,-1,0,1},{0,0,0,26,10,9,-1,0,2},{0,0,0,26,10,9,-1,0,2},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{0,0,0,26,0,9,-1,0,1},{0,0,0,26,0,8,-1,0,1},{0,0,0,26,0,8,-1,0,1},{0,0,0,26,0,8,-1,0,1},{0,0,0,26,0,8,-1,0,1},{0,0,0,26,0,8,-1,0,1},{0,0,0,26,0,8,-1,0,1},{0,0,0,26,0,8,-1,0,1},{0,0,0,26,0,8,-1,0,1},{0,0,0,26,0,8,-1,0,1},{0,0,0,26,0,8,-1,0,1},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{0,0,0,26,0,8,-1,0,39},{0,0,0,26,0,8,-1,0,39},{0,0,0,26,0,8,-1,0,39},{0,0,0,26,0,8,-1,0,39},{0,0,0,26,0,8,-1,0,39},{0,0,0,26,0,8,-1,0,39},{0,0,0,26,0,8,-1,0,39},{0,0,0,26,0,8,-1,0,39},{0,0,0,26,0,8,-1,0,39},{0,0,0,26,0,8,-1,0,39}}, - {{0,0,0,26,0,8,-1,0,39},{0,0,0,26,0,8,-1,0,39},{0,0,0,26,0,8,-1,0,39},{0,0,0,26,0,8,-1,0,39},{0,0,0,26,0,8,-1,0,39},{0,0,0,26,0,8,-1,0,39},{0,0,0,26,0,8,-1,0,39},{0,0,0,26,0,8,-1,0,39},{0,0,0,26,0,8,-1,0,39},{0,0,0,26,0,8,-1,0,39},{0,0,0,26,0,8,-1,0,39},{0,0,0,26,0,8,-1,0,39},{0,0,0,26,0,8,-1,0,39},{0,0,0,26,0,8,-1,0,39},{0,0,0,26,0,8,-1,0,39},{0,0,0,26,0,8,-1,0,39}}, - {{20,0,1,26,0,9,-1,2,14},{0,0,1,26,0,9,-1,2,14},{0,0,1,26,0,9,-1,0,14},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{0,0,1,26,0,9,-1,0,14},{0,0,1,26,0,9,-1,0,14},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14}}, - {{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14}}, - {{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,24,10,8,-1,0,2},{0,0,0,24,10,8,-1,0,2},{0,0,0,24,10,8,-1,0,2},{0,0,0,24,10,8,-1,0,2},{0,0,0,24,10,8,-1,0,2}}, - {{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,2}}, - {{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14}}, - {{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14}}, - {{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2}}, - {{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14}}, - {{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2}}, - {{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14}}, - {{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{103,0,0,2,0,12,-1,0,0},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14}}, - {{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{103,0,0,2,0,12,-1,0,0},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14}}, - {{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14}}, - {{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14}}, - {{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,23},{0,0,0,26,10,8,-1,0,23},{0,0,0,26,10,8,-1,0,23},{0,0,0,26,10,8,-1,0,18},{0,0,0,26,10,8,-1,0,18},{0,0,0,26,10,8,-1,0,18},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2}}, - {{0,0,0,26,10,8,-1,0,14},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{0,0,0,26,10,8,-1,0,14},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{0,0,0,26,10,8,-1,0,2},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0},{103,0,0,2,0,12,-1,0,0}}, - {{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{0,0,0,26,10,8,-1,1,2},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{0,0,0,26,10,8,-1,1,14},{0,0,0,26,10,8,-1,1,14},{0,0,0,26,10,8,-1,1,14},{0,0,0,26,10,8,-1,1,14},{0,0,0,26,10,8,-1,1,14},{0,0,0,26,10,8,-1,1,14},{0,0,0,26,10,8,-1,1,14},{0,0,0,26,10,8,-1,1,14},{0,0,0,26,10,8,-1,1,14},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{0,0,0,26,10,8,-1,1,14},{0,0,0,26,10,8,-1,1,14},{0,0,0,26,10,8,-1,1,14},{0,0,0,26,10,8,-1,1,14},{0,0,0,26,10,8,-1,1,14},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{0,0,0,26,10,8,-1,1,14},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14}}, - {{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14}}, - {{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14}}, - {{17,0,1,7,0,0,-1,0,14},{17,0,1,7,0,0,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14}}, - {{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,1,2,0,12,-1,0,14},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{103,0,0,2,0,12,-1,1,0},{0,0,0,1,18,11,-1,1,9},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}}, - {{0,0,0,1,18,10,-1,1,9},{0,0,0,1,18,10,-1,1,9},{0,0,0,1,18,10,-1,1,9},{0,0,0,1,18,10,-1,1,9},{0,0,0,1,18,10,-1,1,9},{0,0,0,1,18,10,-1,1,9},{0,0,0,1,18,10,-1,1,9},{0,0,0,1,18,10,-1,1,9},{0,0,0,1,18,10,-1,1,9},{0,0,0,1,18,10,-1,1,9},{0,0,0,1,18,10,-1,1,9},{0,0,0,1,18,10,-1,1,9},{0,0,0,1,18,10,-1,1,9},{0,0,0,1,18,10,-1,1,9},{0,0,0,1,18,10,-1,1,9},{0,0,0,1,18,10,-1,1,9}}, - {{0,0,0,1,18,10,-1,1,9},{0,0,0,1,18,10,-1,1,9},{0,0,0,1,18,10,-1,1,9},{0,0,0,1,18,10,-1,1,9},{0,0,0,1,18,10,-1,1,9},{0,0,0,1,18,10,-1,1,9},{0,0,0,1,18,10,-1,1,9},{0,0,0,1,18,10,-1,1,9},{0,0,0,1,18,10,-1,1,9},{0,0,0,1,18,10,-1,1,9},{0,0,0,1,18,10,-1,1,9},{0,0,0,1,18,10,-1,1,9},{0,0,0,1,18,10,-1,1,9},{0,0,0,1,18,10,-1,1,9},{0,0,0,1,18,10,-1,1,9},{0,0,0,1,18,11,-1,1,9}}, - {{103,0,0,3,0,12,-1,0,0},{103,0,0,3,0,12,-1,0,0},{103,0,0,3,0,12,-1,0,0},{103,0,0,3,0,12,-1,0,0},{103,0,0,3,0,12,-1,0,0},{103,0,0,3,0,12,-1,0,0},{103,0,0,3,0,12,-1,0,0},{103,0,0,3,0,12,-1,0,0},{103,0,0,3,0,12,-1,0,0},{103,0,0,3,0,12,-1,0,0},{103,0,0,3,0,12,-1,0,0},{103,0,0,3,0,12,-1,0,0},{103,0,0,3,0,12,-1,0,0},{103,0,0,3,0,12,-1,0,0},{103,0,0,2,0,12,-1,1,0},{103,0,0,2,0,12,-1,1,0}} -}; -#endif - #define kFullWidthMaxPlane 0 #define kFullWidthIndexBits 10 @@ -1747,102 +346,6 @@ static const uint16_t sFullWidthInverseValues[13][64] = { }; -#if !ENABLE_INTL_API -#define kCaseMapMaxPlane 1 -#define kCaseMapIndexBits 11 -#define kCaseMapCharBits 5 -static const uint8_t sCaseMapPlanes[1] = {1}; - -static const uint8_t sCaseMapPages[2][2048] = { - {0,0,1,2,0,3,4,5,6,7,8,9,10,11,12,13,6,14,15,16,17,0,0,0,0,0,18,19,20,21,22,23,24,25,26,6,27,6,28,6,6,29,30,31,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,33,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,35,36,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,38,0,0,0,0,6,6,6,6,39,6,6,6,40,41,42,43,41,44,45,46,0,0,0,0,0,0,0,0,0,47,48,49,50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,51,52,53,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,54,55,56,57,6,6,6,58,59,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,61,62,0,0,0,0,63,6,64,65,66,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,68,69,70,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,71,72,0,0,0,0,0}, - {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,73,74,75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,76,77,78,79,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,81,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} -}; - -static const uint32_t sCaseMapValues[82][32] = { - {0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000}, - {0x00000000,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000}, - {0x00000000,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000}, - {0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x10000329,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000}, - {0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x00000000,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x00000000}, - {0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x00000000,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000187}, - {0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001}, - {0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000159,0x10000178,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x00000000,0x40000003,0x10000003,0x40000007,0x10000007,0x40000003,0x10000003,0x4000007f}, - {0x1000007f,0x40000003,0x10000003,0x40000007,0x10000007,0x40000003,0x10000003,0x4000000f,0x1000000f,0x00000000,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001}, - {0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000187,0x40000003,0x10000003,0x40000007,0x10000007,0x40000003,0x10000003,0x1000012c}, - {0x100003c3,0x400003d2,0x40000001,0x10000001,0x40000001,0x10000001,0x400003d2,0x4000000f,0x1000000f,0x400003df,0x400003dd,0x40000007,0x10000007,0x00000000,0x40000053,0x400003d6,0x400003cb,0x40000003,0x10000003,0x400003f3,0x400003f7,0x10000063,0x400003ff,0x400003ff,0x40000001,0x10000001,0x100003a7,0x00000000,0x400003f3,0x400003ef,0x100003be,0x400003ea}, - {0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000326,0x4000000f,0x1000000f,0x4000032a,0x00000000,0x00000000,0x40000001,0x10000001,0x40000326,0x4000001f,0x1000001f,0x4000033b,0x40000339,0x40000007,0x10000007,0x40000003,0x10000003,0x40000325,0x40000001,0x10000001,0x00000000,0x00000000,0x40000001,0x10000001,0x00000000,0x10000048}, - {0x00000000,0x00000000,0x00000000,0x00000000,0x40000002,0x80000001,0x20000003,0x4000000e,0x8000000f,0x20000001,0x40000006,0x80000001,0x20000007,0x40000003,0x10000003,0x4000001f,0x1000001f,0x40000003,0x10000003,0x40000007,0x10000007,0x40000003,0x10000003,0x4000000f,0x1000000f,0x40000003,0x10000003,0x40000007,0x10000007,0x10000053,0x40000001,0x10000001}, - {0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x00000000,0x40000002,0x80000003,0x20000001,0x40000001,0x10000001,0x40000063,0x40000048,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001}, - {0x400003be,0x00000000,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x40002e5f,0x40000007,0x10000007,0x400003a7,0x40002e58,0x10002e41}, - {0x10002e3f,0x40000003,0x10000003,0x400003c3,0x400000cd,0x400000c9,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x10002e3f,0x10002e3c,0x10002e22,0x100003d2,0x100003d2,0x00000000,0x100003df,0x100003dd,0x00000000,0x100003d6,0x00000000,0x100003cb,0x1000a5f7,0x00000000,0x00000000,0x00000000}, - {0x100003f3,0x1000a5cd,0x00000000,0x100003f7,0x00000000,0x1000a5e8,0x1000a5cc,0x00000000,0x100003ff,0x100003ff,0x00000000,0x10002e09,0x1000a5c1,0x00000000,0x00000000,0x100003f3,0x00000000,0x10002e1f,0x100003ef,0x00000000,0x00000000,0x100003ea,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x10002e19,0x00000000,0x00000000}, - {0x10000326,0x00000000,0x00000000,0x1000032a,0x00000000,0x00000000,0x00000000,0x1000a536,0x10000326,0x100000cd,0x1000033b,0x10000339,0x100000c9,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x10000325,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1000a52f,0x1000a52e,0x00000000}, - {0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x100000dc,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000}, - {0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x40000001,0x10000001,0x40000001,0x10000001,0x00000000,0x00000000,0x40000001,0x10000001,0x00000000,0x00000000,0x00000000,0x10000086,0x10000082,0x10000082,0x00000000,0x4000008c}, - {0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x4000002a,0x00000000,0x40000025,0x40000027,0x40000025,0x00000000,0x40000040,0x00000000,0x40000043,0x40000041,0x00000000,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020}, - {0x40000060,0x40000060,0x00000000,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x1000002a,0x10000025,0x10000027,0x10000025,0x00000000,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020}, - {0x10000060,0x10000060,0x10000061,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000040,0x10000043,0x10000041,0x40000018,0x10000042,0x10000049,0x00000000,0x00000000,0x00000000,0x10000073,0x10000076,0x10000018,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001}, - {0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x1000006a,0x10000050,0x1000000b,0x1000008c,0x4000004c,0x10000060,0x00000000,0x4000000f,0x1000000f,0x4000000b,0x40000001,0x10000001,0x00000000,0x40000086,0x40000082,0x40000082}, - {0x40000050,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020,0x40000020}, - {0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020,0x10000020}, - {0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050}, - {0x40000001,0x10000001,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001}, - {0x4000000f,0x40000003,0x10000003,0x40000007,0x10000007,0x40000003,0x10000003,0x4000000f,0x1000000f,0x40000003,0x10000003,0x40000007,0x10000007,0x40000003,0x10000003,0x1000000f,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001}, - {0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x00000000,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050}, - {0x40000030,0x40000030,0x40000030,0x40000030,0x40000030,0x40000030,0x40000030,0x40000030,0x40000030,0x40000030,0x40000030,0x40000030,0x40000030,0x40000030,0x40000030,0x40000030,0x400000d0,0x400000d0,0x400000d0,0x400000d0,0x400000d0,0x400000d0,0x400000d0,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000}, - {0x00000000,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000030,0x10000030,0x10000030,0x10000030,0x10000030,0x10000030,0x10000030,0x10000030,0x10000030,0x10000030,0x10000030,0x10000030,0x10000030,0x10000030,0x10000030,0x10000030}, - {0x100000d0,0x100000d0,0x100000d0,0x100000d0,0x100000d0,0x100000d0,0x100000d0,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000}, - {0x40003da0,0x40003da0,0x40003da0,0x40003da0,0x40003da0,0x40003da0,0x40003da0,0x40003da0,0x40003da0,0x40003da0,0x40003da0,0x40003da0,0x40003da0,0x40003da0,0x40003da0,0x40003da0,0x40003da0,0x40003da0,0x40003da0,0x40003da0,0x40003da0,0x40003da0,0x40003da0,0x40003da0,0x40003da0,0x40003da0,0x40003da0,0x40003da0,0x40003da0,0x40003da0,0x40003da0,0x40003da0}, - {0x40003de0,0x40003de0,0x40003de0,0x40003de0,0x40003de0,0x40003de0,0x00000000,0x40003de0,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x40003de0,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000}, - {0x4000b8d0,0x4000b8d0,0x4000b8d0,0x4000b8d0,0x4000b8d0,0x4000b8d0,0x4000b8d0,0x4000b8d0,0x4000b8d0,0x4000b8d0,0x4000b8d0,0x4000b8d0,0x4000b8d0,0x4000b8d0,0x4000b8d0,0x4000b8d0,0x4000b830,0x4000b830,0x4000b830,0x4000b830,0x4000b830,0x4000b830,0x4000b830,0x4000b830,0x4000b830,0x4000b830,0x4000b830,0x4000b830,0x4000b830,0x4000b830,0x4000b830,0x4000b830}, - {0x4000b850,0x4000b850,0x4000b850,0x4000b850,0x4000b850,0x4000b850,0x4000b850,0x4000b850,0x4000b850,0x4000b850,0x4000b850,0x4000b850,0x4000b850,0x4000b850,0x4000b850,0x4000b850,0x4000b870,0x4000b870,0x4000b870,0x4000b870,0x4000b870,0x4000b870,0x4000b870,0x4000b870,0x4000b870,0x4000b870,0x4000b870,0x4000b870,0x4000b870,0x4000b870,0x4000b870,0x4000b870}, - {0x4000b850,0x4000b850,0x4000b850,0x4000b850,0x4000b850,0x4000b850,0x4000b850,0x4000b850,0x4000b850,0x4000b850,0x4000b850,0x4000b850,0x4000b850,0x4000b850,0x4000b850,0x4000b850,0x40000008,0x40000008,0x40000008,0x40000008,0x40000008,0x40000008,0x00000000,0x00000000,0x10000008,0x10000008,0x10000008,0x10000008,0x10000008,0x10000008,0x00000000,0x00000000}, - {0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1000ba04,0x00000000,0x00000000,0x00000000,0x1000311e,0x00000000,0x00000000}, - {0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x100000fb,0x00000000,0x00000000,0x40001e41,0x00000000}, - {0x10000008,0x10000008,0x10000008,0x10000008,0x10000008,0x10000008,0x10000008,0x10000008,0x40000008,0x40000008,0x40000008,0x40000008,0x40000008,0x40000008,0x40000008,0x40000008,0x10000008,0x10000008,0x10000008,0x10000008,0x10000008,0x10000008,0x00000000,0x00000000,0x40000008,0x40000008,0x40000008,0x40000008,0x40000008,0x40000008,0x00000000,0x00000000}, - {0x10000008,0x10000008,0x10000008,0x10000008,0x10000008,0x10000008,0x10000008,0x10000008,0x40000008,0x40000008,0x40000008,0x40000008,0x40000008,0x40000008,0x40000008,0x40000008,0x10000008,0x10000008,0x10000008,0x10000008,0x10000008,0x10000008,0x10000008,0x10000008,0x40000008,0x40000008,0x40000008,0x40000008,0x40000008,0x40000008,0x40000008,0x40000008}, - {0x10000008,0x10000008,0x10000008,0x10000008,0x10000008,0x10000008,0x00000000,0x00000000,0x40000008,0x40000008,0x40000008,0x40000008,0x40000008,0x40000008,0x00000000,0x00000000,0x00000000,0x10000008,0x00000000,0x10000008,0x00000000,0x10000008,0x00000000,0x10000008,0x00000000,0x40000008,0x00000000,0x40000008,0x00000000,0x40000008,0x00000000,0x40000008}, - {0x10000008,0x10000008,0x10000008,0x10000008,0x10000008,0x10000008,0x10000008,0x10000008,0x40000008,0x40000008,0x40000008,0x40000008,0x40000008,0x40000008,0x40000008,0x40000008,0x100000ca,0x100000ca,0x100000ba,0x100000ba,0x100000be,0x100000be,0x100000ac,0x100000ac,0x10000080,0x10000080,0x10000090,0x10000090,0x10000086,0x10000086,0x00000000,0x00000000}, - {0x10000008,0x10000008,0x10000008,0x10000008,0x10000008,0x10000008,0x10000008,0x10000008,0x40000008,0x40000008,0x40000008,0x40000008,0x40000008,0x40000008,0x40000008,0x40000008,0x10000008,0x10000008,0x00000000,0x1000000f,0x00000000,0x00000000,0x00000000,0x00000000,0x40000008,0x40000008,0x400000ca,0x400000ca,0x4000000f,0x00000000,0x10001c27,0x00000000}, - {0x00000000,0x00000000,0x00000000,0x1000000f,0x00000000,0x00000000,0x00000000,0x00000000,0x400000ba,0x400000ba,0x400000be,0x400000be,0x4000000f,0x00000000,0x00000000,0x00000000,0x10000008,0x10000008,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x40000008,0x40000008,0x400000ac,0x400000ac,0x00000000,0x00000000,0x00000000,0x00000000}, - {0x10000008,0x10000008,0x00000000,0x00000000,0x00000000,0x10000009,0x00000000,0x00000000,0x40000008,0x40000008,0x40000090,0x40000090,0x40000009,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1000000f,0x00000000,0x00000000,0x00000000,0x00000000,0x40000080,0x40000080,0x40000086,0x40000086,0x4000000f,0x00000000,0x00000000,0x00000000}, - {0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x400022ef,0x00000000,0x00000000,0x00000000,0x40002141,0x400021ce,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x4000007c,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000}, - {0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1000007c,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000}, - {0x40000010,0x40000010,0x40000010,0x40000010,0x40000010,0x40000010,0x40000010,0x40000010,0x40000010,0x40000010,0x40000010,0x40000010,0x40000010,0x40000010,0x40000010,0x40000010,0x10000010,0x10000010,0x10000010,0x10000010,0x10000010,0x10000010,0x10000010,0x10000010,0x10000010,0x10000010,0x10000010,0x10000010,0x10000010,0x10000010,0x10000010,0x10000010}, - {0x00000000,0x00000000,0x00000000,0x40000007,0x10000007,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000}, - {0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x40000066,0x40000066,0x4000006a,0x4000006a,0x4000006e,0x4000006e,0x4000006a,0x4000006a,0x40000066,0x40000066}, - {0x4000001a,0x4000001a,0x4000001e,0x4000001e,0x4000001a,0x4000001a,0x40000026,0x40000026,0x4000002a,0x4000002a,0x4000002e,0x4000002e,0x4000002a,0x4000002a,0x40000026,0x40000026,0x10000066,0x10000066,0x1000006a,0x1000006a,0x1000006e,0x1000006e,0x1000006a,0x1000006a,0x10000066,0x10000066,0x1000001a,0x1000001a,0x1000001e,0x1000001e,0x1000001a,0x1000001a}, - {0x10000026,0x10000026,0x1000002a,0x1000002a,0x1000002e,0x1000002e,0x1000002a,0x1000002a,0x10000026,0x10000026,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000}, - {0x40000030,0x40000030,0x40000030,0x40000030,0x40000030,0x40000030,0x40000030,0x40000030,0x40000030,0x40000030,0x40000030,0x40000030,0x40000030,0x40000030,0x40000030,0x40000030,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050,0x40000050}, - {0x40000070,0x40000070,0x40000070,0x40000070,0x40000070,0x40000070,0x40000070,0x40000070,0x40000070,0x40000070,0x40000070,0x40000070,0x40000070,0x40000070,0x40000070,0x00000000,0x10000030,0x10000030,0x10000030,0x10000030,0x10000030,0x10000030,0x10000030,0x10000030,0x10000030,0x10000030,0x10000030,0x10000030,0x10000030,0x10000030,0x10000030,0x10000030}, - {0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000050,0x10000070,0x10000070,0x10000070,0x10000070,0x10000070,0x10000070,0x10000070,0x10000070,0x10000070,0x10000070,0x10000070,0x10000070,0x10000070,0x10000070,0x10000070,0x00000000}, - {0x40000001,0x10000001,0x40002e09,0x4000311e,0x40002e19,0x10002e5f,0x10002e58,0x4000000f,0x1000000f,0x40000003,0x10000003,0x40000007,0x10000007,0x40002e3c,0x40002e1f,0x40002e3f,0x40002e22,0x00000000,0x40000001,0x10000001,0x00000000,0x40000003,0x10000003,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x40002e41,0x40002e3f}, - {0x40000001,0x10000001,0x40000001,0x10000001,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x40000007,0x10000007,0x40000003,0x10000003,0x00000000,0x00000000,0x00000000,0x40000001,0x10000001,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000}, - {0x10003da0,0x10003da0,0x10003da0,0x10003da0,0x10003da0,0x10003da0,0x10003da0,0x10003da0,0x10003da0,0x10003da0,0x10003da0,0x10003da0,0x10003da0,0x10003da0,0x10003da0,0x10003da0,0x10003da0,0x10003da0,0x10003da0,0x10003da0,0x10003da0,0x10003da0,0x10003da0,0x10003da0,0x10003da0,0x10003da0,0x10003da0,0x10003da0,0x10003da0,0x10003da0,0x10003da0,0x10003da0}, - {0x10003de0,0x10003de0,0x10003de0,0x10003de0,0x10003de0,0x10003de0,0x00000000,0x10003de0,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x10003de0,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000}, - {0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000}, - {0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x00000000,0x00000000,0x00000000,0x00000000}, - {0x00000000,0x00000000,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x00000000,0x00000000,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001}, - {0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x40000003,0x10000003,0x40000007,0x10000007,0x4000ba04,0x40000001,0x10000001}, - {0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x00000000,0x00000000,0x00000000,0x40000007,0x10000007,0x4000a5e8,0x00000000,0x00000000,0x40000001,0x10000001,0x40000001,0x10000001,0x00000000,0x00000000,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001}, - {0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x40000001,0x10000001,0x4000a5cc,0x4000a5f7,0x4000a5cd,0x4000a5c1,0x00000000,0x00000000,0x4000a52e,0x4000a536,0x4000a52f,0x40000ce0,0x40000001,0x10000001,0x40000001,0x10000001,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000}, - {0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x10000ce0,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000}, - {0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x1000b8d0,0x1000b8d0,0x1000b8d0,0x1000b8d0,0x1000b8d0,0x1000b8d0,0x1000b8d0,0x1000b8d0,0x1000b8d0,0x1000b8d0,0x1000b8d0,0x1000b8d0,0x1000b8d0,0x1000b8d0,0x1000b8d0,0x1000b8d0}, - {0x1000b830,0x1000b830,0x1000b830,0x1000b830,0x1000b830,0x1000b830,0x1000b830,0x1000b830,0x1000b830,0x1000b830,0x1000b830,0x1000b830,0x1000b830,0x1000b830,0x1000b830,0x1000b830,0x1000b850,0x1000b850,0x1000b850,0x1000b850,0x1000b850,0x1000b850,0x1000b850,0x1000b850,0x1000b850,0x1000b850,0x1000b850,0x1000b850,0x1000b850,0x1000b850,0x1000b850,0x1000b850}, - {0x1000b870,0x1000b870,0x1000b870,0x1000b870,0x1000b870,0x1000b870,0x1000b870,0x1000b870,0x1000b870,0x1000b870,0x1000b870,0x1000b870,0x1000b870,0x1000b870,0x1000b870,0x1000b870,0x1000b850,0x1000b850,0x1000b850,0x1000b850,0x1000b850,0x1000b850,0x1000b850,0x1000b850,0x1000b850,0x1000b850,0x1000b850,0x1000b850,0x1000b850,0x1000b850,0x1000b850,0x1000b850}, - {0x00000000,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000}, - {0x00000000,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000}, - {0x40000028,0x40000028,0x40000028,0x40000028,0x40000028,0x40000028,0x40000028,0x40000028,0x40000038,0x40000038,0x40000038,0x40000038,0x40000038,0x40000038,0x40000038,0x40000038,0x40000028,0x40000028,0x40000028,0x40000028,0x40000028,0x40000028,0x40000028,0x40000028,0x40000058,0x40000058,0x40000058,0x40000058,0x40000058,0x40000058,0x40000058,0x40000058}, - {0x40000068,0x40000068,0x40000068,0x40000068,0x40000068,0x40000068,0x40000068,0x40000068,0x10000028,0x10000028,0x10000028,0x10000028,0x10000028,0x10000028,0x10000028,0x10000028,0x10000038,0x10000038,0x10000038,0x10000038,0x10000038,0x10000038,0x10000038,0x10000038,0x10000028,0x10000028,0x10000028,0x10000028,0x10000028,0x10000028,0x10000028,0x10000028}, - {0x10000058,0x10000058,0x10000058,0x10000058,0x10000058,0x10000058,0x10000058,0x10000058,0x10000068,0x10000068,0x10000068,0x10000068,0x10000068,0x10000068,0x10000068,0x10000068,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000}, - {0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040}, - {0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x40000040,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000}, - {0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040}, - {0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x10000040,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000}, - {0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060,0x40000060}, - {0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060,0x10000060} -}; -#endif const uint32_t kTitleToUpper = 0x80000000; const uint32_t kUpperToLower = 0x40000000; const uint32_t kLowerToTitle = 0x20000000; diff --git a/intl/unicharutil/util/nsUnicodeScriptCodes.h b/intl/unicharutil/util/nsUnicodeScriptCodes.h index 40bc6039e..d07ac67ff 100644 --- a/intl/unicharutil/util/nsUnicodeScriptCodes.h +++ b/intl/unicharutil/util/nsUnicodeScriptCodes.h @@ -70,17 +70,6 @@ Standard. #pragma pack(1) -#if !ENABLE_INTL_API - -struct nsCharProps1 { - unsigned char mMirrorOffsetIndex:5; - unsigned char mHangulType:3; - unsigned char mCombiningClass:8; -}; - -#endif - -#if ENABLE_INTL_API struct nsCharProps2 { // Currently only 6 bits are defined here, so 2 more could be added without @@ -89,24 +78,6 @@ struct nsCharProps2 { unsigned char mXidmod:4; }; -#endif - -#if !ENABLE_INTL_API - -struct nsCharProps2 { - unsigned char mScriptCode:8; - unsigned char mPairedBracketType:2; - unsigned char mEastAsianWidthFWH:1; - unsigned char mCategory:5; - unsigned char mBidiCategory:5; - unsigned char mXidmod:4; - signed char mNumericValue:5; - unsigned char mVertOrient:2; - unsigned char mLineBreak; // only 6 bits actually needed -}; - -#endif - #pragma pack() namespace mozilla { diff --git a/intl/unicharutil/util/objs.mozbuild b/intl/unicharutil/util/objs.mozbuild index de9de37a7..448168473 100644 --- a/intl/unicharutil/util/objs.mozbuild +++ b/intl/unicharutil/util/objs.mozbuild @@ -6,14 +6,7 @@ intl_unicharutil_util_lcppsrcs = [ 'GreekCasing.cpp', -] - -if CONFIG['ENABLE_INTL_API']: - intl_unicharutil_util_lcppsrcs += [ - 'ICUUtils.cpp', - ] - -intl_unicharutil_util_lcppsrcs += [ + 'ICUUtils.cpp', 'IrishCasing.cpp', 'nsBidiUtils.cpp', 'nsSpecialCasingData.cpp', diff --git a/js/src/builtin/Array.js b/js/src/builtin/Array.js index 45f90a7b8..360dd2af1 100644 --- a/js/src/builtin/Array.js +++ b/js/src/builtin/Array.js @@ -900,11 +900,7 @@ function ArrayToLocaleString(locales, options) { if (firstElement === undefined || firstElement === null) { R = ""; } else { -#if EXPOSE_INTL_API R = ToString(callContentFunction(firstElement.toLocaleString, firstElement, locales, options)); -#else - R = ToString(callContentFunction(firstElement.toLocaleString, firstElement)); -#endif } // Step 3 (reordered). @@ -919,11 +915,7 @@ function ArrayToLocaleString(locales, options) { // Steps 9.a, 9.c-e. R += separator; if (!(nextElement === undefined || nextElement === null)) { -#if EXPOSE_INTL_API R += ToString(callContentFunction(nextElement.toLocaleString, nextElement, locales, options)); -#else - R += ToString(callContentFunction(nextElement.toLocaleString, nextElement)); -#endif } } diff --git a/js/src/builtin/Intl.cpp b/js/src/builtin/Intl.cpp index cd808cb10..71f7b58d4 100644 --- a/js/src/builtin/Intl.cpp +++ b/js/src/builtin/Intl.cpp @@ -23,7 +23,6 @@ #include "jsobj.h" #include "builtin/IntlTimeZoneData.h" -#if ENABLE_INTL_API #include "unicode/ucal.h" #include "unicode/ucol.h" #include "unicode/udat.h" @@ -32,7 +31,6 @@ #include "unicode/unum.h" #include "unicode/unumsys.h" #include "unicode/ustring.h" -#endif #include "vm/DateTime.h" #include "vm/GlobalObject.h" #include "vm/Interpreter.h" @@ -60,603 +58,6 @@ using mozilla::PodCopy; * http://userguide.icu-project.org/design#TOC-Error-Handling */ - -/******************** ICU stubs ********************/ - -#if !ENABLE_INTL_API - -/* - * When the Internationalization API isn't enabled, we also shouldn't link - * against ICU. However, we still want to compile this code in order to prevent - * bit rot. The following stub implementations for ICU functions make this - * possible. The functions using them should never be called, so they assert - * and return error codes. Signatures adapted from ICU header files locid.h, - * numsys.h, ucal.h, ucol.h, udat.h, udatpg.h, uenum.h, unum.h; see the ICU - * directory for license. - */ - -typedef bool UBool; -typedef char16_t UChar; -typedef double UDate; - -enum UErrorCode { - U_ZERO_ERROR, - U_BUFFER_OVERFLOW_ERROR, -}; - -static inline UBool -U_FAILURE(UErrorCode code) -{ - MOZ_CRASH("U_FAILURE: Intl API disabled"); -} - -inline const UChar* -Char16ToUChar(const char16_t* chars) -{ - MOZ_CRASH("Char16ToUChar: Intl API disabled"); -} - -inline UChar* -Char16ToUChar(char16_t* chars) -{ - MOZ_CRASH("Char16ToUChar: Intl API disabled"); -} - -inline char16_t* -UCharToChar16(UChar* chars) -{ - MOZ_CRASH("UCharToChar16: Intl API disabled"); -} - -inline const char16_t* -UCharToChar16(const UChar* chars) -{ - MOZ_CRASH("UCharToChar16: Intl API disabled"); -} - -static int32_t -u_strlen(const UChar* s) -{ - MOZ_CRASH("u_strlen: Intl API disabled"); -} - -struct UEnumeration; - -static int32_t -uenum_count(UEnumeration* en, UErrorCode* status) -{ - MOZ_CRASH("uenum_count: Intl API disabled"); -} - -static const char* -uenum_next(UEnumeration* en, int32_t* resultLength, UErrorCode* status) -{ - MOZ_CRASH("uenum_next: Intl API disabled"); -} - -static void -uenum_close(UEnumeration* en) -{ - MOZ_CRASH("uenum_close: Intl API disabled"); -} - -struct UCollator; - -enum UColAttribute { - UCOL_ALTERNATE_HANDLING, - UCOL_CASE_FIRST, - UCOL_CASE_LEVEL, - UCOL_NORMALIZATION_MODE, - UCOL_STRENGTH, - UCOL_NUMERIC_COLLATION, -}; - -enum UColAttributeValue { - UCOL_DEFAULT = -1, - UCOL_PRIMARY = 0, - UCOL_SECONDARY = 1, - UCOL_TERTIARY = 2, - UCOL_OFF = 16, - UCOL_ON = 17, - UCOL_SHIFTED = 20, - UCOL_LOWER_FIRST = 24, - UCOL_UPPER_FIRST = 25, -}; - -enum UCollationResult { - UCOL_EQUAL = 0, - UCOL_GREATER = 1, - UCOL_LESS = -1 -}; - -static int32_t -ucol_countAvailable() -{ - MOZ_CRASH("ucol_countAvailable: Intl API disabled"); -} - -static const char* -ucol_getAvailable(int32_t localeIndex) -{ - MOZ_CRASH("ucol_getAvailable: Intl API disabled"); -} - -static UCollator* -ucol_open(const char* loc, UErrorCode* status) -{ - MOZ_CRASH("ucol_open: Intl API disabled"); -} - -static void -ucol_setAttribute(UCollator* coll, UColAttribute attr, UColAttributeValue value, UErrorCode* status) -{ - MOZ_CRASH("ucol_setAttribute: Intl API disabled"); -} - -static UCollationResult -ucol_strcoll(const UCollator* coll, const UChar* source, int32_t sourceLength, - const UChar* target, int32_t targetLength) -{ - MOZ_CRASH("ucol_strcoll: Intl API disabled"); -} - -static void -ucol_close(UCollator* coll) -{ - MOZ_CRASH("ucol_close: Intl API disabled"); -} - -static UEnumeration* -ucol_getKeywordValuesForLocale(const char* key, const char* locale, UBool commonlyUsed, - UErrorCode* status) -{ - MOZ_CRASH("ucol_getKeywordValuesForLocale: Intl API disabled"); -} - -struct UParseError; -struct UFieldPosition; -struct UFieldPositionIterator; -typedef void* UNumberFormat; - -enum UNumberFormatStyle { - UNUM_DECIMAL = 1, - UNUM_CURRENCY, - UNUM_PERCENT, - UNUM_CURRENCY_ISO, - UNUM_CURRENCY_PLURAL, -}; - -enum UNumberFormatRoundingMode { - UNUM_ROUND_HALFUP, -}; - -enum UNumberFormatAttribute { - UNUM_GROUPING_USED, - UNUM_MIN_INTEGER_DIGITS, - UNUM_MAX_FRACTION_DIGITS, - UNUM_MIN_FRACTION_DIGITS, - UNUM_ROUNDING_MODE, - UNUM_SIGNIFICANT_DIGITS_USED, - UNUM_MIN_SIGNIFICANT_DIGITS, - UNUM_MAX_SIGNIFICANT_DIGITS, -}; - -enum UNumberFormatTextAttribute { - UNUM_CURRENCY_CODE, -}; - -static int32_t -unum_countAvailable() -{ - MOZ_CRASH("unum_countAvailable: Intl API disabled"); -} - -static const char* -unum_getAvailable(int32_t localeIndex) -{ - MOZ_CRASH("unum_getAvailable: Intl API disabled"); -} - -static UNumberFormat* -unum_open(UNumberFormatStyle style, const UChar* pattern, int32_t patternLength, - const char* locale, UParseError* parseErr, UErrorCode* status) -{ - MOZ_CRASH("unum_open: Intl API disabled"); -} - -static void -unum_setAttribute(UNumberFormat* fmt, UNumberFormatAttribute attr, int32_t newValue) -{ - MOZ_CRASH("unum_setAttribute: Intl API disabled"); -} - -static int32_t -unum_formatDouble(const UNumberFormat* fmt, double number, UChar* result, - int32_t resultLength, UFieldPosition* pos, UErrorCode* status) -{ - MOZ_CRASH("unum_formatDouble: Intl API disabled"); -} - -static void -unum_close(UNumberFormat* fmt) -{ - MOZ_CRASH("unum_close: Intl API disabled"); -} - -static void -unum_setTextAttribute(UNumberFormat* fmt, UNumberFormatTextAttribute tag, const UChar* newValue, - int32_t newValueLength, UErrorCode* status) -{ - MOZ_CRASH("unum_setTextAttribute: Intl API disabled"); -} - -typedef void* UNumberingSystem; - -static UNumberingSystem* -unumsys_open(const char* locale, UErrorCode* status) -{ - MOZ_CRASH("unumsys_open: Intl API disabled"); -} - -static const char* -unumsys_getName(const UNumberingSystem* unumsys) -{ - MOZ_CRASH("unumsys_getName: Intl API disabled"); -} - -static void -unumsys_close(UNumberingSystem* unumsys) -{ - MOZ_CRASH("unumsys_close: Intl API disabled"); -} - -typedef void* UCalendar; - -enum UCalendarType { - UCAL_TRADITIONAL, - UCAL_DEFAULT = UCAL_TRADITIONAL, - UCAL_GREGORIAN -}; - -enum UCalendarAttribute { - UCAL_FIRST_DAY_OF_WEEK, - UCAL_MINIMAL_DAYS_IN_FIRST_WEEK -}; - -enum UCalendarDaysOfWeek { - UCAL_SUNDAY, - UCAL_MONDAY, - UCAL_TUESDAY, - UCAL_WEDNESDAY, - UCAL_THURSDAY, - UCAL_FRIDAY, - UCAL_SATURDAY -}; - -enum UCalendarWeekdayType { - UCAL_WEEKDAY, - UCAL_WEEKEND, - UCAL_WEEKEND_ONSET, - UCAL_WEEKEND_CEASE -}; - -enum UCalendarDateFields { - UCAL_ERA, - UCAL_YEAR, - UCAL_MONTH, - UCAL_WEEK_OF_YEAR, - UCAL_WEEK_OF_MONTH, - UCAL_DATE, - UCAL_DAY_OF_YEAR, - UCAL_DAY_OF_WEEK, - UCAL_DAY_OF_WEEK_IN_MONTH, - UCAL_AM_PM, - UCAL_HOUR, - UCAL_HOUR_OF_DAY, - UCAL_MINUTE, - UCAL_SECOND, - UCAL_MILLISECOND, - UCAL_ZONE_OFFSET, - UCAL_DST_OFFSET, - UCAL_YEAR_WOY, - UCAL_DOW_LOCAL, - UCAL_EXTENDED_YEAR, - UCAL_JULIAN_DAY, - UCAL_MILLISECONDS_IN_DAY, - UCAL_IS_LEAP_MONTH, - UCAL_FIELD_COUNT, - UCAL_DAY_OF_MONTH = UCAL_DATE -}; - -enum UCalendarMonths { - UCAL_JANUARY, - UCAL_FEBRUARY, - UCAL_MARCH, - UCAL_APRIL, - UCAL_MAY, - UCAL_JUNE, - UCAL_JULY, - UCAL_AUGUST, - UCAL_SEPTEMBER, - UCAL_OCTOBER, - UCAL_NOVEMBER, - UCAL_DECEMBER, - UCAL_UNDECIMBER -}; - -enum UCalendarAMPMs { - UCAL_AM, - UCAL_PM -}; - -static UCalendar* -ucal_open(const UChar* zoneID, int32_t len, const char* locale, - UCalendarType type, UErrorCode* status) -{ - MOZ_CRASH("ucal_open: Intl API disabled"); -} - -static const char* -ucal_getType(const UCalendar* cal, UErrorCode* status) -{ - MOZ_CRASH("ucal_getType: Intl API disabled"); -} - -static UEnumeration* -ucal_getKeywordValuesForLocale(const char* key, const char* locale, - UBool commonlyUsed, UErrorCode* status) -{ - MOZ_CRASH("ucal_getKeywordValuesForLocale: Intl API disabled"); -} - -static void -ucal_close(UCalendar* cal) -{ - MOZ_CRASH("ucal_close: Intl API disabled"); -} - -static UCalendarWeekdayType -ucal_getDayOfWeekType(const UCalendar *cal, UCalendarDaysOfWeek dayOfWeek, UErrorCode* status) -{ - MOZ_CRASH("ucal_getDayOfWeekType: Intl API disabled"); -} - -static int32_t -ucal_getAttribute(const UCalendar* cal, - UCalendarAttribute attr) -{ - MOZ_CRASH("ucal_getAttribute: Intl API disabled"); -} - -static int32_t -ucal_get(const UCalendar *cal, UCalendarDateFields field, UErrorCode *status) -{ - MOZ_CRASH("ucal_get: Intl API disabled"); -} - -static UEnumeration* -ucal_openTimeZones(UErrorCode* status) -{ - MOZ_CRASH("ucal_openTimeZones: Intl API disabled"); -} - -static int32_t -ucal_getCanonicalTimeZoneID(const UChar* id, int32_t len, UChar* result, int32_t resultCapacity, - UBool* isSystemID, UErrorCode* status) -{ - MOZ_CRASH("ucal_getCanonicalTimeZoneID: Intl API disabled"); -} - -static int32_t -ucal_getDefaultTimeZone(UChar* result, int32_t resultCapacity, UErrorCode* status) -{ - MOZ_CRASH("ucal_getDefaultTimeZone: Intl API disabled"); -} - -enum UDateTimePatternField { - UDATPG_YEAR_FIELD, - UDATPG_MONTH_FIELD, - UDATPG_WEEK_OF_YEAR_FIELD, - UDATPG_DAY_FIELD, -}; - -typedef void* UDateTimePatternGenerator; - -static UDateTimePatternGenerator* -udatpg_open(const char* locale, UErrorCode* pErrorCode) -{ - MOZ_CRASH("udatpg_open: Intl API disabled"); -} - -static int32_t -udatpg_getBestPattern(UDateTimePatternGenerator* dtpg, const UChar* skeleton, - int32_t length, UChar* bestPattern, int32_t capacity, - UErrorCode* pErrorCode) -{ - MOZ_CRASH("udatpg_getBestPattern: Intl API disabled"); -} - -static const UChar * -udatpg_getAppendItemName(const UDateTimePatternGenerator *dtpg, - UDateTimePatternField field, - int32_t *pLength) -{ - MOZ_CRASH("udatpg_getAppendItemName: Intl API disabled"); -} - -static void -udatpg_close(UDateTimePatternGenerator* dtpg) -{ - MOZ_CRASH("udatpg_close: Intl API disabled"); -} - -typedef void* UCalendar; -typedef void* UDateFormat; - -enum UDateFormatField { - UDAT_ERA_FIELD = 0, - UDAT_YEAR_FIELD = 1, - UDAT_MONTH_FIELD = 2, - UDAT_DATE_FIELD = 3, - UDAT_HOUR_OF_DAY1_FIELD = 4, - UDAT_HOUR_OF_DAY0_FIELD = 5, - UDAT_MINUTE_FIELD = 6, - UDAT_SECOND_FIELD = 7, - UDAT_FRACTIONAL_SECOND_FIELD = 8, - UDAT_DAY_OF_WEEK_FIELD = 9, - UDAT_DAY_OF_YEAR_FIELD = 10, - UDAT_DAY_OF_WEEK_IN_MONTH_FIELD = 11, - UDAT_WEEK_OF_YEAR_FIELD = 12, - UDAT_WEEK_OF_MONTH_FIELD = 13, - UDAT_AM_PM_FIELD = 14, - UDAT_HOUR1_FIELD = 15, - UDAT_HOUR0_FIELD = 16, - UDAT_TIMEZONE_FIELD = 17, - UDAT_YEAR_WOY_FIELD = 18, - UDAT_DOW_LOCAL_FIELD = 19, - UDAT_EXTENDED_YEAR_FIELD = 20, - UDAT_JULIAN_DAY_FIELD = 21, - UDAT_MILLISECONDS_IN_DAY_FIELD = 22, - UDAT_TIMEZONE_RFC_FIELD = 23, - UDAT_TIMEZONE_GENERIC_FIELD = 24, - UDAT_STANDALONE_DAY_FIELD = 25, - UDAT_STANDALONE_MONTH_FIELD = 26, - UDAT_QUARTER_FIELD = 27, - UDAT_STANDALONE_QUARTER_FIELD = 28, - UDAT_TIMEZONE_SPECIAL_FIELD = 29, - UDAT_YEAR_NAME_FIELD = 30, - UDAT_TIMEZONE_LOCALIZED_GMT_OFFSET_FIELD = 31, - UDAT_TIMEZONE_ISO_FIELD = 32, - UDAT_TIMEZONE_ISO_LOCAL_FIELD = 33, - UDAT_RELATED_YEAR_FIELD = 34, - UDAT_AM_PM_MIDNIGHT_NOON_FIELD = 35, - UDAT_FLEXIBLE_DAY_PERIOD_FIELD = 36, - UDAT_TIME_SEPARATOR_FIELD = 37, - UDAT_FIELD_COUNT = 38 -}; - -enum UDateFormatStyle { - UDAT_FULL, - UDAT_LONG, - UDAT_MEDIUM, - UDAT_SHORT, - UDAT_DEFAULT = UDAT_MEDIUM, - UDAT_PATTERN = -2, - UDAT_IGNORE = UDAT_PATTERN -}; - -enum UDateFormatSymbolType { - UDAT_ERAS, - UDAT_MONTHS, - UDAT_SHORT_MONTHS, - UDAT_WEEKDAYS, - UDAT_SHORT_WEEKDAYS, - UDAT_AM_PMS, - UDAT_LOCALIZED_CHARS, - UDAT_ERA_NAMES, - UDAT_NARROW_MONTHS, - UDAT_NARROW_WEEKDAYS, - UDAT_STANDALONE_MONTHS, - UDAT_STANDALONE_SHORT_MONTHS, - UDAT_STANDALONE_NARROW_MONTHS, - UDAT_STANDALONE_WEEKDAYS, - UDAT_STANDALONE_SHORT_WEEKDAYS, - UDAT_STANDALONE_NARROW_WEEKDAYS, - UDAT_QUARTERS, - UDAT_SHORT_QUARTERS, - UDAT_STANDALONE_QUARTERS, - UDAT_STANDALONE_SHORT_QUARTERS, - UDAT_SHORTER_WEEKDAYS, - UDAT_STANDALONE_SHORTER_WEEKDAYS, - UDAT_CYCLIC_YEARS_WIDE, - UDAT_CYCLIC_YEARS_ABBREVIATED, - UDAT_CYCLIC_YEARS_NARROW, - UDAT_ZODIAC_NAMES_WIDE, - UDAT_ZODIAC_NAMES_ABBREVIATED, - UDAT_ZODIAC_NAMES_NARROW -}; - -static int32_t -udat_countAvailable() -{ - MOZ_CRASH("udat_countAvailable: Intl API disabled"); -} - -static const char* -udat_getAvailable(int32_t localeIndex) -{ - MOZ_CRASH("udat_getAvailable: Intl API disabled"); -} - -static UDateFormat* -udat_open(UDateFormatStyle timeStyle, UDateFormatStyle dateStyle, const char* locale, - const UChar* tzID, int32_t tzIDLength, const UChar* pattern, - int32_t patternLength, UErrorCode* status) -{ - MOZ_CRASH("udat_open: Intl API disabled"); -} - -static const UCalendar* -udat_getCalendar(const UDateFormat* fmt) -{ - MOZ_CRASH("udat_getCalendar: Intl API disabled"); -} - -static void -ucal_setGregorianChange(UCalendar* cal, UDate date, UErrorCode* pErrorCode) -{ - MOZ_CRASH("ucal_setGregorianChange: Intl API disabled"); -} - -static int32_t -udat_format(const UDateFormat* format, UDate dateToFormat, UChar* result, - int32_t resultLength, UFieldPosition* position, UErrorCode* status) -{ - MOZ_CRASH("udat_format: Intl API disabled"); -} - -static int32_t -udat_formatForFields(const UDateFormat* format, UDate dateToFormat, - UChar* result, int32_t resultLength, UFieldPositionIterator* fpositer, - UErrorCode* status) -{ - MOZ_CRASH("udat_formatForFields: Intl API disabled"); -} - -static UFieldPositionIterator* -ufieldpositer_open(UErrorCode* status) -{ - MOZ_CRASH("ufieldpositer_open: Intl API disabled"); -} - -static void -ufieldpositer_close(UFieldPositionIterator* fpositer) -{ - MOZ_CRASH("ufieldpositer_close: Intl API disabled"); -} - -static int32_t -ufieldpositer_next(UFieldPositionIterator* fpositer, int32_t* beginIndex, int32_t* endIndex) -{ - MOZ_CRASH("ufieldpositer_next: Intl API disabled"); -} - -static void -udat_close(UDateFormat* format) -{ - MOZ_CRASH("udat_close: Intl API disabled"); -} - -static int32_t -udat_getSymbols(const UDateFormat *fmt, UDateFormatSymbolType type, int32_t symbolIndex, - UChar *result, int32_t resultLength, UErrorCode *status) -{ - MOZ_CRASH("udat_getSymbols: Intl API disabled"); -} - -#endif - - /******************** Common to Intl constructors ********************/ static bool @@ -706,7 +107,6 @@ intl_availableLocales(JSContext* cx, CountAvailable countAvailable, if (!locales) return false; -#if ENABLE_INTL_API uint32_t count = countAvailable(); RootedValue t(cx, BooleanValue(true)); for (uint32_t i = 0; i < count; i++) { @@ -726,7 +126,7 @@ intl_availableLocales(JSContext* cx, CountAvailable countAvailable, return false; } } -#endif + result.setObject(*locales); return true; } diff --git a/js/src/builtin/Intl.h b/js/src/builtin/Intl.h index b2197060d..9a1e44913 100644 --- a/js/src/builtin/Intl.h +++ b/js/src/builtin/Intl.h @@ -16,9 +16,7 @@ #include "js/GCAPI.h" #include "js/GCHashTable.h" -#if ENABLE_INTL_API #include "unicode/utypes.h" -#endif /* * The Intl module specified by standard ECMA-402, @@ -429,7 +427,6 @@ intl_GetCalendarInfo(JSContext* cx, unsigned argc, Value* vp); extern MOZ_MUST_USE bool intl_ComputeDisplayNames(JSContext* cx, unsigned argc, Value* vp); -#if ENABLE_INTL_API /** * Cast char16_t* strings to UChar* strings used by ICU. */ @@ -456,7 +453,6 @@ UCharToChar16(const UChar* chars) { return reinterpret_cast<const char16_t*>(chars); } -#endif // ENABLE_INTL_API } // namespace js diff --git a/js/src/builtin/String.js b/js/src/builtin/String.js index 4202d0de6..6d1d335a0 100644 --- a/js/src/builtin/String.js +++ b/js/src/builtin/String.js @@ -659,11 +659,7 @@ function String_static_localeCompare(str1, str2) { ThrowTypeError(JSMSG_MISSING_FUN_ARG, 0, "String.localeCompare"); var locales = arguments.length > 2 ? arguments[2] : undefined; var options = arguments.length > 3 ? arguments[3] : undefined; -#if EXPOSE_INTL_API return callFunction(String_localeCompare, str1, str2, locales, options); -#else - return callFunction(std_String_localeCompare, str1, str2, locales, options); -#endif } // ES6 draft 2014-04-27 B.2.3.3 @@ -855,14 +851,12 @@ function String_static_toLocaleUpperCase(string) { return callFunction(std_String_toLocaleUpperCase, string); } -#if EXPOSE_INTL_API function String_static_normalize(string) { if (arguments.length < 1) ThrowTypeError(JSMSG_MISSING_FUN_ARG, 0, 'String.normalize'); var form = arguments.length > 1 ? arguments[1] : undefined; return callFunction(std_String_normalize, string, form); } -#endif function String_static_concat(string, arg1) { if (arguments.length < 1) diff --git a/js/src/builtin/TestingFunctions.cpp b/js/src/builtin/TestingFunctions.cpp index a14f9ba69..00637a7a5 100644 --- a/js/src/builtin/TestingFunctions.cpp +++ b/js/src/builtin/TestingFunctions.cpp @@ -236,11 +236,7 @@ GetBuildConfiguration(JSContext* cx, unsigned argc, Value* vp) if (!JS_SetProperty(cx, info, "binary-data", value)) return false; -#ifdef EXPOSE_INTL_API value = BooleanValue(true); -#else - value = BooleanValue(false); -#endif if (!JS_SetProperty(cx, info, "intl-api", value)) return false; diff --git a/js/src/builtin/TypedArray.js b/js/src/builtin/TypedArray.js index a2205dc92..a1934051d 100644 --- a/js/src/builtin/TypedArray.js +++ b/js/src/builtin/TypedArray.js @@ -1232,11 +1232,7 @@ function TypedArrayToLocaleString(locales = undefined, options = undefined) { // Steps 6-7. // Omit the 'if' clause in step 6, since typed arrays can't have undefined // or null elements. -#if EXPOSE_INTL_API var R = ToString(callContentFunction(firstElement.toLocaleString, firstElement, locales, options)); -#else - var R = ToString(callContentFunction(firstElement.toLocaleString, firstElement)); -#endif // Step 3 (reordered). // We don't (yet?) implement locale-dependent separators. @@ -1258,11 +1254,7 @@ function TypedArrayToLocaleString(locales = undefined, options = undefined) { // the error message. So despite bug 1079853, we can skip step 9.c. // Step 9.d. -#if EXPOSE_INTL_API R = ToString(callContentFunction(nextElement.toLocaleString, nextElement, locales, options)); -#else - R = ToString(callContentFunction(nextElement.toLocaleString, nextElement)); -#endif // Step 9.e. R = S + R; diff --git a/js/src/gdb/moz.build b/js/src/gdb/moz.build index 681f9807c..faa69eb7b 100644 --- a/js/src/gdb/moz.build +++ b/js/src/gdb/moz.build @@ -34,7 +34,7 @@ USE_LIBS += [ 'static:js', ] -if CONFIG['ENABLE_INTL_API'] and CONFIG['MOZ_ICU_DATA_ARCHIVE']: +if CONFIG['MOZ_ICU_DATA_ARCHIVE']: # The ICU libraries linked into libmozjs will not include the ICU data, # so link it directly. USE_LIBS += ['icudata'] diff --git a/js/src/jsapi-tests/moz.build b/js/src/jsapi-tests/moz.build index f7a6080aa..277a145b0 100644 --- a/js/src/jsapi-tests/moz.build +++ b/js/src/jsapi-tests/moz.build @@ -135,7 +135,7 @@ LOCAL_INCLUDES += [ '..', ] -if CONFIG['ENABLE_INTL_API'] and CONFIG['MOZ_ICU_DATA_ARCHIVE']: +if CONFIG['MOZ_ICU_DATA_ARCHIVE']: # The ICU libraries linked into libmozjs will not include the ICU data, # so link it directly. USE_LIBS += ['icudata'] diff --git a/js/src/jsapi.h b/js/src/jsapi.h index 989abe47c..c1195cc00 100644 --- a/js/src/jsapi.h +++ b/js/src/jsapi.h @@ -5222,7 +5222,7 @@ JS_ResetDefaultLocale(JSContext* cx); struct JSLocaleCallbacks { JSLocaleToUpperCase localeToUpperCase; JSLocaleToLowerCase localeToLowerCase; - JSLocaleCompare localeCompare; // not used #if EXPOSE_INTL_API + JSLocaleCompare localeCompare; // not used JSLocaleToUnicode localeToUnicode; }; diff --git a/js/src/jsdate.cpp b/js/src/jsdate.cpp index 00a8abf84..52294a5df 100755 --- a/js/src/jsdate.cpp +++ b/js/src/jsdate.cpp @@ -2743,77 +2743,6 @@ ToLocaleFormatHelper(JSContext* cx, HandleObject obj, const char* format, Mutabl return true; } -#if !EXPOSE_INTL_API -/* ES5 15.9.5.5. */ -MOZ_ALWAYS_INLINE bool -date_toLocaleString_impl(JSContext* cx, const CallArgs& args) -{ - /* - * Use '%#c' for windows, because '%c' is backward-compatible and non-y2k - * with msvc; '%#c' requests that a full year be used in the result string. - */ - static const char format[] = -#if defined(_WIN32) && !defined(__MWERKS__) - "%#c" -#else - "%c" -#endif - ; - - Rooted<DateObject*> dateObj(cx, &args.thisv().toObject().as<DateObject>()); - return ToLocaleFormatHelper(cx, dateObj, format, args.rval()); -} - -static bool -date_toLocaleString(JSContext* cx, unsigned argc, Value* vp) -{ - CallArgs args = CallArgsFromVp(argc, vp); - return CallNonGenericMethod<IsDate, date_toLocaleString_impl>(cx, args); -} - -/* ES5 15.9.5.6. */ -MOZ_ALWAYS_INLINE bool -date_toLocaleDateString_impl(JSContext* cx, const CallArgs& args) -{ - /* - * Use '%#x' for windows, because '%x' is backward-compatible and non-y2k - * with msvc; '%#x' requests that a full year be used in the result string. - */ - static const char format[] = -#if defined(_WIN32) && !defined(__MWERKS__) - "%#x" -#else - "%x" -#endif - ; - - Rooted<DateObject*> dateObj(cx, &args.thisv().toObject().as<DateObject>()); - return ToLocaleFormatHelper(cx, dateObj, format, args.rval()); -} - -static bool -date_toLocaleDateString(JSContext* cx, unsigned argc, Value* vp) -{ - CallArgs args = CallArgsFromVp(argc, vp); - return CallNonGenericMethod<IsDate, date_toLocaleDateString_impl>(cx, args); -} - -/* ES5 15.9.5.7. */ -MOZ_ALWAYS_INLINE bool -date_toLocaleTimeString_impl(JSContext* cx, const CallArgs& args) -{ - Rooted<DateObject*> dateObj(cx, &args.thisv().toObject().as<DateObject>()); - return ToLocaleFormatHelper(cx, dateObj, "%X", args.rval()); -} - -static bool -date_toLocaleTimeString(JSContext* cx, unsigned argc, Value* vp) -{ - CallArgs args = CallArgsFromVp(argc, vp); - return CallNonGenericMethod<IsDate, date_toLocaleTimeString_impl>(cx, args); -} -#endif /* !EXPOSE_INTL_API */ - MOZ_ALWAYS_INLINE bool date_toLocaleFormat_impl(JSContext* cx, const CallArgs& args) { @@ -3037,15 +2966,9 @@ static const JSFunctionSpec date_methods[] = { JS_FN("setUTCMilliseconds", date_setUTCMilliseconds, 1,0), JS_FN("toUTCString", date_toGMTString, 0,0), JS_FN("toLocaleFormat", date_toLocaleFormat, 0,0), -#if EXPOSE_INTL_API JS_SELF_HOSTED_FN(js_toLocaleString_str, "Date_toLocaleString", 0,0), JS_SELF_HOSTED_FN("toLocaleDateString", "Date_toLocaleDateString", 0,0), JS_SELF_HOSTED_FN("toLocaleTimeString", "Date_toLocaleTimeString", 0,0), -#else - JS_FN(js_toLocaleString_str, date_toLocaleString, 0,0), - JS_FN("toLocaleDateString", date_toLocaleDateString, 0,0), - JS_FN("toLocaleTimeString", date_toLocaleTimeString, 0,0), -#endif JS_FN("toDateString", date_toDateString, 0,0), JS_FN("toTimeString", date_toTimeString, 0,0), JS_FN("toISOString", date_toISOString, 0,0), diff --git a/js/src/jsnum.cpp b/js/src/jsnum.cpp index 8885737f7..28ed15159 100644 --- a/js/src/jsnum.cpp +++ b/js/src/jsnum.cpp @@ -724,141 +724,6 @@ js::num_toString(JSContext* cx, unsigned argc, Value* vp) return CallNonGenericMethod<IsNumber, num_toString_impl>(cx, args); } -#if !EXPOSE_INTL_API -MOZ_ALWAYS_INLINE bool -num_toLocaleString_impl(JSContext* cx, const CallArgs& args) -{ - MOZ_ASSERT(IsNumber(args.thisv())); - - double d = Extract(args.thisv()); - - RootedString str(cx, NumberToStringWithBase<CanGC>(cx, d, 10)); - if (!str) { - JS_ReportOutOfMemory(cx); - return false; - } - - /* - * Create the string, move back to bytes to make string twiddling - * a bit easier and so we can insert platform charset seperators. - */ - JSAutoByteString numBytes(cx, str); - if (!numBytes) - return false; - const char* num = numBytes.ptr(); - if (!num) - return false; - - /* - * Find the first non-integer value, whether it be a letter as in - * 'Infinity', a decimal point, or an 'e' from exponential notation. - */ - const char* nint = num; - if (*nint == '-') - nint++; - while (*nint >= '0' && *nint <= '9') - nint++; - int digits = nint - num; - const char* end = num + digits; - if (!digits) { - args.rval().setString(str); - return true; - } - - JSRuntime* rt = cx->runtime(); - size_t thousandsLength = strlen(rt->thousandsSeparator); - size_t decimalLength = strlen(rt->decimalSeparator); - - /* Figure out how long resulting string will be. */ - int buflen = strlen(num); - if (*nint == '.') - buflen += decimalLength - 1; /* -1 to account for existing '.' */ - - const char* numGrouping; - const char* tmpGroup; - numGrouping = tmpGroup = rt->numGrouping; - int remainder = digits; - if (*num == '-') - remainder--; - - while (*tmpGroup != CHAR_MAX && *tmpGroup != '\0') { - if (*tmpGroup >= remainder) - break; - buflen += thousandsLength; - remainder -= *tmpGroup; - tmpGroup++; - } - - int nrepeat; - if (*tmpGroup == '\0' && *numGrouping != '\0') { - nrepeat = (remainder - 1) / tmpGroup[-1]; - buflen += thousandsLength * nrepeat; - remainder -= nrepeat * tmpGroup[-1]; - } else { - nrepeat = 0; - } - tmpGroup--; - - char* buf = cx->pod_malloc<char>(buflen + 1); - if (!buf) - return false; - - char* tmpDest = buf; - const char* tmpSrc = num; - - while (*tmpSrc == '-' || remainder--) { - MOZ_ASSERT(tmpDest - buf < buflen); - *tmpDest++ = *tmpSrc++; - } - while (tmpSrc < end) { - MOZ_ASSERT(tmpDest - buf + ptrdiff_t(thousandsLength) <= buflen); - strcpy(tmpDest, rt->thousandsSeparator); - tmpDest += thousandsLength; - MOZ_ASSERT(tmpDest - buf + *tmpGroup <= buflen); - js_memcpy(tmpDest, tmpSrc, *tmpGroup); - tmpDest += *tmpGroup; - tmpSrc += *tmpGroup; - if (--nrepeat < 0) - tmpGroup--; - } - - if (*nint == '.') { - MOZ_ASSERT(tmpDest - buf + ptrdiff_t(decimalLength) <= buflen); - strcpy(tmpDest, rt->decimalSeparator); - tmpDest += decimalLength; - MOZ_ASSERT(tmpDest - buf + ptrdiff_t(strlen(nint + 1)) <= buflen); - strcpy(tmpDest, nint + 1); - } else { - MOZ_ASSERT(tmpDest - buf + ptrdiff_t(strlen(nint)) <= buflen); - strcpy(tmpDest, nint); - } - - if (cx->runtime()->localeCallbacks && cx->runtime()->localeCallbacks->localeToUnicode) { - Rooted<Value> v(cx, StringValue(str)); - bool ok = !!cx->runtime()->localeCallbacks->localeToUnicode(cx, buf, &v); - if (ok) - args.rval().set(v); - js_free(buf); - return ok; - } - - str = NewStringCopyN<CanGC>(cx, buf, buflen); - js_free(buf); - if (!str) - return false; - - args.rval().setString(str); - return true; -} - -static bool -num_toLocaleString(JSContext* cx, unsigned argc, Value* vp) -{ - CallArgs args = CallArgsFromVp(argc, vp); - return CallNonGenericMethod<IsNumber, num_toLocaleString_impl>(cx, args); -} -#endif /* !EXPOSE_INTL_API */ - MOZ_ALWAYS_INLINE bool num_valueOf_impl(JSContext* cx, const CallArgs& args) { @@ -1075,11 +940,7 @@ static const JSFunctionSpec number_methods[] = { JS_FN(js_toSource_str, num_toSource, 0, 0), #endif JS_FN(js_toString_str, num_toString, 1, 0), -#if EXPOSE_INTL_API JS_SELF_HOSTED_FN(js_toLocaleString_str, "Number_toLocaleString", 0,0), -#else - JS_FN(js_toLocaleString_str, num_toLocaleString, 0,0), -#endif JS_FN(js_valueOf_str, num_valueOf, 0, 0), JS_FN("toFixed", num_toFixed, 1, 0), JS_FN("toExponential", num_toExponential, 1, 0), @@ -1130,76 +991,11 @@ js::FIX_FPU() #endif } -bool +void js::InitRuntimeNumberState(JSRuntime* rt) { FIX_FPU(); - - // XXX If EXPOSE_INTL_API becomes true all the time at some point, - // js::InitRuntimeNumberState is no longer fallible, and we should - // change its return type. -#if !EXPOSE_INTL_API - /* Copy locale-specific separators into the runtime strings. */ - const char* thousandsSeparator; - const char* decimalPoint; - const char* grouping; -#ifdef HAVE_LOCALECONV - struct lconv* locale = localeconv(); - thousandsSeparator = locale->thousands_sep; - decimalPoint = locale->decimal_point; - grouping = locale->grouping; -#else - thousandsSeparator = getenv("LOCALE_THOUSANDS_SEP"); - decimalPoint = getenv("LOCALE_DECIMAL_POINT"); - grouping = getenv("LOCALE_GROUPING"); -#endif - if (!thousandsSeparator) - thousandsSeparator = "'"; - if (!decimalPoint) - decimalPoint = "."; - if (!grouping) - grouping = "\3\0"; - - /* - * We use single malloc to get the memory for all separator and grouping - * strings. - */ - size_t thousandsSeparatorSize = strlen(thousandsSeparator) + 1; - size_t decimalPointSize = strlen(decimalPoint) + 1; - size_t groupingSize = strlen(grouping) + 1; - - char* storage = js_pod_malloc<char>(thousandsSeparatorSize + - decimalPointSize + - groupingSize); - if (!storage) - return false; - - js_memcpy(storage, thousandsSeparator, thousandsSeparatorSize); - rt->thousandsSeparator = storage; - storage += thousandsSeparatorSize; - - js_memcpy(storage, decimalPoint, decimalPointSize); - rt->decimalSeparator = storage; - storage += decimalPointSize; - - js_memcpy(storage, grouping, groupingSize); - rt->numGrouping = grouping; -#endif /* !EXPOSE_INTL_API */ - return true; -} - -#if !EXPOSE_INTL_API -void -js::FinishRuntimeNumberState(JSRuntime* rt) -{ - /* - * The free also releases the memory for decimalSeparator and numGrouping - * strings. - */ - char* storage = const_cast<char*>(rt->thousandsSeparator); - js_free(storage); } -#endif JSObject* js::InitNumberClass(JSContext* cx, HandleObject obj) diff --git a/js/src/jsnum.h b/js/src/jsnum.h index 62b3d617f..8dff45f69 100644 --- a/js/src/jsnum.h +++ b/js/src/jsnum.h @@ -34,13 +34,7 @@ namespace js { class StringBuffer; -extern MOZ_MUST_USE bool -InitRuntimeNumberState(JSRuntime* rt); - -#if !EXPOSE_INTL_API -extern void -FinishRuntimeNumberState(JSRuntime* rt); -#endif +void InitRuntimeNumberState(JSRuntime* rt); /* Initialize the Number class, returning its prototype object. */ extern JSObject* diff --git a/js/src/jsprototypes.h b/js/src/jsprototypes.h index f409dce95..dc7cdb85a 100644 --- a/js/src/jsprototypes.h +++ b/js/src/jsprototypes.h @@ -37,11 +37,7 @@ #define TYPED_ARRAY_CLASP(type) (&TypedArrayObject::classes[Scalar::type]) #define ERROR_CLASP(type) (&ErrorObject::classes[type]) -#ifdef EXPOSE_INTL_API #define IF_INTL(real,imaginary) real -#else -#define IF_INTL(real,imaginary) imaginary -#endif #ifdef ENABLE_BINARYDATA #define IF_BDATA(real,imaginary) real diff --git a/js/src/jsstr.cpp b/js/src/jsstr.cpp index 7adeed620..01b407626 100644 --- a/js/src/jsstr.cpp +++ b/js/src/jsstr.cpp @@ -36,9 +36,7 @@ #include "jit/InlinableNatives.h" #include "js/Conversions.h" #include "js/UniquePtr.h" -#if ENABLE_INTL_API #include "unicode/unorm.h" -#endif #include "vm/GlobalObject.h" #include "vm/Interpreter.h" #include "vm/Opcodes.h" @@ -899,38 +897,6 @@ js::str_toLocaleUpperCase(JSContext* cx, unsigned argc, Value* vp) return ToUpperCaseHelper(cx, args); } -#if !EXPOSE_INTL_API -bool -js::str_localeCompare(JSContext* cx, unsigned argc, Value* vp) -{ - CallArgs args = CallArgsFromVp(argc, vp); - RootedString str(cx, ToStringForStringFunction(cx, args.thisv())); - if (!str) - return false; - - RootedString thatStr(cx, ToString<CanGC>(cx, args.get(0))); - if (!thatStr) - return false; - - if (cx->runtime()->localeCallbacks && cx->runtime()->localeCallbacks->localeCompare) { - RootedValue result(cx); - if (!cx->runtime()->localeCallbacks->localeCompare(cx, str, thatStr, &result)) - return false; - - args.rval().set(result); - return true; - } - - int32_t result; - if (!CompareStrings(cx, str, thatStr, &result)) - return false; - - args.rval().setInt32(result); - return true; -} -#endif - -#if EXPOSE_INTL_API /* ES6 20140210 draft 21.1.3.12. */ bool js::str_normalize(JSContext* cx, unsigned argc, Value* vp) @@ -1007,7 +973,6 @@ js::str_normalize(JSContext* cx, unsigned argc, Value* vp) args.rval().setString(ns); return true; } -#endif bool js::str_charAt(JSContext* cx, unsigned argc, Value* vp) @@ -2599,15 +2564,9 @@ static const JSFunctionSpec string_methods[] = { JS_FN("trimRight", str_trimRight, 0,0), JS_FN("toLocaleLowerCase", str_toLocaleLowerCase, 0,0), JS_FN("toLocaleUpperCase", str_toLocaleUpperCase, 0,0), -#if EXPOSE_INTL_API JS_SELF_HOSTED_FN("localeCompare", "String_localeCompare", 1,0), -#else - JS_FN("localeCompare", str_localeCompare, 1,0), -#endif JS_SELF_HOSTED_FN("repeat", "String_repeat", 1,0), -#if EXPOSE_INTL_API JS_FN("normalize", str_normalize, 0,0), -#endif /* Perl-ish methods (search is actually Python-esque). */ JS_SELF_HOSTED_FN("match", "String_match", 1,0), @@ -2918,9 +2877,7 @@ static const JSFunctionSpec string_static_methods[] = { JS_SELF_HOSTED_FN("trimRight", "String_static_trimRight", 1,0), JS_SELF_HOSTED_FN("toLocaleLowerCase","String_static_toLocaleLowerCase",1,0), JS_SELF_HOSTED_FN("toLocaleUpperCase","String_static_toLocaleUpperCase",1,0), -#if EXPOSE_INTL_API JS_SELF_HOSTED_FN("normalize", "String_static_normalize", 1,0), -#endif JS_SELF_HOSTED_FN("concat", "String_static_concat", 2,0), JS_SELF_HOSTED_FN("localeCompare", "String_static_localeCompare", 2,0), diff --git a/js/src/jsstr.h b/js/src/jsstr.h index 7e9621d4a..118118839 100644 --- a/js/src/jsstr.h +++ b/js/src/jsstr.h @@ -378,13 +378,8 @@ str_toLocaleLowerCase(JSContext* cx, unsigned argc, Value* vp); extern bool str_toLocaleUpperCase(JSContext* cx, unsigned argc, Value* vp); -#if !EXPOSE_INTL_API -extern bool -str_localeCompare(JSContext* cx, unsigned argc, Value* vp); -#else extern bool str_normalize(JSContext* cx, unsigned argc, Value* vp); -#endif extern bool str_concat(JSContext* cx, unsigned argc, Value* vp); diff --git a/js/src/moz.build b/js/src/moz.build index 2d4e83db3..a3283b5d6 100644 --- a/js/src/moz.build +++ b/js/src/moz.build @@ -645,18 +645,17 @@ else: FORCE_STATIC_LIB = True STATIC_LIBRARY_NAME = 'js_static' -if CONFIG['ENABLE_INTL_API']: - if not CONFIG['MOZ_ICU_DATA_ARCHIVE']: - USE_LIBS += [ - 'icu', - ] - else: - # Linking 'icu' will pull in the stubdata library, - # which the shell doesn't want, so link the other bits. - USE_LIBS += [ - 'icui18n', - 'icuuc', - ] +if not CONFIG['MOZ_ICU_DATA_ARCHIVE']: + USE_LIBS += [ + 'icu', + ] +else: + # Linking 'icu' will pull in the stubdata library, + # which the shell doesn't want, so link the other bits. + USE_LIBS += [ + 'icui18n', + 'icuuc', + ] USE_LIBS += [ 'nspr', diff --git a/js/src/old-configure.in b/js/src/old-configure.in index 162a071d7..8abea5956 100644 --- a/js/src/old-configure.in +++ b/js/src/old-configure.in @@ -734,12 +734,14 @@ case "$target" in dnl VS2012+ defaults to -arch:SSE2. We want to target nothing dnl more recent, so set that explicitly here unless another dnl target arch has already been set. + changequote(,) if test -z `echo $CFLAGS | grep -i [-/]arch:` ; then CFLAGS="$CFLAGS -arch:SSE2" - fi + fi if test -z `echo $CXXFLAGS | grep -i [-/]arch:` ; then CXXFLAGS="$CXXFLAGS -arch:SSE2" fi + changequote([,]) fi dnl VS2013+ requires -FS when parallel building by make -jN. dnl If nothing, compiler sometimes causes C1041 error. diff --git a/js/src/shell/js.cpp b/js/src/shell/js.cpp index 8d69ca942..8d144417a 100644 --- a/js/src/shell/js.cpp +++ b/js/src/shell/js.cpp @@ -893,7 +893,6 @@ SetPromiseRejectionTrackerCallback(JSContext* cx, unsigned argc, Value* vp) return true; } -#ifdef ENABLE_INTL_API static bool AddIntlExtras(JSContext* cx, unsigned argc, Value* vp) { @@ -916,7 +915,6 @@ AddIntlExtras(JSContext* cx, unsigned argc, Value* vp) args.rval().setUndefined(); return true; } -#endif // ENABLE_INTL_API static bool EvalAndPrint(JSContext* cx, const char* bytes, size_t length, @@ -6140,7 +6138,6 @@ static const JSFunctionSpecWithHelp shell_functions[] = { "Sets the callback to be invoked whenever a Promise rejection is unhandled\n" "or a previously-unhandled rejection becomes handled."), -#ifdef ENABLE_INTL_API JS_FN_HELP("addIntlExtras", AddIntlExtras, 1, 0, "addIntlExtras(obj)", "Adds various not-yet-standardized Intl functions as properties on the\n" @@ -6148,7 +6145,6 @@ static const JSFunctionSpecWithHelp shell_functions[] = { "functions and their behavior are experimental: don't depend upon them\n" "unless you're willing to update your code if these experimental APIs change\n" "underneath you."), -#endif // ENABLE_INTL_API JS_FS_HELP_END }; diff --git a/js/src/shell/moz.build b/js/src/shell/moz.build index 72ea8145c..e18bad238 100644 --- a/js/src/shell/moz.build +++ b/js/src/shell/moz.build @@ -36,7 +36,7 @@ LOCAL_INCLUDES += [ OS_LIBS += CONFIG['EDITLINE_LIBS'] OS_LIBS += CONFIG['MOZ_ZLIB_LIBS'] -if CONFIG['ENABLE_INTL_API'] and CONFIG['MOZ_ICU_DATA_ARCHIVE']: +if CONFIG['MOZ_ICU_DATA_ARCHIVE']: # The ICU libraries linked into libmozjs will not include the ICU data, # so link it directly. USE_LIBS += ['icudata'] diff --git a/js/src/vm/DateTime.cpp b/js/src/vm/DateTime.cpp index e35ad4285..ba3145af2 100644 --- a/js/src/vm/DateTime.cpp +++ b/js/src/vm/DateTime.cpp @@ -13,9 +13,7 @@ #include "jsutil.h" #include "js/Date.h" -#if ENABLE_INTL_API #include "unicode/timezone.h" -#endif using mozilla::Atomic; using mozilla::ReleaseAcquire; @@ -333,7 +331,7 @@ JS::ResetTimeZone() { js::DateTimeInfo::updateTimeZoneAdjustment(); -#if ENABLE_INTL_API && defined(ICU_TZ_HAS_RECREATE_DEFAULT) +#if defined(ICU_TZ_HAS_RECREATE_DEFAULT) TZInfo.acquire(); TZInfo.status = IcuTimeZoneInfo::NeedsUpdate; TZInfo.release(); @@ -343,7 +341,7 @@ JS::ResetTimeZone() void js::ResyncICUDefaultTimeZone() { -#if ENABLE_INTL_API && defined(ICU_TZ_HAS_RECREATE_DEFAULT) +#if defined(ICU_TZ_HAS_RECREATE_DEFAULT) TZInfo.acquire(); if (TZInfo.status == IcuTimeZoneInfo::NeedsUpdate) { icu::TimeZone::recreateDefault(); diff --git a/js/src/vm/GlobalObject.cpp b/js/src/vm/GlobalObject.cpp index 280548cd6..c90b6b85f 100644 --- a/js/src/vm/GlobalObject.cpp +++ b/js/src/vm/GlobalObject.cpp @@ -17,9 +17,7 @@ #include "builtin/AtomicsObject.h" #include "builtin/Eval.h" -#if EXPOSE_INTL_API -# include "builtin/Intl.h" -#endif +#include "builtin/Intl.h" #include "builtin/MapObject.h" #include "builtin/ModuleObject.h" #include "builtin/Object.h" diff --git a/js/src/vm/Initialization.cpp b/js/src/vm/Initialization.cpp index 05cc087cc..39acdf9a8 100644 --- a/js/src/vm/Initialization.cpp +++ b/js/src/vm/Initialization.cpp @@ -20,10 +20,8 @@ #include "jit/ExecutableAllocator.h" #include "jit/Ion.h" #include "js/Utility.h" -#if ENABLE_INTL_API #include "unicode/uclean.h" #include "unicode/utypes.h" -#endif // ENABLE_INTL_API #include "vm/DateTime.h" #include "vm/HelperThreads.h" #include "vm/Runtime.h" @@ -113,12 +111,10 @@ JS::detail::InitWithFailureDiagnostic(bool isDebugBuild) js::DateTimeInfo::init(); -#if EXPOSE_INTL_API UErrorCode err = U_ZERO_ERROR; u_init(&err); if (U_FAILURE(err)) return "u_init() failed"; -#endif // EXPOSE_INTL_API RETURN_IF_FAIL(js::CreateHelperThreadsState()); RETURN_IF_FAIL(FutexRuntime::initialize()); @@ -171,9 +167,7 @@ JS_ShutDown(void) // to do it only when PRMJ_Now is eventually called. PRMJ_NowShutdown(); -#if EXPOSE_INTL_API u_cleanup(); -#endif // EXPOSE_INTL_API if (!JSRuntime::hasLiveRuntimes()) js::jit::ReleaseProcessExecutableMemory(); @@ -188,11 +182,7 @@ JS_SetICUMemoryFunctions(JS_ICUAllocFn allocFn, JS_ICUReallocFn reallocFn, JS_IC "must call JS_SetICUMemoryFunctions before any other JSAPI " "operation (including JS_Init)"); -#if EXPOSE_INTL_API UErrorCode status = U_ZERO_ERROR; u_setMemoryFunctions(/* context = */ nullptr, allocFn, reallocFn, freeFn, &status); return U_SUCCESS(status); -#else - return true; -#endif } diff --git a/js/src/vm/Runtime.cpp b/js/src/vm/Runtime.cpp index 0d6a3922c..174e23594 100644 --- a/js/src/vm/Runtime.cpp +++ b/js/src/vm/Runtime.cpp @@ -213,11 +213,6 @@ JSRuntime::JSRuntime(JSRuntime* parentRuntime) warningReporter(nullptr), buildIdOp(nullptr), propertyRemovals(0), -#if !EXPOSE_INTL_API - thousandsSeparator(0), - decimalSeparator(0), - numGrouping(0), -#endif keepAtoms_(0), trustedPrincipals_(nullptr), beingDestroyed_(false), @@ -330,8 +325,7 @@ JSRuntime::init(uint32_t maxbytes, uint32_t maxNurseryBytes) /* The garbage collector depends on everything before this point being initialized. */ gcInitialized = true; - if (!InitRuntimeNumberState(this)) - return false; + InitRuntimeNumberState(this); JS::ResetTimeZone(); @@ -425,10 +419,6 @@ JSRuntime::destroyRuntime() */ FreeScriptData(this, lock); -#if !EXPOSE_INTL_API - FinishRuntimeNumberState(this); -#endif - gc.finish(); atomsCompartment_ = nullptr; diff --git a/js/src/vm/Runtime.h b/js/src/vm/Runtime.h index 734543c4e..735adadf2 100644 --- a/js/src/vm/Runtime.h +++ b/js/src/vm/Runtime.h @@ -978,13 +978,6 @@ struct JSRuntime : public JS::shadow::Runtime, */ uint32_t propertyRemovals; -#if !EXPOSE_INTL_API - /* Number localization, used by jsnum.cpp. */ - const char* thousandsSeparator; - const char* decimalSeparator; - const char* numGrouping; -#endif - private: mozilla::Maybe<js::SharedImmutableStringsCache> sharedImmutableStrings_; diff --git a/js/src/vm/SelfHosting.cpp b/js/src/vm/SelfHosting.cpp index 9a8ec7679..653807ce8 100644 --- a/js/src/vm/SelfHosting.cpp +++ b/js/src/vm/SelfHosting.cpp @@ -2205,11 +2205,7 @@ static const JSFunctionSpec intrinsic_functions[] = { JS_FN("std_String_trimRight", str_trimRight, 0,0), JS_FN("std_String_toLocaleLowerCase", str_toLocaleLowerCase, 0,0), JS_FN("std_String_toLocaleUpperCase", str_toLocaleUpperCase, 0,0), -#if !EXPOSE_INTL_API - JS_FN("std_String_localeCompare", str_localeCompare, 1,0), -#else JS_FN("std_String_normalize", str_normalize, 0,0), -#endif JS_FN("std_String_concat", str_concat, 1,0), JS_FN("std_TypedArray_buffer", js::TypedArray_bufferGetter, 1,0), diff --git a/layout/base/moz.build b/layout/base/moz.build index 90fbf828c..d3e417f16 100644 --- a/layout/base/moz.build +++ b/layout/base/moz.build @@ -131,6 +131,7 @@ UNIFIED_SOURCES += [ 'LayoutLogging.cpp', 'MaskLayerImageCache.cpp', 'MobileViewportManager.cpp', + 'nsBidi.cpp', 'nsBidiPresUtils.cpp', 'nsCaret.cpp', 'nsCounterManager.cpp', @@ -165,21 +166,6 @@ UNIFIED_SOURCES += [ 'ZoomConstraintsClient.cpp', ] -if CONFIG['ENABLE_INTL_API']: - EXPORTS += [ - 'nsBidi_ICU.h', - ] - UNIFIED_SOURCES += [ - 'nsBidi_ICU.cpp', - ] -else: - EXPORTS += [ - 'nsBidi_noICU.h', - ] - UNIFIED_SOURCES += [ - 'nsBidi_noICU.cpp', - ] - # nsPresArena.cpp needs to be built separately because it uses plarena.h. # nsRefreshDriver.cpp needs to be built separately because of name clashes in the OS X headers SOURCES += [ diff --git a/layout/base/nsBidi_ICU.cpp b/layout/base/nsBidi.cpp index 482668e24..1d6975869 100644 --- a/layout/base/nsBidi_ICU.cpp +++ b/layout/base/nsBidi.cpp @@ -4,7 +4,7 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -#include "nsBidi_ICU.h" +#include "nsBidi.h" #include "ICUUtils.h" nsBidi::nsBidi() diff --git a/layout/base/nsBidi.h b/layout/base/nsBidi.h index c7c367092..731bc7116 100644 --- a/layout/base/nsBidi.h +++ b/layout/base/nsBidi.h @@ -7,10 +7,184 @@ #ifndef nsBidi_h__ #define nsBidi_h__ -#if ENABLE_INTL_API -#include "nsBidi_ICU.h" -#else -#include "nsBidi_noICU.h" -#endif +#include "unicode/ubidi.h" +#include "nsIFrame.h" // for nsBidiLevel/nsBidiDirection declarations -#endif // _nsBidi_h_ +// nsBidi implemented as a simple wrapper around the bidi reordering engine +// from ICU. +// We could eliminate this and let callers use the ICU functions directly +// once we no longer care about building without ICU available. + +class nsBidi +{ +public: + /** @brief Default constructor. + * + * The nsBidi object is initially empty. It is assigned + * the Bidi properties of a paragraph by <code>SetPara()</code>. + */ + explicit nsBidi(); + + /** @brief Destructor. */ + virtual ~nsBidi(); + + + /** + * Perform the Unicode Bidi algorithm. + * + * @param aText is a pointer to the single-paragraph text that the + * Bidi algorithm will be performed on + * (step (P1) of the algorithm is performed externally). + * <strong>The text must be (at least) <code>aLength</code> long.</strong> + * + * @param aLength is the length of the text; if <code>aLength==-1</code> then + * the text must be zero-terminated. + * + * @param aParaLevel specifies the default level for the paragraph; + * it is typically 0 (LTR) or 1 (RTL). + * If the function shall determine the paragraph level from the text, + * then <code>aParaLevel</code> can be set to + * either <code>NSBIDI_DEFAULT_LTR</code> + * or <code>NSBIDI_DEFAULT_RTL</code>; + * if there is no strongly typed character, then + * the desired default is used (0 for LTR or 1 for RTL). + * Any other value between 0 and <code>NSBIDI_MAX_EXPLICIT_LEVEL</code> + * is also valid, with odd levels indicating RTL. + */ + nsresult SetPara(const char16_t *aText, int32_t aLength, + nsBidiLevel aParaLevel); + + /** + * Get the directionality of the text. + * + * @param aDirection receives a <code>NSBIDI_XXX</code> value that indicates + * if the entire text represented by this object is unidirectional, + * and which direction, or if it is mixed-directional. + * + * @see nsBidiDirection + */ + nsresult GetDirection(nsBidiDirection* aDirection); + + /** + * Get the paragraph level of the text. + * + * @param aParaLevel receives a <code>NSBIDI_XXX</code> value indicating + * the paragraph level + * + * @see nsBidiLevel + */ + nsresult GetParaLevel(nsBidiLevel* aParaLevel); + + /** + * Get a logical run. + * This function returns information about a run and is used + * to retrieve runs in logical order.<p> + * This is especially useful for line-breaking on a paragraph. + * + * @param aLogicalStart is the first character of the run. + * + * @param aLogicalLimit will receive the limit of the run. + * The l-value that you point to here may be the + * same expression (variable) as the one for + * <code>aLogicalStart</code>. + * This pointer can be <code>nullptr</code> if this + * value is not necessary. + * + * @param aLevel will receive the level of the run. + * This pointer can be <code>nullptr</code> if this + * value is not necessary. + */ + nsresult GetLogicalRun(int32_t aLogicalStart, int32_t* aLogicalLimit, + nsBidiLevel* aLevel); + + /** + * Get the number of runs. + * This function may invoke the actual reordering on the + * <code>nsBidi</code> object, after <code>SetPara</code> + * may have resolved only the levels of the text. Therefore, + * <code>CountRuns</code> may have to allocate memory, + * and may fail doing so. + * + * @param aRunCount will receive the number of runs. + */ + nsresult CountRuns(int32_t* aRunCount); + + /** + * Get one run's logical start, length, and directionality, + * which can be 0 for LTR or 1 for RTL. + * In an RTL run, the character at the logical start is + * visually on the right of the displayed run. + * The length is the number of characters in the run.<p> + * <code>CountRuns</code> should be called + * before the runs are retrieved. + * + * @param aRunIndex is the number of the run in visual order, in the + * range <code>[0..CountRuns-1]</code>. + * + * @param aLogicalStart is the first logical character index in the text. + * The pointer may be <code>nullptr</code> if this index is not needed. + * + * @param aLength is the number of characters (at least one) in the run. + * The pointer may be <code>nullptr</code> if this is not needed. + * + * @param aDirection will receive the directionality of the run, + * <code>NSBIDI_LTR==0</code> or <code>NSBIDI_RTL==1</code>, + * never <code>NSBIDI_MIXED</code>. + * + * @see CountRuns<p> + * + * Example: + * @code + * int32_t i, count, logicalStart, visualIndex=0, length; + * nsBidiDirection dir; + * pBidi->CountRuns(&count); + * for(i=0; i<count; ++i) { + * pBidi->GetVisualRun(i, &logicalStart, &length, &dir); + * if(NSBIDI_LTR==dir) { + * do { // LTR + * show_char(text[logicalStart++], visualIndex++); + * } while(--length>0); + * } else { + * logicalStart+=length; // logicalLimit + * do { // RTL + * show_char(text[--logicalStart], visualIndex++); + * } while(--length>0); + * } + * } + * @endcode + * + * Note that in right-to-left runs, code like this places + * modifier letters before base characters and second surrogates + * before first ones. + */ + nsresult GetVisualRun(int32_t aRunIndex, int32_t* aLogicalStart, + int32_t* aLength, nsBidiDirection* aDirection); + + /** + * This is a convenience function that does not use a nsBidi object. + * It is intended to be used for when an application has determined the levels + * of objects (character sequences) and just needs to have them reordered (L2). + * This is equivalent to using <code>GetVisualMap</code> on a + * <code>nsBidi</code> object. + * + * @param aLevels is an array with <code>aLength</code> levels that have been + * determined by the application. + * + * @param aLength is the number of levels in the array, or, semantically, + * the number of objects to be reordered. + * It must be <code>aLength>0</code>. + * + * @param aIndexMap is a pointer to an array of <code>aLength</code> + * indexes which will reflect the reordering of the characters. + * The array does not need to be initialized.<p> + * The index map will result in + * <code>aIndexMap[aVisualIndex]==aLogicalIndex</code>. + */ + static nsresult ReorderVisual(const nsBidiLevel* aLevels, int32_t aLength, + int32_t* aIndexMap); + +protected: + UBiDi* mBiDi; +}; + +#endif // nsBidi_h__ diff --git a/layout/base/nsBidi_ICU.h b/layout/base/nsBidi_ICU.h deleted file mode 100644 index 3ead6e2bb..000000000 --- a/layout/base/nsBidi_ICU.h +++ /dev/null @@ -1,190 +0,0 @@ -/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#ifndef nsBidi_ICU_h__ -#define nsBidi_ICU_h__ - -#include "unicode/ubidi.h" -#include "nsIFrame.h" // for nsBidiLevel/nsBidiDirection declarations - -// nsBidi implemented as a simple wrapper around the bidi reordering engine -// from ICU. -// We could eliminate this and let callers use the ICU functions directly -// once we no longer care about building without ICU available. - -class nsBidi -{ -public: - /** @brief Default constructor. - * - * The nsBidi object is initially empty. It is assigned - * the Bidi properties of a paragraph by <code>SetPara()</code>. - */ - explicit nsBidi(); - - /** @brief Destructor. */ - virtual ~nsBidi(); - - - /** - * Perform the Unicode Bidi algorithm. - * - * @param aText is a pointer to the single-paragraph text that the - * Bidi algorithm will be performed on - * (step (P1) of the algorithm is performed externally). - * <strong>The text must be (at least) <code>aLength</code> long.</strong> - * - * @param aLength is the length of the text; if <code>aLength==-1</code> then - * the text must be zero-terminated. - * - * @param aParaLevel specifies the default level for the paragraph; - * it is typically 0 (LTR) or 1 (RTL). - * If the function shall determine the paragraph level from the text, - * then <code>aParaLevel</code> can be set to - * either <code>NSBIDI_DEFAULT_LTR</code> - * or <code>NSBIDI_DEFAULT_RTL</code>; - * if there is no strongly typed character, then - * the desired default is used (0 for LTR or 1 for RTL). - * Any other value between 0 and <code>NSBIDI_MAX_EXPLICIT_LEVEL</code> - * is also valid, with odd levels indicating RTL. - */ - nsresult SetPara(const char16_t *aText, int32_t aLength, - nsBidiLevel aParaLevel); - - /** - * Get the directionality of the text. - * - * @param aDirection receives a <code>NSBIDI_XXX</code> value that indicates - * if the entire text represented by this object is unidirectional, - * and which direction, or if it is mixed-directional. - * - * @see nsBidiDirection - */ - nsresult GetDirection(nsBidiDirection* aDirection); - - /** - * Get the paragraph level of the text. - * - * @param aParaLevel receives a <code>NSBIDI_XXX</code> value indicating - * the paragraph level - * - * @see nsBidiLevel - */ - nsresult GetParaLevel(nsBidiLevel* aParaLevel); - - /** - * Get a logical run. - * This function returns information about a run and is used - * to retrieve runs in logical order.<p> - * This is especially useful for line-breaking on a paragraph. - * - * @param aLogicalStart is the first character of the run. - * - * @param aLogicalLimit will receive the limit of the run. - * The l-value that you point to here may be the - * same expression (variable) as the one for - * <code>aLogicalStart</code>. - * This pointer can be <code>nullptr</code> if this - * value is not necessary. - * - * @param aLevel will receive the level of the run. - * This pointer can be <code>nullptr</code> if this - * value is not necessary. - */ - nsresult GetLogicalRun(int32_t aLogicalStart, int32_t* aLogicalLimit, - nsBidiLevel* aLevel); - - /** - * Get the number of runs. - * This function may invoke the actual reordering on the - * <code>nsBidi</code> object, after <code>SetPara</code> - * may have resolved only the levels of the text. Therefore, - * <code>CountRuns</code> may have to allocate memory, - * and may fail doing so. - * - * @param aRunCount will receive the number of runs. - */ - nsresult CountRuns(int32_t* aRunCount); - - /** - * Get one run's logical start, length, and directionality, - * which can be 0 for LTR or 1 for RTL. - * In an RTL run, the character at the logical start is - * visually on the right of the displayed run. - * The length is the number of characters in the run.<p> - * <code>CountRuns</code> should be called - * before the runs are retrieved. - * - * @param aRunIndex is the number of the run in visual order, in the - * range <code>[0..CountRuns-1]</code>. - * - * @param aLogicalStart is the first logical character index in the text. - * The pointer may be <code>nullptr</code> if this index is not needed. - * - * @param aLength is the number of characters (at least one) in the run. - * The pointer may be <code>nullptr</code> if this is not needed. - * - * @param aDirection will receive the directionality of the run, - * <code>NSBIDI_LTR==0</code> or <code>NSBIDI_RTL==1</code>, - * never <code>NSBIDI_MIXED</code>. - * - * @see CountRuns<p> - * - * Example: - * @code - * int32_t i, count, logicalStart, visualIndex=0, length; - * nsBidiDirection dir; - * pBidi->CountRuns(&count); - * for(i=0; i<count; ++i) { - * pBidi->GetVisualRun(i, &logicalStart, &length, &dir); - * if(NSBIDI_LTR==dir) { - * do { // LTR - * show_char(text[logicalStart++], visualIndex++); - * } while(--length>0); - * } else { - * logicalStart+=length; // logicalLimit - * do { // RTL - * show_char(text[--logicalStart], visualIndex++); - * } while(--length>0); - * } - * } - * @endcode - * - * Note that in right-to-left runs, code like this places - * modifier letters before base characters and second surrogates - * before first ones. - */ - nsresult GetVisualRun(int32_t aRunIndex, int32_t* aLogicalStart, - int32_t* aLength, nsBidiDirection* aDirection); - - /** - * This is a convenience function that does not use a nsBidi object. - * It is intended to be used for when an application has determined the levels - * of objects (character sequences) and just needs to have them reordered (L2). - * This is equivalent to using <code>GetVisualMap</code> on a - * <code>nsBidi</code> object. - * - * @param aLevels is an array with <code>aLength</code> levels that have been - * determined by the application. - * - * @param aLength is the number of levels in the array, or, semantically, - * the number of objects to be reordered. - * It must be <code>aLength>0</code>. - * - * @param aIndexMap is a pointer to an array of <code>aLength</code> - * indexes which will reflect the reordering of the characters. - * The array does not need to be initialized.<p> - * The index map will result in - * <code>aIndexMap[aVisualIndex]==aLogicalIndex</code>. - */ - static nsresult ReorderVisual(const nsBidiLevel* aLevels, int32_t aLength, - int32_t* aIndexMap); - -protected: - UBiDi* mBiDi; -}; - -#endif // _nsBidi_ICU_h_ diff --git a/layout/base/nsBidi_noICU.cpp b/layout/base/nsBidi_noICU.cpp deleted file mode 100644 index 0b9c58e55..000000000 --- a/layout/base/nsBidi_noICU.cpp +++ /dev/null @@ -1,2089 +0,0 @@ -/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#include "nsBidi.h" -#include "nsUnicodeProperties.h" -#include "nsCRTGlue.h" - -using namespace mozilla::unicode; - -static_assert(mozilla::kBidiLevelNone > NSBIDI_MAX_EXPLICIT_LEVEL + 1, - "The pseudo embedding level should be out-of-range"); - -// These are #defined in <sys/regset.h> under Solaris 10 x86 -#undef CS -#undef ES - -/* Comparing the description of the Bidi algorithm with this implementation - is easier with the same names for the Bidi types in the code as there. -*/ -enum { - L = eCharType_LeftToRight, - R = eCharType_RightToLeft, - EN = eCharType_EuropeanNumber, - ES = eCharType_EuropeanNumberSeparator, - ET = eCharType_EuropeanNumberTerminator, - AN = eCharType_ArabicNumber, - CS = eCharType_CommonNumberSeparator, - B = eCharType_BlockSeparator, - S = eCharType_SegmentSeparator, - WS = eCharType_WhiteSpaceNeutral, - O_N = eCharType_OtherNeutral, - LRE = eCharType_LeftToRightEmbedding, - LRO = eCharType_LeftToRightOverride, - AL = eCharType_RightToLeftArabic, - RLE = eCharType_RightToLeftEmbedding, - RLO = eCharType_RightToLeftOverride, - PDF = eCharType_PopDirectionalFormat, - NSM = eCharType_DirNonSpacingMark, - BN = eCharType_BoundaryNeutral, - LRI = eCharType_LeftToRightIsolate, - RLI = eCharType_RightToLeftIsolate, - FSI = eCharType_FirstStrongIsolate, - PDI = eCharType_PopDirectionalIsolate, - ENL, /* EN after W7 */ /* 23 */ - ENR, /* EN not subject to W7 */ /* 24 */ - dirPropCount -}; - -#define IS_STRONG_TYPE(dirProp) ((dirProp) <= R || (dirProp) == AL) - -/* to avoid some conditional statements, use tiny constant arrays */ -static Flags flagLR[2]={ DIRPROP_FLAG(L), DIRPROP_FLAG(R) }; -static Flags flagE[2]={ DIRPROP_FLAG(LRE), DIRPROP_FLAG(RLE) }; -static Flags flagO[2]={ DIRPROP_FLAG(LRO), DIRPROP_FLAG(RLO) }; - -#define DIRPROP_FLAG_LR(level) flagLR[(level)&1] -#define DIRPROP_FLAG_E(level) flagE[(level)&1] -#define DIRPROP_FLAG_O(level) flagO[(level)&1] - -#define NO_OVERRIDE(level) ((level)&~NSBIDI_LEVEL_OVERRIDE) - -static inline uint8_t -DirFromStrong(uint8_t aDirProp) -{ - MOZ_ASSERT(IS_STRONG_TYPE(aDirProp)); - return aDirProp == L ? L : R; -} - -/* - * General implementation notes: - * - * Throughout the implementation, there are comments like (W2) that refer to - * rules of the Bidi algorithm in its version 5, in this example to the second - * rule of the resolution of weak types. - * - * For handling surrogate pairs, where two UChar's form one "abstract" (or UTF-32) - * character according to UTF-16, the second UChar gets the directional property of - * the entire character assigned, while the first one gets a BN, a boundary - * neutral, type, which is ignored by most of the algorithm according to - * rule (X9) and the implementation suggestions of the Bidi algorithm. - * - * Later, AdjustWSLevels() will set the level for each BN to that of the - * following character (UChar), which results in surrogate pairs getting the - * same level on each of their surrogates. - * - * In a UTF-8 implementation, the same thing could be done: the last byte of - * a multi-byte sequence would get the "real" property, while all previous - * bytes of that sequence would get BN. - * - * It is not possible to assign all those parts of a character the same real - * property because this would fail in the resolution of weak types with rules - * that look at immediately surrounding types. - * - * As a related topic, this implementation does not remove Boundary Neutral - * types from the input, but ignores them whenever this is relevant. - * For example, the loop for the resolution of the weak types reads - * types until it finds a non-BN. - * Also, explicit embedding codes are neither changed into BN nor removed. - * They are only treated the same way real BNs are. - * As stated before, AdjustWSLevels() takes care of them at the end. - * For the purpose of conformance, the levels of all these codes - * do not matter. - * - * Note that this implementation never modifies the dirProps - * after the initial setup, except for FSI which is changed to either - * LRI or RLI in GetDirProps(), and paired brackets which may be changed - * to L or R according to N0. - * - * - * In this implementation, the resolution of weak types (Wn), - * neutrals (Nn), and the assignment of the resolved level (In) - * are all done in one single loop, in ResolveImplicitLevels(). - * Changes of dirProp values are done on the fly, without writing - * them back to the dirProps array. - * - * - * This implementation contains code that allows to bypass steps of the - * algorithm that are not needed on the specific paragraph - * in order to speed up the most common cases considerably, - * like text that is entirely LTR, or RTL text without numbers. - * - * Most of this is done by setting a bit for each directional property - * in a flags variable and later checking for whether there are - * any LTR characters or any RTL characters, or both, whether - * there are any explicit embedding codes, etc. - * - * If the (Xn) steps are performed, then the flags are re-evaluated, - * because they will then not contain the embedding codes any more - * and will be adjusted for override codes, so that subsequently - * more bypassing may be possible than what the initial flags suggested. - * - * If the text is not mixed-directional, then the - * algorithm steps for the weak type resolution are not performed, - * and all levels are set to the paragraph level. - * - * If there are no explicit embedding codes, then the (Xn) steps - * are not performed. - * - * If embedding levels are supplied as a parameter, then all - * explicit embedding codes are ignored, and the (Xn) steps - * are not performed. - * - * White Space types could get the level of the run they belong to, - * and are checked with a test of (flags&MASK_EMBEDDING) to - * consider if the paragraph direction should be considered in - * the flags variable. - * - * If there are no White Space types in the paragraph, then - * (L1) is not necessary in AdjustWSLevels(). - */ -nsBidi::nsBidi() -{ - Init(); -} - -nsBidi::~nsBidi() -{ - Free(); -} - -void nsBidi::Init() -{ - /* reset the object, all pointers nullptr, all flags false, all sizes 0 */ - mLength = 0; - mParaLevel = 0; - mFlags = 0; - mDirection = NSBIDI_LTR; - mTrailingWSStart = 0; - - mDirPropsSize = 0; - mLevelsSize = 0; - mRunsSize = 0; - mIsolatesSize = 0; - - mRunCount = -1; - mIsolateCount = -1; - - mDirProps=nullptr; - mLevels=nullptr; - mRuns=nullptr; - mIsolates=nullptr; - - mDirPropsMemory=nullptr; - mLevelsMemory=nullptr; - mRunsMemory=nullptr; - mIsolatesMemory=nullptr; -} - -/* - * We are allowed to allocate memory if aMemory==nullptr - * for each array that we need. - * We also try to grow and shrink memory as needed if we - * allocate it. - * - * Assume aSizeNeeded>0. - * If *aMemory!=nullptr, then assume *aSize>0. - * - * ### this realloc() may unnecessarily copy the old data, - * which we know we don't need any more; - * is this the best way to do this?? - */ -/*static*/ -bool -nsBidi::GetMemory(void **aMemory, size_t *aSize, size_t aSizeNeeded) -{ - /* check for existing memory */ - if(*aMemory==nullptr) { - /* we need to allocate memory */ - *aMemory=malloc(aSizeNeeded); - if (*aMemory!=nullptr) { - *aSize=aSizeNeeded; - return true; - } else { - *aSize=0; - return false; - } - } else { - /* there is some memory, is it enough or too much? */ - if(aSizeNeeded!=*aSize) { - /* we may try to grow or shrink */ - void *memory=realloc(*aMemory, aSizeNeeded); - - if(memory!=nullptr) { - *aMemory=memory; - *aSize=aSizeNeeded; - return true; - } else { - /* we failed to grow */ - return false; - } - } else { - /* we have at least enough memory and must not allocate */ - return true; - } - } -} - -void nsBidi::Free() -{ - free(mDirPropsMemory); - mDirPropsMemory = nullptr; - free(mLevelsMemory); - mLevelsMemory = nullptr; - free(mRunsMemory); - mRunsMemory = nullptr; - free(mIsolatesMemory); - mIsolatesMemory = nullptr; -} - -/* SetPara ------------------------------------------------------------ */ - -nsresult nsBidi::SetPara(const char16_t *aText, int32_t aLength, - nsBidiLevel aParaLevel) -{ - nsBidiDirection direction; - - /* check the argument values */ - if(aText==nullptr || - ((NSBIDI_MAX_EXPLICIT_LEVEL<aParaLevel) && !IS_DEFAULT_LEVEL(aParaLevel)) || - aLength<-1 - ) { - return NS_ERROR_INVALID_ARG; - } - - if(aLength==-1) { - aLength = NS_strlen(aText); - } - - /* initialize member data */ - mLength = aLength; - mParaLevel=aParaLevel; - mDirection=aParaLevel & 1 ? NSBIDI_RTL : NSBIDI_LTR; - mTrailingWSStart=aLength; /* the levels[] will reflect the WS run */ - - mDirProps=nullptr; - mLevels=nullptr; - mRuns=nullptr; - - if(aLength==0) { - /* - * For an empty paragraph, create an nsBidi object with the aParaLevel and - * the flags and the direction set but without allocating zero-length arrays. - * There is nothing more to do. - */ - if(IS_DEFAULT_LEVEL(aParaLevel)) { - mParaLevel&=1; - } - mFlags=DIRPROP_FLAG_LR(aParaLevel); - mRunCount=0; - return NS_OK; - } - - mRunCount=-1; - - /* - * Get the directional properties, - * the flags bit-set, and - * determine the partagraph level if necessary. - */ - if(GETDIRPROPSMEMORY(aLength)) { - mDirProps=mDirPropsMemory; - GetDirProps(aText); - } else { - return NS_ERROR_OUT_OF_MEMORY; - } - - /* determine explicit levels according to the (Xn) rules */ - if(GETLEVELSMEMORY(aLength)) { - mLevels=mLevelsMemory; - ResolveExplicitLevels(&direction, aText); - } else { - return NS_ERROR_OUT_OF_MEMORY; - } - - /* allocate isolate memory */ - if (mIsolateCount <= SIMPLE_ISOLATES_SIZE) { - mIsolates = mSimpleIsolates; - } else { - if (mIsolateCount * sizeof(Isolate) <= mIsolatesSize) { - mIsolates = mIsolatesMemory; - } else { - if (GETISOLATESMEMORY(mIsolateCount)) { - mIsolates = mIsolatesMemory; - } else { - return NS_ERROR_OUT_OF_MEMORY; - } - } - } - mIsolateCount = -1; /* current isolates stack entry == none */ - - /* - * The steps after (X9) in the Bidi algorithm are performed only if - * the paragraph text has mixed directionality! - */ - mDirection = direction; - switch(direction) { - case NSBIDI_LTR: - /* make sure paraLevel is even */ - mParaLevel=(mParaLevel+1)&~1; - - /* all levels are implicitly at paraLevel (important for GetLevels()) */ - mTrailingWSStart=0; - break; - case NSBIDI_RTL: - /* make sure paraLevel is odd */ - mParaLevel|=1; - - /* all levels are implicitly at paraLevel (important for GetLevels()) */ - mTrailingWSStart=0; - break; - default: - /* - * If there are no external levels specified and there - * are no significant explicit level codes in the text, - * then we can treat the entire paragraph as one run. - * Otherwise, we need to perform the following rules on runs of - * the text with the same embedding levels. (X10) - * "Significant" explicit level codes are ones that actually - * affect non-BN characters. - * Examples for "insignificant" ones are empty embeddings - * LRE-PDF, LRE-RLE-PDF-PDF, etc. - */ - if(!(mFlags&DIRPROP_FLAG_MULTI_RUNS)) { - ResolveImplicitLevels(0, aLength, - GET_LR_FROM_LEVEL(mParaLevel), - GET_LR_FROM_LEVEL(mParaLevel)); - } else { - /* sor, eor: start and end types of same-level-run */ - nsBidiLevel *levels=mLevels; - int32_t start, limit=0; - nsBidiLevel level, nextLevel; - DirProp sor, eor; - - /* determine the first sor and set eor to it because of the loop body (sor=eor there) */ - level=mParaLevel; - nextLevel=levels[0]; - if(level<nextLevel) { - eor=GET_LR_FROM_LEVEL(nextLevel); - } else { - eor=GET_LR_FROM_LEVEL(level); - } - - do { - /* determine start and limit of the run (end points just behind the run) */ - - /* the values for this run's start are the same as for the previous run's end */ - sor=eor; - start=limit; - level=nextLevel; - - /* search for the limit of this run */ - while(++limit<aLength && - (levels[limit]==level || - (DIRPROP_FLAG(mDirProps[limit])&MASK_BN_EXPLICIT))) {} - - /* get the correct level of the next run */ - if(limit<aLength) { - nextLevel=levels[limit]; - } else { - nextLevel=mParaLevel; - } - - /* determine eor from max(level, nextLevel); sor is last run's eor */ - if((level&~NSBIDI_LEVEL_OVERRIDE)<(nextLevel&~NSBIDI_LEVEL_OVERRIDE)) { - eor=GET_LR_FROM_LEVEL(nextLevel); - } else { - eor=GET_LR_FROM_LEVEL(level); - } - - /* if the run consists of overridden directional types, then there - are no implicit types to be resolved */ - if(!(level&NSBIDI_LEVEL_OVERRIDE)) { - ResolveImplicitLevels(start, limit, sor, eor); - } else { - do { - levels[start++] &= ~NSBIDI_LEVEL_OVERRIDE; - } while (start < limit); - } - } while(limit<aLength); - } - - /* reset the embedding levels for some non-graphic characters (L1), (X9) */ - AdjustWSLevels(); - break; - } - - return NS_OK; -} - -/* perform (P2)..(P3) ------------------------------------------------------- */ - -/* - * Get the directional properties for the text, - * calculate the flags bit-set, and - * determine the partagraph level if necessary. - */ -void nsBidi::GetDirProps(const char16_t *aText) -{ - DirProp *dirProps=mDirPropsMemory; /* mDirProps is const */ - - int32_t i=0, length=mLength; - Flags flags=0; /* collect all directionalities in the text */ - char16_t uchar; - DirProp dirProp; - - bool isDefaultLevel = IS_DEFAULT_LEVEL(mParaLevel); - - enum State { - NOT_SEEKING_STRONG, /* 0: not after FSI */ - SEEKING_STRONG_FOR_PARA, /* 1: looking for first strong char in para */ - SEEKING_STRONG_FOR_FSI, /* 2: looking for first strong after FSI */ - LOOKING_FOR_PDI /* 3: found strong after FSI, looking for PDI */ - }; - State state; - - /* The following stacks are used to manage isolate sequences. Those - sequences may be nested, but obviously never more deeply than the - maximum explicit embedding level. - lastStack is the index of the last used entry in the stack. A value of -1 - means that there is no open isolate sequence. */ - /* The following stack contains the position of the initiator of - each open isolate sequence */ - int32_t isolateStartStack[NSBIDI_MAX_EXPLICIT_LEVEL + 1]; - /* The following stack contains the last known state before - encountering the initiator of an isolate sequence */ - State previousStateStack[NSBIDI_MAX_EXPLICIT_LEVEL + 1]; - int32_t stackLast = -1; - - if(isDefaultLevel) { - /* - * see comment in nsBidi.h: - * the DEFAULT_XXX values are designed so that - * their bit 0 alone yields the intended default - */ - mParaLevel &= 1; - state = SEEKING_STRONG_FOR_PARA; - } else { - state = NOT_SEEKING_STRONG; - } - - /* determine the paragraph level (P2..P3) */ - for(/* i = 0 above */; i < length;) { - uchar=aText[i]; - if(!IS_FIRST_SURROGATE(uchar) || i+1==length || !IS_SECOND_SURROGATE(aText[i+1])) { - /* not a surrogate pair */ - flags|=DIRPROP_FLAG(dirProps[i]=dirProp=GetBidiCat((uint32_t)uchar)); - } else { - /* a surrogate pair */ - dirProps[i++]=BN; /* first surrogate in the pair gets the BN type */ - flags|=DIRPROP_FLAG(dirProps[i]=dirProp=GetBidiCat(GET_UTF_32(uchar, aText[i])))|DIRPROP_FLAG(BN); - } - ++i; - - switch (dirProp) { - case L: - if (state == SEEKING_STRONG_FOR_PARA) { - mParaLevel = 0; - state = NOT_SEEKING_STRONG; - } else if (state == SEEKING_STRONG_FOR_FSI) { - if (stackLast <= NSBIDI_MAX_EXPLICIT_LEVEL) { - dirProps[isolateStartStack[stackLast]] = LRI; - flags |= DIRPROP_FLAG(LRI); - } - state = LOOKING_FOR_PDI; - } - break; - - case R: case AL: - if (state == SEEKING_STRONG_FOR_PARA) { - mParaLevel = 1; - state = NOT_SEEKING_STRONG; - } else if (state == SEEKING_STRONG_FOR_FSI) { - if (stackLast <= NSBIDI_MAX_EXPLICIT_LEVEL) { - dirProps[isolateStartStack[stackLast]] = RLI; - flags |= DIRPROP_FLAG(RLI); - } - state = LOOKING_FOR_PDI; - } - break; - - case FSI: case LRI: case RLI: - stackLast++; - if (stackLast <= NSBIDI_MAX_EXPLICIT_LEVEL) { - isolateStartStack[stackLast] = i - 1; - previousStateStack[stackLast] = state; - } - if (dirProp == FSI) { - state = SEEKING_STRONG_FOR_FSI; - } else { - state = LOOKING_FOR_PDI; - } - break; - - case PDI: - if (state == SEEKING_STRONG_FOR_FSI) { - if (stackLast <= NSBIDI_MAX_EXPLICIT_LEVEL) { - dirProps[isolateStartStack[stackLast]] = LRI; - flags |= DIRPROP_FLAG(LRI); - } - } - if (stackLast >= 0) { - if (stackLast <= NSBIDI_MAX_EXPLICIT_LEVEL) { - state = previousStateStack[stackLast]; - } - stackLast--; - } - break; - - case B: - // This shouldn't happen, since we don't support multiple paragraphs. - NS_NOTREACHED("Unexpected paragraph separator"); - break; - - default: - break; - } - } - - /* Ignore still open isolate sequences with overflow */ - if (stackLast > NSBIDI_MAX_EXPLICIT_LEVEL) { - stackLast = NSBIDI_MAX_EXPLICIT_LEVEL; - if (dirProps[previousStateStack[NSBIDI_MAX_EXPLICIT_LEVEL]] != FSI) { - state = LOOKING_FOR_PDI; - } - } - - /* Resolve direction of still unresolved open FSI sequences */ - while (stackLast >= 0) { - if (state == SEEKING_STRONG_FOR_FSI) { - dirProps[isolateStartStack[stackLast]] = LRI; - flags |= DIRPROP_FLAG(LRI); - } - state = previousStateStack[stackLast]; - stackLast--; - } - - flags|=DIRPROP_FLAG_LR(mParaLevel); - - mFlags = flags; -} - -/* Functions for handling paired brackets ----------------------------------- */ - -/* In the mIsoRuns array, the first entry is used for text outside of any - isolate sequence. Higher entries are used for each more deeply nested - isolate sequence. - mIsoRunLast is the index of the last used entry. - The mOpenings array is used to note the data of opening brackets not yet - matched by a closing bracket, or matched but still susceptible to change - level. - Each isoRun entry contains the index of the first and - one-after-last openings entries for pending opening brackets it - contains. The next mOpenings entry to use is the one-after-last of the - most deeply nested isoRun entry. - mIsoRuns entries also contain their current embedding level and the bidi - class of the last-encountered strong character, since these will be needed - to resolve the level of paired brackets. */ - -nsBidi::BracketData::BracketData(const nsBidi *aBidi) -{ - mIsoRunLast = 0; - mIsoRuns[0].start = 0; - mIsoRuns[0].limit = 0; - mIsoRuns[0].level = aBidi->mParaLevel; - mIsoRuns[0].lastStrong = mIsoRuns[0].lastBase = mIsoRuns[0].contextDir = - GET_LR_FROM_LEVEL(aBidi->mParaLevel); - mIsoRuns[0].contextPos = 0; - mOpenings = mSimpleOpenings; - mOpeningsCount = SIMPLE_OPENINGS_COUNT; - mOpeningsMemory = nullptr; -} - -nsBidi::BracketData::~BracketData() -{ - free(mOpeningsMemory); -} - -/* LRE, LRO, RLE, RLO, PDF */ -void -nsBidi::BracketData::ProcessBoundary(int32_t aLastDirControlCharPos, - nsBidiLevel aContextLevel, - nsBidiLevel aEmbeddingLevel, - const DirProp* aDirProps) -{ - IsoRun& lastIsoRun = mIsoRuns[mIsoRunLast]; - if (DIRPROP_FLAG(aDirProps[aLastDirControlCharPos]) & MASK_ISO) { /* after an isolate */ - return; - } - if (NO_OVERRIDE(aEmbeddingLevel) > NO_OVERRIDE(aContextLevel)) { /* not PDF */ - aContextLevel = aEmbeddingLevel; - } - lastIsoRun.limit = lastIsoRun.start; - lastIsoRun.level = aEmbeddingLevel; - lastIsoRun.lastStrong = lastIsoRun.lastBase = lastIsoRun.contextDir = - GET_LR_FROM_LEVEL(aContextLevel); - lastIsoRun.contextPos = aLastDirControlCharPos; -} - -/* LRI or RLI */ -void -nsBidi::BracketData::ProcessLRI_RLI(nsBidiLevel aLevel) -{ - MOZ_ASSERT(mIsoRunLast <= NSBIDI_MAX_EXPLICIT_LEVEL); - IsoRun& lastIsoRun = mIsoRuns[mIsoRunLast]; - lastIsoRun.lastBase = O_N; - IsoRun& currIsoRun = mIsoRuns[++mIsoRunLast]; - currIsoRun.start = currIsoRun.limit = lastIsoRun.limit; - currIsoRun.level = aLevel; - currIsoRun.lastStrong = currIsoRun.lastBase = currIsoRun.contextDir = - GET_LR_FROM_LEVEL(aLevel); - currIsoRun.contextPos = 0; -} - -/* PDI */ -void -nsBidi::BracketData::ProcessPDI() -{ - MOZ_ASSERT(mIsoRunLast > 0); - mIsoRuns[--mIsoRunLast].lastBase = O_N; -} - -/* newly found opening bracket: create an openings entry */ -bool /* return true if success */ -nsBidi::BracketData::AddOpening(char16_t aMatch, int32_t aPosition) -{ - IsoRun& lastIsoRun = mIsoRuns[mIsoRunLast]; - if (lastIsoRun.limit >= mOpeningsCount) { /* no available new entry */ - if (!GETOPENINGSMEMORY(lastIsoRun.limit * 2)) { - return false; - } - if (mOpenings == mSimpleOpenings) { - memcpy(mOpeningsMemory, mSimpleOpenings, - SIMPLE_OPENINGS_COUNT * sizeof(Opening)); - } - mOpenings = mOpeningsMemory; /* may have changed */ - mOpeningsCount = mOpeningsSize / sizeof(Opening); - } - Opening& o = mOpenings[lastIsoRun.limit]; - o.position = aPosition; - o.match = aMatch; - o.contextDir = lastIsoRun.contextDir; - o.contextPos = lastIsoRun.contextPos; - o.flags = 0; - lastIsoRun.limit++; - return true; -} - -/* change N0c1 to N0c2 when a preceding bracket is assigned the embedding level */ -void -nsBidi::BracketData::FixN0c(int32_t aOpeningIndex, int32_t aNewPropPosition, - DirProp aNewProp, DirProp* aDirProps) -{ - /* This function calls itself recursively */ - IsoRun& lastIsoRun = mIsoRuns[mIsoRunLast]; - for (int32_t k = aOpeningIndex + 1; k < lastIsoRun.limit; k++) { - Opening& o = mOpenings[k]; - if (o.match >= 0) { /* not an N0c match */ - continue; - } - if (aNewPropPosition < o.contextPos) { - break; - } - int32_t openingPosition = o.position; - if (aNewPropPosition >= openingPosition) { - continue; - } - if (aNewProp == o.contextDir) { - break; - } - aDirProps[openingPosition] = aNewProp; - int32_t closingPosition = -(o.match); - aDirProps[closingPosition] = aNewProp; - o.match = 0; /* prevent further changes */ - FixN0c(k, openingPosition, aNewProp, aDirProps); - FixN0c(k, closingPosition, aNewProp, aDirProps); - } -} - -/* process closing bracket */ -DirProp /* return L or R if N0b or N0c, ON if N0d */ -nsBidi::BracketData::ProcessClosing(int32_t aOpenIdx, int32_t aPosition, - DirProp* aDirProps) -{ - IsoRun& lastIsoRun = mIsoRuns[mIsoRunLast]; - Opening& o = mOpenings[aOpenIdx]; - DirProp newProp; - DirProp direction = GET_LR_FROM_LEVEL(lastIsoRun.level); - bool stable = true; // assume stable until proved otherwise - - /* The stable flag is set when brackets are paired and their - level is resolved and cannot be changed by what will be - found later in the source string. - An unstable match can occur only when applying N0c, where - the resolved level depends on the preceding context, and - this context may be affected by text occurring later. - Example: RTL paragraph containing: abc[(latin) HEBREW] - When the closing parenthesis is encountered, it appears - that N0c1 must be applied since 'abc' sets an opposite - direction context and both parentheses receive level 2. - However, when the closing square bracket is processed, - N0b applies because of 'HEBREW' being included within the - brackets, thus the square brackets are treated like R and - receive level 1. However, this changes the preceding - context of the opening parenthesis, and it now appears - that N0c2 must be applied to the parentheses rather than - N0c1. */ - - if ((direction == 0 && o.flags & FOUND_L) || - (direction == 1 && o.flags & FOUND_R)) { /* N0b */ - newProp = direction; - } else if (o.flags & (FOUND_L|FOUND_R)) { /* N0c */ - /* it is stable if there is no containing pair or in - conditions too complicated and not worth checking */ - stable = (aOpenIdx == lastIsoRun.start); - if (direction != o.contextDir) { - newProp = o.contextDir; /* N0c1 */ - } else { - newProp = direction; /* N0c2 */ - } - } else { - /* forget this and any brackets nested within this pair */ - lastIsoRun.limit = aOpenIdx; - return O_N; /* N0d */ - } - aDirProps[o.position] = newProp; - aDirProps[aPosition] = newProp; - /* Update nested N0c pairs that may be affected */ - FixN0c(aOpenIdx, o.position, newProp, aDirProps); - if (stable) { - /* forget any brackets nested within this pair */ - lastIsoRun.limit = aOpenIdx; - } else { - int32_t k; - o.match = -aPosition; - /* neutralize any unmatched opening between the current pair */ - for (k = aOpenIdx + 1; k < lastIsoRun.limit; k++) { - Opening& oo = mOpenings[k]; - if (oo.position > aPosition) { - break; - } - if (oo.match > 0) { - oo.match = 0; - } - } - } - return newProp; -} - -static inline bool -IsMatchingCloseBracket(char16_t aCh1, char16_t aCh2) -{ - // U+232A RIGHT-POINTING ANGLE BRACKET and U+3009 RIGHT ANGLE BRACKET - // are canonical equivalents, so we special-case them here. - return (aCh1 == aCh2) || - (aCh1 == 0x232A && aCh2 == 0x3009) || - (aCh2 == 0x232A && aCh1 == 0x3009); -} - -/* Handle strong characters, digits and candidates for closing brackets. */ -/* Returns true if success. (The only failure mode is an OOM when trying - to allocate memory for the Openings array.) */ -bool -nsBidi::BracketData::ProcessChar(int32_t aPosition, char16_t aCh, - DirProp* aDirProps, nsBidiLevel* aLevels) -{ - IsoRun& lastIsoRun = mIsoRuns[mIsoRunLast]; - DirProp newProp; - DirProp dirProp = aDirProps[aPosition]; - nsBidiLevel level = aLevels[aPosition]; - if (dirProp == O_N) { - /* First see if it is a matching closing bracket. Hopefully, this is - more efficient than checking if it is a closing bracket at all */ - for (int32_t idx = lastIsoRun.limit - 1; idx >= lastIsoRun.start; idx--) { - if (!IsMatchingCloseBracket(aCh, mOpenings[idx].match)) { - continue; - } - /* We have a match */ - newProp = ProcessClosing(idx, aPosition, aDirProps); - if (newProp == O_N) { /* N0d */ - aCh = 0; /* prevent handling as an opening */ - break; - } - lastIsoRun.lastBase = O_N; - lastIsoRun.contextDir = newProp; - lastIsoRun.contextPos = aPosition; - if (level & NSBIDI_LEVEL_OVERRIDE) { /* X4, X5 */ - newProp = GET_LR_FROM_LEVEL(level); - lastIsoRun.lastStrong = newProp; - uint16_t flag = DIRPROP_FLAG(newProp); - for (int32_t i = lastIsoRun.start; i < idx; i++) { - mOpenings[i].flags |= flag; - } - /* matching brackets are not overridden by LRO/RLO */ - aLevels[aPosition] &= ~NSBIDI_LEVEL_OVERRIDE; - } - /* matching brackets are not overridden by LRO/RLO */ - aLevels[mOpenings[idx].position] &= ~NSBIDI_LEVEL_OVERRIDE; - return true; - } - /* We get here only if the ON character is not a matching closing - bracket or it is a case of N0d */ - /* Now see if it is an opening bracket */ - char16_t match = GetPairedBracket(aCh); - if (match != aCh && /* has a matching char */ - GetPairedBracketType(aCh) == PAIRED_BRACKET_TYPE_OPEN) { /* opening bracket */ - if (!AddOpening(match, aPosition)) { - return false; - } - } - } - if (level & NSBIDI_LEVEL_OVERRIDE) { /* X4, X5 */ - newProp = GET_LR_FROM_LEVEL(level); - if (dirProp != S && dirProp != WS && dirProp != O_N) { - aDirProps[aPosition] = newProp; - } - lastIsoRun.lastBase = newProp; - lastIsoRun.lastStrong = newProp; - lastIsoRun.contextDir = newProp; - lastIsoRun.contextPos = aPosition; - } else if (IS_STRONG_TYPE(dirProp)) { - newProp = DirFromStrong(dirProp); - lastIsoRun.lastBase = dirProp; - lastIsoRun.lastStrong = dirProp; - lastIsoRun.contextDir = newProp; - lastIsoRun.contextPos = aPosition; - } else if (dirProp == EN) { - lastIsoRun.lastBase = EN; - if (lastIsoRun.lastStrong == L) { - newProp = L; /* W7 */ - aDirProps[aPosition] = ENL; - lastIsoRun.contextDir = L; - lastIsoRun.contextPos = aPosition; - } else { - newProp = R; /* N0 */ - if (lastIsoRun.lastStrong == AL) { - aDirProps[aPosition] = AN; /* W2 */ - } else { - aDirProps[aPosition] = ENR; - } - lastIsoRun.contextDir = R; - lastIsoRun.contextPos = aPosition; - } - } else if (dirProp == AN) { - newProp = R; /* N0 */ - lastIsoRun.lastBase = AN; - lastIsoRun.contextDir = R; - lastIsoRun.contextPos = aPosition; - } else if (dirProp == NSM) { - /* if the last real char was ON, change NSM to ON so that it - will stay ON even if the last real char is a bracket which - may be changed to L or R */ - newProp = lastIsoRun.lastBase; - if (newProp == O_N) { - aDirProps[aPosition] = newProp; - } - } else { - newProp = dirProp; - lastIsoRun.lastBase = dirProp; - } - if (IS_STRONG_TYPE(newProp)) { - uint16_t flag = DIRPROP_FLAG(DirFromStrong(newProp)); - for (int32_t i = lastIsoRun.start; i < lastIsoRun.limit; i++) { - if (aPosition > mOpenings[i].position) { - mOpenings[i].flags |= flag; - } - } - } - return true; -} - -/* perform (X1)..(X9) ------------------------------------------------------- */ - -/* - * Resolve the explicit levels as specified by explicit embedding codes. - * Recalculate the flags to have them reflect the real properties - * after taking the explicit embeddings into account. - * - * The Bidi algorithm is designed to result in the same behavior whether embedding - * levels are externally specified (from "styled text", supposedly the preferred - * method) or set by explicit embedding codes (LRx, RLx, PDF, FSI, PDI) in the plain text. - * That is why (X9) instructs to remove all not-isolate explicit codes (and BN). - * However, in a real implementation, this removal of these codes and their index - * positions in the plain text is undesirable since it would result in - * reallocated, reindexed text. - * Instead, this implementation leaves the codes in there and just ignores them - * in the subsequent processing. - * In order to get the same reordering behavior, positions with a BN or a not-isolate - * explicit embedding code just get the same level assigned as the last "real" - * character. - * - * Some implementations, not this one, then overwrite some of these - * directionality properties at "real" same-level-run boundaries by - * L or R codes so that the resolution of weak types can be performed on the - * entire paragraph at once instead of having to parse it once more and - * perform that resolution on same-level-runs. - * This limits the scope of the implicit rules in effectively - * the same way as the run limits. - * - * Instead, this implementation does not modify these codes. - * On one hand, the paragraph has to be scanned for same-level-runs, but - * on the other hand, this saves another loop to reset these codes, - * or saves making and modifying a copy of dirProps[]. - * - * - * Note that (Pn) and (Xn) changed significantly from version 4 of the Bidi algorithm. - * - * - * Handling the stack of explicit levels (Xn): - * - * With the Bidi stack of explicit levels, as pushed with each - * LRE, RLE, LRO, and RLO, LRI, RLI, and FSI and popped with each PDF and PDI, - * the explicit level must never exceed NSBIDI_MAX_EXPLICIT_LEVEL. - * - * In order to have a correct push-pop semantics even in the case of overflows, - * overflow counters and a valid isolate counter are used as described in UAX#9 - * section 3.3.2 "Explicit Levels and Direction". - * - * This implementation assumes that NSBIDI_MAX_EXPLICIT_LEVEL is odd. - */ - -void nsBidi::ResolveExplicitLevels(nsBidiDirection *aDirection, const char16_t *aText) -{ - DirProp *dirProps=mDirProps; - nsBidiLevel *levels=mLevels; - - int32_t i=0, length=mLength; - Flags flags=mFlags; /* collect all directionalities in the text */ - DirProp dirProp; - nsBidiLevel level=mParaLevel; - nsBidiDirection direction; - - mIsolateCount = 0; - - /* determine if the text is mixed-directional or single-directional */ - direction=DirectionFromFlags(flags); - - /* we may not need to resolve any explicit levels */ - if(direction!=NSBIDI_MIXED) { - /* not mixed directionality: levels don't matter - trailingWSStart will be 0 */ - } else if(!(flags&(MASK_EXPLICIT|MASK_ISO))) { - BracketData bracketData(this); - /* no embeddings, set all levels to the paragraph level */ - for(i=0; i<length; ++i) { - levels[i]=level; - if (dirProps[i] == BN) { - continue; - } - if (!bracketData.ProcessChar(i, aText[i], mDirProps, mLevels)) { - NS_WARNING("BracketData::ProcessChar failed, out of memory?"); - // Ran out of memory for deeply-nested openings; give up and - // return LTR. This could presumably result in incorrect display, - // but in practice it won't happen except in some artificially- - // constructed torture test -- which is just as likely to die - // altogether with an OOM failure. - *aDirection = NSBIDI_LTR; - return; - } - } - } else { - /* continue to perform (Xn) */ - - /* (X1) level is set for all codes, embeddingLevel keeps track of the push/pop operations */ - /* both variables may carry the NSBIDI_LEVEL_OVERRIDE flag to indicate the override status */ - nsBidiLevel embeddingLevel = level, newLevel; - nsBidiLevel previousLevel = level; /* previous level for regular (not CC) characters */ - int32_t lastDirControlCharPos = 0; /* index of last effective LRx,RLx, PDx */ - - uint16_t stack[NSBIDI_MAX_EXPLICIT_LEVEL + 2]; /* we never push anything >=NSBIDI_MAX_EXPLICIT_LEVEL - but we need one more entry as base */ - int32_t stackLast = 0; - int32_t overflowIsolateCount = 0; - int32_t overflowEmbeddingCount = 0; - int32_t validIsolateCount = 0; - - BracketData bracketData(this); - - stack[0] = level; - - /* recalculate the flags */ - flags=0; - - /* since we assume that this is a single paragraph, we ignore (X8) */ - for(i=0; i<length; ++i) { - dirProp=dirProps[i]; - switch(dirProp) { - case LRE: - case RLE: - case LRO: - case RLO: - /* (X2, X3, X4, X5) */ - flags |= DIRPROP_FLAG(BN); - levels[i] = previousLevel; - if (dirProp == LRE || dirProp == LRO) { - newLevel = (embeddingLevel + 2) & ~(NSBIDI_LEVEL_OVERRIDE | 1); /* least greater even level */ - } else { - newLevel = ((embeddingLevel & ~NSBIDI_LEVEL_OVERRIDE) + 1) | 1; /* least greater odd level */ - } - if(newLevel <= NSBIDI_MAX_EXPLICIT_LEVEL && overflowIsolateCount == 0 && overflowEmbeddingCount == 0) { - lastDirControlCharPos = i; - embeddingLevel = newLevel; - if (dirProp == LRO || dirProp == RLO) { - embeddingLevel |= NSBIDI_LEVEL_OVERRIDE; - } - stackLast++; - stack[stackLast] = embeddingLevel; - /* we don't need to set NSBIDI_LEVEL_OVERRIDE off for LRE and RLE - since this has already been done for newLevel which is - the source for embeddingLevel. - */ - } else { - if (overflowIsolateCount == 0) { - overflowEmbeddingCount++; - } - } - break; - - case PDF: - /* (X7) */ - flags |= DIRPROP_FLAG(BN); - levels[i] = previousLevel; - /* handle all the overflow cases first */ - if (overflowIsolateCount) { - break; - } - if (overflowEmbeddingCount) { - overflowEmbeddingCount--; - break; - } - if (stackLast > 0 && stack[stackLast] < ISOLATE) { /* not an isolate entry */ - lastDirControlCharPos = i; - stackLast--; - embeddingLevel = stack[stackLast]; - } - break; - - case LRI: - case RLI: - flags |= DIRPROP_FLAG(O_N) | DIRPROP_FLAG_LR(embeddingLevel); - levels[i] = NO_OVERRIDE(embeddingLevel); - if (NO_OVERRIDE(embeddingLevel) != NO_OVERRIDE(previousLevel)) { - bracketData.ProcessBoundary(lastDirControlCharPos, previousLevel, - embeddingLevel, mDirProps); - flags |= DIRPROP_FLAG_MULTI_RUNS; - } - previousLevel = embeddingLevel; - /* (X5a, X5b) */ - if (dirProp == LRI) { - newLevel = (embeddingLevel + 2) & ~(NSBIDI_LEVEL_OVERRIDE | 1); /* least greater even level */ - } else { - newLevel = ((embeddingLevel & ~NSBIDI_LEVEL_OVERRIDE) + 1) | 1; /* least greater odd level */ - } - if (newLevel <= NSBIDI_MAX_EXPLICIT_LEVEL && overflowIsolateCount == 0 && overflowEmbeddingCount == 0) { - flags |= DIRPROP_FLAG(dirProp); - lastDirControlCharPos = i; - previousLevel = embeddingLevel; - validIsolateCount++; - if (validIsolateCount > mIsolateCount) { - mIsolateCount = validIsolateCount; - } - embeddingLevel = newLevel; - stackLast++; - stack[stackLast] = embeddingLevel + ISOLATE; - bracketData.ProcessLRI_RLI(embeddingLevel); - } else { - /* make it so that it is handled by AdjustWSLevels() */ - dirProps[i] = WS; - overflowIsolateCount++; - } - break; - - case PDI: - if (NO_OVERRIDE(embeddingLevel) != NO_OVERRIDE(previousLevel)) { - bracketData.ProcessBoundary(lastDirControlCharPos, previousLevel, - embeddingLevel, mDirProps); - flags |= DIRPROP_FLAG_MULTI_RUNS; - } - /* (X6a) */ - if (overflowIsolateCount) { - overflowIsolateCount--; - /* make it so that it is handled by AdjustWSLevels() */ - dirProps[i] = WS; - } else if (validIsolateCount) { - flags |= DIRPROP_FLAG(PDI); - lastDirControlCharPos = i; - overflowEmbeddingCount = 0; - while (stack[stackLast] < ISOLATE) { - /* pop embedding entries */ - /* until the last isolate entry */ - stackLast--; - - // Since validIsolateCount is true, there must be an isolate entry - // on the stack, so the stack is guaranteed to not be empty. - // Still, to eliminate a warning from coverity, we use an assertion. - MOZ_ASSERT(stackLast > 0); - } - stackLast--; /* pop also the last isolate entry */ - MOZ_ASSERT(stackLast >= 0); // For coverity - validIsolateCount--; - bracketData.ProcessPDI(); - } else { - /* make it so that it is handled by AdjustWSLevels() */ - dirProps[i] = WS; - } - embeddingLevel = stack[stackLast] & ~ISOLATE; - flags |= DIRPROP_FLAG(O_N) | DIRPROP_FLAG_LR(embeddingLevel); - previousLevel = embeddingLevel; - levels[i] = NO_OVERRIDE(embeddingLevel); - break; - - case B: - /* - * We do not expect to see a paragraph separator (B), - */ - NS_NOTREACHED("Unexpected paragraph separator"); - break; - - case BN: - /* BN, LRE, RLE, and PDF are supposed to be removed (X9) */ - /* they will get their levels set correctly in AdjustWSLevels() */ - levels[i] = previousLevel; - flags |= DIRPROP_FLAG(BN); - break; - - default: - /* all other types get the "real" level */ - if (NO_OVERRIDE(embeddingLevel) != NO_OVERRIDE(previousLevel)) { - bracketData.ProcessBoundary(lastDirControlCharPos, previousLevel, - embeddingLevel, mDirProps); - flags |= DIRPROP_FLAG_MULTI_RUNS; - if (embeddingLevel & NSBIDI_LEVEL_OVERRIDE) { - flags |= DIRPROP_FLAG_O(embeddingLevel); - } else { - flags |= DIRPROP_FLAG_E(embeddingLevel); - } - } - previousLevel = embeddingLevel; - levels[i] = embeddingLevel; - if (!bracketData.ProcessChar(i, aText[i], mDirProps, mLevels)) { - NS_WARNING("BracketData::ProcessChar failed, out of memory?"); - *aDirection = NSBIDI_LTR; - return; - } - flags |= DIRPROP_FLAG(dirProps[i]); - break; - } - } - - if(flags&MASK_EMBEDDING) { - flags|=DIRPROP_FLAG_LR(mParaLevel); - } - - /* subsequently, ignore the explicit codes and BN (X9) */ - - /* again, determine if the text is mixed-directional or single-directional */ - mFlags=flags; - direction=DirectionFromFlags(flags); - } - - *aDirection = direction; -} - -/* determine if the text is mixed-directional or single-directional */ -nsBidiDirection nsBidi::DirectionFromFlags(Flags aFlags) -{ - /* if the text contains AN and neutrals, then some neutrals may become RTL */ - if(!(aFlags&MASK_RTL || (aFlags&DIRPROP_FLAG(AN) && aFlags&MASK_POSSIBLE_N))) { - return NSBIDI_LTR; - } else if(!(aFlags&MASK_LTR)) { - return NSBIDI_RTL; - } else { - return NSBIDI_MIXED; - } -} - -/****************************************************************** - The Properties state machine table -******************************************************************* - - All table cells are 8 bits: - bits 0..4: next state - bits 5..7: action to perform (if > 0) - - Cells may be of format "n" where n represents the next state - (except for the rightmost column). - Cells may also be of format "s(x,y)" where x represents an action - to perform and y represents the next state. - -******************************************************************* - Definitions and type for properties state table -******************************************************************* -*/ -#define IMPTABPROPS_COLUMNS 16 -#define IMPTABPROPS_RES (IMPTABPROPS_COLUMNS - 1) -#define GET_STATEPROPS(cell) ((cell)&0x1f) -#define GET_ACTIONPROPS(cell) ((cell)>>5) -#undef s -#define s(action, newState) ((uint8_t)(newState+(action<<5))) - -static const uint8_t groupProp[] = /* dirProp regrouped */ -{ -/* L R EN ES ET AN CS B S WS ON LRE LRO AL RLE RLO PDF NSM BN FSI LRI RLI PDI ENL ENR */ - 0, 1, 2, 7, 8, 3, 9, 6, 5, 4, 4, 10, 10, 12, 10, 10, 10, 11, 10, 4, 4, 4, 4, 13, 14 -}; - -/****************************************************************** - - PROPERTIES STATE TABLE - - In table impTabProps, - - the ON column regroups ON and WS, FSI, RLI, LRI and PDI - - the BN column regroups BN, LRE, RLE, LRO, RLO, PDF - - the Res column is the reduced property assigned to a run - - Action 1: process current run1, init new run1 - 2: init new run2 - 3: process run1, process run2, init new run1 - 4: process run1, set run1=run2, init new run2 - - Notes: - 1) This table is used in ResolveImplicitLevels(). - 2) This table triggers actions when there is a change in the Bidi - property of incoming characters (action 1). - 3) Most such property sequences are processed immediately (in - fact, passed to ProcessPropertySeq(). - 4) However, numbers are assembled as one sequence. This means - that undefined situations (like CS following digits, until - it is known if the next char will be a digit) are held until - following chars define them. - Example: digits followed by CS, then comes another CS or ON; - the digits will be processed, then the CS assigned - as the start of an ON sequence (action 3). - 5) There are cases where more than one sequence must be - processed, for instance digits followed by CS followed by L: - the digits must be processed as one sequence, and the CS - must be processed as an ON sequence, all this before starting - assembling chars for the opening L sequence. - - -*/ -static const uint8_t impTabProps[][IMPTABPROPS_COLUMNS] = -{ -/* L , R , EN , AN , ON , S , B , ES , ET , CS , BN , NSM , AL , ENL , ENR , Res */ -/* 0 Init */ { 1 , 2 , 4 , 5 , 7 , 15 , 17 , 7 , 9 , 7 , 0 , 7 , 3 , 18 , 21 , DirProp_ON }, -/* 1 L */ { 1 , s(1,2), s(1,4), s(1,5), s(1,7),s(1,15),s(1,17), s(1,7), s(1,9), s(1,7), 1 , 1 , s(1,3),s(1,18),s(1,21), DirProp_L }, -/* 2 R */ { s(1,1), 2 , s(1,4), s(1,5), s(1,7),s(1,15),s(1,17), s(1,7), s(1,9), s(1,7), 2 , 2 , s(1,3),s(1,18),s(1,21), DirProp_R }, -/* 3 AL */ { s(1,1), s(1,2), s(1,6), s(1,6), s(1,8),s(1,16),s(1,17), s(1,8), s(1,8), s(1,8), 3 , 3 , 3 ,s(1,18),s(1,21), DirProp_R }, -/* 4 EN */ { s(1,1), s(1,2), 4 , s(1,5), s(1,7),s(1,15),s(1,17),s(2,10), 11 ,s(2,10), 4 , 4 , s(1,3), 18 , 21 , DirProp_EN }, -/* 5 AN */ { s(1,1), s(1,2), s(1,4), 5 , s(1,7),s(1,15),s(1,17), s(1,7), s(1,9),s(2,12), 5 , 5 , s(1,3),s(1,18),s(1,21), DirProp_AN }, -/* 6 AL:EN/AN */ { s(1,1), s(1,2), 6 , 6 , s(1,8),s(1,16),s(1,17), s(1,8), s(1,8),s(2,13), 6 , 6 , s(1,3), 18 , 21 , DirProp_AN }, -/* 7 ON */ { s(1,1), s(1,2), s(1,4), s(1,5), 7 ,s(1,15),s(1,17), 7 ,s(2,14), 7 , 7 , 7 , s(1,3),s(1,18),s(1,21), DirProp_ON }, -/* 8 AL:ON */ { s(1,1), s(1,2), s(1,6), s(1,6), 8 ,s(1,16),s(1,17), 8 , 8 , 8 , 8 , 8 , s(1,3),s(1,18),s(1,21), DirProp_ON }, -/* 9 ET */ { s(1,1), s(1,2), 4 , s(1,5), 7 ,s(1,15),s(1,17), 7 , 9 , 7 , 9 , 9 , s(1,3), 18 , 21 , DirProp_ON }, -/*10 EN+ES/CS */ { s(3,1), s(3,2), 4 , s(3,5), s(4,7),s(3,15),s(3,17), s(4,7),s(4,14), s(4,7), 10 , s(4,7), s(3,3), 18 , 21 , DirProp_EN }, -/*11 EN+ET */ { s(1,1), s(1,2), 4 , s(1,5), s(1,7),s(1,15),s(1,17), s(1,7), 11 , s(1,7), 11 , 11 , s(1,3), 18 , 21 , DirProp_EN }, -/*12 AN+CS */ { s(3,1), s(3,2), s(3,4), 5 , s(4,7),s(3,15),s(3,17), s(4,7),s(4,14), s(4,7), 12 , s(4,7), s(3,3),s(3,18),s(3,21), DirProp_AN }, -/*13 AL:EN/AN+CS */ { s(3,1), s(3,2), 6 , 6 , s(4,8),s(3,16),s(3,17), s(4,8), s(4,8), s(4,8), 13 , s(4,8), s(3,3), 18 , 21 , DirProp_AN }, -/*14 ON+ET */ { s(1,1), s(1,2), s(4,4), s(1,5), 7 ,s(1,15),s(1,17), 7 , 14 , 7 , 14 , 14 , s(1,3),s(4,18),s(4,21), DirProp_ON }, -/*15 S */ { s(1,1), s(1,2), s(1,4), s(1,5), s(1,7), 15 ,s(1,17), s(1,7), s(1,9), s(1,7), 15 , s(1,7), s(1,3),s(1,18),s(1,21), DirProp_S }, -/*16 AL:S */ { s(1,1), s(1,2), s(1,6), s(1,6), s(1,8), 16 ,s(1,17), s(1,8), s(1,8), s(1,8), 16 , s(1,8), s(1,3),s(1,18),s(1,21), DirProp_S }, -/*17 B */ { s(1,1), s(1,2), s(1,4), s(1,5), s(1,7),s(1,15), 17 , s(1,7), s(1,9), s(1,7), 17 , s(1,7), s(1,3),s(1,18),s(1,21), DirProp_B }, -/*18 ENL */ { s(1,1), s(1,2), 18 , s(1,5), s(1,7),s(1,15),s(1,17),s(2,19), 20 ,s(2,19), 18 , 18 , s(1,3), 18 , 21 , DirProp_L }, -/*19 ENL+ES/CS */ { s(3,1), s(3,2), 18 , s(3,5), s(4,7),s(3,15),s(3,17), s(4,7),s(4,14), s(4,7), 19 , s(4,7), s(3,3), 18 , 21 , DirProp_L }, -/*20 ENL+ET */ { s(1,1), s(1,2), 18 , s(1,5), s(1,7),s(1,15),s(1,17), s(1,7), 20 , s(1,7), 20 , 20 , s(1,3), 18 , 21 , DirProp_L }, -/*21 ENR */ { s(1,1), s(1,2), 21 , s(1,5), s(1,7),s(1,15),s(1,17),s(2,22), 23 ,s(2,22), 21 , 21 , s(1,3), 18 , 21 , DirProp_AN }, -/*22 ENR+ES/CS */ { s(3,1), s(3,2), 21 , s(3,5), s(4,7),s(3,15),s(3,17), s(4,7),s(4,14), s(4,7), 22 , s(4,7), s(3,3), 18 , 21 , DirProp_AN }, -/*23 ENR+ET */ { s(1,1), s(1,2), 21 , s(1,5), s(1,7),s(1,15),s(1,17), s(1,7), 23 , s(1,7), 23 , 23 , s(1,3), 18 , 21 , DirProp_AN } -}; - -/* we must undef macro s because the levels table have a different - * structure (4 bits for action and 4 bits for next state. - */ -#undef s - -/****************************************************************** - The levels state machine tables -******************************************************************* - - All table cells are 8 bits: - bits 0..3: next state - bits 4..7: action to perform (if > 0) - - Cells may be of format "n" where n represents the next state - (except for the rightmost column). - Cells may also be of format "s(x,y)" where x represents an action - to perform and y represents the next state. - - This format limits each table to 16 states each and to 15 actions. - -******************************************************************* - Definitions and type for levels state tables -******************************************************************* -*/ -#define IMPTABLEVELS_RES (IMPTABLEVELS_COLUMNS - 1) -#define GET_STATE(cell) ((cell)&0x0f) -#define GET_ACTION(cell) ((cell)>>4) -#define s(action, newState) ((uint8_t)(newState+(action<<4))) - -/****************************************************************** - - LEVELS STATE TABLES - - In all levels state tables, - - state 0 is the initial state - - the Res column is the increment to add to the text level - for this property sequence. - - The impAct arrays for each table of a pair map the local action - numbers of the table to the total list of actions. For instance, - action 2 in a given table corresponds to the action number which - appears in entry [2] of the impAct array for that table. - The first entry of all impAct arrays must be 0. - - Action 1: init conditional sequence - 2: prepend conditional sequence to current sequence - 3: set ON sequence to new level - 1 - 4: init EN/AN/ON sequence - 5: fix EN/AN/ON sequence followed by R - 6: set previous level sequence to level 2 - - Notes: - 1) These tables are used in ProcessPropertySeq(). The input - is property sequences as determined by ResolveImplicitLevels. - 2) Most such property sequences are processed immediately - (levels are assigned). - 3) However, some sequences cannot be assigned a final level till - one or more following sequences are received. For instance, - ON following an R sequence within an even-level paragraph. - If the following sequence is R, the ON sequence will be - assigned basic run level+1, and so will the R sequence. - 4) S is generally handled like ON, since its level will be fixed - to paragraph level in AdjustWSLevels(). - -*/ - -static const ImpTab impTabL = /* Even paragraph level */ -/* In this table, conditional sequences receive the higher possible level - until proven otherwise. -*/ -{ -/* L , R , EN , AN , ON , S , B , Res */ -/* 0 : init */ { 0 , 1 , 0 , 2 , 0 , 0 , 0 , 0 }, -/* 1 : R */ { 0 , 1 , 3 , 3 , s(1,4), s(1,4), 0 , 1 }, -/* 2 : AN */ { 0 , 1 , 0 , 2 , s(1,5), s(1,5), 0 , 2 }, -/* 3 : R+EN/AN */ { 0 , 1 , 3 , 3 , s(1,4), s(1,4), 0 , 2 }, -/* 4 : R+ON */ { s(2,0), 1 , 3 , 3 , 4 , 4 , s(2,0), 1 }, -/* 5 : AN+ON */ { s(2,0), 1 , s(2,0), 2 , 5 , 5 , s(2,0), 1 } -}; -static const ImpTab impTabR = /* Odd paragraph level */ -/* In this table, conditional sequences receive the lower possible level - until proven otherwise. -*/ -{ -/* L , R , EN , AN , ON , S , B , Res */ -/* 0 : init */ { 1 , 0 , 2 , 2 , 0 , 0 , 0 , 0 }, -/* 1 : L */ { 1 , 0 , 1 , 3 , s(1,4), s(1,4), 0 , 1 }, -/* 2 : EN/AN */ { 1 , 0 , 2 , 2 , 0 , 0 , 0 , 1 }, -/* 3 : L+AN */ { 1 , 0 , 1 , 3 , 5 , 5 , 0 , 1 }, -/* 4 : L+ON */ { s(2,1), 0 , s(2,1), 3 , 4 , 4 , 0 , 0 }, -/* 5 : L+AN+ON */ { 1 , 0 , 1 , 3 , 5 , 5 , 0 , 0 } -}; - -#undef s - -static ImpAct impAct0 = {0,1,2,3,4,5,6}; -static PImpTab impTab[2] = {impTabL, impTabR}; - -/*------------------------------------------------------------------------*/ - -/* perform rules (Wn), (Nn), and (In) on a run of the text ------------------ */ - -/* - * This implementation of the (Wn) rules applies all rules in one pass. - * In order to do so, it needs a look-ahead of typically 1 character - * (except for W5: sequences of ET) and keeps track of changes - * in a rule Wp that affect a later Wq (p<q). - * - * The (Nn) and (In) rules are also performed in that same single loop, - * but effectively one iteration behind for white space. - * - * Since all implicit rules are performed in one step, it is not necessary - * to actually store the intermediate directional properties in dirProps[]. - */ - -void nsBidi::ProcessPropertySeq(LevState *pLevState, uint8_t _prop, int32_t start, int32_t limit) -{ - uint8_t cell, oldStateSeq, actionSeq; - PImpTab pImpTab = pLevState->pImpTab; - PImpAct pImpAct = pLevState->pImpAct; - nsBidiLevel* levels = mLevels; - nsBidiLevel level, addLevel; - int32_t start0, k; - - start0 = start; /* save original start position */ - oldStateSeq = (uint8_t)pLevState->state; - cell = pImpTab[oldStateSeq][_prop]; - pLevState->state = GET_STATE(cell); /* isolate the new state */ - actionSeq = pImpAct[GET_ACTION(cell)]; /* isolate the action */ - addLevel = pImpTab[pLevState->state][IMPTABLEVELS_RES]; - - if(actionSeq) { - switch(actionSeq) { - case 1: /* init ON seq */ - pLevState->startON = start0; - break; - - case 2: /* prepend ON seq to current seq */ - MOZ_ASSERT(pLevState->startON >= 0, "no valid ON sequence start!"); - start = pLevState->startON; - break; - - default: /* we should never get here */ - MOZ_ASSERT(false); - break; - } - } - if(addLevel || (start < start0)) { - level = pLevState->runLevel + addLevel; - if (start >= pLevState->runStart) { - for (k = start; k < limit; k++) { - levels[k] = level; - } - } else { - DirProp *dirProps = mDirProps, dirProp; - int32_t isolateCount = 0; - for (k = start; k < limit; k++) { - dirProp = dirProps[k]; - if (dirProp == PDI) { - isolateCount--; - } - if (isolateCount == 0) { - levels[k]=level; - } - if (dirProp == LRI || dirProp == RLI) { - isolateCount++; - } - } - } - } -} - -void nsBidi::ResolveImplicitLevels(int32_t aStart, int32_t aLimit, - DirProp aSOR, DirProp aEOR) -{ - const DirProp *dirProps = mDirProps; - DirProp dirProp; - LevState levState; - int32_t i, start1, start2; - uint16_t oldStateImp, stateImp, actionImp; - uint8_t gprop, resProp, cell; - - /* initialize for property and levels state tables */ - levState.runStart = aStart; - levState.runLevel = mLevels[aStart]; - levState.pImpTab = impTab[levState.runLevel & 1]; - levState.pImpAct = impAct0; - levState.startON = -1; /* initialize to invalid start position */ - - /* The isolates[] entries contain enough information to - resume the bidi algorithm in the same state as it was - when it was interrupted by an isolate sequence. */ - if (dirProps[aStart] == PDI && mIsolateCount >= 0) { - start1 = mIsolates[mIsolateCount].start1; - stateImp = mIsolates[mIsolateCount].stateImp; - levState.state = mIsolates[mIsolateCount].state; - mIsolateCount--; - } else { - levState.startON = -1; - start1 = aStart; - if (dirProps[aStart] == NSM) { - stateImp = 1 + aSOR; - } else { - stateImp = 0; - } - levState.state = 0; - ProcessPropertySeq(&levState, aSOR, aStart, aStart); - } - start2 = aStart; - - for (i = aStart; i <= aLimit; i++) { - if (i >= aLimit) { - int32_t k; - for (k = aLimit - 1; - k > aStart && (DIRPROP_FLAG(dirProps[k]) & MASK_BN_EXPLICIT); k--) { - // empty loop body - } - dirProp = mDirProps[k]; - if (dirProp == LRI || dirProp == RLI) { - break; /* no forced closing for sequence ending with LRI/RLI */ - } - gprop = aEOR; - } else { - DirProp prop; - prop = dirProps[i]; - gprop = groupProp[prop]; - } - oldStateImp = stateImp; - cell = impTabProps[oldStateImp][gprop]; - stateImp = GET_STATEPROPS(cell); /* isolate the new state */ - actionImp = GET_ACTIONPROPS(cell); /* isolate the action */ - if ((i == aLimit) && (actionImp == 0)) { - /* there is an unprocessed sequence if its property == eor */ - actionImp = 1; /* process the last sequence */ - } - if (actionImp) { - resProp = impTabProps[oldStateImp][IMPTABPROPS_RES]; - switch (actionImp) { - case 1: /* process current seq1, init new seq1 */ - ProcessPropertySeq(&levState, resProp, start1, i); - start1 = i; - break; - case 2: /* init new seq2 */ - start2 = i; - break; - case 3: /* process seq1, process seq2, init new seq1 */ - ProcessPropertySeq(&levState, resProp, start1, start2); - ProcessPropertySeq(&levState, DirProp_ON, start2, i); - start1 = i; - break; - case 4: /* process seq1, set seq1=seq2, init new seq2 */ - ProcessPropertySeq(&levState, resProp, start1, start2); - start1 = start2; - start2 = i; - break; - default: /* we should never get here */ - MOZ_ASSERT(false); - break; - } - } - } - - for (i = aLimit - 1; - i > aStart && (DIRPROP_FLAG(dirProps[i]) & MASK_BN_EXPLICIT); i--) { - // empty loop body - } - dirProp = dirProps[i]; - if ((dirProp == LRI || dirProp == RLI) && aLimit < mLength) { - mIsolateCount++; - mIsolates[mIsolateCount].stateImp = stateImp; - mIsolates[mIsolateCount].state = levState.state; - mIsolates[mIsolateCount].start1 = start1; - } else { - ProcessPropertySeq(&levState, aEOR, aLimit, aLimit); - } -} - - -/* perform (L1) and (X9) ---------------------------------------------------- */ - -/* - * Reset the embedding levels for some non-graphic characters (L1). - * This function also sets appropriate levels for BN, and - * explicit embedding types that are supposed to have been removed - * from the paragraph in (X9). - */ -void nsBidi::AdjustWSLevels() -{ - const DirProp *dirProps=mDirProps; - nsBidiLevel *levels=mLevels; - int32_t i; - - if(mFlags&MASK_WS) { - nsBidiLevel paraLevel=mParaLevel; - Flags flag; - - i=mTrailingWSStart; - while(i>0) { - /* reset a sequence of WS/BN before eop and B/S to the paragraph paraLevel */ - while (i > 0 && DIRPROP_FLAG(dirProps[--i]) & MASK_WS) { - levels[i]=paraLevel; - } - - /* reset BN to the next character's paraLevel until B/S, which restarts above loop */ - /* here, i+1 is guaranteed to be <length */ - while(i>0) { - flag = DIRPROP_FLAG(dirProps[--i]); - if(flag&MASK_BN_EXPLICIT) { - levels[i]=levels[i+1]; - } else if(flag&MASK_B_S) { - levels[i]=paraLevel; - break; - } - } - } - } -} - -nsresult nsBidi::GetDirection(nsBidiDirection* aDirection) -{ - *aDirection = mDirection; - return NS_OK; -} - -nsresult nsBidi::GetParaLevel(nsBidiLevel* aParaLevel) -{ - *aParaLevel = mParaLevel; - return NS_OK; -} - -nsresult nsBidi::GetLogicalRun(int32_t aLogicalStart, int32_t *aLogicalLimit, nsBidiLevel *aLevel) -{ - int32_t length = mLength; - - if(aLogicalStart<0 || length<=aLogicalStart) { - return NS_ERROR_INVALID_ARG; - } - - int32_t runCount, visualStart, logicalLimit, logicalFirst, i; - Run iRun; - - /* CountRuns will check VALID_PARA_OR_LINE */ - nsresult rv = CountRuns(&runCount); - if (NS_FAILED(rv)) { - return rv; - } - - visualStart = logicalLimit = 0; - iRun = mRuns[0]; - - for (i = 0; i < runCount; i++) { - iRun = mRuns[i]; - logicalFirst = GET_INDEX(iRun.logicalStart); - logicalLimit = logicalFirst + iRun.visualLimit - visualStart; - if ((aLogicalStart >= logicalFirst) && (aLogicalStart < logicalLimit)) { - break; - } - visualStart = iRun.visualLimit; - } - if (aLogicalLimit) { - *aLogicalLimit = logicalLimit; - } - if (aLevel) { - if (mDirection != NSBIDI_MIXED || aLogicalStart >= mTrailingWSStart) { - *aLevel = mParaLevel; - } else { - *aLevel = mLevels[aLogicalStart]; - } - } - return NS_OK; -} - -/* runs API functions ------------------------------------------------------- */ - -nsresult nsBidi::CountRuns(int32_t* aRunCount) -{ - if(mRunCount<0 && !GetRuns()) { - return NS_ERROR_OUT_OF_MEMORY; - } else { - if (aRunCount) - *aRunCount = mRunCount; - return NS_OK; - } -} - -nsresult nsBidi::GetVisualRun(int32_t aRunIndex, int32_t *aLogicalStart, int32_t *aLength, nsBidiDirection *aDirection) -{ - if( aRunIndex<0 || - (mRunCount==-1 && !GetRuns()) || - aRunIndex>=mRunCount - ) { - *aDirection = NSBIDI_LTR; - return NS_OK; - } else { - int32_t start=mRuns[aRunIndex].logicalStart; - if(aLogicalStart!=nullptr) { - *aLogicalStart=GET_INDEX(start); - } - if(aLength!=nullptr) { - if(aRunIndex>0) { - *aLength=mRuns[aRunIndex].visualLimit- - mRuns[aRunIndex-1].visualLimit; - } else { - *aLength=mRuns[0].visualLimit; - } - } - *aDirection = (nsBidiDirection)GET_ODD_BIT(start); - return NS_OK; - } -} - -/* compute the runs array --------------------------------------------------- */ - -/* - * Compute the runs array from the levels array. - * After GetRuns() returns true, runCount is guaranteed to be >0 - * and the runs are reordered. - * Odd-level runs have visualStart on their visual right edge and - * they progress visually to the left. - */ -bool nsBidi::GetRuns() -{ - /* - * This method returns immediately if the runs are already set. This - * includes the case of length==0 (handled in setPara).. - */ - if (mRunCount >= 0) { - return true; - } - - if(mDirection!=NSBIDI_MIXED) { - /* simple, single-run case - this covers length==0 */ - GetSingleRun(mParaLevel); - } else /* NSBIDI_MIXED, length>0 */ { - /* mixed directionality */ - int32_t length=mLength, limit=mTrailingWSStart; - - /* - * If there are WS characters at the end of the line - * and the run preceding them has a level different from - * paraLevel, then they will form their own run at paraLevel (L1). - * Count them separately. - * We need some special treatment for this in order to not - * modify the levels array which a line nsBidi object shares - * with its paragraph parent and its other line siblings. - * In other words, for the trailing WS, it may be - * levels[]!=paraLevel but we have to treat it like it were so. - */ - nsBidiLevel *levels=mLevels; - int32_t i, runCount; - nsBidiLevel level=NSBIDI_DEFAULT_LTR; /* initialize with no valid level */ - - /* count the runs, there is at least one non-WS run, and limit>0 */ - runCount=0; - for(i=0; i<limit; ++i) { - /* increment runCount at the start of each run */ - if(levels[i]!=level) { - ++runCount; - level=levels[i]; - } - } - - /* - * We don't need to see if the last run can be merged with a trailing - * WS run because SetTrailingWSStart() would have done that. - */ - if(runCount==1 && limit==length) { - /* There is only one non-WS run and no trailing WS-run. */ - GetSingleRun(levels[0]); - } else /* runCount>1 || limit<length */ { - /* allocate and set the runs */ - Run *runs; - int32_t runIndex, start; - nsBidiLevel minLevel=NSBIDI_MAX_EXPLICIT_LEVEL+1, maxLevel=0; - - /* now, count a (non-mergable) WS run */ - if(limit<length) { - ++runCount; - } - - /* runCount>1 */ - if(GETRUNSMEMORY(runCount)) { - runs=mRunsMemory; - } else { - return false; - } - - /* set the runs */ - /* this could be optimized, e.g.: 464->444, 484->444, 575->555, 595->555 */ - /* however, that would take longer and make other functions more complicated */ - runIndex=0; - - /* search for the run ends */ - i = 0; - do { - /* prepare this run */ - start = i; - level = levels[i]; - if(level<minLevel) { - minLevel=level; - } - if(level>maxLevel) { - maxLevel=level; - } - - /* look for the run limit */ - while (++i < limit && levels[i] == level) { - } - - /* i is another run limit */ - runs[runIndex].logicalStart = start; - runs[runIndex].visualLimit = i - start; - ++runIndex; - } while (i < limit); - - if(limit<length) { - /* there is a separate WS run */ - runs[runIndex].logicalStart=limit; - runs[runIndex].visualLimit=length-limit; - if(mParaLevel<minLevel) { - minLevel=mParaLevel; - } - } - - /* set the object fields */ - mRuns=runs; - mRunCount=runCount; - - ReorderLine(minLevel, maxLevel); - - /* now add the direction flags and adjust the visualLimit's to be just that */ - /* this loop will also handling the trailing WS run */ - limit = 0; - for (i = 0; i < runCount; ++i) { - ADD_ODD_BIT_FROM_LEVEL(runs[i].logicalStart, levels[runs[i].logicalStart]); - limit += runs[i].visualLimit; - runs[i].visualLimit = limit; - } - - /* Set the "odd" bit for the trailing WS run. */ - /* For a RTL paragraph, it will be the *first* run in visual order. */ - if (runIndex < runCount) { - int32_t trailingRun = (mParaLevel & 1) ? 0 : runIndex; - ADD_ODD_BIT_FROM_LEVEL(runs[trailingRun].logicalStart, mParaLevel); - } - } - } - - return true; -} - -/* in trivial cases there is only one trivial run; called by GetRuns() */ -void nsBidi::GetSingleRun(nsBidiLevel aLevel) -{ - /* simple, single-run case */ - mRuns=mSimpleRuns; - mRunCount=1; - - /* fill and reorder the single run */ - mRuns[0].logicalStart=MAKE_INDEX_ODD_PAIR(0, aLevel); - mRuns[0].visualLimit=mLength; -} - -/* reorder the runs array (L2) ---------------------------------------------- */ - -/* - * Reorder the same-level runs in the runs array. - * Here, runCount>1 and maxLevel>=minLevel>=paraLevel. - * All the visualStart fields=logical start before reordering. - * The "odd" bits are not set yet. - * - * Reordering with this data structure lends itself to some handy shortcuts: - * - * Since each run is moved but not modified, and since at the initial maxLevel - * each sequence of same-level runs consists of only one run each, we - * don't need to do anything there and can predecrement maxLevel. - * In many simple cases, the reordering is thus done entirely in the - * index mapping. - * Also, reordering occurs only down to the lowest odd level that occurs, - * which is minLevel|1. However, if the lowest level itself is odd, then - * in the last reordering the sequence of the runs at this level or higher - * will be all runs, and we don't need the elaborate loop to search for them. - * This is covered by ++minLevel instead of minLevel|=1 followed - * by an extra reorder-all after the reorder-some loop. - * About a trailing WS run: - * Such a run would need special treatment because its level is not - * reflected in levels[] if this is not a paragraph object. - * Instead, all characters from trailingWSStart on are implicitly at - * paraLevel. - * However, for all maxLevel>paraLevel, this run will never be reordered - * and does not need to be taken into account. maxLevel==paraLevel is only reordered - * if minLevel==paraLevel is odd, which is done in the extra segment. - * This means that for the main reordering loop we don't need to consider - * this run and can --runCount. If it is later part of the all-runs - * reordering, then runCount is adjusted accordingly. - */ -void nsBidi::ReorderLine(nsBidiLevel aMinLevel, nsBidiLevel aMaxLevel) -{ - Run *runs, tempRun; - nsBidiLevel *levels; - int32_t firstRun, endRun, limitRun, runCount; - - /* nothing to do? */ - if(aMaxLevel<=(aMinLevel|1)) { - return; - } - - /* - * Reorder only down to the lowest odd level - * and reorder at an odd aMinLevel in a separate, simpler loop. - * See comments above for why aMinLevel is always incremented. - */ - ++aMinLevel; - - runs=mRuns; - levels=mLevels; - runCount=mRunCount; - - /* do not include the WS run at paraLevel<=old aMinLevel except in the simple loop */ - if(mTrailingWSStart<mLength) { - --runCount; - } - - while(--aMaxLevel>=aMinLevel) { - firstRun=0; - - /* loop for all sequences of runs */ - for(;;) { - /* look for a sequence of runs that are all at >=aMaxLevel */ - /* look for the first run of such a sequence */ - while(firstRun<runCount && levels[runs[firstRun].logicalStart]<aMaxLevel) { - ++firstRun; - } - if(firstRun>=runCount) { - break; /* no more such runs */ - } - - /* look for the limit run of such a sequence (the run behind it) */ - for(limitRun=firstRun; ++limitRun<runCount && levels[runs[limitRun].logicalStart]>=aMaxLevel;) {} - - /* Swap the entire sequence of runs from firstRun to limitRun-1. */ - endRun=limitRun-1; - while(firstRun<endRun) { - tempRun = runs[firstRun]; - runs[firstRun] = runs[endRun]; - runs[endRun] = tempRun; - ++firstRun; - --endRun; - } - - if(limitRun==runCount) { - break; /* no more such runs */ - } else { - firstRun=limitRun+1; - } - } - } - - /* now do aMaxLevel==old aMinLevel (==odd!), see above */ - if(!(aMinLevel&1)) { - firstRun=0; - - /* include the trailing WS run in this complete reordering */ - if(mTrailingWSStart==mLength) { - --runCount; - } - - /* Swap the entire sequence of all runs. (endRun==runCount) */ - while(firstRun<runCount) { - tempRun = runs[firstRun]; - runs[firstRun] = runs[runCount]; - runs[runCount] = tempRun; - ++firstRun; - --runCount; - } - } -} - -nsresult nsBidi::ReorderVisual(const nsBidiLevel *aLevels, int32_t aLength, int32_t *aIndexMap) -{ - int32_t start, end, limit, temp; - nsBidiLevel minLevel, maxLevel; - - if(aIndexMap==nullptr || - !PrepareReorder(aLevels, aLength, aIndexMap, &minLevel, &maxLevel)) { - return NS_OK; - } - - /* nothing to do? */ - if(minLevel==maxLevel && (minLevel&1)==0) { - return NS_OK; - } - - /* reorder only down to the lowest odd level */ - minLevel|=1; - - /* loop maxLevel..minLevel */ - do { - start=0; - - /* loop for all sequences of levels to reorder at the current maxLevel */ - for(;;) { - /* look for a sequence of levels that are all at >=maxLevel */ - /* look for the first index of such a sequence */ - while(start<aLength && aLevels[start]<maxLevel) { - ++start; - } - if(start>=aLength) { - break; /* no more such runs */ - } - - /* look for the limit of such a sequence (the index behind it) */ - for(limit=start; ++limit<aLength && aLevels[limit]>=maxLevel;) {} - - /* - * Swap the entire interval of indexes from start to limit-1. - * We don't need to swap the levels for the purpose of this - * algorithm: the sequence of levels that we look at does not - * move anyway. - */ - end=limit-1; - while(start<end) { - temp=aIndexMap[start]; - aIndexMap[start]=aIndexMap[end]; - aIndexMap[end]=temp; - - ++start; - --end; - } - - if(limit==aLength) { - break; /* no more such sequences */ - } else { - start=limit+1; - } - } - } while(--maxLevel>=minLevel); - - return NS_OK; -} - -bool nsBidi::PrepareReorder(const nsBidiLevel *aLevels, int32_t aLength, - int32_t *aIndexMap, - nsBidiLevel *aMinLevel, nsBidiLevel *aMaxLevel) -{ - int32_t start; - nsBidiLevel level, minLevel, maxLevel; - - if(aLevels==nullptr || aLength<=0) { - return false; - } - - /* determine minLevel and maxLevel */ - minLevel=NSBIDI_MAX_EXPLICIT_LEVEL+1; - maxLevel=0; - for(start=aLength; start>0;) { - level=aLevels[--start]; - if(level>NSBIDI_MAX_EXPLICIT_LEVEL+1) { - return false; - } - if(level<minLevel) { - minLevel=level; - } - if(level>maxLevel) { - maxLevel=level; - } - } - *aMinLevel=minLevel; - *aMaxLevel=maxLevel; - - /* initialize the index map */ - for(start=aLength; start>0;) { - --start; - aIndexMap[start]=start; - } - - return true; -} diff --git a/layout/base/nsBidi_noICU.h b/layout/base/nsBidi_noICU.h deleted file mode 100644 index a3f5aef1c..000000000 --- a/layout/base/nsBidi_noICU.h +++ /dev/null @@ -1,709 +0,0 @@ -/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ - -#ifndef nsBidi_noICU_h__ -#define nsBidi_noICU_h__ - -#include "nsBidiUtils.h" -#include "nsIFrame.h" // for frame property declaration - -// Bidi reordering engine from ICU -/* - * javadoc-style comments are intended to be transformed into HTML - * using DOC++ - see - * http://www.zib.de/Visual/software/doc++/index.html . - * - * The HTML documentation is created with - * doc++ -H nsBidi.h - */ - -/** - * @mainpage BIDI algorithm for Mozilla (from ICU) - * - * <h2>BIDI algorithm for Mozilla</h2> - * - * This is an implementation of the Unicode Bidirectional algorithm. - * The algorithm is defined in the - * <a href="http://www.unicode.org/unicode/reports/tr9/">Unicode Technical Report 9</a>, - * version 5, also described in The Unicode Standard, Version 3.0 .<p> - * - * <h3>General remarks about the API:</h3> - * - * The <quote>limit</quote> of a sequence of characters is the position just after their - * last character, i.e., one more than that position.<p> - * - * Some of the API functions provide access to <quote>runs</quote>. - * Such a <quote>run</quote> is defined as a sequence of characters - * that are at the same embedding level - * after performing the BIDI algorithm.<p> - * - * @author Markus W. Scherer. Ported to Mozilla by Simon Montagu - * @version 1.0 - */ - -/** - * Special value which can be returned by the mapping functions when a logical - * index has no corresponding visual index or vice-versa. - * @see GetVisualIndex - * @see GetVisualMap - * @see GetLogicalIndex - * @see GetLogicalMap - */ -#define NSBIDI_MAP_NOWHERE (-1) - -/* miscellaneous definitions ------------------------------------------------ */ - -/* helper macros for each allocated array member */ -#define GETDIRPROPSMEMORY(length) nsBidi::GetMemory((void **)&mDirPropsMemory, \ - &mDirPropsSize, \ - (length)) - -#define GETLEVELSMEMORY(length) nsBidi::GetMemory((void **)&mLevelsMemory, \ - &mLevelsSize, \ - (length)) - -#define GETRUNSMEMORY(length) nsBidi::GetMemory((void **)&mRunsMemory, \ - &mRunsSize, \ - (length)*sizeof(Run)) - -#define GETISOLATESMEMORY(length) nsBidi::GetMemory((void **)&mIsolatesMemory, \ - &mIsolatesSize, \ - (length)*sizeof(Isolate)) - -#define GETOPENINGSMEMORY(length) nsBidi::GetMemory((void **)&mOpeningsMemory, \ - &mOpeningsSize, \ - (length)*sizeof(Opening)) - -/* - * Sometimes, bit values are more appropriate - * to deal with directionality properties. - * Abbreviations in these macro names refer to names - * used in the Bidi algorithm. - */ -typedef uint8_t DirProp; - -#define DIRPROP_FLAG(dir) (1UL<<(dir)) - -/* special flag for multiple runs from explicit embedding codes */ -#define DIRPROP_FLAG_MULTI_RUNS (1UL<<31) - -/* are there any characters that are LTR or RTL? */ -#define MASK_LTR (DIRPROP_FLAG(L)|DIRPROP_FLAG(EN)|DIRPROP_FLAG(ENL)| \ - DIRPROP_FLAG(ENR)|DIRPROP_FLAG(AN)|DIRPROP_FLAG(LRE)| \ - DIRPROP_FLAG(LRO)|DIRPROP_FLAG(LRI)) -#define MASK_RTL (DIRPROP_FLAG(R)|DIRPROP_FLAG(AL)|DIRPROP_FLAG(RLE)| \ - DIRPROP_FLAG(RLO)|DIRPROP_FLAG(RLI)) -#define MASK_R_AL (DIRPROP_FLAG(R)|DIRPROP_FLAG(AL)) - -/* explicit embedding codes */ -#define MASK_EXPLICIT (DIRPROP_FLAG(LRE)|DIRPROP_FLAG(LRO)|DIRPROP_FLAG(RLE)|DIRPROP_FLAG(RLO)|DIRPROP_FLAG(PDF)) - -/* explicit isolate codes */ -#define MASK_ISO (DIRPROP_FLAG(LRI)|DIRPROP_FLAG(RLI)|DIRPROP_FLAG(FSI)|DIRPROP_FLAG(PDI)) - -#define MASK_BN_EXPLICIT (DIRPROP_FLAG(BN)|MASK_EXPLICIT) - -/* paragraph and segment separators */ -#define MASK_B_S (DIRPROP_FLAG(B)|DIRPROP_FLAG(S)) - -/* all types that are counted as White Space or Neutral in some steps */ -#define MASK_WS (MASK_B_S|DIRPROP_FLAG(WS)|MASK_BN_EXPLICIT|MASK_ISO) - -/* types that are neutrals or could becomes neutrals in (Wn) */ -#define MASK_POSSIBLE_N (DIRPROP_FLAG(O_N)|DIRPROP_FLAG(CS)|DIRPROP_FLAG(ES)|DIRPROP_FLAG(ET)|MASK_WS) - -/* - * These types may be changed to "e", - * the embedding type (L or R) of the run, - * in the Bidi algorithm (N2) - */ -#define MASK_EMBEDDING (DIRPROP_FLAG(NSM)|MASK_POSSIBLE_N) - -/* the dirProp's L and R are defined to 0 and 1 values in nsCharType */ -#define GET_LR_FROM_LEVEL(level) ((DirProp)((level)&1)) - -#define IS_DEFAULT_LEVEL(level) (((level)&0xfe)==0xfe) - -/* - * The following bit is used for the directional isolate status. - * Stack entries corresponding to isolate sequences are greater than ISOLATE. - */ -#define ISOLATE 0x0100 - -/* number of isolate entries allocated initially without malloc */ -#define SIMPLE_ISOLATES_SIZE 5 - -/* number of isolate run entries for paired brackets allocated initially without malloc */ -#define SIMPLE_OPENINGS_COUNT 8 - -/* handle surrogate pairs --------------------------------------------------- */ - -#define IS_FIRST_SURROGATE(uchar) (((uchar)&0xfc00)==0xd800) -#define IS_SECOND_SURROGATE(uchar) (((uchar)&0xfc00)==0xdc00) - -/* get the UTF-32 value directly from the surrogate pseudo-characters */ -#define SURROGATE_OFFSET ((0xd800<<10UL)+0xdc00-0x10000) -#define GET_UTF_32(first, second) (((first)<<10UL)+(second)-SURROGATE_OFFSET) - -#if !ENABLE_INTL_API // these are provided by ICU if present in the build - -#define UTF_ERROR_VALUE 0xffff -/* definitions with forward iteration --------------------------------------- */ - -/* - * all the macros that go forward assume that - * the initial offset is 0<=i<length; - * they update the offset - */ - -/* fast versions, no error-checking */ - -#define UTF16_APPEND_CHAR_UNSAFE(s, i, c){ \ - if((uint32_t)(c)<=0xffff) { \ - (s)[(i)++]=(char16_t)(c); \ - } else { \ - (s)[(i)++]=(char16_t)((c)>>10)+0xd7c0; \ - (s)[(i)++]=(char16_t)(c)&0x3ff|0xdc00; \ - } \ -} - -/* safe versions with error-checking and optional regularity-checking */ - -#define UTF16_APPEND_CHAR_SAFE(s, i, length, c) { \ - if((PRUInt32)(c)<=0xffff) { \ - (s)[(i)++]=(char16_t)(c); \ - } else if((PRUInt32)(c)<=0x10ffff) { \ - if((i)+1<(length)) { \ - (s)[(i)++]=(char16_t)((c)>>10)+0xd7c0; \ - (s)[(i)++]=(char16_t)(c)&0x3ff|0xdc00; \ - } else /* not enough space */ { \ - (s)[(i)++]=UTF_ERROR_VALUE; \ - } \ - } else /* c>0x10ffff, write error value */ { \ - (s)[(i)++]=UTF_ERROR_VALUE; \ - } \ -} - -/* definitions with backward iteration -------------------------------------- */ - -/* - * all the macros that go backward assume that - * the valid buffer range starts at offset 0 - * and that the initial offset is 0<i<=length; - * they update the offset - */ - -/* fast versions, no error-checking */ - -/* - * Get a single code point from an offset that points behind the last - * of the code units that belong to that code point. - * Assume 0<=i<length. - */ -#define UTF16_PREV_CHAR_UNSAFE(s, i, c) { \ - (c)=(s)[--(i)]; \ - if(IS_SECOND_SURROGATE(c)) { \ - (c)=GET_UTF_32((s)[--(i)], (c)); \ - } \ -} - -#define UTF16_BACK_1_UNSAFE(s, i) { \ - if(IS_SECOND_SURROGATE((s)[--(i)])) { \ - --(i); \ - } \ -} - -#define UTF16_BACK_N_UNSAFE(s, i, n) { \ - int32_t __N=(n); \ - while(__N>0) { \ - UTF16_BACK_1_UNSAFE(s, i); \ - --__N; \ - } \ -} - -/* safe versions with error-checking and optional regularity-checking */ - -#define UTF16_PREV_CHAR_SAFE(s, start, i, c, strict) { \ - (c)=(s)[--(i)]; \ - if(IS_SECOND_SURROGATE(c)) { \ - char16_t __c2; \ - if((i)>(start) && IS_FIRST_SURROGATE(__c2=(s)[(i)-1])) { \ - --(i); \ - (c)=GET_UTF_32(__c2, (c)); \ - /* strict: ((c)&0xfffe)==0xfffe is caught by UTF_IS_ERROR() */ \ - } else if(strict) {\ - /* unmatched second surrogate */ \ - (c)=UTF_ERROR_VALUE; \ - } \ - } else if(strict && IS_FIRST_SURROGATE(c)) { \ - /* unmatched first surrogate */ \ - (c)=UTF_ERROR_VALUE; \ - /* else strict: (c)==0xfffe is caught by UTF_IS_ERROR() */ \ - } \ -} - -#define UTF16_BACK_1_SAFE(s, start, i) { \ - if(IS_SECOND_SURROGATE((s)[--(i)]) && (i)>(start) && IS_FIRST_SURROGATE((s)[(i)-1])) { \ - --(i); \ - } \ -} - -#define UTF16_BACK_N_SAFE(s, start, i, n) { \ - int32_t __N=(n); \ - while(__N>0 && (i)>(start)) { \ - UTF16_BACK_1_SAFE(s, start, i); \ - --__N; \ - } \ -} - -#define UTF_PREV_CHAR_UNSAFE(s, i, c) UTF16_PREV_CHAR_UNSAFE(s, i, c) -#define UTF_PREV_CHAR_SAFE(s, start, i, c, strict) UTF16_PREV_CHAR_SAFE(s, start, i, c, strict) -#define UTF_BACK_1_UNSAFE(s, i) UTF16_BACK_1_UNSAFE(s, i) -#define UTF_BACK_1_SAFE(s, start, i) UTF16_BACK_1_SAFE(s, start, i) -#define UTF_BACK_N_UNSAFE(s, i, n) UTF16_BACK_N_UNSAFE(s, i, n) -#define UTF_BACK_N_SAFE(s, start, i, n) UTF16_BACK_N_SAFE(s, start, i, n) -#define UTF_APPEND_CHAR_UNSAFE(s, i, c) UTF16_APPEND_CHAR_UNSAFE(s, i, c) -#define UTF_APPEND_CHAR_SAFE(s, i, length, c) UTF16_APPEND_CHAR_SAFE(s, i, length, c) - -#define UTF_PREV_CHAR(s, start, i, c) UTF_PREV_CHAR_SAFE(s, start, i, c, false) -#define UTF_BACK_1(s, start, i) UTF_BACK_1_SAFE(s, start, i) -#define UTF_BACK_N(s, start, i, n) UTF_BACK_N_SAFE(s, start, i, n) -#define UTF_APPEND_CHAR(s, i, length, c) UTF_APPEND_CHAR_SAFE(s, i, length, c) - -#endif // !ENABLE_INTL_API - -struct Isolate { - int32_t start1; - int16_t stateImp; - int16_t state; -}; - -// For bracket matching - -#define FOUND_L DIRPROP_FLAG(L) -#define FOUND_R DIRPROP_FLAG(R) - -struct Opening { - int32_t position; /* position of opening bracket */ - int32_t match; /* matching char or -position of closing bracket */ - int32_t contextPos; /* position of last strong char found before opening */ - uint16_t flags; /* bits for L or R/AL found within the pair */ - DirProp contextDir; /* L or R according to last strong char before opening */ - uint8_t filler; /* to complete a nice multiple of 4 chars */ -}; - -struct IsoRun { - int32_t contextPos; /* position of char determining context */ - uint16_t start; /* index of first opening entry for this run */ - uint16_t limit; /* index after last opening entry for this run */ - nsBidiLevel level; /* level of this run */ - DirProp lastStrong; /* bidi class of last strong char found in this run */ - DirProp lastBase; /* bidi class of last base char found in this run */ - DirProp contextDir; /* L or R to use as context for following openings */ -}; - -class nsBidi; - -/* Run structure for reordering --------------------------------------------- */ - -typedef struct Run { - int32_t logicalStart; /* first character of the run; b31 indicates even/odd level */ - int32_t visualLimit; /* last visual position of the run +1 */ -} Run; - -/* in a Run, logicalStart will get this bit set if the run level is odd */ -#define INDEX_ODD_BIT (1UL<<31) - -#define MAKE_INDEX_ODD_PAIR(index, level) (index|((uint32_t)level<<31)) -#define ADD_ODD_BIT_FROM_LEVEL(x, level) ((x)|=((uint32_t)level<<31)) -#define REMOVE_ODD_BIT(x) ((x)&=~INDEX_ODD_BIT) - -#define GET_INDEX(x) ((x)&~INDEX_ODD_BIT) -#define GET_ODD_BIT(x) ((uint32_t)(x)>>31) -#define IS_ODD_RUN(x) (((x)&INDEX_ODD_BIT)!=0) -#define IS_EVEN_RUN(x) (((x)&INDEX_ODD_BIT)==0) - -typedef uint32_t Flags; - -enum { DirProp_L=0, DirProp_R=1, DirProp_EN=2, DirProp_AN=3, DirProp_ON=4, DirProp_S=5, DirProp_B=6 }; /* reduced dirProp */ - -#define IMPTABLEVELS_COLUMNS (DirProp_B + 2) -typedef const uint8_t ImpTab[][IMPTABLEVELS_COLUMNS]; -typedef const uint8_t (*PImpTab)[IMPTABLEVELS_COLUMNS]; - -typedef const uint8_t ImpAct[]; -typedef const uint8_t *PImpAct; - -struct LevState { - PImpTab pImpTab; /* level table pointer */ - PImpAct pImpAct; /* action map array */ - int32_t startON; /* start of ON sequence */ - int32_t state; /* current state */ - int32_t runStart; /* start position of the run */ - nsBidiLevel runLevel; /* run level before implicit solving */ -}; - -/** - * This class holds information about a paragraph of text - * with Bidi-algorithm-related details, or about one line of - * such a paragraph.<p> - * Reordering can be done on a line, or on a paragraph which is - * then interpreted as one single line.<p> - * - * On construction, the class is initially empty. It is assigned - * the Bidi properties of a paragraph by <code>SetPara</code> - * or the Bidi properties of a line of a paragraph by - * <code>SetLine</code>.<p> - * A Bidi class can be reused for as long as it is not deallocated - * by calling its destructor.<p> - * <code>SetPara</code> will allocate additional memory for - * internal structures as necessary. - */ -class nsBidi -{ -public: - /** @brief Default constructor. - * - * The nsBidi object is initially empty. It is assigned - * the Bidi properties of a paragraph by <code>SetPara()</code> - * or the Bidi properties of a line of a paragraph by - * <code>GetLine()</code>.<p> - * This object can be reused for as long as it is not destroyed.<p> - * <code>SetPara()</code> will allocate additional memory for - * internal structures as necessary. - * - */ - nsBidi(); - - /** @brief Destructor. */ - virtual ~nsBidi(); - - - /** - * Perform the Unicode Bidi algorithm. It is defined in the - * <a href="http://www.unicode.org/unicode/reports/tr9/">Unicode Technical Report 9</a>, - * version 5, - * also described in The Unicode Standard, Version 3.0 .<p> - * - * This function takes a single plain text paragraph with or without - * externally specified embedding levels from <quote>styled</quote> text - * and computes the left-right-directionality of each character.<p> - * - * If the entire paragraph consists of text of only one direction, then - * the function may not perform all the steps described by the algorithm, - * i.e., some levels may not be the same as if all steps were performed. - * This is not relevant for unidirectional text.<br> - * For example, in pure LTR text with numbers the numbers would get - * a resolved level of 2 higher than the surrounding text according to - * the algorithm. This implementation may set all resolved levels to - * the same value in such a case.<p> - * - * The text must be externally split into separate paragraphs (rule P1). - * Paragraph separators (B) should appear at most at the very end. - * - * @param aText is a pointer to the single-paragraph text that the - * Bidi algorithm will be performed on - * (step (P1) of the algorithm is performed externally). - * <strong>The text must be (at least) <code>aLength</code> long.</strong> - * - * @param aLength is the length of the text; if <code>aLength==-1</code> then - * the text must be zero-terminated. - * - * @param aParaLevel specifies the default level for the paragraph; - * it is typically 0 (LTR) or 1 (RTL). - * If the function shall determine the paragraph level from the text, - * then <code>aParaLevel</code> can be set to - * either <code>NSBIDI_DEFAULT_LTR</code> - * or <code>NSBIDI_DEFAULT_RTL</code>; - * if there is no strongly typed character, then - * the desired default is used (0 for LTR or 1 for RTL). - * Any other value between 0 and <code>NSBIDI_MAX_EXPLICIT_LEVEL</code> is also valid, - * with odd levels indicating RTL. - */ - nsresult SetPara(const char16_t *aText, int32_t aLength, nsBidiLevel aParaLevel); - - /** - * Get the directionality of the text. - * - * @param aDirection receives a <code>NSBIDI_XXX</code> value that indicates if the entire text - * represented by this object is unidirectional, - * and which direction, or if it is mixed-directional. - * - * @see nsBidiDirection - */ - nsresult GetDirection(nsBidiDirection* aDirection); - - /** - * Get the paragraph level of the text. - * - * @param aParaLevel receives a <code>NSBIDI_XXX</code> value indicating the paragraph level - * - * @see nsBidiLevel - */ - nsresult GetParaLevel(nsBidiLevel* aParaLevel); - - /** - * Get a logical run. - * This function returns information about a run and is used - * to retrieve runs in logical order.<p> - * This is especially useful for line-breaking on a paragraph. - * - * @param aLogicalStart is the first character of the run. - * - * @param aLogicalLimit will receive the limit of the run. - * The l-value that you point to here may be the - * same expression (variable) as the one for - * <code>aLogicalStart</code>. - * This pointer can be <code>nullptr</code> if this - * value is not necessary. - * - * @param aLevel will receive the level of the run. - * This pointer can be <code>nullptr</code> if this - * value is not necessary. - */ - nsresult GetLogicalRun(int32_t aLogicalStart, int32_t* aLogicalLimit, nsBidiLevel* aLevel); - - /** - * Get the number of runs. - * This function may invoke the actual reordering on the - * <code>nsBidi</code> object, after <code>SetPara</code> - * may have resolved only the levels of the text. Therefore, - * <code>CountRuns</code> may have to allocate memory, - * and may fail doing so. - * - * @param aRunCount will receive the number of runs. - */ - nsresult CountRuns(int32_t* aRunCount); - - /** - * Get one run's logical start, length, and directionality, - * which can be 0 for LTR or 1 for RTL. - * In an RTL run, the character at the logical start is - * visually on the right of the displayed run. - * The length is the number of characters in the run.<p> - * <code>CountRuns</code> should be called - * before the runs are retrieved. - * - * @param aRunIndex is the number of the run in visual order, in the - * range <code>[0..CountRuns-1]</code>. - * - * @param aLogicalStart is the first logical character index in the text. - * The pointer may be <code>nullptr</code> if this index is not needed. - * - * @param aLength is the number of characters (at least one) in the run. - * The pointer may be <code>nullptr</code> if this is not needed. - * - * @param aDirection will receive the directionality of the run, - * <code>NSBIDI_LTR==0</code> or <code>NSBIDI_RTL==1</code>, - * never <code>NSBIDI_MIXED</code>. - * - * @see CountRuns<p> - * - * Example: - * @code - * int32_t i, count, logicalStart, visualIndex=0, length; - * nsBidiDirection dir; - * pBidi->CountRuns(&count); - * for(i=0; i<count; ++i) { - * pBidi->GetVisualRun(i, &logicalStart, &length, &dir); - * if(NSBIDI_LTR==dir) { - * do { // LTR - * show_char(text[logicalStart++], visualIndex++); - * } while(--length>0); - * } else { - * logicalStart+=length; // logicalLimit - * do { // RTL - * show_char(text[--logicalStart], visualIndex++); - * } while(--length>0); - * } - * } - * @endcode - * - * Note that in right-to-left runs, code like this places - * modifier letters before base characters and second surrogates - * before first ones. - */ - nsresult GetVisualRun(int32_t aRunIndex, int32_t* aLogicalStart, int32_t* aLength, nsBidiDirection* aDirection); - - /** - * This is a convenience function that does not use a nsBidi object. - * It is intended to be used for when an application has determined the levels - * of objects (character sequences) and just needs to have them reordered (L2). - * This is equivalent to using <code>GetVisualMap</code> on a - * <code>nsBidi</code> object. - * - * @param aLevels is an array with <code>aLength</code> levels that have been determined by - * the application. - * - * @param aLength is the number of levels in the array, or, semantically, - * the number of objects to be reordered. - * It must be <code>aLength>0</code>. - * - * @param aIndexMap is a pointer to an array of <code>aLength</code> - * indexes which will reflect the reordering of the characters. - * The array does not need to be initialized.<p> - * The index map will result in <code>aIndexMap[aVisualIndex]==aLogicalIndex</code>. - */ - static nsresult ReorderVisual(const nsBidiLevel *aLevels, int32_t aLength, int32_t *aIndexMap); - - /** - * Reverse a Right-To-Left run of Unicode text. - * - * This function preserves the integrity of characters with multiple - * code units and (optionally) modifier letters. - * Characters can be replaced by mirror-image characters - * in the destination buffer. Note that "real" mirroring has - * to be done in a rendering engine by glyph selection - * and that for many "mirrored" characters there are no - * Unicode characters as mirror-image equivalents. - * There are also options to insert or remove Bidi control - * characters; see the description of the <code>aDestSize</code> - * and <code>aOptions</code> parameters and of the option bit flags. - * - * Since no Bidi controls are inserted here, this function will never - * write more than <code>aSrcLength</code> characters to <code>aDest</code>. - * - * @param aSrc A pointer to the RTL run text. - * - * @param aSrcLength The length of the RTL run. - * If the <code>NSBIDI_REMOVE_BIDI_CONTROLS</code> option - * is set, then the destination length may be less than - * <code>aSrcLength</code>. - * If this option is not set, then the destination length - * will be exactly <code>aSrcLength</code>. - * - * @param aDest A pointer to where the reordered text is to be copied. - * <code>aSrc[aSrcLength]</code> and <code>aDest[aSrcLength]</code> - * must not overlap. - * - * @param aOptions A bit set of options for the reordering that control - * how the reordered text is written. - * - * @param aDestSize will receive the number of characters that were written to <code>aDest</code>. - */ - nsresult WriteReverse(const char16_t *aSrc, int32_t aSrcLength, char16_t *aDest, uint16_t aOptions, int32_t *aDestSize); - -protected: - friend class nsBidiPresUtils; - - class BracketData { - public: - explicit BracketData(const nsBidi* aBidi); - ~BracketData(); - - void ProcessBoundary(int32_t aLastDirControlCharPos, - nsBidiLevel aContextLevel, - nsBidiLevel aEmbeddingLevel, - const DirProp* aDirProps); - void ProcessLRI_RLI(nsBidiLevel aLevel); - void ProcessPDI(); - bool AddOpening(char16_t aMatch, int32_t aPosition); - void FixN0c(int32_t aOpeningIndex, int32_t aNewPropPosition, - DirProp aNewProp, DirProp* aDirProps); - DirProp ProcessClosing(int32_t aOpenIdx, int32_t aPosition, - DirProp* aDirProps); - bool ProcessChar(int32_t aPosition, char16_t aCh, DirProp* aDirProps, - nsBidiLevel* aLevels); - - private: - // array of opening entries which should be enough in most cases; - // no malloc() needed - Opening mSimpleOpenings[SIMPLE_OPENINGS_COUNT]; - Opening* mOpenings; // pointer to current array of entries, - // either mSimpleOpenings or malloced array - - Opening* mOpeningsMemory; - size_t mOpeningsSize; - - // array of nested isolated sequence entries; can never exceed - // UBIDI_MAX_EXPLICIT_LEVEL - // + 1 for index 0 - // + 1 for before the first isolated sequence - IsoRun mIsoRuns[NSBIDI_MAX_EXPLICIT_LEVEL+2]; - int32_t mIsoRunLast; // index of last used entry in mIsoRuns - - int32_t mOpeningsCount; // number of allocated entries in mOpenings - }; - - /** length of the current text */ - int32_t mLength; - - /** memory sizes in bytes */ - size_t mDirPropsSize, mLevelsSize, mRunsSize; - size_t mIsolatesSize; - - /** allocated memory */ - DirProp* mDirPropsMemory; - nsBidiLevel* mLevelsMemory; - Run* mRunsMemory; - Isolate* mIsolatesMemory; - - DirProp* mDirProps; - nsBidiLevel* mLevels; - - /** the paragraph level */ - nsBidiLevel mParaLevel; - - /** flags is a bit set for which directional properties are in the text */ - Flags mFlags; - - /** the overall paragraph or line directionality - see nsBidiDirection */ - nsBidiDirection mDirection; - - /** characters after trailingWSStart are WS and are */ - /* implicitly at the paraLevel (rule (L1)) - levels may not reflect that */ - int32_t mTrailingWSStart; - - /** fields for line reordering */ - int32_t mRunCount; /* ==-1: runs not set up yet */ - Run* mRuns; - - /** for non-mixed text, we only need a tiny array of runs (no malloc()) */ - Run mSimpleRuns[1]; - - /* maxium of current nesting depth of isolate sequences */ - /* Within ResolveExplicitLevels() and checkExpicitLevels(), this is the maximal - nesting encountered. - Within ResolveImplicitLevels(), this is the index of the current isolates - stack entry. */ - int32_t mIsolateCount; - Isolate* mIsolates; - - /** for simple text, have a small stack (no malloc()) */ - Isolate mSimpleIsolates[SIMPLE_ISOLATES_SIZE]; - -private: - - void Init(); - - static bool GetMemory(void **aMemory, size_t* aSize, size_t aSizeNeeded); - - void Free(); - - void GetDirProps(const char16_t *aText); - - void ResolveExplicitLevels(nsBidiDirection *aDirection, const char16_t *aText); - - nsBidiDirection DirectionFromFlags(Flags aFlags); - - void ProcessPropertySeq(LevState *pLevState, uint8_t _prop, int32_t start, int32_t limit); - - void ResolveImplicitLevels(int32_t aStart, int32_t aLimit, DirProp aSOR, DirProp aEOR); - - void AdjustWSLevels(); - - void SetTrailingWSStart(); - - bool GetRuns(); - - void GetSingleRun(nsBidiLevel aLevel); - - void ReorderLine(nsBidiLevel aMinLevel, nsBidiLevel aMaxLevel); - - static bool PrepareReorder(const nsBidiLevel *aLevels, int32_t aLength, int32_t *aIndexMap, nsBidiLevel *aMinLevel, nsBidiLevel *aMaxLevel); -}; - -#endif // _nsBidi_noICU_h_ diff --git a/layout/forms/nsNumberControlFrame.cpp b/layout/forms/nsNumberControlFrame.cpp index 58421ecb9..74dec2bea 100644 --- a/layout/forms/nsNumberControlFrame.cpp +++ b/layout/forms/nsNumberControlFrame.cpp @@ -680,14 +680,12 @@ nsNumberControlFrame::SetValueOfAnonTextControl(const nsAString& aValue) // state will be set to invalid) or if aValue can't be localized: nsAutoString localizedValue(aValue); -#ifdef ENABLE_INTL_API // Try and localize the value we will set: Decimal val = HTMLInputElement::StringToDecimal(aValue); if (val.isFinite()) { ICUUtils::LanguageTagIterForContent langTagIter(mContent); ICUUtils::LocalizeNumber(val.toDouble(), langTagIter, localizedValue); } -#endif // We need to update the value of our anonymous text control here. Note that // this must be its value, and not its 'value' attribute (the default value), @@ -706,7 +704,6 @@ nsNumberControlFrame::GetValueOfAnonTextControl(nsAString& aValue) HTMLInputElement::FromContent(mTextField)->GetValue(aValue); -#ifdef ENABLE_INTL_API // Here we need to de-localize any number typed in by the user. That is, we // need to convert it from the number format of the user's language, region, // etc. to the format that the HTML 5 spec defines to be a "valid @@ -747,7 +744,6 @@ nsNumberControlFrame::GetValueOfAnonTextControl(nsAString& aValue) // as 12.345, but HTMLInputElement::StringToDecimal would parse it to NaN. aValue.Truncate(); aValue.AppendFloat(value); -#endif } bool diff --git a/netwerk/dns/moz.build b/netwerk/dns/moz.build index f788d9a33..c3b84df2f 100644 --- a/netwerk/dns/moz.build +++ b/netwerk/dns/moz.build @@ -66,13 +66,7 @@ LOCAL_INCLUDES += [ '/netwerk/base', ] -if CONFIG['ENABLE_INTL_API']: - DEFINES['IDNA2008'] = True - USE_LIBS += ['icu'] -else: - UNIFIED_SOURCES += [ - 'nameprep.c', - ] +USE_LIBS += ['icu'] if CONFIG['GNU_CXX']: CXXFLAGS += ['-Wno-error=shadow'] diff --git a/netwerk/dns/nameprep.c b/netwerk/dns/nameprep.c deleted file mode 100644 index 039797885..000000000 --- a/netwerk/dns/nameprep.c +++ /dev/null @@ -1,347 +0,0 @@ -/* - * Copyright (c) 2001,2002 Japan Network Information Center. - * All rights reserved. - * - * By using this file, you agree to the terms and conditions set forth bellow. - * - * LICENSE TERMS AND CONDITIONS - * - * The following License Terms and Conditions apply, unless a different - * license is obtained from Japan Network Information Center ("JPNIC"), - * a Japanese association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda, - * Chiyoda-ku, Tokyo 101-0047, Japan. - * - * 1. Use, Modification and Redistribution (including distribution of any - * modified or derived work) in source and/or binary forms is permitted - * under this License Terms and Conditions. - * - * 2. Redistribution of source code must retain the copyright notices as they - * appear in each source code file, this License Terms and Conditions. - * - * 3. Redistribution in binary form must reproduce the Copyright Notice, - * this License Terms and Conditions, in the documentation and/or other - * materials provided with the distribution. For the purposes of binary - * distribution the "Copyright Notice" refers to the following language: - * "Copyright (c) 2000-2002 Japan Network Information Center. All rights reserved." - * - * 4. The name of JPNIC may not be used to endorse or promote products - * derived from this Software without specific prior written approval of - * JPNIC. - * - * 5. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY JPNIC - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JPNIC BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR - * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - */ - - -#include <stdlib.h> -#include <string.h> - -#include "nsIDNKitInterface.h" - -#define UCS_MAX 0x7fffffff -#define UNICODE_MAX 0x10ffff - - -/* - * Load NAMEPREP compiled tables. - */ -#include "nameprepdata.c" - -/* - * Define mapping/checking functions for each version of the draft. - */ - -#define VERSION id11 -#include "nameprep_template.c" -#undef VERSION - -typedef const char *(*nameprep_mapproc)(uint32_t v); -typedef int (*nameprep_checkproc)(uint32_t v); -typedef idn_biditype_t (*nameprep_biditypeproc)(uint32_t v); - -static struct idn_nameprep { - char *version; - nameprep_mapproc map_proc; - nameprep_checkproc prohibited_proc; - nameprep_checkproc unassigned_proc; - nameprep_biditypeproc biditype_proc; -} nameprep_versions[] = { -#define MAKE_NAMEPREP_HANDLE(version, id) \ - { version, \ - compose_sym2(nameprep_map_, id), \ - compose_sym2(nameprep_prohibited_, id), \ - compose_sym2(nameprep_unassigned_, id), \ - compose_sym2(nameprep_biditype_, id), } - MAKE_NAMEPREP_HANDLE("nameprep-11", id11), - { NULL, NULL, NULL, NULL, NULL }, -}; - -static idn_result_t idn_nameprep_check(nameprep_checkproc proc, - const uint32_t *str, - const uint32_t **found); - -idn_result_t -idn_nameprep_create(const char *version, idn_nameprep_t *handlep) { - idn_nameprep_t handle; - - assert(handlep != NULL); - - TRACE(("idn_nameprep_create(version=%-.50s)\n", - version == NULL ? "<NULL>" : version)); - - if (version == NULL) - version = IDN_NAMEPREP_CURRENT; - - /* - * Lookup table for the specified version. Since the number of - * versions won't be large (I don't want see draft-23 or such :-), - * simple linear search is OK. - */ - for (handle = nameprep_versions; handle->version != NULL; handle++) { - if (strcmp(handle->version, version) == 0) { - *handlep = handle; - return (idn_success); - } - } - return (idn_notfound); -} - -void -idn_nameprep_destroy(idn_nameprep_t handle) { - assert(handle != NULL); - - TRACE(("idn_nameprep_destroy()\n")); - - /* Nothing to do. */ -} - -idn_result_t -idn_nameprep_map(idn_nameprep_t handle, const uint32_t *from, - uint32_t *to, size_t tolen) { - assert(handle != NULL && from != NULL && to != NULL); - - TRACE(("idn_nameprep_map(ctx=%s, from=\"%s\")\n", - handle->version, idn__debug_ucs4xstring(from, 50))); - - while (*from != '\0') { - uint32_t v = *from; - const char *mapped; - - if (v > UCS_MAX) { - /* This cannot happen, but just in case.. */ - return (idn_invalid_codepoint); - } else if (v > UNICODE_MAX) { - /* No mapping is possible. */ - mapped = NULL; - } else { - /* Try mapping. */ - mapped = (*handle->map_proc)(v); - } - - if (mapped == NULL) { - /* No mapping. Just copy verbatim. */ - if (tolen < 1) - return (idn_buffer_overflow); - *to++ = v; - tolen--; - } else { - const unsigned char *mappeddata; - size_t mappedlen; - - mappeddata = (const unsigned char *)mapped + 1; - mappedlen = *mapped; - - if (tolen < (mappedlen + 3) / 4) - return (idn_buffer_overflow); - tolen -= (mappedlen + 3) / 4; - while (mappedlen >= 4) { - *to = *mappeddata++; - *to |= *mappeddata++ << 8; - *to |= *mappeddata++ << 16; - *to |= *mappeddata++ << 24; - mappedlen -= 4; - to++; - } - if (mappedlen > 0) { - *to = *mappeddata++; - *to |= (mappedlen >= 2) ? - *mappeddata++ << 8: 0; - *to |= (mappedlen >= 3) ? - *mappeddata++ << 16: 0; - to++; - } - } - from++; - } - if (tolen == 0) - return (idn_buffer_overflow); - *to = '\0'; - return (idn_success); -} - -idn_result_t -idn_nameprep_isprohibited(idn_nameprep_t handle, const uint32_t *str, - const uint32_t **found) { - assert(handle != NULL && str != NULL && found != NULL); - - TRACE(("idn_nameprep_isprohibited(ctx=%s, str=\"%s\")\n", - handle->version, idn__debug_ucs4xstring(str, 50))); - - return (idn_nameprep_check(handle->prohibited_proc, str, found)); -} - -idn_result_t -idn_nameprep_isunassigned(idn_nameprep_t handle, const uint32_t *str, - const uint32_t **found) { - assert(handle != NULL && str != NULL && found != NULL); - - TRACE(("idn_nameprep_isunassigned(handle->version, str=\"%s\")\n", - handle->version, idn__debug_ucs4xstring(str, 50))); - - return (idn_nameprep_check(handle->unassigned_proc, str, found)); -} - -static idn_result_t -idn_nameprep_check(nameprep_checkproc proc, const uint32_t *str, - const uint32_t **found) { - uint32_t v; - - while (*str != '\0') { - v = *str; - - if (v > UCS_MAX) { - /* This cannot happen, but just in case.. */ - return (idn_invalid_codepoint); - } else if (v > UNICODE_MAX) { - /* It is invalid.. */ - *found = str; - return (idn_success); - } else if ((*proc)(v)) { - *found = str; - return (idn_success); - } - str++; - } - *found = NULL; - return (idn_success); -} - -idn_result_t -idn_nameprep_isvalidbidi(idn_nameprep_t handle, const uint32_t *str, - const uint32_t **found) { - uint32_t v; - idn_biditype_t first_char; - idn_biditype_t last_char; - int found_r_al; - - assert(handle != NULL && str != NULL && found != NULL); - - TRACE(("idn_nameprep_isvalidbidi(ctx=%s, str=\"%s\")\n", - handle->version, idn__debug_ucs4xstring(str, 50))); - - if (*str == '\0') { - *found = NULL; - return (idn_success); - } - - /* - * check first character's type and initialize variables. - */ - found_r_al = 0; - if (*str > UCS_MAX) { - /* This cannot happen, but just in case.. */ - return (idn_invalid_codepoint); - } else if (*str > UNICODE_MAX) { - /* It is invalid.. */ - *found = str; - return (idn_success); - } - first_char = last_char = (*(handle->biditype_proc))(*str); - if (first_char == idn_biditype_r_al) { - found_r_al = 1; - } - str++; - - /* - * see whether string is valid or not. - */ - while (*str != '\0') { - v = *str; - - if (v > UCS_MAX) { - /* This cannot happen, but just in case.. */ - return (idn_invalid_codepoint); - } else if (v > UNICODE_MAX) { - /* It is invalid.. */ - *found = str; - return (idn_success); - } else { - last_char = (*(handle->biditype_proc))(v); - if (found_r_al && last_char == idn_biditype_l) { - *found = str; - return (idn_success); - } - if (first_char != idn_biditype_r_al && last_char == idn_biditype_r_al) { - *found = str; - return (idn_success); - } - if (last_char == idn_biditype_r_al) { - found_r_al = 1; - } - } - str++; - } - - if (found_r_al) { - if (last_char != idn_biditype_r_al) { - *found = str - 1; - return (idn_success); - } - } - - *found = NULL; - return (idn_success); -} - -idn_result_t -idn_nameprep_createproc(const char *parameter, void **handlep) { - return idn_nameprep_create(parameter, (idn_nameprep_t *)handlep); -} - -void -idn_nameprep_destroyproc(void *handle) { - idn_nameprep_destroy((idn_nameprep_t)handle); -} - -idn_result_t -idn_nameprep_mapproc(void *handle, const uint32_t *from, - uint32_t *to, size_t tolen) { - return idn_nameprep_map((idn_nameprep_t)handle, from, to, tolen); -} - -idn_result_t -idn_nameprep_prohibitproc(void *handle, const uint32_t *str, - const uint32_t **found) { - return idn_nameprep_isprohibited((idn_nameprep_t)handle, str, found); -} - -idn_result_t -idn_nameprep_unassignedproc(void *handle, const uint32_t *str, - const uint32_t **found) { - return idn_nameprep_isunassigned((idn_nameprep_t)handle, str, found); -} - -idn_result_t -idn_nameprep_bidiproc(void *handle, const uint32_t *str, - const uint32_t **found) { - return idn_nameprep_isvalidbidi((idn_nameprep_t)handle, str, found); -} diff --git a/netwerk/dns/nameprep_template.c b/netwerk/dns/nameprep_template.c deleted file mode 100644 index 7fe36518a..000000000 --- a/netwerk/dns/nameprep_template.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Copyright (c) 2001 Japan Network Information Center. All rights reserved. - * - * By using this file, you agree to the terms and conditions set forth bellow. - * - * LICENSE TERMS AND CONDITIONS - * - * The following License Terms and Conditions apply, unless a different - * license is obtained from Japan Network Information Center ("JPNIC"), - * a Japanese association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda, - * Chiyoda-ku, Tokyo 101-0047, Japan. - * - * 1. Use, Modification and Redistribution (including distribution of any - * modified or derived work) in source and/or binary forms is permitted - * under this License Terms and Conditions. - * - * 2. Redistribution of source code must retain the copyright notices as they - * appear in each source code file, this License Terms and Conditions. - * - * 3. Redistribution in binary form must reproduce the Copyright Notice, - * this License Terms and Conditions, in the documentation and/or other - * materials provided with the distribution. For the purposes of binary - * distribution the "Copyright Notice" refers to the following language: - * "Copyright (c) 2000-2002 Japan Network Information Center. All rights reserved." - * - * 4. The name of JPNIC may not be used to endorse or promote products - * derived from this Software without specific prior written approval of - * JPNIC. - * - * 5. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY JPNIC - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JPNIC BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR - * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - */ - -/* - * Include this file once for each version of NAMEPREP. - * VERSION should be defined to appropriate value before inclusion. - */ - -#ifndef NAMEPREP_TEMPLATE_INIT -#define NAMEPREP_TEMPLATE_INIT - -/* Symbol composition. */ -#define compose_sym2(a, b) compose_sym2X(a, b) -#define compose_sym2X(a, b) a ## b -#define compose_sym3(a, b, c) compose_sym3X(a, b, c) -#define compose_sym3X(a, b, c) a ## b ## c - -/* The table is based on "Optimized Two-Stage Table" mentioned in - * Unicode 3.0 page 106, extended to handle 21bit data instead of 16 bit. - */ - -/* Index calculation for multi-level index tables. */ -#define IDX0(type, v) IDX_0(v, BITS1(type), BITS2(type)) -#define IDX1(type, v) IDX_1(v, BITS1(type), BITS2(type)) -#define IDX2(type, v) IDX_2(v, BITS1(type), BITS2(type)) - -#define IDX_0(v, bits1, bits2) ((v) >> ((bits1) + (bits2))) -#define IDX_1(v, bits1, bits2) (((v) >> (bits2)) & ((1 << (bits1)) - 1)) -#define IDX_2(v, bits1, bits2) ((v) & ((1 << (bits2)) - 1)) - -#define BITS1(type) type ## _BITS_1 -#define BITS2(type) type ## _BITS_2 - -#endif /* NAMEPREP_TEMPLATE_INIT */ - -static const char * -compose_sym2(nameprep_map_, VERSION) (uint32_t v) { - int idx0 = IDX0(MAP, v); - int idx1 = IDX1(MAP, v); - int idx2 = IDX2(MAP, v); - int offset; - -#define IMAP compose_sym3(nameprep_, VERSION, _map_imap) -#define TABLE compose_sym3(nameprep_, VERSION, _map_table) -#define DATA compose_sym3(nameprep_, VERSION, _map_data) - offset = TABLE[IMAP[IMAP[idx0] + idx1]].tbl[idx2]; - if (offset == 0) - return (NULL); /* no mapping */ - return (const char *)(DATA + offset); -#undef IMAP -#undef TABLE -#undef DATA -} - -static int -compose_sym2(nameprep_prohibited_, VERSION) (uint32_t v) { - int idx0 = IDX0(PROH, v); - int idx1 = IDX1(PROH, v); - int idx2 = IDX2(PROH, v); - const unsigned char *bm; - -#define IMAP compose_sym3(nameprep_, VERSION, _prohibited_imap) -#define BITMAP compose_sym3(nameprep_, VERSION, _prohibited_bitmap) - bm = BITMAP[IMAP[IMAP[idx0] + idx1]].bm; - return (bm[idx2 / 8] & (1 << (idx2 % 8))); -#undef IMAP -#undef BITMAP -} - -static int -compose_sym2(nameprep_unassigned_, VERSION) (uint32_t v) { - int idx0 = IDX0(UNAS, v); - int idx1 = IDX1(UNAS, v); - int idx2 = IDX2(UNAS, v); - const unsigned char *bm; - -#define IMAP compose_sym3(nameprep_, VERSION, _unassigned_imap) -#define BITMAP compose_sym3(nameprep_, VERSION, _unassigned_bitmap) - bm = BITMAP[IMAP[IMAP[idx0] + idx1]].bm; - return (bm[idx2 / 8] & (1 << (idx2 % 8))); -#undef IMAP -#undef BITMAP -} - -static idn_biditype_t -compose_sym2(nameprep_biditype_, VERSION) (uint32_t v) { - int idx0 = IDX0(BIDI, v); - int idx1 = IDX1(BIDI, v); - int idx2 = IDX2(BIDI, v); - int offset; - -#define IMAP compose_sym3(nameprep_, VERSION, _bidi_imap) -#define TABLE compose_sym3(nameprep_, VERSION, _bidi_table) -#define DATA compose_sym3(nameprep_, VERSION, _bidi_data) - offset = TABLE[IMAP[IMAP[idx0] + idx1]].tbl[idx2]; - return DATA[offset]; -#undef IMAP -#undef TABLE -#undef DATA -} diff --git a/netwerk/dns/nameprepdata.c b/netwerk/dns/nameprepdata.c deleted file mode 100644 index cd7e2db0e..000000000 --- a/netwerk/dns/nameprepdata.c +++ /dev/null @@ -1,2588 +0,0 @@ -/* - * Copyright (c) 2001,2002 Japan Network Information Center. - * All rights reserved. - * - * By using this file, you agree to the terms and conditions set forth bellow. - * - * LICENSE TERMS AND CONDITIONS - * - * The following License Terms and Conditions apply, unless a different - * license is obtained from Japan Network Information Center ("JPNIC"), - * a Japanese association, Kokusai-Kougyou-Kanda Bldg 6F, 2-3-4 Uchi-Kanda, - * Chiyoda-ku, Tokyo 101-0047, Japan. - * - * 1. Use, Modification and Redistribution (including distribution of any - * modified or derived work) in source and/or binary forms is permitted - * under this License Terms and Conditions. - * - * 2. Redistribution of source code must retain the copyright notices as they - * appear in each source code file, this License Terms and Conditions. - * - * 3. Redistribution in binary form must reproduce the Copyright Notice, - * this License Terms and Conditions, in the documentation and/or other - * materials provided with the distribution. For the purposes of binary - * distribution the "Copyright Notice" refers to the following language: - * "Copyright (c) 2000-2002 Japan Network Information Center. All rights reserved." - * - * 4. The name of JPNIC may not be used to endorse or promote products - * derived from this Software without specific prior written approval of - * JPNIC. - * - * 5. Disclaimer/Limitation of Liability: THIS SOFTWARE IS PROVIDED BY JPNIC - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A - * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JPNIC BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR - * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - */ - - /* - * Do not edit this file! - * This file is generated from NAMEPREP specification. - */ - -#define MAP_BITS_0 9 -#define MAP_BITS_1 7 -#define MAP_BITS_2 5 - -#define PROH_BITS_0 7 -#define PROH_BITS_1 7 -#define PROH_BITS_2 7 - -#define UNAS_BITS_0 7 -#define UNAS_BITS_1 7 -#define UNAS_BITS_2 7 - -#define BIDI_BITS_0 9 -#define BIDI_BITS_1 7 -#define BIDI_BITS_2 5 - - -static const unsigned short nameprep_id11_map_imap[] = { - 272, 400, 528, 656, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 912, - 1040, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 1168, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 784, 784, 784, 784, 784, 784, 784, 784, - 0, 0, 1, 0, 0, 2, 3, 0, - 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 0, 0, 0, 0, 0, 0, - 0, 0, 14, 15, 16, 17, 18, 19, - 20, 21, 0, 22, 23, 24, 25, 26, - 27, 28, 29, 0, 30, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 31, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 42, 43, 44, 45, 46, 47, - 48, 0, 0, 49, 0, 50, 0, 0, - 51, 52, 53, 54, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 55, 56, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 57, 58, 59, 60, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 61, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 62, 0, 0, 0, 0, 0, 0, 63, - 0, 64, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 65, 66, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 67, 68, 69, - 70, 80, 81, 73, 74, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, -}; - -static const struct { - unsigned short tbl[32]; -} nameprep_id11_map_table[] = { - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, - 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, - 44, 46, 48, 50, 52, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 54, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, - 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99, - 101, 0, 103, 105, 107, 109, 111, 113, 115, 117, - }}, - {{ - 123, 0, 126, 0, 129, 0, 132, 0, 135, 0, 138, - 0, 141, 0, 144, 0, 147, 0, 150, 0, 153, 0, - 156, 0, 159, 0, 162, 0, 165, 0, 168, 0, - }}, - {{ - 171, 0, 174, 0, 177, 0, 180, 0, 183, 0, 186, - 0, 189, 0, 192, 0, 195, 0, 202, 0, 205, 0, - 208, 0, 0, 211, 0, 214, 0, 217, 0, 220, - }}, - {{ - 0, 223, 0, 226, 0, 229, 0, 232, 0, 235, 241, - 0, 244, 0, 247, 0, 250, 0, 253, 0, 256, 0, - 259, 0, 262, 0, 265, 0, 268, 0, 271, 0, - }}, - {{ - 274, 0, 277, 0, 280, 0, 283, 0, 286, 0, 289, - 0, 292, 0, 295, 0, 298, 0, 301, 0, 304, 0, - 307, 0, 310, 312, 0, 315, 0, 318, 0, 38, - }}, - {{ - 0, 321, 324, 0, 327, 0, 330, 333, 0, 336, 339, - 342, 0, 0, 345, 348, 351, 354, 0, 357, 360, 0, - 363, 366, 369, 0, 0, 0, 372, 375, 0, 378, - }}, - {{ - 381, 0, 384, 0, 387, 0, 390, 393, 0, 396, 0, - 0, 399, 0, 402, 405, 0, 408, 411, 414, 0, 417, - 0, 420, 423, 0, 0, 0, 426, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 429, 429, 0, 432, 432, 0, 435, - 435, 0, 438, 0, 441, 0, 444, 0, 447, 0, 450, - 0, 453, 0, 456, 0, 459, 0, 0, 462, 0, - }}, - {{ - 465, 0, 468, 0, 471, 0, 474, 0, 477, 0, 480, - 0, 483, 0, 486, 0, 489, 496, 496, 0, 499, 0, - 502, 505, 508, 0, 511, 0, 514, 0, 517, 0, - }}, - {{ - 520, 0, 523, 0, 526, 0, 529, 0, 532, 0, 535, - 0, 538, 0, 541, 0, 544, 0, 547, 0, 550, 0, - 553, 0, 556, 0, 559, 0, 562, 0, 565, 0, - }}, - {{ - 568, 0, 571, 0, 574, 0, 577, 0, 580, 0, 583, - 0, 586, 0, 589, 0, 592, 0, 595, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 598, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 601, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 608, 0, 611, 614, 617, - 0, 620, 0, 623, 626, 629, 640, 643, 646, 649, 652, - 655, 658, 661, 598, 664, 667, 54, 670, 673, 676, - }}, - {{ - 679, 682, 0, 685, 688, 691, 694, 697, 700, 703, 706, - 709, 0, 0, 0, 0, 712, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 685, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 643, 661, 691, 623, 709, 694, - 679, 0, 723, 0, 726, 0, 729, 0, 732, 0, - }}, - {{ - 735, 0, 738, 0, 741, 0, 744, 0, 747, 0, 750, - 0, 753, 0, 756, 0, 664, 682, 685, 0, 661, 652, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 759, 762, 765, 768, 771, 774, 777, 780, 783, 786, 789, - 792, 795, 798, 801, 804, 807, 810, 813, 816, 819, 822, - 825, 828, 831, 834, 837, 840, 843, 846, 849, 852, - }}, - {{ - 855, 858, 861, 864, 867, 870, 873, 876, 879, 882, 885, - 888, 891, 894, 897, 900, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 903, 0, 906, 0, 909, 0, 912, 0, 915, 0, 918, - 0, 921, 0, 924, 0, 927, 0, 930, 0, 933, 0, - 936, 0, 939, 0, 942, 0, 945, 0, 948, 0, - }}, - {{ - 951, 0, 0, 0, 0, 0, 0, 0, 0, 0, 954, - 0, 957, 0, 960, 0, 963, 0, 966, 0, 969, 0, - 972, 0, 975, 0, 978, 0, 981, 0, 984, 0, - }}, - {{ - 987, 0, 990, 0, 993, 0, 996, 0, 999, 0, 1002, - 0, 1005, 0, 1008, 0, 1011, 0, 1014, 0, 1017, 0, - 1020, 0, 1023, 0, 1026, 0, 1029, 0, 1032, 0, - }}, - {{ - 0, 1035, 0, 1038, 0, 1041, 0, 1044, 0, 1047, 0, - 1050, 0, 1053, 0, 0, 1056, 0, 1059, 0, 1062, 0, - 1065, 0, 1068, 0, 1071, 0, 1074, 0, 1077, 0, - }}, - {{ - 1080, 0, 1083, 0, 1086, 0, 1089, 0, 1092, 0, 1095, - 0, 1098, 0, 1101, 0, 1104, 0, 1107, 0, 1110, 0, - 0, 0, 1113, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 1116, 0, 1119, 0, 1122, 0, 1125, 0, 1128, 0, 1131, - 0, 1134, 0, 1137, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1140, 1143, 1146, 1149, 1152, - 1155, 1158, 1161, 1164, 1167, 1170, 1173, 1176, 1179, 1182, - }}, - {{ - 1185, 1188, 1191, 1194, 1197, 1200, 1203, 1206, 1209, 1212, 1215, - 1218, 1221, 1224, 1227, 1230, 1233, 1236, 1239, 1242, 1245, 1248, - 1251, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 1254, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, - 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 1261, 0, 1264, 0, 1267, 0, 1270, 0, 1273, 0, 1276, - 0, 1279, 0, 1282, 0, 1285, 0, 1288, 0, 1291, 0, - 1294, 0, 1297, 0, 1300, 0, 1303, 0, 1306, 0, - }}, - {{ - 1309, 0, 1312, 0, 1315, 0, 1318, 0, 1321, 0, 1324, - 0, 1327, 0, 1330, 0, 1333, 0, 1336, 0, 1339, 0, - 1342, 0, 1345, 0, 1348, 0, 1351, 0, 1354, 0, - }}, - {{ - 1357, 0, 1360, 0, 1363, 0, 1366, 0, 1369, 0, 1372, - 0, 1375, 0, 1378, 0, 1381, 0, 1384, 0, 1387, 0, - 1390, 0, 1393, 0, 1396, 0, 1399, 0, 1402, 0, - }}, - {{ - 1405, 0, 1408, 0, 1411, 0, 1414, 0, 1417, 0, 1420, - 0, 1423, 0, 1426, 0, 1429, 0, 1432, 0, 1435, 0, - 1438, 0, 1441, 0, 1444, 0, 1447, 0, 1450, 0, - }}, - {{ - 1453, 0, 1456, 0, 1459, 0, 1462, 0, 1465, 0, 1468, - 0, 1471, 0, 1474, 0, 1477, 0, 1480, 0, 1483, 0, - 1486, 1493, 1500, 1507, 1514, 1405, 0, 0, 0, 0, - }}, - {{ - 1521, 0, 1524, 0, 1527, 0, 1530, 0, 1533, 0, 1536, - 0, 1539, 0, 1542, 0, 1545, 0, 1548, 0, 1551, 0, - 1554, 0, 1557, 0, 1560, 0, 1563, 0, 1566, 0, - }}, - {{ - 1569, 0, 1572, 0, 1575, 0, 1578, 0, 1581, 0, 1584, - 0, 1587, 0, 1590, 0, 1593, 0, 1596, 0, 1599, 0, - 1602, 0, 1605, 0, 1608, 0, 1611, 0, 1614, 0, - }}, - {{ - 1617, 0, 1620, 0, 1623, 0, 1626, 0, 1629, 0, 1632, - 0, 1635, 0, 1638, 0, 1641, 0, 1644, 0, 1647, 0, - 1650, 0, 1653, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 1656, 1659, 1662, - 1665, 1668, 1671, 1674, 1677, 0, 0, 0, 0, 0, 0, - 0, 0, 1680, 1683, 1686, 1689, 1692, 1695, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 1698, 1701, 1704, - 1707, 1710, 1713, 1716, 1719, 0, 0, 0, 0, 0, 0, - 0, 0, 1722, 1725, 1728, 1731, 1734, 1737, 1740, 1743, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 1746, 1749, 1752, - 1755, 1758, 1761, 0, 0, 1764, 0, 1771, 0, 1782, 0, - 1793, 0, 0, 1804, 0, 1807, 0, 1810, 0, 1813, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 1816, 1819, 1822, - 1825, 1828, 1831, 1834, 1837, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 1840, 1847, 1854, 1861, 1868, 1875, 1882, 1889, 1840, 1847, 1854, - 1861, 1868, 1875, 1882, 1889, 1896, 1903, 1910, 1917, 1924, 1931, - 1938, 1945, 1896, 1903, 1910, 1917, 1924, 1931, 1938, 1945, - }}, - {{ - 1952, 1959, 1966, 1973, 1980, 1987, 1994, 2001, 1952, 1959, 1966, - 1973, 1980, 1987, 1994, 2001, 0, 0, 2008, 2015, 2022, 0, - 2029, 2036, 2047, 2050, 2053, 2056, 2015, 0, 598, 0, - }}, - {{ - 0, 0, 2059, 2066, 2073, 0, 2080, 2087, 2098, 2101, 2104, - 2107, 2066, 0, 0, 0, 0, 0, 2110, 629, 0, 0, - 2121, 2128, 2139, 2142, 2145, 2148, 0, 0, 0, 0, - }}, - {{ - 0, 0, 2151, 712, 2162, 0, 2169, 2176, 2187, 2190, 2193, - 2196, 2199, 0, 0, 0, 0, 0, 2202, 2209, 2216, 0, - 2223, 2230, 2241, 2244, 2247, 2250, 2209, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 2253, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 6, 2259, 0, 0, 0, 351, 0, 2265, 0, - 16, 16, 16, 0, 0, 18, 18, 24, 0, 0, 28, - 2271, 0, 0, 32, 34, 36, 36, 36, 0, 0, - }}, - {{ - 2277, 2283, 2293, 0, 52, 0, 703, 0, 52, 0, 22, - 67, 4, 6, 0, 0, 10, 12, 0, 26, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 646, 679, - }}, - {{ - 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 2299, 2302, 2305, 2308, 2311, 2314, 2317, 2320, 2323, 2326, 2329, - 2332, 2335, 2338, 2341, 2344, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2347, 2350, 2353, 2356, 2359, 2362, 2365, 2368, 2371, 2374, - }}, - {{ - 2377, 2380, 2383, 2386, 2389, 2392, 2395, 2398, 2401, 2404, 2407, - 2410, 2413, 2416, 2419, 2422, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2425, 0, 2435, 0, 2441, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 2447, 2453, 2459, 2465, 2471, 2477, 2483, 2489, 0, 0, 2495, - 2501, 2507, 0, 0, 0, 2513, 2519, 2529, 2539, 2549, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2447, 2559, - 2569, 2579, 0, 0, 0, 0, 0, 0, 0, 2589, 2595, - 2601, 2607, 2613, 2607, 2619, 2625, 2631, 2637, 2643, 2637, - }}, - {{ - 2649, 2656, 0, 2663, 0, 0, 2669, 2683, 2693, 2699, 0, - 2705, 0, 2711, 2717, 0, 0, 0, 0, 0, 0, 0, - 0, 2723, 0, 2729, 2739, 0, 2745, 2751, 0, 0, - }}, - {{ - 2757, 2763, 2769, 2775, 2785, 2795, 2795, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2801, 2808, 2815, - 2822, 2829, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - }}, - {{ - 0, 2836, 2839, 2842, 2845, 2848, 2851, 2854, 2857, 2860, 2863, - 2866, 2869, 2872, 2875, 2878, 2881, 2884, 2887, 2890, 2893, 2896, - 2899, 2902, 2905, 2908, 2911, 0, 0, 0, 0, 0, - }}, - {{ - 2914, 2918, 2922, 2926, 2930, 2934, 2938, 2942, 2946, 2950, 2954, - 2958, 2962, 2966, 2970, 2974, 2978, 2982, 2986, 2990, 2994, 2998, - 3002, 3006, 3010, 3014, 3018, 3022, 3026, 3030, 3034, 3038, - }}, - {{ - 3042, 3046, 3050, 3054, 3058, 3062, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, - 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, - 46, 48, 50, 52, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, - 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, - }}, - {{ - 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, - 48, 50, 52, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 6, - 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, - 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, - }}, - {{ - 50, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 0, 6, 8, - }}, - {{ - 0, 0, 14, 0, 0, 20, 22, 0, 0, 28, 30, - 32, 34, 0, 38, 40, 42, 44, 46, 48, 50, 52, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 4, 6, 8, 10, 12, - 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, - }}, - {{ - 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 2, 4, 0, 8, 10, 12, 14, - 0, 0, 20, 22, 24, 26, 28, 30, 32, 34, 0, - 38, 40, 42, 44, 46, 48, 50, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 4, 0, 8, 10, 12, 14, 0, - }}, - {{ - 18, 20, 22, 24, 26, 0, 30, 0, 0, 0, 38, - 40, 42, 44, 46, 48, 50, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, - 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, - }}, - {{ - 42, 44, 46, 48, 50, 52, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 50, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 4, 6, 8, - }}, - {{ - 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, - 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 640, 643, 646, - 649, 652, 655, 658, 661, 598, 664, 667, 54, 670, 673, - 676, 679, 682, 661, 685, 688, 691, 694, 697, 700, - }}, - {{ - 703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 685, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 640, 643, 646, 649, 652, 655, 658, 661, 598, - 664, 667, 54, 670, 673, 676, 679, 682, 661, 685, 688, - 691, 694, 697, 700, 703, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 685, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 640, 643, 646, 649, - }}, - {{ - 652, 655, 658, 661, 598, 664, 667, 54, 670, 673, 676, - 679, 682, 661, 685, 688, 691, 694, 697, 700, 703, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 685, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 640, 643, 646, 649, 652, 655, 658, 661, 598, 664, - }}, - {{ - 667, 54, 670, 673, 676, 679, 682, 661, 685, 688, 691, - 694, 697, 700, 703, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 685, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 640, 643, 646, 649, 652, 655, - 658, 661, 598, 664, 667, 54, 670, 673, 676, 679, - }}, - {{ - 682, 661, 685, 688, 691, 694, 697, 700, 703, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 685, 0, 0, 0, 0, - }}, -}; - -static const unsigned char nameprep_id11_map_data[] = { - 0, 0, 1, 97, 1, 98, 1, 99, 1, 100, 1, 101, - 1, 102, 1, 103, 1, 104, 1, 105, 1, 106, 1, 107, - 1, 108, 1, 109, 1, 110, 1, 111, 1, 112, 1, 113, - 1, 114, 1, 115, 1, 116, 1, 117, 1, 118, 1, 119, - 1, 120, 1, 121, 1, 122, 2, 188, 3, 1, 224, 1, - 225, 1, 226, 1, 227, 1, 228, 1, 229, 1, 230, 1, - 231, 1, 232, 1, 233, 1, 234, 1, 235, 1, 236, 1, - 237, 1, 238, 1, 239, 1, 240, 1, 241, 1, 242, 1, - 243, 1, 244, 1, 245, 1, 246, 1, 248, 1, 249, 1, - 250, 1, 251, 1, 252, 1, 253, 1, 254, 5, 115, 0, - 0, 0, 115, 2, 1, 1, 2, 3, 1, 2, 5, 1, - 2, 7, 1, 2, 9, 1, 2, 11, 1, 2, 13, 1, - 2, 15, 1, 2, 17, 1, 2, 19, 1, 2, 21, 1, - 2, 23, 1, 2, 25, 1, 2, 27, 1, 2, 29, 1, - 2, 31, 1, 2, 33, 1, 2, 35, 1, 2, 37, 1, - 2, 39, 1, 2, 41, 1, 2, 43, 1, 2, 45, 1, - 2, 47, 1, 6, 105, 0, 0, 0, 7, 3, 2, 51, - 1, 2, 53, 1, 2, 55, 1, 2, 58, 1, 2, 60, - 1, 2, 62, 1, 2, 64, 1, 2, 66, 1, 2, 68, - 1, 2, 70, 1, 2, 72, 1, 5, 188, 2, 0, 0, - 110, 2, 75, 1, 2, 77, 1, 2, 79, 1, 2, 81, - 1, 2, 83, 1, 2, 85, 1, 2, 87, 1, 2, 89, - 1, 2, 91, 1, 2, 93, 1, 2, 95, 1, 2, 97, - 1, 2, 99, 1, 2, 101, 1, 2, 103, 1, 2, 105, - 1, 2, 107, 1, 2, 109, 1, 2, 111, 1, 2, 113, - 1, 2, 115, 1, 2, 117, 1, 2, 119, 1, 1, 255, - 2, 122, 1, 2, 124, 1, 2, 126, 1, 2, 83, 2, - 2, 131, 1, 2, 133, 1, 2, 84, 2, 2, 136, 1, - 2, 86, 2, 2, 87, 2, 2, 140, 1, 2, 221, 1, - 2, 89, 2, 2, 91, 2, 2, 146, 1, 2, 96, 2, - 2, 99, 2, 2, 105, 2, 2, 104, 2, 2, 153, 1, - 2, 111, 2, 2, 114, 2, 2, 117, 2, 2, 161, 1, - 2, 163, 1, 2, 165, 1, 2, 128, 2, 2, 168, 1, - 2, 131, 2, 2, 173, 1, 2, 136, 2, 2, 176, 1, - 2, 138, 2, 2, 139, 2, 2, 180, 1, 2, 182, 1, - 2, 146, 2, 2, 185, 1, 2, 189, 1, 2, 198, 1, - 2, 201, 1, 2, 204, 1, 2, 206, 1, 2, 208, 1, - 2, 210, 1, 2, 212, 1, 2, 214, 1, 2, 216, 1, - 2, 218, 1, 2, 220, 1, 2, 223, 1, 2, 225, 1, - 2, 227, 1, 2, 229, 1, 2, 231, 1, 2, 233, 1, - 2, 235, 1, 2, 237, 1, 2, 239, 1, 6, 106, 0, - 0, 0, 12, 3, 2, 243, 1, 2, 245, 1, 2, 149, - 1, 2, 191, 1, 2, 249, 1, 2, 251, 1, 2, 253, - 1, 2, 255, 1, 2, 1, 2, 2, 3, 2, 2, 5, - 2, 2, 7, 2, 2, 9, 2, 2, 11, 2, 2, 13, - 2, 2, 15, 2, 2, 17, 2, 2, 19, 2, 2, 21, - 2, 2, 23, 2, 2, 25, 2, 2, 27, 2, 2, 29, - 2, 2, 31, 2, 2, 158, 1, 2, 35, 2, 2, 37, - 2, 2, 39, 2, 2, 41, 2, 2, 43, 2, 2, 45, - 2, 2, 47, 2, 2, 49, 2, 2, 51, 2, 2, 185, - 3, 6, 32, 0, 0, 0, 185, 3, 2, 172, 3, 2, - 173, 3, 2, 174, 3, 2, 175, 3, 2, 204, 3, 2, - 205, 3, 2, 206, 3, 10, 185, 3, 0, 0, 8, 3, - 0, 0, 1, 3, 2, 177, 3, 2, 178, 3, 2, 179, - 3, 2, 180, 3, 2, 181, 3, 2, 182, 3, 2, 183, - 3, 2, 184, 3, 2, 186, 3, 2, 187, 3, 2, 189, - 3, 2, 190, 3, 2, 191, 3, 2, 192, 3, 2, 193, - 3, 2, 195, 3, 2, 196, 3, 2, 197, 3, 2, 198, - 3, 2, 199, 3, 2, 200, 3, 2, 201, 3, 2, 202, - 3, 2, 203, 3, 10, 197, 3, 0, 0, 8, 3, 0, - 0, 1, 3, 2, 217, 3, 2, 219, 3, 2, 221, 3, - 2, 223, 3, 2, 225, 3, 2, 227, 3, 2, 229, 3, - 2, 231, 3, 2, 233, 3, 2, 235, 3, 2, 237, 3, - 2, 239, 3, 2, 80, 4, 2, 81, 4, 2, 82, 4, - 2, 83, 4, 2, 84, 4, 2, 85, 4, 2, 86, 4, - 2, 87, 4, 2, 88, 4, 2, 89, 4, 2, 90, 4, - 2, 91, 4, 2, 92, 4, 2, 93, 4, 2, 94, 4, - 2, 95, 4, 2, 48, 4, 2, 49, 4, 2, 50, 4, - 2, 51, 4, 2, 52, 4, 2, 53, 4, 2, 54, 4, - 2, 55, 4, 2, 56, 4, 2, 57, 4, 2, 58, 4, - 2, 59, 4, 2, 60, 4, 2, 61, 4, 2, 62, 4, - 2, 63, 4, 2, 64, 4, 2, 65, 4, 2, 66, 4, - 2, 67, 4, 2, 68, 4, 2, 69, 4, 2, 70, 4, - 2, 71, 4, 2, 72, 4, 2, 73, 4, 2, 74, 4, - 2, 75, 4, 2, 76, 4, 2, 77, 4, 2, 78, 4, - 2, 79, 4, 2, 97, 4, 2, 99, 4, 2, 101, 4, - 2, 103, 4, 2, 105, 4, 2, 107, 4, 2, 109, 4, - 2, 111, 4, 2, 113, 4, 2, 115, 4, 2, 117, 4, - 2, 119, 4, 2, 121, 4, 2, 123, 4, 2, 125, 4, - 2, 127, 4, 2, 129, 4, 2, 139, 4, 2, 141, 4, - 2, 143, 4, 2, 145, 4, 2, 147, 4, 2, 149, 4, - 2, 151, 4, 2, 153, 4, 2, 155, 4, 2, 157, 4, - 2, 159, 4, 2, 161, 4, 2, 163, 4, 2, 165, 4, - 2, 167, 4, 2, 169, 4, 2, 171, 4, 2, 173, 4, - 2, 175, 4, 2, 177, 4, 2, 179, 4, 2, 181, 4, - 2, 183, 4, 2, 185, 4, 2, 187, 4, 2, 189, 4, - 2, 191, 4, 2, 194, 4, 2, 196, 4, 2, 198, 4, - 2, 200, 4, 2, 202, 4, 2, 204, 4, 2, 206, 4, - 2, 209, 4, 2, 211, 4, 2, 213, 4, 2, 215, 4, - 2, 217, 4, 2, 219, 4, 2, 221, 4, 2, 223, 4, - 2, 225, 4, 2, 227, 4, 2, 229, 4, 2, 231, 4, - 2, 233, 4, 2, 235, 4, 2, 237, 4, 2, 239, 4, - 2, 241, 4, 2, 243, 4, 2, 245, 4, 2, 249, 4, - 2, 1, 5, 2, 3, 5, 2, 5, 5, 2, 7, 5, - 2, 9, 5, 2, 11, 5, 2, 13, 5, 2, 15, 5, - 2, 97, 5, 2, 98, 5, 2, 99, 5, 2, 100, 5, - 2, 101, 5, 2, 102, 5, 2, 103, 5, 2, 104, 5, - 2, 105, 5, 2, 106, 5, 2, 107, 5, 2, 108, 5, - 2, 109, 5, 2, 110, 5, 2, 111, 5, 2, 112, 5, - 2, 113, 5, 2, 114, 5, 2, 115, 5, 2, 116, 5, - 2, 117, 5, 2, 118, 5, 2, 119, 5, 2, 120, 5, - 2, 121, 5, 2, 122, 5, 2, 123, 5, 2, 124, 5, - 2, 125, 5, 2, 126, 5, 2, 127, 5, 2, 128, 5, - 2, 129, 5, 2, 130, 5, 2, 131, 5, 2, 132, 5, - 2, 133, 5, 2, 134, 5, 6, 101, 5, 0, 0, 130, - 5, 2, 1, 30, 2, 3, 30, 2, 5, 30, 2, 7, - 30, 2, 9, 30, 2, 11, 30, 2, 13, 30, 2, 15, - 30, 2, 17, 30, 2, 19, 30, 2, 21, 30, 2, 23, - 30, 2, 25, 30, 2, 27, 30, 2, 29, 30, 2, 31, - 30, 2, 33, 30, 2, 35, 30, 2, 37, 30, 2, 39, - 30, 2, 41, 30, 2, 43, 30, 2, 45, 30, 2, 47, - 30, 2, 49, 30, 2, 51, 30, 2, 53, 30, 2, 55, - 30, 2, 57, 30, 2, 59, 30, 2, 61, 30, 2, 63, - 30, 2, 65, 30, 2, 67, 30, 2, 69, 30, 2, 71, - 30, 2, 73, 30, 2, 75, 30, 2, 77, 30, 2, 79, - 30, 2, 81, 30, 2, 83, 30, 2, 85, 30, 2, 87, - 30, 2, 89, 30, 2, 91, 30, 2, 93, 30, 2, 95, - 30, 2, 97, 30, 2, 99, 30, 2, 101, 30, 2, 103, - 30, 2, 105, 30, 2, 107, 30, 2, 109, 30, 2, 111, - 30, 2, 113, 30, 2, 115, 30, 2, 117, 30, 2, 119, - 30, 2, 121, 30, 2, 123, 30, 2, 125, 30, 2, 127, - 30, 2, 129, 30, 2, 131, 30, 2, 133, 30, 2, 135, - 30, 2, 137, 30, 2, 139, 30, 2, 141, 30, 2, 143, - 30, 2, 145, 30, 2, 147, 30, 2, 149, 30, 6, 104, - 0, 0, 0, 49, 3, 6, 116, 0, 0, 0, 8, 3, - 6, 119, 0, 0, 0, 10, 3, 6, 121, 0, 0, 0, - 10, 3, 6, 97, 0, 0, 0, 190, 2, 2, 161, 30, - 2, 163, 30, 2, 165, 30, 2, 167, 30, 2, 169, 30, - 2, 171, 30, 2, 173, 30, 2, 175, 30, 2, 177, 30, - 2, 179, 30, 2, 181, 30, 2, 183, 30, 2, 185, 30, - 2, 187, 30, 2, 189, 30, 2, 191, 30, 2, 193, 30, - 2, 195, 30, 2, 197, 30, 2, 199, 30, 2, 201, 30, - 2, 203, 30, 2, 205, 30, 2, 207, 30, 2, 209, 30, - 2, 211, 30, 2, 213, 30, 2, 215, 30, 2, 217, 30, - 2, 219, 30, 2, 221, 30, 2, 223, 30, 2, 225, 30, - 2, 227, 30, 2, 229, 30, 2, 231, 30, 2, 233, 30, - 2, 235, 30, 2, 237, 30, 2, 239, 30, 2, 241, 30, - 2, 243, 30, 2, 245, 30, 2, 247, 30, 2, 249, 30, - 2, 0, 31, 2, 1, 31, 2, 2, 31, 2, 3, 31, - 2, 4, 31, 2, 5, 31, 2, 6, 31, 2, 7, 31, - 2, 16, 31, 2, 17, 31, 2, 18, 31, 2, 19, 31, - 2, 20, 31, 2, 21, 31, 2, 32, 31, 2, 33, 31, - 2, 34, 31, 2, 35, 31, 2, 36, 31, 2, 37, 31, - 2, 38, 31, 2, 39, 31, 2, 48, 31, 2, 49, 31, - 2, 50, 31, 2, 51, 31, 2, 52, 31, 2, 53, 31, - 2, 54, 31, 2, 55, 31, 2, 64, 31, 2, 65, 31, - 2, 66, 31, 2, 67, 31, 2, 68, 31, 2, 69, 31, - 6, 197, 3, 0, 0, 19, 3, 10, 197, 3, 0, 0, - 19, 3, 0, 0, 0, 3, 10, 197, 3, 0, 0, 19, - 3, 0, 0, 1, 3, 10, 197, 3, 0, 0, 19, 3, - 0, 0, 66, 3, 2, 81, 31, 2, 83, 31, 2, 85, - 31, 2, 87, 31, 2, 96, 31, 2, 97, 31, 2, 98, - 31, 2, 99, 31, 2, 100, 31, 2, 101, 31, 2, 102, - 31, 2, 103, 31, 6, 0, 31, 0, 0, 185, 3, 6, - 1, 31, 0, 0, 185, 3, 6, 2, 31, 0, 0, 185, - 3, 6, 3, 31, 0, 0, 185, 3, 6, 4, 31, 0, - 0, 185, 3, 6, 5, 31, 0, 0, 185, 3, 6, 6, - 31, 0, 0, 185, 3, 6, 7, 31, 0, 0, 185, 3, - 6, 32, 31, 0, 0, 185, 3, 6, 33, 31, 0, 0, - 185, 3, 6, 34, 31, 0, 0, 185, 3, 6, 35, 31, - 0, 0, 185, 3, 6, 36, 31, 0, 0, 185, 3, 6, - 37, 31, 0, 0, 185, 3, 6, 38, 31, 0, 0, 185, - 3, 6, 39, 31, 0, 0, 185, 3, 6, 96, 31, 0, - 0, 185, 3, 6, 97, 31, 0, 0, 185, 3, 6, 98, - 31, 0, 0, 185, 3, 6, 99, 31, 0, 0, 185, 3, - 6, 100, 31, 0, 0, 185, 3, 6, 101, 31, 0, 0, - 185, 3, 6, 102, 31, 0, 0, 185, 3, 6, 103, 31, - 0, 0, 185, 3, 6, 112, 31, 0, 0, 185, 3, 6, - 177, 3, 0, 0, 185, 3, 6, 172, 3, 0, 0, 185, - 3, 6, 177, 3, 0, 0, 66, 3, 10, 177, 3, 0, - 0, 66, 3, 0, 0, 185, 3, 2, 176, 31, 2, 177, - 31, 2, 112, 31, 2, 113, 31, 6, 116, 31, 0, 0, - 185, 3, 6, 183, 3, 0, 0, 185, 3, 6, 174, 3, - 0, 0, 185, 3, 6, 183, 3, 0, 0, 66, 3, 10, - 183, 3, 0, 0, 66, 3, 0, 0, 185, 3, 2, 114, - 31, 2, 115, 31, 2, 116, 31, 2, 117, 31, 10, 185, - 3, 0, 0, 8, 3, 0, 0, 0, 3, 6, 185, 3, - 0, 0, 66, 3, 10, 185, 3, 0, 0, 8, 3, 0, - 0, 66, 3, 2, 208, 31, 2, 209, 31, 2, 118, 31, - 2, 119, 31, 10, 197, 3, 0, 0, 8, 3, 0, 0, - 0, 3, 6, 193, 3, 0, 0, 19, 3, 6, 197, 3, - 0, 0, 66, 3, 10, 197, 3, 0, 0, 8, 3, 0, - 0, 66, 3, 2, 224, 31, 2, 225, 31, 2, 122, 31, - 2, 123, 31, 2, 229, 31, 6, 124, 31, 0, 0, 185, - 3, 6, 201, 3, 0, 0, 185, 3, 6, 206, 3, 0, - 0, 185, 3, 6, 201, 3, 0, 0, 66, 3, 10, 201, - 3, 0, 0, 66, 3, 0, 0, 185, 3, 2, 120, 31, - 2, 121, 31, 2, 124, 31, 2, 125, 31, 5, 114, 0, - 0, 0, 115, 5, 176, 0, 0, 0, 99, 5, 176, 0, - 0, 0, 102, 5, 110, 0, 0, 0, 111, 5, 115, 0, - 0, 0, 109, 9, 116, 0, 0, 0, 101, 0, 0, 0, - 108, 5, 116, 0, 0, 0, 109, 2, 112, 33, 2, 113, - 33, 2, 114, 33, 2, 115, 33, 2, 116, 33, 2, 117, - 33, 2, 118, 33, 2, 119, 33, 2, 120, 33, 2, 121, - 33, 2, 122, 33, 2, 123, 33, 2, 124, 33, 2, 125, - 33, 2, 126, 33, 2, 127, 33, 2, 208, 36, 2, 209, - 36, 2, 210, 36, 2, 211, 36, 2, 212, 36, 2, 213, - 36, 2, 214, 36, 2, 215, 36, 2, 216, 36, 2, 217, - 36, 2, 218, 36, 2, 219, 36, 2, 220, 36, 2, 221, - 36, 2, 222, 36, 2, 223, 36, 2, 224, 36, 2, 225, - 36, 2, 226, 36, 2, 227, 36, 2, 228, 36, 2, 229, - 36, 2, 230, 36, 2, 231, 36, 2, 232, 36, 2, 233, - 36, 9, 104, 0, 0, 0, 112, 0, 0, 0, 97, 5, - 97, 0, 0, 0, 117, 5, 111, 0, 0, 0, 118, 5, - 112, 0, 0, 0, 97, 5, 110, 0, 0, 0, 97, 5, - 188, 3, 0, 0, 97, 5, 109, 0, 0, 0, 97, 5, - 107, 0, 0, 0, 97, 5, 107, 0, 0, 0, 98, 5, - 109, 0, 0, 0, 98, 5, 103, 0, 0, 0, 98, 5, - 112, 0, 0, 0, 102, 5, 110, 0, 0, 0, 102, 5, - 188, 3, 0, 0, 102, 5, 104, 0, 0, 0, 122, 9, - 107, 0, 0, 0, 104, 0, 0, 0, 122, 9, 109, 0, - 0, 0, 104, 0, 0, 0, 122, 9, 103, 0, 0, 0, - 104, 0, 0, 0, 122, 9, 116, 0, 0, 0, 104, 0, - 0, 0, 122, 9, 107, 0, 0, 0, 112, 0, 0, 0, - 97, 9, 109, 0, 0, 0, 112, 0, 0, 0, 97, 9, - 103, 0, 0, 0, 112, 0, 0, 0, 97, 5, 112, 0, - 0, 0, 118, 5, 110, 0, 0, 0, 118, 5, 188, 3, - 0, 0, 118, 5, 109, 0, 0, 0, 118, 5, 107, 0, - 0, 0, 118, 5, 112, 0, 0, 0, 119, 5, 110, 0, - 0, 0, 119, 5, 188, 3, 0, 0, 119, 5, 109, 0, - 0, 0, 119, 5, 107, 0, 0, 0, 119, 6, 107, 0, - 0, 0, 201, 3, 6, 109, 0, 0, 0, 201, 3, 5, - 98, 0, 0, 0, 113, 13, 99, 0, 0, 0, 21, 34, - 0, 0, 107, 0, 0, 0, 103, 9, 99, 0, 0, 0, - 111, 0, 0, 0, 46, 5, 100, 0, 0, 0, 98, 5, - 103, 0, 0, 0, 121, 5, 104, 0, 0, 0, 112, 5, - 107, 0, 0, 0, 107, 5, 107, 0, 0, 0, 109, 5, - 112, 0, 0, 0, 104, 9, 112, 0, 0, 0, 112, 0, - 0, 0, 109, 5, 112, 0, 0, 0, 114, 5, 115, 0, - 0, 0, 118, 5, 119, 0, 0, 0, 98, 5, 102, 0, - 0, 0, 102, 5, 102, 0, 0, 0, 105, 5, 102, 0, - 0, 0, 108, 9, 102, 0, 0, 0, 102, 0, 0, 0, - 105, 9, 102, 0, 0, 0, 102, 0, 0, 0, 108, 5, - 115, 0, 0, 0, 116, 6, 116, 5, 0, 0, 118, 5, - 6, 116, 5, 0, 0, 101, 5, 6, 116, 5, 0, 0, - 107, 5, 6, 126, 5, 0, 0, 118, 5, 6, 116, 5, - 0, 0, 109, 5, 2, 65, 255, 2, 66, 255, 2, 67, - 255, 2, 68, 255, 2, 69, 255, 2, 70, 255, 2, 71, - 255, 2, 72, 255, 2, 73, 255, 2, 74, 255, 2, 75, - 255, 2, 76, 255, 2, 77, 255, 2, 78, 255, 2, 79, - 255, 2, 80, 255, 2, 81, 255, 2, 82, 255, 2, 83, - 255, 2, 84, 255, 2, 85, 255, 2, 86, 255, 2, 87, - 255, 2, 88, 255, 2, 89, 255, 2, 90, 255, 3, 40, - 4, 1, 3, 41, 4, 1, 3, 42, 4, 1, 3, 43, - 4, 1, 3, 44, 4, 1, 3, 45, 4, 1, 3, 46, - 4, 1, 3, 47, 4, 1, 3, 48, 4, 1, 3, 49, - 4, 1, 3, 50, 4, 1, 3, 51, 4, 1, 3, 52, - 4, 1, 3, 53, 4, 1, 3, 54, 4, 1, 3, 55, - 4, 1, 3, 56, 4, 1, 3, 57, 4, 1, 3, 58, - 4, 1, 3, 59, 4, 1, 3, 60, 4, 1, 3, 61, - 4, 1, 3, 62, 4, 1, 3, 63, 4, 1, 3, 64, - 4, 1, 3, 65, 4, 1, 3, 66, 4, 1, 3, 67, - 4, 1, 3, 68, 4, 1, 3, 69, 4, 1, 3, 70, - 4, 1, 3, 71, 4, 1, 3, 72, 4, 1, 3, 73, - 4, 1, 3, 74, 4, 1, 3, 75, 4, 1, 3, 76, - 4, 1, 3, 77, 4, 1, -}; - -static const unsigned short nameprep_id11_prohibited_imap[] = { - 68, 196, 196, 324, 196, 196, 196, 452, - 196, 196, 196, 580, 196, 196, 196, 580, - 196, 196, 196, 580, 196, 196, 196, 580, - 196, 196, 196, 580, 196, 196, 196, 580, - 196, 196, 196, 580, 196, 196, 196, 580, - 196, 196, 196, 580, 196, 196, 196, 580, - 196, 196, 196, 580, 196, 196, 196, 580, - 708, 196, 196, 580, 836, 836, 836, 836, - 836, 836, 836, 836, 0, 1, 0, 0, - 0, 0, 2, 0, 0, 0, 0, 0, - 0, 3, 4, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 0, 0, 6, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 8, 5, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 10, - 0, 0, 0, 11, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 12, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 13, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 13, 14, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, -}; - -static const struct { - unsigned char bm[16]; -} nameprep_id11_prohibited_bitmap[] = { - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 255,255,255,255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, - }}, - {{ - 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 255,199, 0, 0, 0,255, 0, 0, 0, 0, 0,128, 14,252, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 15, - }}, - {{ - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255,255,255, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 7, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, - }}, - {{ - 2, 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255, - }}, -}; - -static const unsigned short nameprep_id11_unassigned_imap[] = { - 68, 196, 324, 452, 580, 708, 708, 836, - 964, 964, 1092, 1220, 708, 708, 708, 1348, - 708, 708, 708, 1348, 708, 708, 708, 1348, - 708, 708, 708, 1348, 708, 708, 708, 1348, - 708, 708, 708, 1348, 708, 708, 708, 1348, - 708, 708, 708, 1348, 708, 708, 708, 1348, - 708, 708, 708, 1348, 708, 708, 708, 1348, - 1476, 708, 708, 1348, 964, 964, 964, 964, - 964, 964, 964, 964, 0, 0, 0, 0, - 1, 2, 3, 4, 0, 5, 6, 7, - 8, 9, 10, 11, 12, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 0, 0, 0, - 36, 37, 38, 39, 40, 41, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 0, 42, 43, 44, 45, 46, 47, 48, - 0, 0, 0, 49, 50, 51, 0, 0, - 52, 53, 54, 55, 0, 0, 0, 0, - 0, 0, 12, 12, 12, 12, 12, 12, - 12, 56, 0, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 66, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 67, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 68, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 69, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 70, 12, 71, 72, 0, 0, 73, 74, - 75, 76, 35, 77, 12, 12, 12, 12, - 12, 12, 78, 12, 79, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 0, 80, 81, 82, - 12, 12, 12, 12, 83, 84, 85, 0, - 0, 86, 0, 87, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 88, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 89, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 0, 0, 0, 0, - 90, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 88, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 88, 91, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, -}; - -static const struct { - unsigned char bm[16]; -} nameprep_id11_unassigned_bitmap[] = { - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 2, 0,240,255,255,255, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0,128,255,255, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 0, 0,207,187, - }}, - {{ - 15, 40, 0, 0, 4, 0, 0, 0, 0,128, 0, 0, 0, 0,128,255, - }}, - {{ - 128, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0,192,252, - }}, - {{ - 0, 0,255,255,255,255, 1, 0, 0, 0,128, 1, 1, 0, 0, 0, - }}, - {{ - 0,249, 1, 0, 4, 0, 0, 4,224,255, 0, 0, 0,248,224,255, - }}, - {{ - 255,239,255,119, 1, 0, 0,248, 0, 0,192,255, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 0,128, - }}, - {{ - 0, 64, 0, 0, 0,224, 0, 0, 0,248,255,255,255,255,255,255, - }}, - {{ - 0, 0, 0, 0, 0, 0,252,255,255,255,255,255,255,255,255,255, - }}, - {{ - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - }}, - {{ - 17, 0, 0, 0, 0, 0, 0, 12, 0,192,224, 0, 0, 0,254,255, - }}, - {{ - 17, 96, 6, 0, 0, 2, 58, 44, 96,198,127, 79, 48, 0, 0,248, - }}, - {{ - 27,120, 6, 0, 0, 2,146, 44,120,198,255,161, 63, 0,224,255, - }}, - {{ - 17, 80, 4, 0, 0, 2, 18, 12, 64,196,254,255, 62, 0,255,255, - }}, - {{ - 17, 96, 6, 0, 0, 2, 50, 12,112,198, 63, 79, 60, 0,254,255, - }}, - {{ - 19, 56,194, 41,231, 56, 64, 60, 56,194,127,255,127, 0,248,255, - }}, - {{ - 17, 32, 2, 0, 0, 2, 16, 60, 32,194,159,255, 60, 0,255,255, - }}, - {{ - 19, 32, 2, 0, 0, 2, 16, 60, 32,194,159,191, 60, 0,255,255, - }}, - {{ - 19, 32, 2, 0, 0, 2, 0, 60, 48,194,127,255, 60, 0,255,255, - }}, - {{ - 19, 0,128, 3, 0, 0, 4,208,128,123,160, 0,255,255,227,255, - }}, - {{ - 1, 0, 0, 0, 0, 0, 0,120, 0, 0, 0,240,255,255,255,255, - }}, - {{ - 105,218, 15, 1, 81, 19, 0,196,160,192, 0,204,255,255,255,255, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,248, 1, 0, - }}, - {{ - 0,240, 0, 1, 0, 0, 0, 32, 0, 96,255,255,255,255,255,255, - }}, - {{ - 0, 0, 0, 0, 4, 9, 56,252, 0, 0, 0,252,255,255,255,255, - }}, - {{ - 255,255,255,255, 0, 0, 0, 0,192,255, 0, 0, 0, 0, 0,246, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0,248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252, - }}, - {{ - 128, 0, 0, 0, 0, 0, 0, 0,128,194,128,194, 0, 0, 0, 0, - }}, - {{ - 128,194, 0, 0, 0,128,194,128,194,128,128, 0, 0,128, 0, 0, - }}, - {{ - 0,128,194,128, 0, 0, 0, 0,128, 0, 0,248, 1, 0, 0,224, - }}, - {{ - 255,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,255, - }}, - {{ - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,255, - }}, - {{ - 0, 0, 0,224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254,255, - }}, - {{ - 0, 32,224,255, 0, 0,128,255, 0, 0,240,255, 0, 32,242,255, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,224, 0,252,255,255, - }}, - {{ - 0,128, 0,252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, - }}, - {{ - 0, 0, 0, 0, 0,252,255,255,255,255,255,255,255,255,255,255, - }}, - {{ - 0, 0, 0,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,252, - }}, - {{ - 0, 0,192,192, 0, 0, 0, 0,192,192, 0, 85, 0, 0, 0,192, - }}, - {{ - 0, 0, 0, 0, 0, 0, 32, 0, 32, 0, 48, 16, 0, 0, 35,128, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120,127,240, 3, 12, 0, - }}, - {{ - 0,128,255,255, 0, 0,252,255,255,255, 0, 0, 0,248,255,255, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 24, 0,240, 7, 0, 0, 0, 0, 0, - }}, - {{ - 240,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0,128,255,255,255,255,255,255, - }}, - {{ - 0, 0, 0, 0,128,255,255,255, 0,248,255,255, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, - }}, - {{ - 0, 0, 48, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, - }}, - {{ - 0,252,255,255,255,255,255,255,255,255,255,255,255,255,255,255, - }}, - {{ - 33, 12, 0, 0, 0, 1, 0, 0, 0, 80,184,128, 1, 0, 0, 0, - }}, - {{ - 0, 0,224, 0, 0, 0, 1,128,255,255, 0, 0, 0,240, 0, 0, - }}, - {{ - 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,255, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,255,255,255, 0,240, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0,128, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 31, 0, 0, 0, 0,224, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0,128, 0, 0, 0, 0, 0,255,255,255,255,255,255,255, 0, 0, - }}, - {{ - 0, 0, 0,224, 0, 0, 0, 0,240,255, 1, 0, 0, 0, 0,112, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 0, 0, 0, 0, 0,128, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 7, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 0, 0, 0,128, - }}, - {{ - 0, 0, 0, 0, 0, 0,192,255,255,255,255,255,255,255,255,255, - }}, - {{ - 0, 0, 0, 0,192,255,255,255,255,255,255,255,255,255,255,255, - }}, - {{ - 0,224, 0, 0, 0, 0, 0, 0,128,255,255,255,255,255,255,255, - }}, - {{ - 0, 0, 0, 0,240,255,255,255,255,255,255,255,255,255,255,255, - }}, - {{ - 0, 0, 0, 0, 0,192, 0, 0, 0, 0, 0, 0, 0,248,255,255, - }}, - {{ - 128,255, 7, 31, 0, 0,128,160, 36, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0,252,255,255,255, 7, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0,255,255, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 3, 0, 0, 0, 0, 0, 0,255, 0, 0, 0, 0, 0,224, - }}, - {{ - 0, 0,255,255,240,255, 0, 0,128, 1, 8, 0,128,240, 32, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0,128, 3, 3, 3,227,128,128,255, 1, - }}, - {{ - 0, 0, 0,128,240,255, 0, 0, 0,248,255,255,255,255,255,255, - }}, - {{ - 0, 0, 0, 0,192, 0, 0, 0, 0,192,255,255,255,255,255,255, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,255, - }}, - {{ - 0, 0, 0, 0,128, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192,255,255,255,255, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 32,155, 33, 0, 20, 18, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 64, 24, 32, 32, 0, 0, 0,132,160, 3, 2, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0,240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 60, 0, 0, 0, 0, 0, 0, - }}, - {{ - 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, 63, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,255,255,255,255,255, - }}, - {{ - 0, 0, 0,192,255,255,255,255,255,255,255,255,255,255,255,255, - }}, - {{ - 253,255,255,255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, -}; - -static const unsigned short nameprep_id11_bidi_imap[] = { - 272, 400, 528, 656, 784, 912, 912, 912, - 912, 1040, 1168, 912, 912, 1296, 912, 1424, - 1552, 1680, 1680, 1680, 1680, 1680, 1680, 1680, - 1680, 1680, 1680, 1680, 1680, 1808, 1680, 1680, - 912, 912, 912, 912, 912, 912, 912, 912, - 912, 912, 1936, 1680, 1680, 1680, 1680, 2064, - 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, - 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, - 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, - 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, - 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, - 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, - 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, - 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, - 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, - 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, - 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, - 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, - 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, - 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, - 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, - 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, - 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, - 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, - 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, - 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, - 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, - 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, - 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, - 1680, 1680, 1680, 1680, 1680, 1680, 1680, 1680, - 912, 912, 912, 912, 912, 912, 912, 912, - 912, 912, 912, 912, 912, 912, 912, 2192, - 912, 912, 912, 912, 912, 912, 912, 912, - 912, 912, 912, 912, 912, 912, 912, 2192, - 0, 0, 1, 1, 0, 2, 3, 3, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 5, 6, 4, 4, 7, 8, 9, - 0, 0, 0, 10, 11, 12, 13, 14, - 4, 4, 4, 4, 15, 4, 13, 16, - 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 29, 30, 31, - 32, 33, 0, 0, 29, 34, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, - 39, 51, 41, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 60, - 61, 64, 65, 60, 66, 67, 68, 69, - 20, 70, 71, 0, 72, 73, 74, 0, - 75, 76, 77, 78, 79, 80, 81, 0, - 4, 82, 83, 0, 0, 4, 84, 85, - 4, 4, 86, 4, 4, 87, 4, 88, - 89, 4, 90, 4, 91, 92, 93, 13, - 92, 4, 94, 95, 0, 4, 4, 96, - 20, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 97, 1, 4, 4, 98, - 99, 100, 101, 102, 4, 103, 104, 105, - 106, 4, 4, 83, 4, 107, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 4, 4, 4, 4, 108, 4, 4, 88, - 109, 4, 110, 111, 4, 112, 113, 114, - 115, 0, 0, 116, 0, 0, 0, 0, - 117, 118, 119, 4, 120, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 121, 4, 122, 123, 0, 0, 0, - 0, 0, 0, 0, 124, 4, 4, 105, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 125, 126, 20, 4, 127, 20, 4, 128, - 129, 130, 4, 4, 13, 83, 0, 6, - 131, 4, 120, 132, 4, 98, 133, 134, - 4, 4, 4, 135, 4, 4, 111, 134, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 14, 0, 0, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 136, 0, 0, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 137, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 120, 0, 0, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 138, 4, 139, 0, 0, 0, 0, - 140, 141, 142, 29, 29, 143, 144, 29, - 29, 29, 29, 29, 29, 29, 29, 29, - 29, 145, 146, 29, 147, 29, 148, 149, - 0, 0, 0, 150, 29, 29, 29, 151, - 0, 1, 1, 152, 4, 134, 153, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 134, 154, 139, 0, 0, 0, 0, 0, - 4, 155, 156, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 4, 4, 4, 4, 4, 4, 4, 14, - 4, 157, 4, 158, 159, 160, 111, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 4, 4, 161, 4, 162, 163, 164, 4, - 165, 166, 167, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 168, 4, 4, - 4, 4, 4, 4, 4, 4, 105, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 97, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 111, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 111, -}; - -static const struct { - unsigned char tbl[32]; -} nameprep_id11_bidi_table[] = { - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 2, 0, 2, 2, 2, 0, 2, 0, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - }}, - {{ - 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - }}, - {{ - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, - 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, - }}, - {{ - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, - }}, - {{ - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - }}, - {{ - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - }}, - {{ - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, - }}, - {{ - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - }}, - {{ - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, - }}, - {{ - 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, - 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, - 0, 2, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, - }}, - {{ - 2, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 2, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 2, 0, 2, - }}, - {{ - 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, - 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, - 0, 2, 2, 0, 2, 2, 0, 2, 2, 0, 0, 0, 0, 2, 2, - }}, - {{ - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 0, 2, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, - 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, - 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, - 0, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, - }}, - {{ - 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 2, 0, 0, 0, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 2, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, - 0, 2, 2, 0, 0, 2, 2, 2, 2, 0, 0, 0, 2, 2, 0, - }}, - {{ - 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 2, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, - 0, 2, 2, 2, 2, 0, 0, 0, 2, 2, 0, 2, 0, 2, 2, - }}, - {{ - 0, 0, 0, 2, 2, 0, 0, 0, 2, 2, 2, 0, 0, 0, 2, 2, 2, - 2, 2, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 2, 2, - }}, - {{ - 0, 2, 2, 0, 0, 0, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 0, - }}, - {{ - 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, - }}, - {{ - 2, 0, 0, 0, 0, 0, 2, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, - 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, - }}, - {{ - 0, 2, 2, 0, 2, 0, 0, 2, 2, 0, 2, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 0, 2, 2, 2, 0, 2, 0, 2, 0, 0, 2, 2, 0, 2, 2, 2, 2, - 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 0, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, - }}, - {{ - 0, 0, 0, 0, 0, 2, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 2, 2, 0, 2, 2, 2, 2, 2, 0, 2, 2, 0, 2, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, 0, 0, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 2, - }}, - {{ - 2, 2, 2, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 2, 2, 0, 0, 2, - 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 2, 2, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 2, 2, 0, 0, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, - 0, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, - }}, - {{ - 2, 0, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, - 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, - }}, - {{ - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, - 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 0, 2, 0, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, - }}, - {{ - 0, 0, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, - 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, - 0, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 1, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, - }}, - {{ - 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 0, 2, 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, - }}, - {{ - 0, 0, 0, 0, 2, 0, 2, 0, 2, 0, 2, 2, 2, 2, 0, 2, 2, - 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, - }}, - {{ - 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, - }}, - {{ - 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, - 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, - }}, - {{ - 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 1, 0, 1, - }}, - {{ - 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, - }}, - {{ - 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - }}, - {{ - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - }}, - {{ - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - }}, - {{ - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, - 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - }}, - {{ - 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, - 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - }}, - {{ - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, - }}, - {{ - 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 0, 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 0, - 0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 0, 0, 0, - }}, - {{ - 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - }}, - {{ - 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, - }}, - {{ - 0, 0, 2, 0, 0, 2, 2, 0, 0, 2, 2, 2, 2, 0, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, 2, 2, - }}, - {{ - 2, 0, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, - 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, - }}, - {{ - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 0, - }}, - {{ - 2, 2, 2, 2, 2, 0, 2, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, - 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, - {{ - 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - }}, -}; - -static const unsigned char nameprep_id11_bidi_data[] = { - idn_biditype_others, - idn_biditype_r_al, - idn_biditype_l, -}; - diff --git a/netwerk/dns/nsIDNService.cpp b/netwerk/dns/nsIDNService.cpp index 49beecbb3..31ba12b4c 100644 --- a/netwerk/dns/nsIDNService.cpp +++ b/netwerk/dns/nsIDNService.cpp @@ -17,7 +17,6 @@ #include "nsISupportsPrimitives.h" #include "punycode.h" -#ifdef IDNA2008 // Currently we use the non-transitional processing option -- see // http://unicode.org/reports/tr46/ // To switch to transitional processing, change the value of this flag @@ -27,7 +26,6 @@ const bool kIDNA2008_TransitionalProcessing = false; #include "ICUUtils.h" #include "unicode/uscript.h" -#endif using namespace mozilla::unicode; @@ -136,32 +134,19 @@ nsIDNService::nsIDNService() : mShowPunycode(false) , mIDNUseWhitelist(false) { -#ifdef IDNA2008 uint32_t IDNAOptions = UIDNA_CHECK_BIDI | UIDNA_CHECK_CONTEXTJ; if (!kIDNA2008_TransitionalProcessing) { IDNAOptions |= UIDNA_NONTRANSITIONAL_TO_UNICODE; } UErrorCode errorCode = U_ZERO_ERROR; mIDNA = uidna_openUTS46(IDNAOptions, &errorCode); -#else - if (idn_success != idn_nameprep_create(nullptr, &mNamePrepHandle)) - mNamePrepHandle = nullptr; - - mNormalizer = do_GetService(NS_UNICODE_NORMALIZER_CONTRACTID); - /* member initializers and constructor code */ -#endif } nsIDNService::~nsIDNService() { -#ifdef IDNA2008 uidna_close(mIDNA); -#else - idn_nameprep_destroy(mNamePrepHandle); -#endif } -#ifdef IDNA2008 nsresult nsIDNService::IDNA2008ToUnicode(const nsACString& input, nsAString& output) { @@ -226,7 +211,6 @@ nsIDNService::IDNA2008StringPrep(const nsAString& input, return rv; } -#endif NS_IMETHODIMP nsIDNService::ConvertUTF8toACE(const nsACString & input, nsACString & ace) { @@ -486,21 +470,6 @@ static nsresult utf16ToUcs4(const nsAString& in, return NS_OK; } -#ifndef IDNA2008 -static void ucs4toUtf16(const uint32_t *in, nsAString& out) -{ - while (*in) { - if (!IS_IN_BMP(*in)) { - out.Append((char16_t) H_SURROGATE(*in)); - out.Append((char16_t) L_SURROGATE(*in)); - } - else - out.Append((char16_t) *in); - in++; - } -} -#endif - static nsresult punycode(const nsAString& in, nsACString& out) { uint32_t ucs4Buf[kMaxDNSNodeLen + 1]; @@ -551,74 +520,12 @@ static nsresult punycode(const nsAString& in, nsACString& out) // any unassigned Unicode points and if any are found return an error. // This is described in section 7. // +// => All this is handled by ICU's StringPrep(). +// nsresult nsIDNService::stringPrep(const nsAString& in, nsAString& out, stringPrepFlag flag) { -#ifdef IDNA2008 return IDNA2008StringPrep(in, out, flag); -#else - if (!mNamePrepHandle || !mNormalizer) - return NS_ERROR_FAILURE; - - uint32_t ucs4Buf[kMaxDNSNodeLen + 1]; - uint32_t ucs4Len; - nsresult rv = utf16ToUcs4(in, ucs4Buf, kMaxDNSNodeLen, &ucs4Len); - NS_ENSURE_SUCCESS(rv, rv); - - // map - idn_result_t idn_err; - - uint32_t namePrepBuf[kMaxDNSNodeLen * 3]; // map up to three characters - idn_err = idn_nameprep_map(mNamePrepHandle, (const uint32_t *) ucs4Buf, - (uint32_t *) namePrepBuf, kMaxDNSNodeLen * 3); - NS_ENSURE_TRUE(idn_err == idn_success, NS_ERROR_MALFORMED_URI); - - nsAutoString namePrepStr; - ucs4toUtf16(namePrepBuf, namePrepStr); - if (namePrepStr.Length() >= kMaxDNSNodeLen) - return NS_ERROR_MALFORMED_URI; - - // normalize - nsAutoString normlizedStr; - rv = mNormalizer->NormalizeUnicodeNFKC(namePrepStr, normlizedStr); - if (normlizedStr.Length() >= kMaxDNSNodeLen) - return NS_ERROR_MALFORMED_URI; - - // set the result string - out.Assign(normlizedStr); - - if (flag == eStringPrepIgnoreErrors) { - return NS_OK; - } - - // prohibit - const uint32_t *found = nullptr; - idn_err = idn_nameprep_isprohibited(mNamePrepHandle, - (const uint32_t *) ucs4Buf, &found); - if (idn_err != idn_success || found) { - rv = NS_ERROR_MALFORMED_URI; - } else { - // check bidi - idn_err = idn_nameprep_isvalidbidi(mNamePrepHandle, - (const uint32_t *) ucs4Buf, &found); - if (idn_err != idn_success || found) { - rv = NS_ERROR_MALFORMED_URI; - } else if (flag == eStringPrepForUI) { - // check unassigned code points - idn_err = idn_nameprep_isunassigned(mNamePrepHandle, - (const uint32_t *) ucs4Buf, &found); - if (idn_err != idn_success || found) { - rv = NS_ERROR_MALFORMED_URI; - } - } - } - - if (flag == eStringPrepForDNS && NS_FAILED(rv)) { - out.Truncate(); - } - - return rv; -#endif } nsresult nsIDNService::stringPrepAndACE(const nsAString& in, nsACString& out, @@ -709,31 +616,8 @@ nsresult nsIDNService::decodeACE(const nsACString& in, nsACString& out, } nsAutoString utf16; -#ifdef IDNA2008 nsresult result = IDNA2008ToUnicode(in, utf16); NS_ENSURE_SUCCESS(result, result); -#else - // RFC 3490 - 4.2 ToUnicode - // The ToUnicode output never contains more code points than its input. - punycode_uint output_length = in.Length() - kACEPrefixLen + 1; - auto *output = new punycode_uint[output_length]; - NS_ENSURE_TRUE(output, NS_ERROR_OUT_OF_MEMORY); - - enum punycode_status status = punycode_decode(in.Length() - kACEPrefixLen, - PromiseFlatCString(in).get() + kACEPrefixLen, - &output_length, - output, - nullptr); - if (status != punycode_success) { - delete [] output; - return NS_ERROR_MALFORMED_URI; - } - - // UCS4 -> UTF8 - output[output_length] = 0; - ucs4toUtf16(output, utf16); - delete [] output; -#endif if (flag != eStringPrepForUI || isLabelSafe(utf16)) { CopyUTF16toUTF8(utf16, out); } else { diff --git a/netwerk/dns/nsIDNService.h b/netwerk/dns/nsIDNService.h index 19aa94da0..82a05021d 100644 --- a/netwerk/dns/nsIDNService.h +++ b/netwerk/dns/nsIDNService.h @@ -12,12 +12,7 @@ #include "nsUnicodeScriptCodes.h" #include "nsWeakReference.h" -#ifdef IDNA2008 #include "unicode/uidna.h" -#else -#include "nsIUnicodeNormalizer.h" -#include "nsIDNKitInterface.h" -#endif #include "nsString.h" @@ -151,7 +146,6 @@ private: bool illegalScriptCombo(mozilla::unicode::Script script, int32_t& savedScript); -#ifdef IDNA2008 /** * Convert a DNS label from ASCII to Unicode using IDNA2008 */ @@ -164,10 +158,6 @@ private: stringPrepFlag flag); UIDNA* mIDNA; -#else - idn_nameprep_t mNamePrepHandle; - nsCOMPtr<nsIUnicodeNormalizer> mNormalizer; -#endif nsXPIDLString mIDNBlacklist; /** diff --git a/netwerk/test/moz.build b/netwerk/test/moz.build index 3df865c3a..c83cca0eb 100644 --- a/netwerk/test/moz.build +++ b/netwerk/test/moz.build @@ -57,7 +57,7 @@ RESOURCE_FILES += [ USE_LIBS += ['static:js'] -if CONFIG['ENABLE_INTL_API'] and CONFIG['MOZ_ICU_DATA_ARCHIVE']: +if CONFIG['MOZ_ICU_DATA_ARCHIVE']: # The ICU libraries linked into libmozjs will not include the ICU data, # so link it directly. USE_LIBS += ['icudata'] diff --git a/old-configure.in b/old-configure.in index cc49c3fce..4c8cf83ef 100644 --- a/old-configure.in +++ b/old-configure.in @@ -1030,12 +1030,14 @@ case "$target" in dnl VS2012+ defaults to -arch:SSE2. We want to target nothing dnl more recent, so set that explicitly here unless another dnl target arch has already been set. + changequote(,) if test -z `echo $CFLAGS | grep -i [-/]arch:`; then CFLAGS="$CFLAGS -arch:SSE2" fi if test -z `echo $CXXFLAGS | grep -i [-/]arch:`; then CXXFLAGS="$CXXFLAGS -arch:SSE2" fi + changequote([,]) SSE_FLAGS="-arch:SSE" SSE2_FLAGS="-arch:SSE2" dnl MSVC allows the use of intrinsics without any flags @@ -5428,15 +5430,6 @@ dnl ======================================================== dnl ICU Support dnl ======================================================== -# Internationalization is not built or exposed on Fennec. -# See Bug 1215256 - -if test "$MOZ_BUILD_APP" = "mobile/android"; then - _INTL_API=no -else - _INTL_API=yes -fi - if test "$MOZ_WIDGET_TOOLKIT" = "cocoa"; then USE_ICU=1 fi diff --git a/toolkit/components/moz.build b/toolkit/components/moz.build index 5dba09a32..e0b412428 100644 --- a/toolkit/components/moz.build +++ b/toolkit/components/moz.build @@ -70,8 +70,7 @@ DIRS += [ if CONFIG['MOZ_WEBEXTENSIONS']: DIRS += ['webextensions'] -if CONFIG['ENABLE_INTL_API']: - DIRS += ['mozintl'] +DIRS += ['mozintl'] if not CONFIG['MOZ_FENNEC']: DIRS += ['narrate', 'viewsource']; diff --git a/xpcom/build/XPCOMInit.cpp b/xpcom/build/XPCOMInit.cpp index 6ead5cdc7..6fb50fc1d 100644 --- a/xpcom/build/XPCOMInit.cpp +++ b/xpcom/build/XPCOMInit.cpp @@ -171,9 +171,7 @@ extern nsresult nsStringInputStreamConstructor(nsISupports*, REFNSIID, void**); #include "gfxPlatform.h" -#if EXPOSE_INTL_API #include "unicode/putil.h" -#endif using namespace mozilla; using base::AtExitManager; @@ -689,7 +687,7 @@ NS_InitXPCOM2(nsIServiceManager** aResult, memmove); #endif -#if EXPOSE_INTL_API && defined(MOZ_ICU_DATA_ARCHIVE) +#if defined(MOZ_ICU_DATA_ARCHIVE) nsCOMPtr<nsIFile> greDir; nsDirectoryService::gService->Get(NS_GRE_DIR, NS_GET_IID(nsIFile), |