From 515c4ed4f281f7baa1e3b6e0198d300c000d1aea Mon Sep 17 00:00:00 2001 From: "georgey@chromium.org" Date: Thu, 5 May 2011 00:38:44 +0000 Subject: Re-committing http://codereview.chromium.org/6803005/ after fixing multi-dll build: Autofill phone number enhancements and integration of Phone Number Util Library: part 1 Temporarily the whole library is included, until the patch is upstreamed. BUG=71443 TEST=Unit-tested Review URL: http://codereview.chromium.org/6930013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@84174 0039d316-1c4b-4281-b951-d872f2087c98 --- third_party/libphonenumber/README.chromium | 29 + .../chrome/regexp_adapter_icuregexp.cc | 299 + third_party/libphonenumber/cpp/CMakeLists.txt | 242 + third_party/libphonenumber/cpp/LICENSE | 13 + third_party/libphonenumber/cpp/README | 69 + .../libphonenumber/cpp/src/base/singleton.h | 271 + .../libphonenumber/cpp/src/default_logger.cc | 63 + .../libphonenumber/cpp/src/default_logger.h | 56 + .../libphonenumber/cpp/src/logger_adapter.cc | 25 + .../libphonenumber/cpp/src/logger_adapter.h | 48 + third_party/libphonenumber/cpp/src/metadata.cc | 26 + third_party/libphonenumber/cpp/src/metadata.h | 22 + third_party/libphonenumber/cpp/src/phonenumber.cc | 87 + third_party/libphonenumber/cpp/src/phonenumber.h | 40 + .../libphonenumber/cpp/src/phonenumberutil.cc | 2266 +++ .../libphonenumber/cpp/src/phonenumberutil.h | 678 + .../libphonenumber/cpp/src/phonenumberutil_test.cc | 2866 +++ third_party/libphonenumber/cpp/src/re2_cache.cc | 75 + third_party/libphonenumber/cpp/src/re2_cache.h | 83 + .../libphonenumber/cpp/src/re2_cache_test.cc | 63 + .../libphonenumber/cpp/src/regexp_adapter.h | 96 + .../libphonenumber/cpp/src/regexp_adapter_re2.cc | 192 + .../cpp/src/regexp_adapter_unittest.cc | 142 + third_party/libphonenumber/cpp/src/run_tests.cc | 7 + third_party/libphonenumber/cpp/src/stringutil.cc | 273 + third_party/libphonenumber/cpp/src/stringutil.h | 125 + .../libphonenumber/cpp/src/stringutil_test.cc | 208 + .../libphonenumber/cpp/src/test_metadata.cc | 26 + third_party/libphonenumber/cpp/src/test_metadata.h | 22 + third_party/libphonenumber/cpp/src/utf/README | 1 + third_party/libphonenumber/cpp/src/utf/rune.c | 350 + .../libphonenumber/cpp/src/utf/stringpiece.h | 24 + .../libphonenumber/cpp/src/utf/stringprintf.h | 22 + .../libphonenumber/cpp/src/utf/unicodetext.cc | 515 + .../libphonenumber/cpp/src/utf/unicodetext.h | 456 + third_party/libphonenumber/cpp/src/utf/unilib.cc | 64 + third_party/libphonenumber/cpp/src/utf/unilib.h | 95 + third_party/libphonenumber/cpp/src/utf/utf.h | 251 + third_party/libphonenumber/cpp/src/utf/utfdef.h | 28 + third_party/libphonenumber/libphonenumber.gyp | 139 + .../libphonenumber/patches/version186.patch | 1177 ++ .../resources/PhoneNumberMetaData.xml | 19202 +++++++++++++++++++ .../resources/PhoneNumberMetaDataForTesting.xml | 764 + .../libphonenumber/resources/phonemetadata.proto | 235 + .../libphonenumber/resources/phonenumber.proto | 121 + 45 files changed, 31856 insertions(+) create mode 100644 third_party/libphonenumber/README.chromium create mode 100644 third_party/libphonenumber/chrome/regexp_adapter_icuregexp.cc create mode 100644 third_party/libphonenumber/cpp/CMakeLists.txt create mode 100644 third_party/libphonenumber/cpp/LICENSE create mode 100644 third_party/libphonenumber/cpp/README create mode 100644 third_party/libphonenumber/cpp/src/base/singleton.h create mode 100644 third_party/libphonenumber/cpp/src/default_logger.cc create mode 100644 third_party/libphonenumber/cpp/src/default_logger.h create mode 100644 third_party/libphonenumber/cpp/src/logger_adapter.cc create mode 100644 third_party/libphonenumber/cpp/src/logger_adapter.h create mode 100644 third_party/libphonenumber/cpp/src/metadata.cc create mode 100644 third_party/libphonenumber/cpp/src/metadata.h create mode 100644 third_party/libphonenumber/cpp/src/phonenumber.cc create mode 100644 third_party/libphonenumber/cpp/src/phonenumber.h create mode 100644 third_party/libphonenumber/cpp/src/phonenumberutil.cc create mode 100644 third_party/libphonenumber/cpp/src/phonenumberutil.h create mode 100644 third_party/libphonenumber/cpp/src/phonenumberutil_test.cc create mode 100644 third_party/libphonenumber/cpp/src/re2_cache.cc create mode 100644 third_party/libphonenumber/cpp/src/re2_cache.h create mode 100644 third_party/libphonenumber/cpp/src/re2_cache_test.cc create mode 100644 third_party/libphonenumber/cpp/src/regexp_adapter.h create mode 100644 third_party/libphonenumber/cpp/src/regexp_adapter_re2.cc create mode 100644 third_party/libphonenumber/cpp/src/regexp_adapter_unittest.cc create mode 100644 third_party/libphonenumber/cpp/src/run_tests.cc create mode 100644 third_party/libphonenumber/cpp/src/stringutil.cc create mode 100644 third_party/libphonenumber/cpp/src/stringutil.h create mode 100644 third_party/libphonenumber/cpp/src/stringutil_test.cc create mode 100644 third_party/libphonenumber/cpp/src/test_metadata.cc create mode 100644 third_party/libphonenumber/cpp/src/test_metadata.h create mode 100644 third_party/libphonenumber/cpp/src/utf/README create mode 100644 third_party/libphonenumber/cpp/src/utf/rune.c create mode 100644 third_party/libphonenumber/cpp/src/utf/stringpiece.h create mode 100644 third_party/libphonenumber/cpp/src/utf/stringprintf.h create mode 100644 third_party/libphonenumber/cpp/src/utf/unicodetext.cc create mode 100644 third_party/libphonenumber/cpp/src/utf/unicodetext.h create mode 100644 third_party/libphonenumber/cpp/src/utf/unilib.cc create mode 100644 third_party/libphonenumber/cpp/src/utf/unilib.h create mode 100644 third_party/libphonenumber/cpp/src/utf/utf.h create mode 100644 third_party/libphonenumber/cpp/src/utf/utfdef.h create mode 100644 third_party/libphonenumber/libphonenumber.gyp create mode 100644 third_party/libphonenumber/patches/version186.patch create mode 100644 third_party/libphonenumber/resources/PhoneNumberMetaData.xml create mode 100644 third_party/libphonenumber/resources/PhoneNumberMetaDataForTesting.xml create mode 100644 third_party/libphonenumber/resources/phonemetadata.proto create mode 100644 third_party/libphonenumber/resources/phonenumber.proto (limited to 'third_party') diff --git a/third_party/libphonenumber/README.chromium b/third_party/libphonenumber/README.chromium new file mode 100644 index 0000000..9cf38ee --- /dev/null +++ b/third_party/libphonenumber/README.chromium @@ -0,0 +1,29 @@ +Name: International Phone Number Library +Short Name: libphonenumber +URL: http://libphonenumber.googlecode.com/svn/trunk/ +Version: unknown +Revision: 186 +Security Critical: yes + +This directory contains the source code of International Phone Number Library +for C/C++. + +This library depends on +1. base/ for types, scoped_ptr's, etc. +2. third_party/icu for internationalisation, UTF8-16-32 conversion and regular + expressions. +3. third_party/protobuf Lite version. + +Additional files, not in the original library: + libphonenumber.gyp + README.chromium + chrome/regexp_adapter_icuregexp.cc + +Until the changes are upstreamed library is included directly, with a patch +in patches/version186.patch applied. The patch adds plugability to the regular +expression engine, its RE2 (default) implementation, and the unit-test for the +changes. + +The folders included in our repository for now are + cpp/ + resource/ \ No newline at end of file diff --git a/third_party/libphonenumber/chrome/regexp_adapter_icuregexp.cc b/third_party/libphonenumber/chrome/regexp_adapter_icuregexp.cc new file mode 100644 index 0000000..6b6ad82 --- /dev/null +++ b/third_party/libphonenumber/chrome/regexp_adapter_icuregexp.cc @@ -0,0 +1,299 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "third_party/libphonenumber/cpp/src/regexp_adapter.h" + +// Setup all of the Chromium and WebKit defines +#include "base/logging.h" +#include "base/scoped_ptr.h" +#include "build/build_config.h" +#include "unicode/regex.h" +#include "unicode/stringpiece.h" +#include "unicode/unistr.h" + +namespace { + +// Converts |source| to UTF-8 string, returns it starting at position |pos|. +std::string UnicodeStringToUtf8String(icu::UnicodeString const& source, + int pos) { + std::string data; + source.toUTF8String(data); + return data.substr(pos); +} + +} // namespace + +// Implementation of the abstract classes RegularExpressionInput and +// RegularExpression using ICU regular expression capabilities. + +// The Regular Expression input class. +class IcuRegularExpressionInput : public reg_exp::RegularExpressionInput { + public: + explicit IcuRegularExpressionInput(const char* utf8_input); + + // RegularExpressionInput implementation: + // Matches string to regular expression, returns true if expression was + // matched, false otherwise, advances position in the match. + // |reg_exp| - expression to be matched. + // |beginning_only| - if true match would be successfull only if appears at + // the beginning of the tested region of the string. + // |matched_string1| - successfully matched first string. Can be NULL. + // |matched_string2| - successfully matched second string. Can be NULL. + virtual bool ConsumeRegExp(std::string const& reg_exp, + bool beginning_only, + std::string* matched_string1, + std::string* matched_string2); + + // Convert unmatched input to a string. + virtual std::string ToString() const; + + icu::UnicodeString* Data() { return &utf8_input_; } + + // Position in the input. For the newly created input position is 0, + // each call to ConsumeRegExp() or RegularExpression::Consume() advances + // position in the case of the successful match to be after the match. + int pos() const { return pos_; } + void set_pos(int pos) { pos_ = pos; } + + private: + icu::UnicodeString utf8_input_; + int pos_; + + DISALLOW_COPY_AND_ASSIGN(IcuRegularExpressionInput); +}; + +// The regular expression class. +class IcuRegularExpression : public reg_exp::RegularExpression { + public: + explicit IcuRegularExpression(const char* utf8_regexp); + + // RegularExpression implementation: + // Matches string to regular expression, returns true if expression was + // matched, false otherwise, advances position in the match. + // |input_string| - string to be searched. + // |beginning_only| - if true match would be successfull only if appears at + // the beginning of the tested region of the string. + // |matched_string1| - successfully matched first string. Can be NULL. + // |matched_string2| - successfully matched second string. Can be NULL. + // |matched_string3| - successfully matched third string. Can be NULL. + virtual bool Consume(reg_exp::RegularExpressionInput* input_string, + bool beginning_only, + std::string* matched_string1, + std::string* matched_string2, + std::string* matched_string3) const; + + // Matches string to regular expression, returns true if expression was + // matched, false otherwise. + // |input_string| - string to be searched. + // |full_match| - if true match would be successfull only if it matches the + // complete string. + // |matched_string| - successfully matched string. Can be NULL. + virtual bool Match(const char* input_string, + bool full_match, + std::string* matched_string) const; + + // Replaces match(es) in the |string_to_process|. if |global| is true, + // replaces all the matches, only the first match otherwise. + // |replacement_string| - text the matches are replaced with. + // Returns true if expression successfully processed through the string, + // even if no actual replacements were made. Returns false in case of an + // error. + virtual bool Replace(std::string* string_to_process, + bool global, + const char* replacement_string) const; + private: + scoped_ptr utf8_regexp_; + + DISALLOW_COPY_AND_ASSIGN(IcuRegularExpression); +}; + +IcuRegularExpressionInput::IcuRegularExpressionInput(const char* utf8_input) + : pos_(0) { + DCHECK(utf8_input); + utf8_input_ = icu::UnicodeString::fromUTF8(utf8_input); +} + +bool IcuRegularExpressionInput::ConsumeRegExp(std::string const& reg_exp, + bool beginning_only, + std::string* matched_string1, + std::string* matched_string2) { + IcuRegularExpression re(reg_exp.c_str()); + + return re.Consume(this, beginning_only, matched_string1, matched_string2, + NULL); +} + +std::string IcuRegularExpressionInput::ToString() const { + if (pos_ < 0 || pos_ > utf8_input_.length()) + return std::string(); + return UnicodeStringToUtf8String(utf8_input_, pos_); +} + +IcuRegularExpression::IcuRegularExpression(const char* utf8_regexp) { + DCHECK(utf8_regexp); + UParseError pe; + UErrorCode status = U_ZERO_ERROR; + utf8_regexp_.reset(icu::RegexPattern::compile( + icu::UnicodeString::fromUTF8(utf8_regexp), 0, pe, status)); + if (U_FAILURE(status)) { + // All of the passed regular expressions should compile correctly. + utf8_regexp_.reset(NULL); + NOTREACHED(); + } +} + +bool IcuRegularExpression::Consume( + reg_exp::RegularExpressionInput* input_string, + bool beginning_only, + std::string* matched_string1, + std::string* matched_string2, + std::string* matched_string3) const { + DCHECK(input_string); + // matched_string1 may be NULL + // matched_string2 may be NULL + // matched_string3 may be NULL + if (!utf8_regexp_.get()) + return false; + + IcuRegularExpressionInput* input = + reinterpret_cast(input_string); + UErrorCode status = U_ZERO_ERROR; + scoped_ptr matcher(utf8_regexp_->matcher(*(input->Data()), + status)); + + if (U_FAILURE(status)) + return false; + + if (beginning_only) { + if (!matcher->lookingAt(input->pos(), status)) + return false; + } else { + if (!matcher->find(input->pos(), status)) + return false; + } + if (U_FAILURE(status)) + return false; + // If less matches than expected - fail. + if ((matched_string3 && matcher->groupCount() < 3) || + (matched_string2 && matcher->groupCount() < 2) || + (matched_string1 && matcher->groupCount() < 1)) { + return false; + } + if (matcher->groupCount() > 0 && matched_string1) { + *matched_string1 = UnicodeStringToUtf8String(matcher->group(1, status), 0); + } + if (matcher->groupCount() > 1 && matched_string2) { + *matched_string2 = UnicodeStringToUtf8String(matcher->group(2, status), 0); + } + if (matcher->groupCount() > 2 && matched_string3) { + *matched_string3 = UnicodeStringToUtf8String(matcher->group(3, status), 0); + } + input->set_pos(matcher->end(status)); + return true; +} + +bool IcuRegularExpression::Match(const char* input_string, + bool full_match, + std::string* matched_string) const { + DCHECK(input_string); + // matched_string may be NULL + if (!utf8_regexp_.get()) + return false; + + IcuRegularExpressionInput input(input_string); + UErrorCode status = U_ZERO_ERROR; + scoped_ptr matcher(utf8_regexp_->matcher(*(input.Data()), + status)); + + if (U_FAILURE(status)) + return false; + + if (full_match) { + if (!matcher->matches(input.pos(), status)) + return false; + } else { + if (!matcher->find(input.pos(), status)) + return false; + } + if (U_FAILURE(status)) + return false; + if (matcher->groupCount() > 0 && matched_string) { + *matched_string = UnicodeStringToUtf8String(matcher->group(1, status), 0); + } + return true; +} + +bool IcuRegularExpression::Replace(std::string* string_to_process, + bool global, + const char* replacement_string) const { + DCHECK(string_to_process); + DCHECK(replacement_string); + + std::string adapted_replacement(replacement_string); + // Adapt replacement string from RE2 (\0-9 for matches) format to ICU format + // ($0-9 for matches). All '$' should be prepended with '\' as well. + size_t backslash_pos = adapted_replacement.find('\\'); + size_t dollar_pos = adapted_replacement.find('$'); + while (backslash_pos != std::string::npos || + dollar_pos != std::string::npos) { + bool process_dollar = false; + if (backslash_pos == std::string::npos || + (dollar_pos != std::string::npos && dollar_pos < backslash_pos)) { + process_dollar = true; + } + if (process_dollar) { + adapted_replacement.insert(dollar_pos, "\\"); + dollar_pos = adapted_replacement.find('$', dollar_pos + 2); + if (backslash_pos != std::string::npos) + ++backslash_pos; + } else { + if (adapted_replacement.length() > backslash_pos + 1) { + if (adapted_replacement[backslash_pos + 1] >= '0' && + adapted_replacement[backslash_pos + 1] <= '9') { + adapted_replacement[backslash_pos] = '$'; + } + if (adapted_replacement[backslash_pos + 1] == '\\') { + // Skip two characters instead of one. + ++backslash_pos; + } + } + backslash_pos = adapted_replacement.find('\\', backslash_pos + 1); + } + } + + IcuRegularExpressionInput input(string_to_process->c_str()); + UErrorCode status = U_ZERO_ERROR; + scoped_ptr matcher(utf8_regexp_->matcher(*(input.Data()), + status)); + if (U_FAILURE(status)) + return false; + + icu::UnicodeString result; + + if (global) { + result = matcher->replaceAll( + icu::UnicodeString::fromUTF8(adapted_replacement), + status); + } else { + result = matcher->replaceFirst( + icu::UnicodeString::fromUTF8(adapted_replacement), + status); + } + if (U_FAILURE(status)) + return false; + *string_to_process = UnicodeStringToUtf8String(result, 0); + return true; +} + +namespace reg_exp { + +RegularExpressionInput* CreateRegularExpressionInput(const char* utf8_input) { + return new IcuRegularExpressionInput(utf8_input); +} + +RegularExpression* CreateRegularExpression(const char* utf8_regexp) { + return new IcuRegularExpression(utf8_regexp); +} + +} // namespace reg_exp diff --git a/third_party/libphonenumber/cpp/CMakeLists.txt b/third_party/libphonenumber/cpp/CMakeLists.txt new file mode 100644 index 0000000..720168e --- /dev/null +++ b/third_party/libphonenumber/cpp/CMakeLists.txt @@ -0,0 +1,242 @@ +# Copyright (C) 2011 Google Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Author: Philippe Liard + +cmake_minimum_required (VERSION 2.8) + +project (libphonenumber) + +# Helper functions dealing with finding libraries and programs this library +# depends on. + +function (print_error DESCRIPTION FILE) + message (FATAL_ERROR + "Can't find ${DESCRIPTION}: can't locate ${FILE}. Please read the README.") +endfunction () + +# Find a library. If it has not been found, stop CMake with a fatal error +# message. +function (find_required_library NAME HEADER LIBRARY DESCRIPTION) + # Check the header. + find_path (${NAME}_INCLUDE_DIR ${HEADER}) + set (INCLUDE_DIR ${${NAME}_INCLUDE_DIR}) + + if (${INCLUDE_DIR} STREQUAL "${INCLUDE_DIR}-NOTFOUND") + print_error (${DESCRIPTION} ${HEADER}) + endif () + include_directories (${INCLUDE_DIR}) + # Check the binary. + find_library (${NAME}_LIB ${LIBRARY}) + set (LIB ${NAME}_LIB) + + if (${LIB} STREQUAL "${LIB}-NOTFOUND") + print_error (${DESCRIPTION} ${LIBRARY}) + endif () +endfunction (find_required_library) + +# Check the library version (if pkg-config available). +find_package (PkgConfig) +function (check_library_version NAME LIBRARY VERSION) + if (PKG_CONFIG_EXECUTABLE) + pkg_check_modules (NAME REQUIRED ${LIBRARY}>=${VERSION}) + endif (PKG_CONFIG_EXECUTABLE) +endfunction () + +# Find a program. If it has not been found, stop CMake with a fatal error +# message. +function (find_required_program NAME FILENAME DESCRIPTION) + find_program (${NAME}_BIN NAMES ${FILENAME}) + + if (${NAME}_BIN STREQUAL "${${NAME}_BIN}-NOTFOUND") + print_error (${DESCRIPTION} ${FILENAME}) + endif () +endfunction (find_required_program) + +# Find all the required libraries and programs. +find_required_library (GTEST gtest/gtest.h gtest "Google Test framework") + +find_required_library (RE2 re2/re2.h re2 "Google RE2") + +find_required_library (PROTOBUF google/protobuf/message_lite.h protobuf + "Google Protocol Buffers") +check_library_version (PC_PROTOBUF protobuf 2.4) + +find_required_library (ICU unicode/unistr.h icui18n "ICU") +check_library_version (PC_ICU icui18n 4.4) + +find_required_program (PROTOC protoc + "Google Protocol Buffers compiler (protoc)") + +find_required_program (JAVA java + "Java Runtime Environment") + +# Add protoc (Protocol Buffers compiler) target. +set (RESOURCES_DIR "${CMAKE_SOURCE_DIR}/../resources") + +set ( + PROTOBUF_SOURCES "${RESOURCES_DIR}/phonemetadata.proto" + "${RESOURCES_DIR}/phonenumber.proto" +) + +set ( + PROTOBUF_OUTPUT "${CMAKE_SOURCE_DIR}/src/phonemetadata.pb.cc" + "${CMAKE_SOURCE_DIR}/src/phonemetadata.pb.h" + "${CMAKE_SOURCE_DIR}/src/phonenumber.pb.cc" + "${CMAKE_SOURCE_DIR}/src/phonenumber.pb.h" +) + +add_custom_command ( + COMMAND ${PROTOC_BIN} --cpp_out="${CMAKE_SOURCE_DIR}/src" + --proto_path=${RESOURCES_DIR} ${PROTOBUF_SOURCES} + + OUTPUT ${PROTOBUF_OUTPUT} + DEPENDS ${PROTOBUF_SOURCES} +) + +add_custom_target ( + generate-sources + + DEPENDS ${PROTOBUF_OUTPUT} + COMMENT "Generating Protocol Buffers code" +) + +# Add metadata code generation targets. + +# This function is invoked twice to create metadata & test metadata code +# generation targets. +function (add_metadata_gen_target TARGET_NAME + XML_FILE + FOR_TESTING) + if (${FOR_TESTING} STREQUAL "true") + set (GEN_OUTPUT_PREFIX "${CMAKE_SOURCE_DIR}/src/metadata") + elseif (${FOR_TESTING} STREQUAL "false") + set (GEN_OUTPUT_PREFIX "${CMAKE_SOURCE_DIR}/src/test_metadata") + else () + message (FATAL_ERROR + "Unexpected value '${FOR_TESTING}' for testing parameter") + endif () + + set (GEN_OUTPUT "${GEN_OUTPUT_PREFIX}.cc ${GEN_OUTPUT_PREFIX}.h") + set (JAR_PATH "${CMAKE_SOURCE_DIR}/../tools/java/cpp-build/target") + set (JAR_PATH "${JAR_PATH}/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar") + + add_custom_command ( + COMMAND ${JAVA_BIN} -jar + ${JAR_PATH} BuildMetadataCppFromXml ${XML_FILE} ${CMAKE_SOURCE_DIR}/src + ${FOR_TESTING} + + OUTPUT ${GEN_OUTPUT} + DEPENDS ${XML_FILE} + ) + add_custom_target ( + ${TARGET_NAME} + DEPENDS ${GEN_OUTPUT} + COMMENT "Generating Metadata code" + ) +endfunction (add_metadata_gen_target) + +# Add metadata generation target. +add_metadata_gen_target ( + "generate-metadata" + "${RESOURCES_DIR}/PhoneNumberMetaData.xml" + "false" +) + +# Add test metadata generation target. +add_metadata_gen_target ( + "generate-test-metadata" + "${RESOURCES_DIR}/PhoneNumberMetaDataForTesting.xml" + "true" +) + +# Platform independent sources. +set ( + SOURCES + "src/base/at_exit.cc" + "src/base/lazy_instance.cc" + "src/base/string_piece.cc" + "src/base/synchronization/lock.cc" + "src/base/threading/thread_restrictions.cc" + "src/default_logger.cc" + "src/logger_adapter.cc" + "src/metadata.cc" # Generated by build tools. + "src/phonemetadata.pb.cc" # Generated by Protocol Buffers. + "src/phonenumber.cc" + "src/phonenumber.pb.cc" # Generated by Protocol Buffers. + "src/phonenumberutil.cc" + "src/re2_cache.cc" + "src/regexp_adapter_re2.cc", + "src/stringutil.cc" + "src/utf/rune.c" + "src/utf/unicodetext.cc" + "src/utf/unilib.cc" +) + +if (UNIX) + if (CMAKE_COMPILER_IS_GNUCXX) + add_definitions ("-Wall -Wextra -Werror") + + # The next flags are needed by base/ source files to compile low level code + # needed by Singleton. + add_definitions ("-DCOMPILER_GCC -DOS_POSIX -DOS_LINUX") + + if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86.*") + add_definitions ("-DARCH_CPU_X86_FAMILY") + # Add GCC specific sources. + list (APPEND SOURCES "src/base/atomicops_internals_x86_gcc.cc") + + elseif (${CMAKE_SYSTEM_PROCESSOR} MATCHES ".*arm.*") + add_definitions ("-DARCH_CPU_ARM_FAMILY") + endif () + endif () + + # Add POSIX specific sources. + list ( + APPEND SOURCES + "src/base/synchronization/lock_impl_posix.cc" + "src/base/threading/platform_thread_posix.cc" + "src/base/threading/thread_local_posix.cc" + ) +else (WIN32) + # TODO: add Windows support (define COMPILER_MSVC, OS_WIN). + list ( + APPEND SOURCES + "src/base/synchronization/lock_impl_win.cc" + "src/base/threading/platform_thread_win.cc" + "src/base/threading/thread_local_win.cc" + ) + # TODO: Windows specific flags. +endif () + +include_directories ("src") +include_directories (".") + +add_library (phonenumber STATIC ${SOURCES}) +add_dependencies (phonenumber generate-sources) + +target_link_libraries (phonenumber ${RE2_LIB} ${PROTOBUF_LIB} ${ICU_LIB}) + +# Tests. +set (TEST_SOURCES + "src/phonenumberutil_test.cc" + "src/re2_cache_test.cc" + "src/regexp_adapter_unittest.cc", + "src/run_tests.cc" + "src/stringutil_test.cc" + "src/test_metadata.cc" # Generated by build tools. +) + +add_executable (libphonenumber_test ${TEST_SOURCES}) +target_link_libraries (libphonenumber_test phonenumber ${GTEST_LIB} pthread) diff --git a/third_party/libphonenumber/cpp/LICENSE b/third_party/libphonenumber/cpp/LICENSE new file mode 100644 index 0000000..145f008 --- /dev/null +++ b/third_party/libphonenumber/cpp/LICENSE @@ -0,0 +1,13 @@ +Copyright (C) 2011 Google Inc. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/third_party/libphonenumber/cpp/README b/third_party/libphonenumber/cpp/README new file mode 100644 index 0000000..775348a --- /dev/null +++ b/third_party/libphonenumber/cpp/README @@ -0,0 +1,69 @@ +C++ version of the libphonenumber project. +Work in progress. + +This is a port of the Java version. + +This project uses some third-party code: + - src/base/ sources come from Chromium browser. + - src/utf/ sources come from lib9 which is also used in Go. + +Requirements: + - CMake build system + http://www.cmake.org + + You can install it very easily on a Debian-based GNU/Linux distribution: + $ sudo apt-get install cmake + + - Protocol Buffers + http://code.google.com/p/protobuf/ + Version 2.4 or more recent is required. + + You can install it very easily on a Debian-based GNU/Linux distribution: + $ sudo apt-get install libprotobuf-dev + + Note: if your GNU/Linux distribution doesn't provide the needed package, + please download and install it manually: + $ tar xjf protobuf-2.4.tar.bz2 + $ cd protobuf-2.4 + $ ./configure && make && sudo make install + + - Google Test + http://code.google.com/p/googletest/ + + You can install it very easily on a Debian-based GNU/Linux distribution: + $ sudo apt-get install libgtest-dev + + - RE2 + http://code.google.com/p/re2/ + + You can install it very easily on Ubuntu Maverick and later: + $ sudo apt-get install libre2-dev + + Otherwise if you use a Debian-based distribution you can fetch the Ubuntu + package which should work: + http://packages.ubuntu.com/maverick/libre2-dev + + If you want to install it manually: + You need Mercurial to checkout its source code: + $ sudo apt-get install mercurial + + Then checkout, build and install it: + $ hg clone https://re2.googlecode.com/hg re2 + $ cd re2 + $ make test + $ make install + $ make testinstall + + - ICU + http://userguide.icu-project.org/ + + You can install it very easily on a Debian-based distribution: + $ sudo apt-get install libicu-dev + + +How to build libphonenumber C++: + $ cd libphonenumber + $ mkdir build + $ cd build + $ cmake ../cpp/ + $ make diff --git a/third_party/libphonenumber/cpp/src/base/singleton.h b/third_party/libphonenumber/cpp/src/base/singleton.h new file mode 100644 index 0000000..0fe5e27 --- /dev/null +++ b/third_party/libphonenumber/cpp/src/base/singleton.h @@ -0,0 +1,271 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef BASE_SINGLETON_H_ +#define BASE_SINGLETON_H_ +#pragma once + +#include "base/at_exit.h" +#include "base/atomicops.h" +#include "base/third_party/dynamic_annotations/dynamic_annotations.h" +#include "base/threading/platform_thread.h" +#include "base/threading/thread_restrictions.h" + +// Default traits for Singleton. Calls operator new and operator delete on +// the object. Registers automatic deletion at process exit. +// Overload if you need arguments or another memory allocation function. +template +struct DefaultSingletonTraits { + // Allocates the object. + static Type* New() { + // The parenthesis is very important here; it forces POD type + // initialization. + return new Type(); + } + + // Destroys the object. + static void Delete(Type* x) { + delete x; + } + + // Set to true to automatically register deletion of the object on process + // exit. See below for the required call that makes this happen. + static const bool kRegisterAtExit = true; + + // Set to false to disallow access on a non-joinable thread. This is + // different from kRegisterAtExit because StaticMemorySingletonTraits allows + // access on non-joinable threads, and gracefully handles this. + static const bool kAllowedToAccessOnNonjoinableThread = false; +}; + + +// Alternate traits for use with the Singleton. Identical to +// DefaultSingletonTraits except that the Singleton will not be cleaned up +// at exit. +template +struct LeakySingletonTraits : public DefaultSingletonTraits { + static const bool kRegisterAtExit = false; + static const bool kAllowedToAccessOnNonjoinableThread = true; +}; + + +// Alternate traits for use with the Singleton. Allocates memory +// for the singleton instance from a static buffer. The singleton will +// be cleaned up at exit, but can't be revived after destruction unless +// the Resurrect() method is called. +// +// This is useful for a certain category of things, notably logging and +// tracing, where the singleton instance is of a type carefully constructed to +// be safe to access post-destruction. +// In logging and tracing you'll typically get stray calls at odd times, like +// during static destruction, thread teardown and the like, and there's a +// termination race on the heap-based singleton - e.g. if one thread calls +// get(), but then another thread initiates AtExit processing, the first thread +// may call into an object residing in unallocated memory. If the instance is +// allocated from the data segment, then this is survivable. +// +// The destructor is to deallocate system resources, in this case to unregister +// a callback the system will invoke when logging levels change. Note that +// this is also used in e.g. Chrome Frame, where you have to allow for the +// possibility of loading briefly into someone else's process space, and +// so leaking is not an option, as that would sabotage the state of your host +// process once you've unloaded. +template +struct StaticMemorySingletonTraits { + // WARNING: User has to deal with get() in the singleton class + // this is traits for returning NULL. + static Type* New() { + if (base::subtle::NoBarrier_AtomicExchange(&dead_, 1)) + return NULL; + Type* ptr = reinterpret_cast(buffer_); + + // We are protected by a memory barrier. + new(ptr) Type(); + return ptr; + } + + static void Delete(Type* p) { + base::subtle::NoBarrier_Store(&dead_, 1); + base::subtle::MemoryBarrier(); + if (p != NULL) + p->Type::~Type(); + } + + static const bool kRegisterAtExit = true; + static const bool kAllowedToAccessOnNonjoinableThread = true; + + // Exposed for unittesting. + static void Resurrect() { + base::subtle::NoBarrier_Store(&dead_, 0); + } + + private: + static const size_t kBufferSize = (sizeof(Type) + + sizeof(intptr_t) - 1) / sizeof(intptr_t); + static intptr_t buffer_[kBufferSize]; + + // Signal the object was already deleted, so it is not revived. + static base::subtle::Atomic32 dead_; +}; + +template intptr_t + StaticMemorySingletonTraits::buffer_[kBufferSize]; +template base::subtle::Atomic32 + StaticMemorySingletonTraits::dead_ = 0; + +// The Singleton class manages a single +// instance of Type which will be created on first use and will be destroyed at +// normal process exit). The Trait::Delete function will not be called on +// abnormal process exit. +// +// DifferentiatingType is used as a key to differentiate two different +// singletons having the same memory allocation functions but serving a +// different purpose. This is mainly used for Locks serving different purposes. +// +// Example usage: +// +// In your header: +// #include "base/singleton.h" +// class FooClass { +// public: +// static FooClass* GetInstance(); <-- See comment below on this. +// void Bar() { ... } +// private: +// FooClass() { ... } +// friend struct DefaultSingletonTraits; +// +// DISALLOW_COPY_AND_ASSIGN(FooClass); +// }; +// +// In your source file: +// FooClass* FooClass::GetInstance() { +// return Singleton::get(); +// } +// +// And to call methods on FooClass: +// FooClass::GetInstance()->Bar(); +// +// NOTE: The method accessing Singleton::get() has to be named as GetInstance +// and it is important that FooClass::GetInstance() is not inlined in the +// header. This makes sure that when source files from multiple targets include +// this header they don't end up with different copies of the inlined code +// creating multiple copies of the singleton. +// +// Singleton<> has no non-static members and doesn't need to actually be +// instantiated. +// +// This class is itself thread-safe. The underlying Type must of course be +// thread-safe if you want to use it concurrently. Two parameters may be tuned +// depending on the user's requirements. +// +// Glossary: +// RAE = kRegisterAtExit +// +// On every platform, if Traits::RAE is true, the singleton will be destroyed at +// process exit. More precisely it uses base::AtExitManager which requires an +// object of this type to be instantiated. AtExitManager mimics the semantics +// of atexit() such as LIFO order but under Windows is safer to call. For more +// information see at_exit.h. +// +// If Traits::RAE is false, the singleton will not be freed at process exit, +// thus the singleton will be leaked if it is ever accessed. Traits::RAE +// shouldn't be false unless absolutely necessary. Remember that the heap where +// the object is allocated may be destroyed by the CRT anyway. +// +// Caveats: +// (a) Every call to get(), operator->() and operator*() incurs some overhead +// (16ns on my P4/2.8GHz) to check whether the object has already been +// initialized. You may wish to cache the result of get(); it will not +// change. +// +// (b) Your factory function must never throw an exception. This class is not +// exception-safe. +// +template , + typename DifferentiatingType = Type> +class Singleton { + private: + // Classes using the Singleton pattern should declare a GetInstance() + // method and call Singleton::get() from within that. + friend Type* Type::GetInstance(); + + // This class is safe to be constructed and copy-constructed since it has no + // member. + + // Return a pointer to the one true instance of the class. + static Type* get() { + if (!Traits::kAllowedToAccessOnNonjoinableThread) + base::ThreadRestrictions::AssertSingletonAllowed(); + + // Our AtomicWord doubles as a spinlock, where a value of + // kBeingCreatedMarker means the spinlock is being held for creation. + static const base::subtle::AtomicWord kBeingCreatedMarker = 1; + + base::subtle::AtomicWord value = base::subtle::NoBarrier_Load(&instance_); + if (value != 0 && value != kBeingCreatedMarker) { + // See the corresponding HAPPENS_BEFORE below. + ANNOTATE_HAPPENS_AFTER(&instance_); + return reinterpret_cast(value); + } + + // Object isn't created yet, maybe we will get to create it, let's try... + if (base::subtle::Acquire_CompareAndSwap(&instance_, + 0, + kBeingCreatedMarker) == 0) { + // instance_ was NULL and is now kBeingCreatedMarker. Only one thread + // will ever get here. Threads might be spinning on us, and they will + // stop right after we do this store. + Type* newval = Traits::New(); + + // This annotation helps race detectors recognize correct lock-less + // synchronization between different threads calling get(). + // See the corresponding HAPPENS_AFTER below and above. + ANNOTATE_HAPPENS_BEFORE(&instance_); + base::subtle::Release_Store( + &instance_, reinterpret_cast(newval)); + + if (newval != NULL && Traits::kRegisterAtExit) + base::AtExitManager::RegisterCallback(OnExit, NULL); + + return newval; + } + + // We hit a race. Another thread beat us and either: + // - Has the object in BeingCreated state + // - Already has the object created... + // We know value != NULL. It could be kBeingCreatedMarker, or a valid ptr. + // Unless your constructor can be very time consuming, it is very unlikely + // to hit this race. When it does, we just spin and yield the thread until + // the object has been created. + while (true) { + value = base::subtle::NoBarrier_Load(&instance_); + if (value != kBeingCreatedMarker) + break; + base::PlatformThread::YieldCurrentThread(); + } + + // See the corresponding HAPPENS_BEFORE above. + ANNOTATE_HAPPENS_AFTER(&instance_); + return reinterpret_cast(value); + } + + // Adapter function for use with AtExit(). This should be called single + // threaded, so don't use atomic operations. + // Calling OnExit while singleton is in use by other threads is a mistake. + static void OnExit(void* /*unused*/) { + // AtExit should only ever be register after the singleton instance was + // created. We should only ever get here with a valid instance_ pointer. + Traits::Delete( + reinterpret_cast(base::subtle::NoBarrier_Load(&instance_))); + instance_ = 0; + } + static base::subtle::AtomicWord instance_; +}; + +template +base::subtle::AtomicWord Singleton:: + instance_ = 0; + +#endif // BASE_SINGLETON_H_ diff --git a/third_party/libphonenumber/cpp/src/default_logger.cc b/third_party/libphonenumber/cpp/src/default_logger.cc new file mode 100644 index 0000000..11eb59f --- /dev/null +++ b/third_party/libphonenumber/cpp/src/default_logger.cc @@ -0,0 +1,63 @@ +// Copyright (C) 2011 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Author: Philippe Liard + +#include + +#include "default_logger.h" + +using std::cerr; +using std::cout; +using std::endl; + +namespace i18n { +namespace phonenumbers { + +DefaultLogger::DefaultLogger(LogLevel level) : level_(level) {} + +DefaultLogger::~DefaultLogger() {} + +void DefaultLogger::Fatal(const string& msg) const { + if (level_ >= LOG_FATAL) { + cerr << "FATAL libphonenumber " << msg << endl; + } +} + +void DefaultLogger::Error(const string& msg) const { + if (level_ >= LOG_ERROR) { + cerr << "ERROR libphonenumber " << msg << endl; + } +} + +void DefaultLogger::Warning(const string& msg) const { + if (level_ >= LOG_WARNING) { + cerr << "WARNING libphonenumber " << msg << endl; + } +} + +void DefaultLogger::Info(const string& msg) const { + if (level_ >= LOG_INFO) { + cout << "INFO libphonenumber " << msg << endl; + } +} + +void DefaultLogger::Debug(const string& msg) const { + if (level_ >= LOG_DEBUG) { + cout << "DEBUG libphonenumber " << msg << endl; + } +} + +} // namespace phonenumbers +} // namespace i18n diff --git a/third_party/libphonenumber/cpp/src/default_logger.h b/third_party/libphonenumber/cpp/src/default_logger.h new file mode 100644 index 0000000..d1ebc1f --- /dev/null +++ b/third_party/libphonenumber/cpp/src/default_logger.h @@ -0,0 +1,56 @@ +// Copyright (C) 2011 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Author: Philippe Liard + +#ifndef I18N_PHONENUMBERS_DEFAULT_LOGGER_H_ +#define I18N_PHONENUMBERS_DEFAULT_LOGGER_H_ + +#include "logger_adapter.h" + +namespace i18n { +namespace phonenumbers { + +enum LogLevel { + LOG_FATAL, + LOG_ERROR, + LOG_WARNING, + LOG_INFO, + LOG_DEBUG, +}; + +class DefaultLogger : public LoggerAdapter { + public: + virtual ~DefaultLogger(); + + DefaultLogger(LogLevel level = LOG_WARNING); + + virtual void Fatal(const string& msg) const; + + virtual void Error(const string& msg) const; + + virtual void Warning(const string& msg) const; + + virtual void Info(const string& msg) const; + + virtual void Debug(const string& msg) const; + + private: + LogLevel level_; +}; + +} // namespace phonenumbers +} // namespace i18n + +# endif // I18N_PHONENUMBERS_DEFAULT_LOGGER_H_ diff --git a/third_party/libphonenumber/cpp/src/logger_adapter.cc b/third_party/libphonenumber/cpp/src/logger_adapter.cc new file mode 100644 index 0000000..edfaa04 --- /dev/null +++ b/third_party/libphonenumber/cpp/src/logger_adapter.cc @@ -0,0 +1,25 @@ +// Copyright (C) 2011 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Author: Philippe Liard + +# include "logger_adapter.h" + +namespace i18n { +namespace phonenumbers { + +LoggerAdapter::~LoggerAdapter() {} + +} // namespace phonenumbers +} // namespace i18n diff --git a/third_party/libphonenumber/cpp/src/logger_adapter.h b/third_party/libphonenumber/cpp/src/logger_adapter.h new file mode 100644 index 0000000..37122bc --- /dev/null +++ b/third_party/libphonenumber/cpp/src/logger_adapter.h @@ -0,0 +1,48 @@ +// Copyright (C) 2011 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Author: Philippe Liard + +#ifndef I18N_PHONENUMBERS_LOGGER_ADAPTER_H_ +#define I18N_PHONENUMBERS_LOGGER_ADAPTER_H_ + +#include + +using std::string; + +namespace i18n { +namespace phonenumbers { + +// Implement this 'interface' to override the way logging is handled +// in the library. +class LoggerAdapter { + public: + virtual ~LoggerAdapter(); + + // Logging methods + virtual void Fatal(const string& msg) const = 0; + + virtual void Error(const string& msg) const = 0; + + virtual void Warning(const string& msg) const = 0; + + virtual void Info(const string& msg) const = 0; + + virtual void Debug(const string& msg) const = 0; +}; + +} // namespace phonenumbers +} // namespace i18n + +#endif // I18N_PHONENUMBERS_LOGGER_ADAPTER_H_ diff --git a/third_party/libphonenumber/cpp/src/metadata.cc b/third_party/libphonenumber/cpp/src/metadata.cc new file mode 100644 index 0000000..85a38ed --- /dev/null +++ b/third_party/libphonenumber/cpp/src/metadata.cc @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2011 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#include "metadata.h" + +static const unsigned char metadata_data[] = { 0x0A, 0xAC, 0x01, 0x0A, 0x14, 0x12, 0x0B, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x12, 0x2C, 0x12, 0x1D, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x30, 0x2D, 0x35, 0x5D, 0x7C, 0x34, 0x5B, 0x34, 0x2D, 0x36, 0x5D, 0x7C, 0x5B, 0x32, 0x36, 0x5D, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x32, 0x04, 0x36, 0x38, 0x38, 0x39, 0x1A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x41, 0x43, 0x50, 0xF7, 0x01, 0x5A, 0x02, 0x30, 0x30, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xA8, 0x02, 0x0A, 0x1F, 0x12, 0x14, 0x28, 0x3F, 0x3A, 0x5B, 0x33, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x31, 0x38, 0x30, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x38, 0x7D, 0x12, 0x1A, 0x12, 0x09, 0x5B, 0x37, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x32, 0x06, 0x37, 0x31, 0x32, 0x33, 0x34, 0x35, 0x1A, 0x1B, 0x12, 0x0A, 0x5B, 0x33, 0x34, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x32, 0x06, 0x33, 0x31, 0x32, 0x33, 0x34, 0x35, 0x22, 0x1F, 0x12, 0x0C, 0x31, 0x38, 0x30, 0x5B, 0x30, 0x32, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x31, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x2A, 0x17, 0x12, 0x06, 0x39, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x32, 0x06, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x41, 0x44, 0x50, 0xF8, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x24, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x07, 0x5B, 0x33, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x20, 0x0A, 0x10, 0x28, 0x31, 0x38, 0x30, 0x5B, 0x30, 0x32, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x01, 0x31, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xF6, 0x03, 0x0A, 0x24, 0x12, 0x18, 0x5B, 0x32, 0x2D, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x7C, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x39, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x31, 0x32, 0x7D, 0x12, 0x35, 0x12, 0x20, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x37, 0x39, 0x5D, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7C, 0x36, 0x30, 0x30, 0x5B, 0x32, 0x35, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x32, 0x08, 0x32, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x1F, 0x12, 0x0B, 0x35, 0x5B, 0x30, 0x35, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x35, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x2A, 0x12, 0x13, 0x34, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x39, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x31, 0x32, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x20, 0x12, 0x0C, 0x39, 0x30, 0x30, 0x5B, 0x30, 0x32, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x39, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x32, 0x20, 0x12, 0x0C, 0x37, 0x30, 0x30, 0x5B, 0x30, 0x35, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x37, 0x30, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x41, 0x45, 0x50, 0xCB, 0x07, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x3A, 0x0A, 0x18, 0x28, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x37, 0x39, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x0D, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x37, 0x39, 0x5D, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2C, 0x0A, 0x16, 0x28, 0x35, 0x5B, 0x30, 0x35, 0x36, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x35, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x30, 0x0A, 0x15, 0x28, 0x5B, 0x34, 0x36, 0x37, 0x39, 0x5D, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x07, 0x5B, 0x34, 0x36, 0x37, 0x39, 0x5D, 0x30, 0x22, 0x02, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x20, 0x0A, 0x0E, 0x28, 0x38, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x39, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x01, 0x38, 0x22, 0x02, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x8A, 0x02, 0x0A, 0x15, 0x12, 0x0A, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x12, 0x3E, 0x12, 0x28, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x35, 0x5D, 0x5B, 0x30, 0x2D, 0x38, 0x5D, 0x7C, 0x5B, 0x33, 0x34, 0x5D, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x2D, 0x35, 0x5D, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x30, 0x1A, 0x21, 0x12, 0x0D, 0x37, 0x5B, 0x30, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x37, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x41, 0x46, 0x50, 0x5D, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x2A, 0x0A, 0x17, 0x28, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xB9, 0x03, 0x0A, 0x1E, 0x12, 0x0B, 0x5B, 0x32, 0x35, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x12, 0x42, 0x12, 0x23, 0x32, 0x36, 0x38, 0x28, 0x3F, 0x3A, 0x34, 0x28, 0x3F, 0x3A, 0x36, 0x5B, 0x30, 0x2D, 0x33, 0x38, 0x5D, 0x7C, 0x38, 0x34, 0x29, 0x7C, 0x35, 0x36, 0x5B, 0x30, 0x2D, 0x32, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x32, 0x36, 0x38, 0x34, 0x36, 0x30, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x46, 0x12, 0x30, 0x32, 0x36, 0x38, 0x28, 0x3F, 0x3A, 0x34, 0x36, 0x34, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x34, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x32, 0x2D, 0x36, 0x38, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x32, 0x36, 0x38, 0x34, 0x36, 0x34, 0x31, 0x32, 0x33, 0x34, 0x22, 0x33, 0x12, 0x1D, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x38, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x23, 0x12, 0x0D, 0x39, 0x30, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x2D, 0x12, 0x17, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x33, 0x33, 0x7C, 0x34, 0x34, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x24, 0x12, 0x0E, 0x32, 0x36, 0x38, 0x34, 0x38, 0x5B, 0x30, 0x31, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x32, 0x36, 0x38, 0x34, 0x38, 0x30, 0x31, 0x32, 0x33, 0x34, 0x4A, 0x02, 0x41, 0x47, 0x50, 0x01, 0x5A, 0x03, 0x30, 0x31, 0x31, 0x62, 0x01, 0x31, 0x7A, 0x01, 0x31, 0xAA, 0x01, 0x24, 0x12, 0x0E, 0x32, 0x36, 0x38, 0x34, 0x30, 0x5B, 0x36, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x32, 0x36, 0x38, 0x34, 0x30, 0x36, 0x31, 0x32, 0x33, 0x34, 0xBA, 0x01, 0x03, 0x32, 0x36, 0x38, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xF7, 0x02, 0x0A, 0x1E, 0x12, 0x0B, 0x5B, 0x32, 0x35, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x12, 0x37, 0x12, 0x18, 0x32, 0x36, 0x34, 0x34, 0x28, 0x3F, 0x3A, 0x36, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x39, 0x5B, 0x37, 0x38, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x32, 0x36, 0x34, 0x34, 0x36, 0x31, 0x32, 0x33, 0x34, 0x35, 0x1A, 0x47, 0x12, 0x31, 0x32, 0x36, 0x34, 0x28, 0x3F, 0x3A, 0x32, 0x33, 0x35, 0x7C, 0x34, 0x37, 0x36, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x32, 0x39, 0x7C, 0x37, 0x32, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x32, 0x36, 0x34, 0x32, 0x33, 0x35, 0x31, 0x32, 0x33, 0x34, 0x22, 0x33, 0x12, 0x1D, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x38, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x23, 0x12, 0x0D, 0x39, 0x30, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x2D, 0x12, 0x17, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x33, 0x33, 0x7C, 0x34, 0x34, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x41, 0x49, 0x50, 0x01, 0x5A, 0x03, 0x30, 0x31, 0x31, 0x62, 0x01, 0x31, 0x7A, 0x01, 0x31, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xBA, 0x01, 0x03, 0x32, 0x36, 0x34, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x87, 0x05, 0x0A, 0x2D, 0x12, 0x22, 0x5B, 0x32, 0x2D, 0x35, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x7C, 0x36, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x7C, 0x38, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x37, 0x7D, 0x7C, 0x39, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x39, 0x7D, 0x12, 0xAE, 0x01, 0x12, 0x98, 0x01, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x36, 0x38, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x32, 0x34, 0x37, 0x5D, 0x5C, 0x64, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x7C, 0x5B, 0x32, 0x2D, 0x36, 0x5D, 0x5C, 0x64, 0x7C, 0x5B, 0x37, 0x39, 0x5D, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x34, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x7C, 0x5B, 0x32, 0x2D, 0x35, 0x37, 0x38, 0x5D, 0x5C, 0x64, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x39, 0x5D, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x7C, 0x5B, 0x32, 0x2D, 0x36, 0x5D, 0x5C, 0x64, 0x7C, 0x5B, 0x37, 0x38, 0x5D, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x1F, 0x12, 0x0B, 0x36, 0x5B, 0x36, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x36, 0x36, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x1A, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x2A, 0x19, 0x12, 0x08, 0x39, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x32, 0x06, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x32, 0x19, 0x12, 0x08, 0x38, 0x30, 0x38, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x32, 0x06, 0x38, 0x30, 0x38, 0x31, 0x32, 0x33, 0x3A, 0x1B, 0x12, 0x08, 0x37, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x37, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x41, 0x4C, 0x50, 0xE3, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x2C, 0x0A, 0x11, 0x28, 0x34, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x06, 0x34, 0x5B, 0x30, 0x2D, 0x36, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2C, 0x0A, 0x16, 0x28, 0x36, 0x5B, 0x36, 0x2D, 0x39, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x36, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x3C, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x12, 0x5B, 0x32, 0x33, 0x35, 0x38, 0x5D, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x7C, 0x34, 0x5B, 0x37, 0x2D, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x3B, 0x0A, 0x10, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x35, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x19, 0x5B, 0x32, 0x33, 0x35, 0x5D, 0x5B, 0x31, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x31, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x37, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x88, 0x04, 0x0A, 0x18, 0x12, 0x0D, 0x5B, 0x31, 0x2D, 0x33, 0x36, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x38, 0x7D, 0x12, 0x5A, 0x12, 0x45, 0x28, 0x3F, 0x3A, 0x31, 0x30, 0x5C, 0x64, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x2D, 0x36, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x29, 0x7C, 0x33, 0x5B, 0x31, 0x32, 0x5D, 0x32, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x38, 0x7D, 0x32, 0x08, 0x31, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x28, 0x12, 0x15, 0x28, 0x3F, 0x3A, 0x37, 0x37, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x37, 0x37, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x1B, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x2A, 0x1F, 0x12, 0x0C, 0x39, 0x30, 0x5B, 0x30, 0x31, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x32, 0x1F, 0x12, 0x0C, 0x38, 0x30, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x30, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x1C, 0x12, 0x09, 0x36, 0x30, 0x32, 0x37, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x36, 0x30, 0x32, 0x37, 0x31, 0x32, 0x33, 0x34, 0x4A, 0x02, 0x41, 0x4D, 0x50, 0xF6, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x2D, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x0B, 0x5B, 0x31, 0x37, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x21, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x01, 0x36, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x26, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x04, 0x5B, 0x32, 0x33, 0x5D, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x2F, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x04, 0x38, 0x7C, 0x39, 0x30, 0x22, 0x04, 0x30, 0x20, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xF6, 0x03, 0x0A, 0x19, 0x12, 0x0E, 0x5B, 0x31, 0x33, 0x2D, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x12, 0x83, 0x01, 0x12, 0x6F, 0x28, 0x3F, 0x3A, 0x33, 0x31, 0x38, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x32, 0x35, 0x7C, 0x34, 0x5C, 0x64, 0x7C, 0x38, 0x5B, 0x32, 0x33, 0x39, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x35, 0x30, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x34, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x7C, 0x35, 0x30, 0x5C, 0x64, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x2D, 0x32, 0x5D, 0x7C, 0x5B, 0x33, 0x34, 0x5D, 0x5C, 0x64, 0x7C, 0x36, 0x5B, 0x33, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x37, 0x37, 0x29, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x7C, 0x34, 0x31, 0x36, 0x5B, 0x30, 0x32, 0x33, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x32, 0x07, 0x37, 0x31, 0x35, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x8D, 0x01, 0x12, 0x79, 0x28, 0x3F, 0x3A, 0x33, 0x31, 0x38, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x2D, 0x37, 0x5D, 0x7C, 0x35, 0x5C, 0x64, 0x7C, 0x38, 0x5B, 0x30, 0x31, 0x36, 0x2D, 0x38, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x5B, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x32, 0x34, 0x36, 0x5D, 0x5C, 0x64, 0x7C, 0x33, 0x5B, 0x30, 0x31, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x36, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x33, 0x5B, 0x30, 0x31, 0x5D, 0x29, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x7C, 0x34, 0x31, 0x36, 0x5B, 0x31, 0x35, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x32, 0x07, 0x33, 0x31, 0x38, 0x31, 0x32, 0x33, 0x34, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x22, 0x12, 0x0E, 0x28, 0x3F, 0x3A, 0x31, 0x30, 0x7C, 0x36, 0x39, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x32, 0x07, 0x31, 0x30, 0x31, 0x31, 0x32, 0x33, 0x34, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x41, 0x4E, 0x50, 0xD7, 0x04, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x23, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x06, 0x5B, 0x31, 0x33, 0x2D, 0x37, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x24, 0x0A, 0x11, 0x28, 0x39, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x39, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xEE, 0x01, 0x0A, 0x12, 0x12, 0x09, 0x5B, 0x32, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x12, 0x31, 0x12, 0x1D, 0x32, 0x5C, 0x64, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x36, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x5C, 0x64, 0x5B, 0x32, 0x36, 0x2D, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x32, 0x32, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x1F, 0x12, 0x0B, 0x39, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x39, 0x32, 0x33, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x41, 0x4F, 0x50, 0xF4, 0x01, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x25, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xE1, 0x0F, 0x0A, 0x19, 0x12, 0x0D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x2C, 0x31, 0x31, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x32, 0x7D, 0x12, 0x22, 0x12, 0x0A, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x1A, 0x80, 0x01, 0x12, 0x67, 0x39, 0x28, 0x3F, 0x3A, 0x31, 0x31, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x7C, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x31, 0x33, 0x5D, 0x7C, 0x33, 0x37, 0x7C, 0x36, 0x5B, 0x31, 0x34, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x37, 0x39, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x34, 0x5B, 0x31, 0x32, 0x33, 0x35, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x33, 0x38, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x35, 0x37, 0x38, 0x5D, 0x29, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x29, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x32, 0x7D, 0x32, 0x0B, 0x39, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x22, 0x1D, 0x12, 0x07, 0x38, 0x30, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x2A, 0x26, 0x12, 0x10, 0x36, 0x28, 0x3F, 0x3A, 0x30, 0x5C, 0x64, 0x7C, 0x31, 0x30, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x36, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x41, 0x52, 0x50, 0x36, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x95, 0x04, 0x30, 0x28, 0x3F, 0x3A, 0x28, 0x31, 0x31, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x30, 0x32, 0x3F, 0x7C, 0x5B, 0x31, 0x33, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x33, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x34, 0x35, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x32, 0x34, 0x2D, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x33, 0x2D, 0x36, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x33, 0x36, 0x37, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x36, 0x5D, 0x32, 0x7C, 0x31, 0x5B, 0x34, 0x36, 0x37, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x32, 0x2D, 0x36, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x33, 0x2D, 0x38, 0x5D, 0x7C, 0x5B, 0x34, 0x39, 0x5D, 0x5B, 0x32, 0x2D, 0x36, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x37, 0x29, 0x7C, 0x34, 0x37, 0x5B, 0x33, 0x2D, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x31, 0x7C, 0x32, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x7C, 0x34, 0x5B, 0x36, 0x2D, 0x38, 0x5D, 0x3F, 0x7C, 0x35, 0x5B, 0x31, 0x32, 0x35, 0x2D, 0x38, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x7C, 0x5B, 0x31, 0x39, 0x5D, 0x7C, 0x32, 0x5C, 0x64, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x2D, 0x36, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x2D, 0x34, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x2D, 0x36, 0x5D, 0x7C, 0x37, 0x32, 0x3F, 0x7C, 0x38, 0x5B, 0x32, 0x33, 0x5D, 0x3F, 0x29, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x33, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x37, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x35, 0x37, 0x38, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x33, 0x5B, 0x35, 0x2D, 0x38, 0x5D, 0x3F, 0x7C, 0x34, 0x5B, 0x32, 0x34, 0x2D, 0x37, 0x5D, 0x7C, 0x35, 0x5B, 0x34, 0x2D, 0x36, 0x38, 0x5D, 0x3F, 0x7C, 0x36, 0x5C, 0x64, 0x7C, 0x37, 0x5B, 0x31, 0x32, 0x36, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x33, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x33, 0x36, 0x2D, 0x38, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x31, 0x7C, 0x32, 0x5B, 0x31, 0x32, 0x34, 0x35, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x2D, 0x34, 0x5D, 0x3F, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x2D, 0x34, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x3F, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x31, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x32, 0x35, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x32, 0x34, 0x35, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x33, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x32, 0x34, 0x2D, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x2D, 0x35, 0x37, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x33, 0x36, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x31, 0x7C, 0x32, 0x5B, 0x31, 0x32, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x33, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x33, 0x2D, 0x36, 0x5D, 0x7C, 0x35, 0x5B, 0x34, 0x2D, 0x38, 0x5D, 0x3F, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x35, 0x2D, 0x38, 0x5D, 0x3F, 0x7C, 0x38, 0x5B, 0x34, 0x2D, 0x37, 0x5D, 0x3F, 0x7C, 0x39, 0x5B, 0x31, 0x32, 0x34, 0x5D, 0x29, 0x29, 0x29, 0x31, 0x35, 0x29, 0x3F, 0x82, 0x01, 0x03, 0x39, 0x24, 0x31, 0x9A, 0x01, 0x32, 0x0A, 0x19, 0x28, 0x5B, 0x36, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x04, 0x5B, 0x36, 0x38, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2D, 0x0A, 0x13, 0x39, 0x28, 0x31, 0x31, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x31, 0x35, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x02, 0x39, 0x31, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x7F, 0x0A, 0x16, 0x39, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x31, 0x35, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x13, 0x39, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x32, 0x33, 0x36, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x34, 0x35, 0x38, 0x5D, 0x29, 0x1A, 0x3C, 0x39, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x31, 0x33, 0x5D, 0x7C, 0x33, 0x37, 0x7C, 0x36, 0x5B, 0x31, 0x34, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x37, 0x39, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x34, 0x5B, 0x31, 0x32, 0x33, 0x35, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x33, 0x38, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x35, 0x37, 0x38, 0x5D, 0x29, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x9F, 0x01, 0x0A, 0x16, 0x39, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x31, 0x35, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x16, 0x39, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x33, 0x2D, 0x35, 0x37, 0x38, 0x5D, 0x29, 0x1A, 0x59, 0x39, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x36, 0x39, 0x5D, 0x7C, 0x34, 0x37, 0x7C, 0x36, 0x5B, 0x32, 0x35, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x32, 0x2D, 0x36, 0x38, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x32, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x34, 0x36, 0x37, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x33, 0x34, 0x36, 0x39, 0x5D, 0x29, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x28, 0x0A, 0x12, 0x28, 0x31, 0x31, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x01, 0x31, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x61, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x37, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x31, 0x33, 0x5D, 0x7C, 0x33, 0x37, 0x7C, 0x36, 0x5B, 0x31, 0x34, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x37, 0x39, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x34, 0x5B, 0x31, 0x32, 0x33, 0x35, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x33, 0x38, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x35, 0x37, 0x38, 0x5D, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2E, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x04, 0x5B, 0x32, 0x33, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xA2, 0x01, 0x2D, 0x0A, 0x19, 0x28, 0x5B, 0x36, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x04, 0x5B, 0x36, 0x38, 0x5D, 0x2A, 0x00, 0xA2, 0x01, 0x27, 0x0A, 0x13, 0x39, 0x28, 0x31, 0x31, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x0A, 0x39, 0x20, 0x24, 0x31, 0x20, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x02, 0x39, 0x31, 0x2A, 0x00, 0xA2, 0x01, 0x79, 0x0A, 0x16, 0x39, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x0A, 0x39, 0x20, 0x24, 0x31, 0x20, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x13, 0x39, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x32, 0x33, 0x36, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x34, 0x35, 0x38, 0x5D, 0x29, 0x1A, 0x3C, 0x39, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x31, 0x33, 0x5D, 0x7C, 0x33, 0x37, 0x7C, 0x36, 0x5B, 0x31, 0x34, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x37, 0x39, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x34, 0x5B, 0x31, 0x32, 0x33, 0x35, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x33, 0x38, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x35, 0x37, 0x38, 0x5D, 0x29, 0x29, 0x2A, 0x00, 0xA2, 0x01, 0x99, 0x01, 0x0A, 0x16, 0x39, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x0A, 0x39, 0x20, 0x24, 0x31, 0x20, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x16, 0x39, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x33, 0x2D, 0x35, 0x37, 0x38, 0x5D, 0x29, 0x1A, 0x59, 0x39, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x36, 0x39, 0x5D, 0x7C, 0x34, 0x37, 0x7C, 0x36, 0x5B, 0x32, 0x35, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x32, 0x2D, 0x36, 0x38, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x32, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x34, 0x36, 0x37, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x33, 0x34, 0x36, 0x39, 0x5D, 0x29, 0x29, 0x2A, 0x00, 0xA2, 0x01, 0x23, 0x0A, 0x12, 0x28, 0x31, 0x31, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x01, 0x31, 0x2A, 0x00, 0xA2, 0x01, 0x5C, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x37, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x31, 0x33, 0x5D, 0x7C, 0x33, 0x37, 0x7C, 0x36, 0x5B, 0x31, 0x34, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x37, 0x39, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x34, 0x5B, 0x31, 0x32, 0x33, 0x35, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x33, 0x38, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x35, 0x37, 0x38, 0x5D, 0x29, 0x2A, 0x00, 0xA2, 0x01, 0x29, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x04, 0x5B, 0x32, 0x33, 0x5D, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xE5, 0x02, 0x0A, 0x1E, 0x12, 0x0B, 0x5B, 0x35, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x12, 0x43, 0x12, 0x24, 0x36, 0x38, 0x34, 0x36, 0x28, 0x3F, 0x3A, 0x32, 0x32, 0x7C, 0x33, 0x33, 0x7C, 0x34, 0x34, 0x7C, 0x35, 0x35, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x38, 0x7C, 0x39, 0x5B, 0x31, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x36, 0x38, 0x34, 0x36, 0x32, 0x32, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x29, 0x12, 0x13, 0x36, 0x38, 0x34, 0x28, 0x3F, 0x3A, 0x37, 0x33, 0x33, 0x7C, 0x32, 0x35, 0x38, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x36, 0x38, 0x34, 0x37, 0x33, 0x33, 0x31, 0x32, 0x33, 0x34, 0x22, 0x33, 0x12, 0x1D, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x38, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x23, 0x12, 0x0D, 0x39, 0x30, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x2D, 0x12, 0x17, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x33, 0x33, 0x7C, 0x34, 0x34, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x41, 0x53, 0x50, 0x01, 0x5A, 0x03, 0x30, 0x31, 0x31, 0x62, 0x01, 0x31, 0x7A, 0x01, 0x31, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xBA, 0x01, 0x03, 0x36, 0x38, 0x34, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xC9, 0x07, 0x0A, 0x14, 0x12, 0x08, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x31, 0x33, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x31, 0x33, 0x7D, 0x12, 0xF3, 0x02, 0x12, 0xDA, 0x02, 0x31, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x31, 0x32, 0x7D, 0x7C, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x34, 0x36, 0x37, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x33, 0x34, 0x2D, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x33, 0x35, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x34, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x32, 0x34, 0x2D, 0x37, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x34, 0x35, 0x38, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x33, 0x35, 0x36, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x33, 0x37, 0x38, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x33, 0x38, 0x5D, 0x7C, 0x38, 0x5B, 0x33, 0x2D, 0x36, 0x38, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x33, 0x35, 0x7C, 0x36, 0x33, 0x7C, 0x37, 0x5B, 0x31, 0x33, 0x36, 0x38, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x34, 0x35, 0x37, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x32, 0x37, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x33, 0x35, 0x37, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x34, 0x37, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x32, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x36, 0x5B, 0x33, 0x37, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x31, 0x33, 0x7C, 0x32, 0x5B, 0x31, 0x2D, 0x34, 0x37, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x34, 0x36, 0x38, 0x5D, 0x7C, 0x36, 0x32, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x35, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x33, 0x34, 0x37, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x36, 0x38, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x7C, 0x39, 0x5B, 0x34, 0x35, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x31, 0x30, 0x7D, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x31, 0x30, 0x7D, 0x7C, 0x37, 0x32, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x30, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x31, 0x33, 0x7D, 0x32, 0x0A, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x30, 0x1A, 0x41, 0x12, 0x2A, 0x36, 0x28, 0x3F, 0x3A, 0x34, 0x34, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x37, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x31, 0x30, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x33, 0x7D, 0x32, 0x09, 0x36, 0x34, 0x34, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x25, 0x12, 0x0E, 0x38, 0x30, 0x5B, 0x30, 0x32, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x30, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x39, 0x2C, 0x31, 0x33, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x38, 0x12, 0x21, 0x28, 0x3F, 0x3A, 0x37, 0x31, 0x31, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x31, 0x39, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x30, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x39, 0x2C, 0x31, 0x33, 0x7D, 0x32, 0x09, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x2D, 0x12, 0x16, 0x38, 0x28, 0x3F, 0x3A, 0x31, 0x30, 0x7C, 0x32, 0x5B, 0x30, 0x31, 0x38, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x30, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x39, 0x2C, 0x31, 0x33, 0x7D, 0x32, 0x09, 0x38, 0x31, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x22, 0x12, 0x0B, 0x37, 0x38, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x30, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x39, 0x2C, 0x31, 0x33, 0x7D, 0x32, 0x09, 0x37, 0x38, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x4A, 0x02, 0x41, 0x54, 0x50, 0x2B, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x2A, 0x0A, 0x10, 0x28, 0x5B, 0x31, 0x35, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x31, 0x32, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x08, 0x31, 0x7C, 0x35, 0x5B, 0x30, 0x37, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x5A, 0x0A, 0x11, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x31, 0x30, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x37, 0x33, 0x31, 0x36, 0x7C, 0x34, 0x36, 0x7C, 0x35, 0x31, 0x7C, 0x37, 0x33, 0x32, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x34, 0x34, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x37, 0x39, 0x5D, 0x7C, 0x5B, 0x36, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x31, 0x7C, 0x5B, 0x32, 0x38, 0x5D, 0x30, 0x29, 0x7C, 0x5B, 0x38, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x7E, 0x0A, 0x10, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x39, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x5C, 0x32, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x31, 0x2D, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x5B, 0x33, 0x2D, 0x38, 0x5D, 0x29, 0x7C, 0x34, 0x5B, 0x32, 0x33, 0x37, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x2D, 0x36, 0x5D, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x34, 0x36, 0x38, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x33, 0x35, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x5B, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xEA, 0x05, 0x0A, 0x1A, 0x12, 0x0E, 0x5B, 0x31, 0x2D, 0x35, 0x37, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x39, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0x21, 0x12, 0x0B, 0x5B, 0x32, 0x33, 0x37, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x57, 0x12, 0x43, 0x34, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x2D, 0x32, 0x5D, 0x5C, 0x64, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x34, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x33, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x37, 0x2D, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x34, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x3D, 0x12, 0x25, 0x31, 0x28, 0x3F, 0x3A, 0x38, 0x30, 0x28, 0x3F, 0x3A, 0x30, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x3F, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x3F, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x24, 0x12, 0x0E, 0x31, 0x39, 0x30, 0x5B, 0x30, 0x31, 0x32, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x1C, 0x12, 0x08, 0x35, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x35, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x42, 0x1C, 0x12, 0x08, 0x35, 0x35, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x35, 0x35, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x4A, 0x02, 0x41, 0x55, 0x50, 0x3D, 0x5A, 0x33, 0x28, 0x3F, 0x3A, 0x31, 0x34, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x31, 0x34, 0x5D, 0x7C, 0x33, 0x34, 0x7C, 0x34, 0x5B, 0x31, 0x37, 0x5D, 0x7C, 0x5B, 0x35, 0x36, 0x5D, 0x36, 0x7C, 0x37, 0x5B, 0x34, 0x37, 0x5D, 0x7C, 0x38, 0x38, 0x29, 0x29, 0x3F, 0x30, 0x30, 0x31, 0x5B, 0x31, 0x34, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x8A, 0x01, 0x04, 0x30, 0x30, 0x31, 0x31, 0x9A, 0x01, 0x33, 0x0A, 0x16, 0x28, 0x5B, 0x32, 0x33, 0x37, 0x38, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x06, 0x5B, 0x32, 0x33, 0x37, 0x38, 0x5D, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x2C, 0x0A, 0x16, 0x28, 0x34, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x34, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2C, 0x0A, 0x16, 0x28, 0x35, 0x5B, 0x30, 0x35, 0x5D, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x35, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x4A, 0x0A, 0x1B, 0x28, 0x31, 0x5B, 0x33, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x0C, 0x31, 0x28, 0x3F, 0x3A, 0x5B, 0x33, 0x38, 0x5D, 0x30, 0x7C, 0x39, 0x29, 0x1A, 0x0D, 0x31, 0x28, 0x3F, 0x3A, 0x5B, 0x33, 0x38, 0x5D, 0x30, 0x30, 0x7C, 0x39, 0x29, 0x22, 0x02, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2A, 0x0A, 0x0C, 0x28, 0x31, 0x38, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x03, 0x31, 0x38, 0x30, 0x1A, 0x08, 0x31, 0x38, 0x30, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x22, 0x02, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2D, 0x0A, 0x12, 0x28, 0x31, 0x33, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x07, 0x31, 0x33, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x22, 0x02, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xBA, 0x02, 0x0A, 0x13, 0x12, 0x0A, 0x5B, 0x35, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x12, 0x3D, 0x12, 0x2B, 0x35, 0x28, 0x3F, 0x3A, 0x32, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x7C, 0x38, 0x5B, 0x30, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x34, 0x38, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x35, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x1A, 0x3F, 0x12, 0x2D, 0x28, 0x3F, 0x3A, 0x35, 0x5B, 0x36, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x36, 0x36, 0x30, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x36, 0x5C, 0x64, 0x7C, 0x39, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x37, 0x5B, 0x33, 0x34, 0x5D, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x35, 0x36, 0x30, 0x31, 0x32, 0x33, 0x34, 0x22, 0x1A, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x2A, 0x1A, 0x12, 0x08, 0x39, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x41, 0x57, 0x50, 0xA9, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x20, 0x0A, 0x13, 0x28, 0x5B, 0x35, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xF1, 0x05, 0x0A, 0x17, 0x12, 0x0C, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x39, 0x7D, 0x12, 0xA5, 0x01, 0x12, 0x8E, 0x01, 0x28, 0x3F, 0x3A, 0x31, 0x28, 0x3F, 0x3A, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x38, 0x5D, 0x5C, 0x64, 0x7C, 0x39, 0x29, 0x5C, 0x64, 0x7C, 0x30, 0x32, 0x7C, 0x31, 0x5B, 0x30, 0x2D, 0x35, 0x38, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x33, 0x35, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x34, 0x37, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x32, 0x33, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x2D, 0x38, 0x5D, 0x29, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x31, 0x36, 0x7C, 0x32, 0x5C, 0x64, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x34, 0x36, 0x38, 0x5D, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x5B, 0x35, 0x36, 0x5D, 0x7C, 0x37, 0x39, 0x29, 0x7C, 0x33, 0x36, 0x35, 0x3F, 0x5C, 0x64, 0x7C, 0x34, 0x34, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x2F, 0x12, 0x1B, 0x28, 0x3F, 0x3A, 0x5B, 0x34, 0x36, 0x5D, 0x30, 0x7C, 0x35, 0x5B, 0x30, 0x31, 0x35, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x37, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x34, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x1B, 0x12, 0x07, 0x38, 0x38, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x38, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x1F, 0x12, 0x0B, 0x39, 0x30, 0x30, 0x32, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x39, 0x30, 0x30, 0x32, 0x30, 0x30, 0x31, 0x32, 0x33, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x41, 0x5A, 0x50, 0xE2, 0x07, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x3B, 0x0A, 0x1C, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x05, 0x31, 0x5B, 0x32, 0x38, 0x5D, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x38, 0x0A, 0x1C, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x02, 0x32, 0x32, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x39, 0x0A, 0x1E, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x01, 0x33, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x45, 0x0A, 0x19, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x12, 0x31, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x39, 0x0A, 0x1C, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x05, 0x5B, 0x34, 0x2D, 0x38, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x35, 0x0A, 0x1C, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x01, 0x39, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xC7, 0x02, 0x0A, 0x17, 0x12, 0x0C, 0x5B, 0x33, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x38, 0x7D, 0x12, 0x27, 0x12, 0x12, 0x28, 0x3F, 0x3A, 0x5B, 0x33, 0x35, 0x5D, 0x5C, 0x64, 0x7C, 0x34, 0x39, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x38, 0x7D, 0x32, 0x08, 0x33, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x20, 0x12, 0x0D, 0x36, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x36, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x1D, 0x12, 0x0A, 0x38, 0x5B, 0x30, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x1F, 0x12, 0x0C, 0x39, 0x5B, 0x30, 0x32, 0x34, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x39, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x1A, 0x12, 0x07, 0x38, 0x32, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x42, 0x41, 0x50, 0x83, 0x03, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x2C, 0x0A, 0x19, 0x28, 0x5B, 0x33, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x1A, 0x12, 0x07, 0x38, 0x31, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x0A, 0xE1, 0x02, 0x0A, 0x1E, 0x12, 0x0B, 0x5B, 0x32, 0x35, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x12, 0x2C, 0x12, 0x0D, 0x32, 0x34, 0x36, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x32, 0x34, 0x36, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x3C, 0x12, 0x26, 0x32, 0x34, 0x36, 0x28, 0x3F, 0x3A, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x33, 0x34, 0x36, 0x5D, 0x7C, 0x34, 0x35, 0x7C, 0x38, 0x32, 0x29, 0x5C, 0x64, 0x7C, 0x32, 0x35, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x32, 0x34, 0x36, 0x32, 0x35, 0x30, 0x31, 0x32, 0x33, 0x34, 0x22, 0x33, 0x12, 0x1D, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x38, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x23, 0x12, 0x0D, 0x39, 0x30, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x2D, 0x12, 0x17, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x33, 0x33, 0x7C, 0x34, 0x34, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x42, 0x42, 0x50, 0x01, 0x5A, 0x03, 0x30, 0x31, 0x31, 0x62, 0x01, 0x31, 0x7A, 0x01, 0x31, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xBA, 0x01, 0x03, 0x32, 0x34, 0x36, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xCD, 0x07, 0x0A, 0x2E, 0x12, 0x22, 0x5B, 0x32, 0x2D, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x39, 0x7D, 0x7C, 0x31, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x7C, 0x38, 0x5B, 0x30, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x38, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0xA4, 0x04, 0x12, 0x8E, 0x04, 0x32, 0x28, 0x3F, 0x3A, 0x37, 0x5C, 0x64, 0x31, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x32, 0x36, 0x5D, 0x31, 0x7C, 0x5B, 0x31, 0x33, 0x37, 0x39, 0x5D, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x2D, 0x32, 0x5D, 0x7C, 0x31, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x7C, 0x33, 0x5B, 0x33, 0x2D, 0x35, 0x5D, 0x7C, 0x35, 0x5B, 0x35, 0x36, 0x5D, 0x7C, 0x36, 0x5B, 0x36, 0x37, 0x5D, 0x7C, 0x37, 0x31, 0x7C, 0x38, 0x5B, 0x30, 0x37, 0x38, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x5B, 0x36, 0x2D, 0x38, 0x5D, 0x31, 0x7C, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x32, 0x33, 0x5D, 0x7C, 0x5B, 0x32, 0x35, 0x5D, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x38, 0x32, 0x7C, 0x34, 0x31, 0x36, 0x29, 0x5C, 0x64, 0x7C, 0x28, 0x3F, 0x3A, 0x33, 0x31, 0x7C, 0x31, 0x32, 0x3F, 0x5B, 0x35, 0x2D, 0x37, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x28, 0x3F, 0x3A, 0x30, 0x32, 0x7C, 0x5B, 0x34, 0x39, 0x5D, 0x36, 0x7C, 0x5B, 0x36, 0x38, 0x5D, 0x31, 0x29, 0x7C, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x33, 0x5D, 0x7C, 0x32, 0x31, 0x5C, 0x64, 0x3F, 0x7C, 0x5B, 0x32, 0x33, 0x5D, 0x32, 0x7C, 0x5B, 0x34, 0x35, 0x37, 0x5D, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x38, 0x5D, 0x29, 0x5C, 0x64, 0x7C, 0x28, 0x3F, 0x3A, 0x32, 0x33, 0x7C, 0x5B, 0x33, 0x39, 0x5D, 0x31, 0x29, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x7C, 0x31, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x28, 0x3F, 0x3A, 0x5B, 0x34, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x31, 0x7C, 0x36, 0x32, 0x29, 0x7C, 0x28, 0x3F, 0x3A, 0x31, 0x5C, 0x64, 0x3F, 0x7C, 0x32, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x7C, 0x35, 0x32, 0x29, 0x5C, 0x64, 0x7C, 0x36, 0x31, 0x7B, 0x32, 0x7D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x5B, 0x34, 0x35, 0x5D, 0x31, 0x7C, 0x28, 0x3F, 0x3A, 0x31, 0x31, 0x7C, 0x32, 0x5B, 0x31, 0x35, 0x5D, 0x7C, 0x5B, 0x33, 0x39, 0x5D, 0x31, 0x29, 0x5C, 0x64, 0x7C, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x36, 0x2D, 0x38, 0x5D, 0x31, 0x7C, 0x36, 0x32, 0x29, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x28, 0x3F, 0x3A, 0x33, 0x32, 0x7C, 0x39, 0x31, 0x29, 0x7C, 0x28, 0x3F, 0x3A, 0x30, 0x32, 0x7C, 0x33, 0x31, 0x7C, 0x5B, 0x36, 0x37, 0x5D, 0x5B, 0x31, 0x32, 0x5D, 0x29, 0x5C, 0x64, 0x7C, 0x5B, 0x34, 0x35, 0x38, 0x5D, 0x31, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x7C, 0x32, 0x31, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x28, 0x3F, 0x3A, 0x34, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x5B, 0x35, 0x2D, 0x37, 0x5D, 0x32, 0x7C, 0x31, 0x5C, 0x64, 0x3F, 0x29, 0x7C, 0x28, 0x3F, 0x3A, 0x30, 0x7C, 0x33, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x5B, 0x35, 0x2D, 0x37, 0x5D, 0x31, 0x7C, 0x32, 0x31, 0x37, 0x29, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x33, 0x35, 0x5D, 0x31, 0x7C, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x32, 0x34, 0x5D, 0x32, 0x7C, 0x38, 0x31, 0x29, 0x5C, 0x64, 0x7C, 0x28, 0x3F, 0x3A, 0x31, 0x7C, 0x5B, 0x32, 0x34, 0x5D, 0x31, 0x29, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x32, 0x08, 0x32, 0x37, 0x31, 0x31, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x4B, 0x12, 0x35, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x37, 0x38, 0x5D, 0x7C, 0x34, 0x34, 0x29, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x34, 0x34, 0x7C, 0x36, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x38, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x21, 0x12, 0x0B, 0x38, 0x30, 0x5B, 0x30, 0x33, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x42, 0x44, 0x50, 0xF0, 0x06, 0x5A, 0x07, 0x30, 0x30, 0x5B, 0x31, 0x32, 0x5D, 0x3F, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x8A, 0x01, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x1D, 0x0A, 0x0A, 0x28, 0x32, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x01, 0x32, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x29, 0x0A, 0x10, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x36, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x07, 0x5B, 0x33, 0x2D, 0x37, 0x39, 0x5D, 0x31, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2F, 0x0A, 0x10, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x37, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x0D, 0x5B, 0x33, 0x2D, 0x37, 0x39, 0x5D, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x21, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x01, 0x31, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xEF, 0x04, 0x0A, 0x17, 0x12, 0x0C, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x39, 0x7D, 0x12, 0x66, 0x12, 0x53, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x2D, 0x36, 0x39, 0x5D, 0x7C, 0x5B, 0x32, 0x33, 0x5D, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x5B, 0x34, 0x39, 0x5D, 0x5B, 0x32, 0x33, 0x5D, 0x7C, 0x35, 0x5C, 0x64, 0x7C, 0x36, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x38, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x31, 0x2D, 0x36, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x2F, 0x12, 0x1B, 0x34, 0x28, 0x3F, 0x3A, 0x37, 0x5C, 0x64, 0x7C, 0x38, 0x5B, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x34, 0x37, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x1B, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x2A, 0x24, 0x12, 0x11, 0x28, 0x3F, 0x3A, 0x39, 0x30, 0x7C, 0x37, 0x5B, 0x30, 0x37, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x39, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x1A, 0x12, 0x07, 0x38, 0x37, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x37, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x42, 0x45, 0x50, 0x20, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x3D, 0x0A, 0x1F, 0x28, 0x34, 0x5B, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x06, 0x34, 0x5B, 0x37, 0x2D, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x42, 0x0A, 0x1D, 0x28, 0x5B, 0x32, 0x2D, 0x34, 0x39, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x0D, 0x5B, 0x32, 0x33, 0x5D, 0x7C, 0x5B, 0x34, 0x39, 0x5D, 0x5B, 0x32, 0x33, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x57, 0x0A, 0x1F, 0x28, 0x5B, 0x31, 0x35, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x20, 0x5B, 0x31, 0x35, 0x36, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x31, 0x37, 0x38, 0x5D, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x31, 0x2D, 0x37, 0x39, 0x5D, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x37, 0x0A, 0x19, 0x28, 0x5B, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x09, 0x28, 0x3F, 0x3A, 0x38, 0x30, 0x7C, 0x39, 0x29, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xCB, 0x02, 0x0A, 0x14, 0x12, 0x0B, 0x5B, 0x32, 0x34, 0x35, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x12, 0x54, 0x12, 0x41, 0x28, 0x3F, 0x3A, 0x32, 0x30, 0x28, 0x3F, 0x3A, 0x34, 0x39, 0x7C, 0x35, 0x5B, 0x32, 0x33, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x31, 0x36, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x34, 0x30, 0x28, 0x3F, 0x3A, 0x34, 0x5B, 0x35, 0x36, 0x39, 0x5D, 0x7C, 0x35, 0x35, 0x7C, 0x37, 0x5B, 0x30, 0x31, 0x37, 0x39, 0x5D, 0x29, 0x7C, 0x35, 0x30, 0x5B, 0x33, 0x34, 0x5D, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x30, 0x34, 0x39, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x4D, 0x12, 0x3A, 0x37, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x32, 0x34, 0x2D, 0x36, 0x5D, 0x5C, 0x64, 0x7C, 0x31, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x36, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x37, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x42, 0x46, 0x50, 0xE2, 0x01, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x2F, 0x0A, 0x1C, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xC3, 0x05, 0x0A, 0x17, 0x12, 0x0C, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x38, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x12, 0x73, 0x12, 0x5F, 0x28, 0x3F, 0x3A, 0x32, 0x5C, 0x64, 0x7C, 0x5B, 0x33, 0x36, 0x5D, 0x5C, 0x64, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x36, 0x7D, 0x7C, 0x28, 0x3F, 0x3A, 0x34, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x32, 0x34, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x32, 0x07, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x3D, 0x12, 0x28, 0x28, 0x3F, 0x3A, 0x38, 0x5B, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x38, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x30, 0x37, 0x38, 0x39, 0x5D, 0x7C, 0x38, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x39, 0x7D, 0x32, 0x08, 0x34, 0x38, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x1B, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x2A, 0x1A, 0x12, 0x07, 0x39, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x39, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x1D, 0x12, 0x08, 0x37, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x32, 0x08, 0x37, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x42, 0x47, 0x50, 0xE7, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x29, 0x0A, 0x13, 0x28, 0x32, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2F, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x32, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x31, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x2F, 0x24, 0x32, 0x1A, 0x11, 0x34, 0x33, 0x5B, 0x31, 0x32, 0x34, 0x2D, 0x37, 0x5D, 0x7C, 0x37, 0x30, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x3B, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2F, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x11, 0x34, 0x33, 0x5B, 0x31, 0x32, 0x34, 0x2D, 0x37, 0x5D, 0x7C, 0x37, 0x30, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x30, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x06, 0x5B, 0x37, 0x38, 0x5D, 0x30, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x46, 0x0A, 0x17, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2F, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x1A, 0x5B, 0x33, 0x35, 0x36, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x3B, 0x0A, 0x17, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x0F, 0x34, 0x38, 0x7C, 0x38, 0x5B, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x38, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xFD, 0x02, 0x0A, 0x15, 0x12, 0x0C, 0x5B, 0x31, 0x33, 0x36, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x12, 0x52, 0x12, 0x3F, 0x28, 0x3F, 0x3A, 0x31, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x33, 0x2D, 0x36, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x31, 0x35, 0x36, 0x5D, 0x7C, 0x37, 0x5C, 0x64, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x31, 0x36, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x33, 0x34, 0x36, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x36, 0x39, 0x5D, 0x29, 0x7C, 0x37, 0x37, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x31, 0x37, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x50, 0x12, 0x3D, 0x28, 0x3F, 0x3A, 0x33, 0x28, 0x3F, 0x3A, 0x5B, 0x33, 0x36, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x5B, 0x33, 0x38, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x31, 0x36, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x33, 0x34, 0x36, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x36, 0x39, 0x5D, 0x29, 0x7C, 0x37, 0x37, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x33, 0x36, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x22, 0x1A, 0x12, 0x07, 0x38, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x28, 0x12, 0x15, 0x28, 0x3F, 0x3A, 0x38, 0x37, 0x7C, 0x39, 0x5B, 0x30, 0x31, 0x34, 0x35, 0x37, 0x38, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x39, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x1A, 0x12, 0x07, 0x38, 0x34, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x34, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x42, 0x48, 0x50, 0xCD, 0x07, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x1B, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x88, 0x02, 0x0A, 0x12, 0x12, 0x09, 0x5B, 0x32, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x12, 0x2B, 0x12, 0x18, 0x32, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x2D, 0x37, 0x5D, 0x7C, 0x5B, 0x33, 0x2D, 0x35, 0x5D, 0x30, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x32, 0x32, 0x30, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x34, 0x12, 0x21, 0x28, 0x3F, 0x3A, 0x32, 0x39, 0x5C, 0x64, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x7C, 0x5B, 0x34, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x37, 0x39, 0x35, 0x36, 0x31, 0x32, 0x33, 0x34, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x42, 0x49, 0x50, 0x81, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x30, 0x0A, 0x1D, 0x28, 0x5B, 0x32, 0x37, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xD0, 0x02, 0x0A, 0x1D, 0x12, 0x12, 0x5B, 0x32, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x7C, 0x37, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x38, 0x7D, 0x12, 0x32, 0x12, 0x1F, 0x32, 0x28, 0x3F, 0x3A, 0x30, 0x32, 0x7C, 0x31, 0x5B, 0x30, 0x33, 0x37, 0x5D, 0x7C, 0x32, 0x5B, 0x34, 0x35, 0x5D, 0x7C, 0x33, 0x5B, 0x36, 0x38, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x30, 0x32, 0x31, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x42, 0x12, 0x2F, 0x36, 0x36, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x36, 0x39, 0x5D, 0x7C, 0x5B, 0x33, 0x35, 0x5D, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x36, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x39, 0x30, 0x30, 0x31, 0x31, 0x32, 0x33, 0x34, 0x22, 0x1A, 0x12, 0x0B, 0x37, 0x5B, 0x33, 0x2D, 0x35, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x32, 0x04, 0x37, 0x33, 0x31, 0x32, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x1F, 0x12, 0x0C, 0x38, 0x35, 0x37, 0x5B, 0x35, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x35, 0x37, 0x35, 0x31, 0x32, 0x33, 0x34, 0x4A, 0x02, 0x42, 0x4A, 0x50, 0xE5, 0x01, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x2F, 0x0A, 0x1C, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xDF, 0x01, 0x0A, 0x12, 0x12, 0x09, 0x5B, 0x35, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x12, 0x2F, 0x12, 0x1B, 0x35, 0x39, 0x30, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x38, 0x37, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x35, 0x39, 0x30, 0x32, 0x37, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x34, 0x12, 0x20, 0x36, 0x39, 0x30, 0x28, 0x3F, 0x3A, 0x31, 0x30, 0x7C, 0x32, 0x5B, 0x32, 0x37, 0x5D, 0x7C, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x5B, 0x37, 0x38, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x36, 0x39, 0x30, 0x32, 0x32, 0x31, 0x32, 0x33, 0x34, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x42, 0x4C, 0x50, 0xCE, 0x04, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x87, 0x03, 0x0A, 0x1E, 0x12, 0x0B, 0x5B, 0x34, 0x35, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x12, 0x5E, 0x12, 0x3F, 0x34, 0x34, 0x31, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x30, 0x32, 0x7C, 0x32, 0x33, 0x7C, 0x36, 0x31, 0x7C, 0x5B, 0x33, 0x34, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x7C, 0x5B, 0x34, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x34, 0x5C, 0x64, 0x7C, 0x36, 0x30, 0x7C, 0x38, 0x39, 0x29, 0x7C, 0x38, 0x32, 0x34, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x34, 0x34, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x30, 0x12, 0x1A, 0x34, 0x34, 0x31, 0x28, 0x3F, 0x3A, 0x5B, 0x33, 0x37, 0x5D, 0x5C, 0x64, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x33, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x34, 0x34, 0x31, 0x33, 0x37, 0x30, 0x31, 0x32, 0x33, 0x34, 0x22, 0x33, 0x12, 0x1D, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x38, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x23, 0x12, 0x0D, 0x39, 0x30, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x2D, 0x12, 0x17, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x33, 0x33, 0x7C, 0x34, 0x34, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x42, 0x4D, 0x50, 0x01, 0x5A, 0x03, 0x30, 0x31, 0x31, 0x62, 0x01, 0x31, 0x7A, 0x01, 0x31, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xBA, 0x01, 0x03, 0x34, 0x34, 0x31, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xDE, 0x01, 0x0A, 0x15, 0x12, 0x0C, 0x5B, 0x32, 0x2D, 0x35, 0x37, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x12, 0x1C, 0x12, 0x0A, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x1B, 0x12, 0x09, 0x5B, 0x37, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x37, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x42, 0x4E, 0x50, 0xA1, 0x05, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x25, 0x0A, 0x15, 0x28, 0x5B, 0x32, 0x2D, 0x35, 0x37, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xDD, 0x03, 0x0A, 0x17, 0x12, 0x0C, 0x5B, 0x32, 0x33, 0x34, 0x36, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x12, 0xE2, 0x01, 0x12, 0xCC, 0x01, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x31, 0x31, 0x7C, 0x5B, 0x32, 0x35, 0x38, 0x5D, 0x5C, 0x64, 0x7C, 0x39, 0x5B, 0x36, 0x37, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x31, 0x32, 0x7C, 0x32, 0x5C, 0x64, 0x7C, 0x39, 0x5B, 0x33, 0x34, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x33, 0x34, 0x5D, 0x7C, 0x33, 0x39, 0x7C, 0x36, 0x32, 0x29, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x33, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x36, 0x5C, 0x64, 0x7C, 0x38, 0x5B, 0x32, 0x34, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x32, 0x35, 0x7C, 0x34, 0x32, 0x7C, 0x35, 0x5B, 0x32, 0x35, 0x37, 0x5D, 0x7C, 0x38, 0x36, 0x7C, 0x39, 0x5B, 0x32, 0x35, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x32, 0x5C, 0x64, 0x7C, 0x33, 0x5B, 0x32, 0x33, 0x34, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x34, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x34, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x2D, 0x36, 0x5D, 0x7C, 0x37, 0x5C, 0x64, 0x29, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x34, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x31, 0x31, 0x7C, 0x5B, 0x32, 0x34, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x37, 0x32, 0x29, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x1C, 0x12, 0x09, 0x5B, 0x36, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x37, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x42, 0x4F, 0x50, 0xCF, 0x04, 0x5A, 0x08, 0x30, 0x30, 0x28, 0x31, 0x5C, 0x64, 0x29, 0x3F, 0x62, 0x01, 0x30, 0x7A, 0x07, 0x30, 0x28, 0x31, 0x5C, 0x64, 0x29, 0x3F, 0x9A, 0x01, 0x29, 0x0A, 0x0E, 0x28, 0x5B, 0x32, 0x33, 0x34, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x05, 0x5B, 0x32, 0x33, 0x34, 0x5D, 0x22, 0x00, 0x2A, 0x07, 0x30, 0x24, 0x43, 0x43, 0x20, 0x24, 0x31, 0x9A, 0x01, 0x22, 0x0A, 0x0B, 0x28, 0x5B, 0x36, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x29, 0x12, 0x02, 0x24, 0x31, 0x1A, 0x04, 0x5B, 0x36, 0x37, 0x5D, 0x22, 0x00, 0x2A, 0x07, 0x30, 0x24, 0x43, 0x43, 0x20, 0x24, 0x31, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xF1, 0x04, 0x0A, 0x18, 0x12, 0x0C, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0x56, 0x12, 0x3E, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x34, 0x36, 0x38, 0x39, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x32, 0x34, 0x37, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x33, 0x2D, 0x35, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x33, 0x2D, 0x35, 0x37, 0x39, 0x5D, 0x29, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x1A, 0x54, 0x12, 0x3E, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x34, 0x36, 0x38, 0x39, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x32, 0x34, 0x37, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x33, 0x2D, 0x35, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x33, 0x2D, 0x35, 0x37, 0x39, 0x5D, 0x29, 0x5B, 0x36, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x31, 0x36, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x21, 0x12, 0x0A, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x25, 0x12, 0x0E, 0x5B, 0x33, 0x35, 0x39, 0x5D, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x09, 0x33, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x29, 0x12, 0x13, 0x28, 0x3F, 0x3A, 0x34, 0x30, 0x30, 0x5C, 0x64, 0x7C, 0x33, 0x30, 0x30, 0x33, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x08, 0x34, 0x30, 0x30, 0x34, 0x31, 0x32, 0x33, 0x34, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x42, 0x52, 0x50, 0x37, 0x5A, 0x1B, 0x30, 0x30, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x34, 0x35, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x33, 0x35, 0x5D, 0x7C, 0x5B, 0x33, 0x34, 0x5D, 0x31, 0x7C, 0x34, 0x33, 0x29, 0x62, 0x01, 0x30, 0x7A, 0x23, 0x30, 0x28, 0x3F, 0x3A, 0x28, 0x31, 0x5B, 0x32, 0x34, 0x35, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x33, 0x35, 0x5D, 0x7C, 0x5B, 0x33, 0x34, 0x5D, 0x31, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x29, 0x29, 0x3F, 0x82, 0x01, 0x02, 0x24, 0x32, 0x9A, 0x01, 0x3F, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x0A, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x22, 0x04, 0x28, 0x24, 0x31, 0x29, 0x2A, 0x0A, 0x30, 0x20, 0x24, 0x43, 0x43, 0x20, 0x28, 0x24, 0x31, 0x29, 0x9A, 0x01, 0x30, 0x0A, 0x11, 0x28, 0x5B, 0x33, 0x34, 0x5D, 0x30, 0x30, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x1A, 0x06, 0x5B, 0x33, 0x34, 0x5D, 0x30, 0x30, 0x1A, 0x08, 0x34, 0x30, 0x30, 0x7C, 0x33, 0x30, 0x30, 0x33, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x37, 0x0A, 0x1A, 0x28, 0x5B, 0x33, 0x35, 0x38, 0x39, 0x5D, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x08, 0x5B, 0x33, 0x35, 0x38, 0x39, 0x5D, 0x30, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x97, 0x04, 0x0A, 0x1E, 0x12, 0x0B, 0x5B, 0x32, 0x35, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x12, 0x8D, 0x01, 0x12, 0x6E, 0x32, 0x34, 0x32, 0x28, 0x3F, 0x3A, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x32, 0x7C, 0x5B, 0x32, 0x33, 0x36, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x36, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x33, 0x34, 0x36, 0x37, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x37, 0x5D, 0x29, 0x7C, 0x34, 0x36, 0x31, 0x7C, 0x35, 0x30, 0x32, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x31, 0x32, 0x7C, 0x37, 0x5B, 0x36, 0x37, 0x5D, 0x7C, 0x38, 0x5B, 0x37, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x38, 0x39, 0x5D, 0x29, 0x7C, 0x37, 0x30, 0x32, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x32, 0x34, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x1A, 0x83, 0x01, 0x12, 0x6D, 0x32, 0x34, 0x32, 0x28, 0x3F, 0x3A, 0x33, 0x28, 0x3F, 0x3A, 0x35, 0x5B, 0x37, 0x39, 0x5D, 0x7C, 0x5B, 0x37, 0x39, 0x5D, 0x35, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x2D, 0x34, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x37, 0x5C, 0x64, 0x7C, 0x38, 0x31, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x33, 0x34, 0x5D, 0x7C, 0x33, 0x5B, 0x33, 0x35, 0x5D, 0x7C, 0x34, 0x34, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x35, 0x7C, 0x37, 0x37, 0x29, 0x7C, 0x36, 0x5B, 0x33, 0x34, 0x5D, 0x36, 0x7C, 0x37, 0x32, 0x37, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x32, 0x34, 0x32, 0x33, 0x35, 0x39, 0x31, 0x32, 0x33, 0x34, 0x22, 0x3F, 0x12, 0x29, 0x32, 0x34, 0x32, 0x33, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x38, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x23, 0x12, 0x0D, 0x39, 0x30, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x2D, 0x12, 0x17, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x33, 0x33, 0x7C, 0x34, 0x34, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x42, 0x53, 0x50, 0x01, 0x5A, 0x03, 0x30, 0x31, 0x31, 0x62, 0x01, 0x31, 0x7A, 0x01, 0x31, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xBA, 0x01, 0x03, 0x32, 0x34, 0x32, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xC5, 0x02, 0x0A, 0x1C, 0x12, 0x11, 0x28, 0x3F, 0x3A, 0x31, 0x37, 0x7C, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x38, 0x7D, 0x12, 0x4A, 0x12, 0x36, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x33, 0x2D, 0x36, 0x5D, 0x7C, 0x5B, 0x33, 0x34, 0x5D, 0x5B, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x33, 0x36, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x34, 0x36, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x2D, 0x34, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x32, 0x07, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x1A, 0x12, 0x07, 0x31, 0x37, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x31, 0x37, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x42, 0x54, 0x50, 0xCF, 0x07, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x2F, 0x0A, 0x19, 0x28, 0x31, 0x37, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x01, 0x31, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x2C, 0x0A, 0x15, 0x28, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x05, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xFF, 0x03, 0x0A, 0x18, 0x12, 0x0D, 0x5B, 0x32, 0x2D, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x12, 0xB9, 0x01, 0x12, 0xA6, 0x01, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x34, 0x5B, 0x30, 0x2D, 0x34, 0x38, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x35, 0x37, 0x38, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x32, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x5C, 0x64, 0x7C, 0x37, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x2D, 0x35, 0x37, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x36, 0x5B, 0x30, 0x33, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x32, 0x36, 0x37, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x2D, 0x35, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x30, 0x33, 0x38, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x34, 0x38, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x34, 0x37, 0x5D, 0x7C, 0x38, 0x38, 0x7C, 0x39, 0x5B, 0x30, 0x2D, 0x34, 0x39, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x34, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x36, 0x37, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x32, 0x34, 0x30, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x32, 0x12, 0x1F, 0x37, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x5B, 0x34, 0x36, 0x5D, 0x5B, 0x30, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x29, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x37, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x19, 0x12, 0x07, 0x39, 0x30, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x39, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x22, 0x12, 0x0F, 0x37, 0x39, 0x5B, 0x31, 0x32, 0x5D, 0x5B, 0x30, 0x31, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x37, 0x39, 0x31, 0x30, 0x31, 0x32, 0x33, 0x34, 0x4A, 0x02, 0x42, 0x57, 0x50, 0x8B, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x22, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x05, 0x5B, 0x32, 0x2D, 0x36, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x26, 0x0A, 0x13, 0x28, 0x37, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x37, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x1B, 0x0A, 0x0B, 0x28, 0x39, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x01, 0x39, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x9A, 0x04, 0x0A, 0x21, 0x12, 0x15, 0x5B, 0x31, 0x32, 0x2D, 0x34, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x7C, 0x5B, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0xB6, 0x01, 0x12, 0x9F, 0x01, 0x28, 0x3F, 0x3A, 0x31, 0x28, 0x3F, 0x3A, 0x35, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x7C, 0x32, 0x5C, 0x64, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x33, 0x35, 0x5D, 0x5C, 0x64, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x29, 0x7C, 0x37, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x31, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x34, 0x36, 0x5D, 0x5C, 0x64, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x33, 0x35, 0x5D, 0x5C, 0x64, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x38, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x32, 0x5C, 0x64, 0x7C, 0x33, 0x5B, 0x30, 0x32, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x32, 0x34, 0x2D, 0x37, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x37, 0x5D, 0x29, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x31, 0x35, 0x32, 0x34, 0x35, 0x30, 0x39, 0x31, 0x31, 0x1A, 0x39, 0x12, 0x25, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x35, 0x5B, 0x36, 0x37, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x33, 0x33, 0x5C, 0x64, 0x7C, 0x34, 0x34, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x32, 0x39, 0x34, 0x39, 0x31, 0x31, 0x39, 0x31, 0x31, 0x22, 0x21, 0x12, 0x0B, 0x38, 0x30, 0x5B, 0x31, 0x33, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x1E, 0x12, 0x08, 0x39, 0x30, 0x32, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x42, 0x59, 0x50, 0xF7, 0x02, 0x5A, 0x04, 0x38, 0x7E, 0x31, 0x30, 0x62, 0x01, 0x38, 0x7A, 0x03, 0x38, 0x30, 0x3F, 0x9A, 0x01, 0x33, 0x0A, 0x17, 0x28, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x05, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x22, 0x05, 0x38, 0x20, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x33, 0x0A, 0x19, 0x28, 0x5B, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x04, 0x5B, 0x38, 0x39, 0x5D, 0x22, 0x04, 0x38, 0x20, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xC7, 0x02, 0x0A, 0x25, 0x12, 0x12, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x30, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x3F, 0x12, 0x23, 0x12, 0x11, 0x5B, 0x32, 0x33, 0x34, 0x35, 0x37, 0x38, 0x5D, 0x5B, 0x30, 0x32, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x32, 0x32, 0x32, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x2C, 0x12, 0x1A, 0x36, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x2D, 0x32, 0x5D, 0x5C, 0x64, 0x7C, 0x5B, 0x36, 0x37, 0x5D, 0x5B, 0x30, 0x31, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x36, 0x32, 0x32, 0x31, 0x32, 0x33, 0x34, 0x22, 0x20, 0x12, 0x09, 0x30, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x31, 0x7D, 0x32, 0x0B, 0x30, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x31, 0x32, 0x33, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x42, 0x5A, 0x50, 0xF5, 0x03, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x22, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x1A, 0x05, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x2C, 0x0A, 0x16, 0x28, 0x30, 0x29, 0x28, 0x38, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x2D, 0x24, 0x34, 0x1A, 0x01, 0x30, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xD0, 0x01, 0x01, 0x0A, 0x88, 0x05, 0x0A, 0x24, 0x12, 0x11, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x7C, 0x33, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x12, 0xC2, 0x01, 0x12, 0xA2, 0x01, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x30, 0x34, 0x7C, 0x32, 0x36, 0x7C, 0x5B, 0x34, 0x38, 0x5D, 0x39, 0x7C, 0x35, 0x30, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x36, 0x7C, 0x34, 0x33, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x30, 0x33, 0x7C, 0x31, 0x5B, 0x36, 0x38, 0x5D, 0x7C, 0x33, 0x38, 0x7C, 0x35, 0x5B, 0x30, 0x36, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x36, 0x5D, 0x7C, 0x31, 0x5B, 0x34, 0x39, 0x5D, 0x7C, 0x37, 0x39, 0x7C, 0x38, 0x5B, 0x31, 0x37, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x34, 0x5D, 0x7C, 0x31, 0x33, 0x7C, 0x34, 0x37, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x35, 0x39, 0x5D, 0x7C, 0x5B, 0x31, 0x38, 0x5D, 0x30, 0x7C, 0x37, 0x38, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x36, 0x5D, 0x37, 0x7C, 0x31, 0x39, 0x7C, 0x29, 0x7C, 0x39, 0x30, 0x5B, 0x32, 0x35, 0x5D, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x33, 0x31, 0x30, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x32, 0x30, 0x34, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0xB9, 0x01, 0x12, 0x99, 0x01, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x30, 0x34, 0x7C, 0x32, 0x36, 0x7C, 0x5B, 0x34, 0x38, 0x5D, 0x39, 0x7C, 0x35, 0x30, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x36, 0x7C, 0x34, 0x33, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x30, 0x33, 0x7C, 0x31, 0x5B, 0x36, 0x38, 0x5D, 0x7C, 0x33, 0x38, 0x7C, 0x35, 0x5B, 0x30, 0x36, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x36, 0x5D, 0x7C, 0x31, 0x5B, 0x34, 0x39, 0x5D, 0x7C, 0x37, 0x39, 0x7C, 0x38, 0x5B, 0x31, 0x37, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x34, 0x5D, 0x7C, 0x31, 0x33, 0x7C, 0x34, 0x37, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x35, 0x39, 0x5D, 0x7C, 0x5B, 0x31, 0x38, 0x5D, 0x30, 0x7C, 0x37, 0x38, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x36, 0x5D, 0x37, 0x7C, 0x31, 0x39, 0x7C, 0x29, 0x7C, 0x39, 0x30, 0x5B, 0x32, 0x35, 0x5D, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x32, 0x30, 0x34, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x45, 0x12, 0x26, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x38, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x33, 0x31, 0x30, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x23, 0x12, 0x0D, 0x39, 0x30, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x2D, 0x12, 0x17, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x33, 0x33, 0x7C, 0x34, 0x34, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x43, 0x41, 0x50, 0x01, 0x5A, 0x03, 0x30, 0x31, 0x31, 0x62, 0x01, 0x31, 0x7A, 0x01, 0x31, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xB1, 0x02, 0x0A, 0x1F, 0x12, 0x14, 0x5B, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x7C, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x12, 0x1C, 0x12, 0x0A, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x1A, 0x2D, 0x12, 0x19, 0x28, 0x3F, 0x3A, 0x38, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x38, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x37, 0x2D, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x39, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x43, 0x44, 0x50, 0xF3, 0x01, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x32, 0x0A, 0x19, 0x28, 0x5B, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x04, 0x5B, 0x38, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x27, 0x0A, 0x10, 0x28, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x05, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xF9, 0x01, 0x0A, 0x13, 0x12, 0x0A, 0x5B, 0x32, 0x37, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x12, 0x1D, 0x12, 0x0A, 0x32, 0x5B, 0x31, 0x32, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x31, 0x36, 0x31, 0x32, 0x33, 0x34, 0x35, 0x1A, 0x1F, 0x12, 0x0C, 0x37, 0x5B, 0x30, 0x32, 0x35, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x37, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x1C, 0x12, 0x09, 0x38, 0x37, 0x37, 0x36, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x37, 0x37, 0x36, 0x31, 0x32, 0x33, 0x34, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x43, 0x46, 0x50, 0xEC, 0x01, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x2F, 0x0A, 0x1C, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xA7, 0x02, 0x0A, 0x13, 0x12, 0x0A, 0x5B, 0x30, 0x32, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x12, 0x23, 0x12, 0x0F, 0x32, 0x32, 0x32, 0x5B, 0x31, 0x2D, 0x35, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x32, 0x32, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x20, 0x12, 0x0C, 0x30, 0x5B, 0x31, 0x34, 0x2D, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x30, 0x36, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x1C, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x43, 0x47, 0x50, 0xF2, 0x01, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x2B, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x04, 0x5B, 0x30, 0x32, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x25, 0x0A, 0x12, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x38, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xD0, 0x01, 0x01, 0x0A, 0xBC, 0x03, 0x0A, 0x13, 0x12, 0x0A, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x12, 0x49, 0x12, 0x35, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x31, 0x32, 0x34, 0x36, 0x37, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x33, 0x34, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x32, 0x35, 0x36, 0x38, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x5B, 0x37, 0x2D, 0x39, 0x5D, 0x31, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x20, 0x12, 0x0C, 0x37, 0x5B, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x37, 0x34, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x1C, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x20, 0x12, 0x0C, 0x39, 0x30, 0x5B, 0x30, 0x31, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x21, 0x12, 0x0D, 0x38, 0x34, 0x5B, 0x30, 0x32, 0x34, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x34, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x3A, 0x1C, 0x12, 0x08, 0x38, 0x37, 0x38, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x37, 0x38, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x43, 0x48, 0x50, 0x29, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x41, 0x0A, 0x1E, 0x28, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x0B, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x7C, 0x5B, 0x38, 0x39, 0x5D, 0x31, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x37, 0x0A, 0x19, 0x28, 0x5B, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x09, 0x38, 0x5B, 0x30, 0x34, 0x37, 0x5D, 0x7C, 0x39, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xCE, 0x02, 0x0A, 0x14, 0x12, 0x0B, 0x5B, 0x30, 0x32, 0x2D, 0x35, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x12, 0x6A, 0x12, 0x57, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x32, 0x33, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x32, 0x33, 0x35, 0x37, 0x5D, 0x7C, 0x5B, 0x32, 0x33, 0x5D, 0x5B, 0x30, 0x34, 0x35, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x33, 0x2D, 0x35, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x36, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x36, 0x39, 0x5D, 0x7C, 0x5B, 0x32, 0x2D, 0x34, 0x5D, 0x5B, 0x30, 0x37, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x38, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x1A, 0x37, 0x12, 0x24, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x36, 0x37, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x43, 0x49, 0x50, 0xE1, 0x01, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x2F, 0x0A, 0x1C, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xD0, 0x01, 0x01, 0x0A, 0xE5, 0x01, 0x0A, 0x14, 0x12, 0x0B, 0x5B, 0x32, 0x2D, 0x35, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x12, 0x2B, 0x12, 0x1B, 0x28, 0x3F, 0x3A, 0x32, 0x5C, 0x64, 0x7C, 0x33, 0x5B, 0x31, 0x33, 0x2D, 0x37, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x32, 0x05, 0x32, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x24, 0x12, 0x14, 0x28, 0x3F, 0x3A, 0x35, 0x5B, 0x30, 0x2D, 0x36, 0x38, 0x5D, 0x7C, 0x37, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x32, 0x05, 0x37, 0x31, 0x32, 0x33, 0x34, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x43, 0x4B, 0x50, 0xAA, 0x05, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x1B, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xAD, 0x06, 0x0A, 0x24, 0x12, 0x18, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x30, 0x30, 0x7C, 0x31, 0x32, 0x33, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x31, 0x7D, 0x12, 0x59, 0x12, 0x44, 0x28, 0x3F, 0x3A, 0x32, 0x7C, 0x33, 0x32, 0x7C, 0x34, 0x31, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x7C, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x33, 0x2D, 0x35, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x33, 0x35, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x33, 0x2D, 0x35, 0x37, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x32, 0x08, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x1A, 0x21, 0x12, 0x0B, 0x39, 0x5B, 0x36, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x39, 0x36, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x29, 0x12, 0x12, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x31, 0x32, 0x33, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x39, 0x2C, 0x31, 0x31, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x23, 0x12, 0x0A, 0x36, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x1A, 0x09, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x2C, 0x31, 0x31, 0x7D, 0x32, 0x0A, 0x36, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x1B, 0x12, 0x07, 0x34, 0x34, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x34, 0x34, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x4A, 0x02, 0x43, 0x4C, 0x50, 0x38, 0x5A, 0x36, 0x28, 0x3F, 0x3A, 0x30, 0x7C, 0x31, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x2D, 0x36, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x2D, 0x35, 0x37, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x33, 0x2D, 0x35, 0x38, 0x5D, 0x7C, 0x36, 0x39, 0x7C, 0x37, 0x5B, 0x30, 0x31, 0x36, 0x37, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x31, 0x38, 0x5D, 0x29, 0x29, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x33, 0x30, 0x7C, 0x28, 0x31, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x2D, 0x36, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x2D, 0x35, 0x37, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x33, 0x2D, 0x35, 0x38, 0x5D, 0x7C, 0x36, 0x39, 0x7C, 0x37, 0x5B, 0x30, 0x31, 0x36, 0x37, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x31, 0x38, 0x5D, 0x29, 0x29, 0x9A, 0x01, 0x30, 0x0A, 0x11, 0x28, 0x32, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x32, 0x22, 0x04, 0x28, 0x24, 0x31, 0x29, 0x2A, 0x08, 0x24, 0x43, 0x43, 0x20, 0x28, 0x24, 0x31, 0x29, 0x9A, 0x01, 0x4B, 0x0A, 0x17, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x16, 0x5B, 0x33, 0x35, 0x37, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x33, 0x2D, 0x35, 0x37, 0x5D, 0x22, 0x04, 0x28, 0x24, 0x31, 0x29, 0x2A, 0x08, 0x24, 0x43, 0x43, 0x20, 0x28, 0x24, 0x31, 0x29, 0x9A, 0x01, 0x2C, 0x0A, 0x16, 0x28, 0x39, 0x29, 0x28, 0x5B, 0x36, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x39, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x29, 0x0A, 0x12, 0x28, 0x34, 0x34, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x02, 0x34, 0x34, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x30, 0x0A, 0x18, 0x28, 0x5B, 0x36, 0x38, 0x5D, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x04, 0x36, 0x30, 0x7C, 0x38, 0x22, 0x02, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x33, 0x0A, 0x1A, 0x28, 0x36, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x02, 0x36, 0x30, 0x22, 0x02, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x29, 0x0A, 0x14, 0x28, 0x31, 0x32, 0x33, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x31, 0x22, 0x02, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xC6, 0x02, 0x0A, 0x15, 0x12, 0x0C, 0x5B, 0x32, 0x33, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x12, 0x21, 0x12, 0x0E, 0x28, 0x3F, 0x3A, 0x32, 0x32, 0x7C, 0x33, 0x33, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x1C, 0x12, 0x09, 0x5B, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x37, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x1B, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x2A, 0x1A, 0x12, 0x07, 0x38, 0x38, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x38, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x43, 0x4D, 0x50, 0xED, 0x01, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x3E, 0x0A, 0x20, 0x28, 0x5B, 0x32, 0x33, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x09, 0x5B, 0x32, 0x33, 0x37, 0x39, 0x5D, 0x7C, 0x38, 0x38, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x27, 0x0A, 0x13, 0x28, 0x38, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x02, 0x38, 0x30, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xAA, 0x13, 0x0A, 0x2C, 0x12, 0x20, 0x5B, 0x31, 0x2D, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x31, 0x7D, 0x7C, 0x38, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x31, 0x32, 0x7D, 0x12, 0xEF, 0x03, 0x12, 0xD6, 0x03, 0x32, 0x31, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x31, 0x30, 0x7D, 0x7C, 0x28, 0x3F, 0x3A, 0x31, 0x30, 0x7C, 0x32, 0x5B, 0x30, 0x32, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x31, 0x31, 0x7C, 0x37, 0x5B, 0x31, 0x35, 0x39, 0x5D, 0x29, 0x7C, 0x34, 0x5B, 0x31, 0x33, 0x35, 0x5D, 0x31, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x31, 0x5C, 0x64, 0x7C, 0x32, 0x5B, 0x33, 0x37, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x33, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x35, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x33, 0x31, 0x7C, 0x35, 0x5B, 0x34, 0x35, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x39, 0x5D, 0x29, 0x7C, 0x38, 0x39, 0x38, 0x29, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x7C, 0x28, 0x3F, 0x3A, 0x33, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x35, 0x7C, 0x34, 0x39, 0x7C, 0x35, 0x5C, 0x64, 0x7C, 0x37, 0x5B, 0x30, 0x32, 0x2D, 0x36, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x36, 0x38, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x37, 0x39, 0x5D, 0x7C, 0x5B, 0x33, 0x35, 0x5D, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x34, 0x37, 0x38, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x33, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x30, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x33, 0x36, 0x5D, 0x7C, 0x35, 0x5C, 0x64, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x32, 0x38, 0x5D, 0x7C, 0x38, 0x30, 0x7C, 0x39, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x32, 0x33, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x32, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x30, 0x31, 0x7C, 0x5B, 0x31, 0x35, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x32, 0x5B, 0x32, 0x34, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x33, 0x2D, 0x36, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x33, 0x36, 0x38, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x32, 0x33, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x32, 0x5B, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x5B, 0x33, 0x37, 0x5D, 0x5C, 0x64, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x33, 0x36, 0x37, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x2D, 0x33, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x31, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x5B, 0x33, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x34, 0x5B, 0x31, 0x33, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x7C, 0x38, 0x30, 0x28, 0x3F, 0x3A, 0x32, 0x39, 0x7C, 0x36, 0x5B, 0x30, 0x33, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x31, 0x38, 0x5D, 0x7C, 0x38, 0x31, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x31, 0x32, 0x7D, 0x32, 0x0A, 0x31, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x3D, 0x12, 0x26, 0x31, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x30, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x37, 0x7C, 0x35, 0x5B, 0x30, 0x31, 0x33, 0x35, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x35, 0x2D, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x31, 0x7D, 0x32, 0x0B, 0x31, 0x33, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x22, 0x28, 0x12, 0x0F, 0x28, 0x3F, 0x3A, 0x31, 0x30, 0x29, 0x3F, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x09, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x2C, 0x31, 0x32, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x1E, 0x12, 0x0B, 0x31, 0x36, 0x5B, 0x30, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x31, 0x36, 0x38, 0x31, 0x32, 0x33, 0x34, 0x35, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x1E, 0x12, 0x08, 0x34, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x34, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x4A, 0x02, 0x43, 0x4E, 0x50, 0x56, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x2A, 0x0A, 0x10, 0x28, 0x38, 0x30, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x08, 0x38, 0x30, 0x5B, 0x32, 0x36, 0x37, 0x38, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2E, 0x0A, 0x16, 0x28, 0x5B, 0x34, 0x38, 0x5D, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x06, 0x5B, 0x34, 0x38, 0x5D, 0x30, 0x30, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x24, 0x0A, 0x10, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x05, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x2B, 0x0A, 0x14, 0x28, 0x32, 0x31, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x36, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x02, 0x32, 0x31, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x73, 0x0A, 0x16, 0x28, 0x5B, 0x31, 0x32, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x0F, 0x31, 0x30, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x1A, 0x0F, 0x31, 0x30, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x1A, 0x26, 0x31, 0x30, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x30, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x29, 0x29, 0x7C, 0x32, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x7B, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x51, 0x33, 0x28, 0x3F, 0x3A, 0x31, 0x31, 0x7C, 0x37, 0x5B, 0x31, 0x35, 0x39, 0x5D, 0x29, 0x7C, 0x34, 0x5B, 0x31, 0x33, 0x35, 0x5D, 0x31, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x31, 0x7C, 0x32, 0x5B, 0x33, 0x37, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x33, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x35, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x33, 0x31, 0x7C, 0x35, 0x5B, 0x34, 0x35, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x39, 0x5D, 0x29, 0x7C, 0x38, 0x39, 0x38, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0xD7, 0x02, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0xAC, 0x02, 0x33, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x35, 0x7C, 0x34, 0x39, 0x7C, 0x35, 0x7C, 0x37, 0x5B, 0x30, 0x32, 0x2D, 0x36, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x36, 0x38, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x37, 0x39, 0x5D, 0x7C, 0x5B, 0x33, 0x35, 0x5D, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x34, 0x37, 0x38, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x33, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x30, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x33, 0x36, 0x5D, 0x7C, 0x35, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x32, 0x38, 0x5D, 0x7C, 0x38, 0x30, 0x7C, 0x39, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x32, 0x33, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x32, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x30, 0x31, 0x7C, 0x5B, 0x31, 0x35, 0x37, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x32, 0x34, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x33, 0x2D, 0x36, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x33, 0x36, 0x38, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x32, 0x33, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x32, 0x5B, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x5B, 0x33, 0x37, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x33, 0x36, 0x37, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x2D, 0x33, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x31, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x5B, 0x33, 0x37, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x33, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x32, 0x0A, 0x19, 0x28, 0x31, 0x5B, 0x33, 0x2D, 0x35, 0x38, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x07, 0x31, 0x5B, 0x33, 0x2D, 0x35, 0x38, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x37, 0x0A, 0x15, 0x28, 0x31, 0x30, 0x38, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x03, 0x31, 0x30, 0x38, 0x1A, 0x04, 0x31, 0x30, 0x38, 0x30, 0x1A, 0x05, 0x31, 0x30, 0x38, 0x30, 0x30, 0x22, 0x00, 0x2A, 0x00, 0xA2, 0x01, 0x26, 0x0A, 0x14, 0x28, 0x32, 0x31, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x36, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x02, 0x32, 0x31, 0x2A, 0x00, 0xA2, 0x01, 0x6E, 0x0A, 0x16, 0x28, 0x5B, 0x31, 0x32, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x0F, 0x31, 0x30, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x1A, 0x0F, 0x31, 0x30, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x1A, 0x26, 0x31, 0x30, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x30, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x29, 0x29, 0x7C, 0x32, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x2A, 0x00, 0xA2, 0x01, 0x25, 0x0A, 0x10, 0x28, 0x38, 0x30, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x08, 0x38, 0x30, 0x5B, 0x32, 0x36, 0x37, 0x38, 0x5D, 0x2A, 0x00, 0xA2, 0x01, 0x76, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x51, 0x33, 0x28, 0x3F, 0x3A, 0x31, 0x31, 0x7C, 0x37, 0x5B, 0x31, 0x35, 0x39, 0x5D, 0x29, 0x7C, 0x34, 0x5B, 0x31, 0x33, 0x35, 0x5D, 0x31, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x31, 0x7C, 0x32, 0x5B, 0x33, 0x37, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x33, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x35, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x33, 0x31, 0x7C, 0x35, 0x5B, 0x34, 0x35, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x39, 0x5D, 0x29, 0x7C, 0x38, 0x39, 0x38, 0x2A, 0x00, 0xA2, 0x01, 0xD2, 0x02, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0xAC, 0x02, 0x33, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x35, 0x7C, 0x34, 0x39, 0x7C, 0x35, 0x7C, 0x37, 0x5B, 0x30, 0x32, 0x2D, 0x36, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x36, 0x38, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x37, 0x39, 0x5D, 0x7C, 0x5B, 0x33, 0x35, 0x5D, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x34, 0x37, 0x38, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x33, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x30, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x33, 0x36, 0x5D, 0x7C, 0x35, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x32, 0x38, 0x5D, 0x7C, 0x38, 0x30, 0x7C, 0x39, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x32, 0x33, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x32, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x30, 0x31, 0x7C, 0x5B, 0x31, 0x35, 0x37, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x32, 0x34, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x33, 0x2D, 0x36, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x33, 0x36, 0x38, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x32, 0x33, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x32, 0x5B, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x5B, 0x33, 0x37, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x33, 0x36, 0x37, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x2D, 0x33, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x31, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x5B, 0x33, 0x37, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x33, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x29, 0x2A, 0x00, 0xA2, 0x01, 0x30, 0x0A, 0x19, 0x28, 0x31, 0x5B, 0x33, 0x2D, 0x35, 0x38, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x07, 0x31, 0x5B, 0x33, 0x2D, 0x35, 0x38, 0x5D, 0x2A, 0x00, 0xA2, 0x01, 0x2C, 0x0A, 0x16, 0x28, 0x5B, 0x34, 0x38, 0x5D, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x06, 0x5B, 0x34, 0x38, 0x5D, 0x30, 0x30, 0x2A, 0x00, 0xA2, 0x01, 0x35, 0x0A, 0x15, 0x28, 0x31, 0x30, 0x38, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x03, 0x31, 0x30, 0x38, 0x1A, 0x04, 0x31, 0x30, 0x38, 0x30, 0x1A, 0x05, 0x31, 0x30, 0x38, 0x30, 0x30, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xFC, 0x05, 0x0A, 0x27, 0x12, 0x1B, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x33, 0x5D, 0x5C, 0x64, 0x7B, 0x30, 0x2C, 0x33, 0x7D, 0x7C, 0x5B, 0x32, 0x34, 0x2D, 0x38, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x31, 0x7D, 0x12, 0x24, 0x12, 0x11, 0x5B, 0x31, 0x32, 0x34, 0x2D, 0x38, 0x5D, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x34, 0x12, 0x1E, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x2D, 0x38, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x31, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x33, 0x32, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x20, 0x12, 0x09, 0x31, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x31, 0x7D, 0x32, 0x0B, 0x31, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x2D, 0x12, 0x16, 0x31, 0x39, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x34, 0x5B, 0x37, 0x38, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x31, 0x7D, 0x32, 0x0B, 0x31, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x43, 0x4F, 0x50, 0x39, 0x5A, 0x11, 0x30, 0x30, 0x5B, 0x35, 0x37, 0x39, 0x5D, 0x7C, 0x23, 0x35, 0x35, 0x35, 0x7C, 0x23, 0x39, 0x39, 0x39, 0x62, 0x01, 0x30, 0x7A, 0x14, 0x30, 0x28, 0x5B, 0x33, 0x35, 0x37, 0x39, 0x5D, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x34, 0x34, 0x7C, 0x35, 0x36, 0x29, 0x29, 0x9A, 0x01, 0x6C, 0x0A, 0x0B, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x1F, 0x31, 0x28, 0x3F, 0x3A, 0x38, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x2D, 0x33, 0x5D, 0x7C, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x29, 0x7C, 0x5B, 0x32, 0x34, 0x2D, 0x38, 0x5D, 0x1A, 0x26, 0x31, 0x28, 0x3F, 0x3A, 0x38, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x30, 0x39, 0x7C, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x29, 0x7C, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x29, 0x7C, 0x5B, 0x32, 0x34, 0x2D, 0x38, 0x5D, 0x22, 0x04, 0x28, 0x24, 0x31, 0x29, 0x2A, 0x07, 0x30, 0x24, 0x43, 0x43, 0x20, 0x24, 0x31, 0x9A, 0x01, 0x25, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x01, 0x33, 0x22, 0x00, 0x2A, 0x07, 0x30, 0x24, 0x43, 0x43, 0x20, 0x24, 0x31, 0x9A, 0x01, 0x4E, 0x0A, 0x11, 0x28, 0x31, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x0D, 0x31, 0x28, 0x3F, 0x3A, 0x38, 0x30, 0x7C, 0x39, 0x5B, 0x30, 0x34, 0x5D, 0x29, 0x1A, 0x19, 0x31, 0x28, 0x3F, 0x3A, 0x38, 0x30, 0x30, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x34, 0x5B, 0x37, 0x38, 0x5D, 0x29, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xA2, 0x01, 0x5F, 0x0A, 0x0B, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x1F, 0x31, 0x28, 0x3F, 0x3A, 0x38, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x2D, 0x33, 0x5D, 0x7C, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x29, 0x7C, 0x5B, 0x32, 0x34, 0x2D, 0x38, 0x5D, 0x1A, 0x26, 0x31, 0x28, 0x3F, 0x3A, 0x38, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x30, 0x39, 0x7C, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x29, 0x7C, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x29, 0x7C, 0x5B, 0x32, 0x34, 0x2D, 0x38, 0x5D, 0x2A, 0x00, 0xA2, 0x01, 0x1C, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x01, 0x33, 0x2A, 0x00, 0xA2, 0x01, 0x49, 0x0A, 0x11, 0x28, 0x31, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x0D, 0x31, 0x28, 0x3F, 0x3A, 0x38, 0x30, 0x7C, 0x39, 0x5B, 0x30, 0x34, 0x5D, 0x29, 0x1A, 0x19, 0x31, 0x28, 0x3F, 0x3A, 0x38, 0x30, 0x30, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x34, 0x5B, 0x37, 0x38, 0x5D, 0x29, 0x29, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xF9, 0x02, 0x0A, 0x19, 0x12, 0x0D, 0x5B, 0x32, 0x34, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0x1F, 0x12, 0x0C, 0x32, 0x5B, 0x32, 0x34, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x2B, 0x12, 0x18, 0x38, 0x28, 0x3F, 0x3A, 0x5B, 0x33, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x33, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x33, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x1E, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x22, 0x12, 0x0C, 0x39, 0x30, 0x5B, 0x30, 0x35, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x1C, 0x12, 0x09, 0x34, 0x30, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x34, 0x30, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x4A, 0x02, 0x43, 0x52, 0x50, 0xFA, 0x03, 0x5A, 0x02, 0x30, 0x30, 0x7A, 0x06, 0x28, 0x31, 0x39, 0x30, 0x30, 0x29, 0x9A, 0x01, 0x2E, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x0B, 0x5B, 0x32, 0x34, 0x5D, 0x7C, 0x38, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x22, 0x00, 0x2A, 0x06, 0x24, 0x43, 0x43, 0x20, 0x24, 0x31, 0x9A, 0x01, 0x32, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x05, 0x5B, 0x38, 0x39, 0x5D, 0x30, 0x22, 0x00, 0x2A, 0x06, 0x24, 0x43, 0x43, 0x20, 0x24, 0x31, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xF8, 0x02, 0x0A, 0x18, 0x12, 0x0D, 0x5B, 0x32, 0x2D, 0x35, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x38, 0x7D, 0x12, 0x6B, 0x12, 0x56, 0x32, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x36, 0x7D, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x31, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x5B, 0x32, 0x33, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x36, 0x7D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x32, 0x35, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x36, 0x7D, 0x7C, 0x5B, 0x33, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x5B, 0x37, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x36, 0x7D, 0x29, 0x7C, 0x37, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x38, 0x7D, 0x32, 0x08, 0x37, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x1A, 0x19, 0x12, 0x06, 0x35, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x35, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x43, 0x55, 0x50, 0x35, 0x5A, 0x03, 0x31, 0x31, 0x39, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x22, 0x0A, 0x0D, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x01, 0x37, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x29, 0x0A, 0x10, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x36, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x05, 0x5B, 0x32, 0x2D, 0x34, 0x5D, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x1E, 0x0A, 0x0B, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x01, 0x35, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x88, 0x02, 0x0A, 0x13, 0x12, 0x0A, 0x5B, 0x32, 0x35, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x12, 0x49, 0x12, 0x37, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x32, 0x35, 0x36, 0x5D, 0x7C, 0x36, 0x5C, 0x64, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x32, 0x32, 0x31, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x21, 0x12, 0x0F, 0x28, 0x3F, 0x3A, 0x39, 0x5C, 0x64, 0x7C, 0x35, 0x39, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x39, 0x39, 0x31, 0x31, 0x32, 0x33, 0x34, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x43, 0x56, 0x50, 0xEE, 0x01, 0x5A, 0x01, 0x30, 0x9A, 0x01, 0x25, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xA5, 0x02, 0x0A, 0x14, 0x12, 0x0B, 0x5B, 0x32, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x12, 0x1E, 0x12, 0x0B, 0x32, 0x5B, 0x32, 0x2D, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x33, 0x12, 0x20, 0x37, 0x37, 0x37, 0x37, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x36, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x37, 0x5B, 0x36, 0x37, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x39, 0x36, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x1C, 0x12, 0x09, 0x38, 0x30, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x30, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x2A, 0x1C, 0x12, 0x09, 0x39, 0x30, 0x30, 0x39, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x39, 0x30, 0x30, 0x39, 0x31, 0x32, 0x33, 0x34, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x1B, 0x12, 0x08, 0x37, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x37, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x43, 0x59, 0x50, 0xE5, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x1E, 0x0A, 0x11, 0x28, 0x5B, 0x32, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xE9, 0x02, 0x0A, 0x13, 0x12, 0x0A, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x12, 0x3D, 0x12, 0x29, 0x32, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x7C, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x31, 0x32, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x2D, 0x12, 0x19, 0x36, 0x30, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x37, 0x5B, 0x32, 0x33, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x36, 0x30, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x1C, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x21, 0x12, 0x0D, 0x39, 0x30, 0x5B, 0x30, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x1F, 0x12, 0x0B, 0x38, 0x5B, 0x31, 0x33, 0x34, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x3A, 0x1F, 0x12, 0x0B, 0x37, 0x30, 0x5B, 0x30, 0x31, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x37, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x43, 0x5A, 0x50, 0xA4, 0x03, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x2A, 0x0A, 0x1A, 0x28, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x9F, 0x0C, 0x0A, 0x4D, 0x12, 0x41, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x31, 0x33, 0x7D, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x31, 0x32, 0x7D, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x34, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x37, 0x7D, 0x29, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x31, 0x34, 0x7D, 0x12, 0xC5, 0x01, 0x12, 0xAE, 0x01, 0x5B, 0x32, 0x34, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x31, 0x33, 0x7D, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x33, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x31, 0x31, 0x7D, 0x7C, 0x32, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x5B, 0x33, 0x38, 0x5D, 0x5B, 0x30, 0x2D, 0x38, 0x5D, 0x7C, 0x5B, 0x31, 0x32, 0x34, 0x2D, 0x36, 0x5D, 0x5C, 0x64, 0x7C, 0x5B, 0x37, 0x39, 0x5D, 0x5B, 0x30, 0x2D, 0x37, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x31, 0x30, 0x7D, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x31, 0x30, 0x7D, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x31, 0x30, 0x7D, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x31, 0x30, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x31, 0x34, 0x7D, 0x32, 0x08, 0x33, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x54, 0x12, 0x3A, 0x31, 0x28, 0x3F, 0x3A, 0x35, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x32, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x7C, 0x33, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x29, 0x29, 0x1A, 0x09, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x2C, 0x31, 0x31, 0x7D, 0x32, 0x0B, 0x31, 0x35, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x22, 0x23, 0x12, 0x0A, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x1A, 0x09, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x2C, 0x31, 0x32, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x31, 0x12, 0x18, 0x39, 0x30, 0x30, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x33, 0x35, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x39, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x29, 0x1A, 0x09, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x2C, 0x31, 0x31, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x32, 0x21, 0x12, 0x0B, 0x31, 0x38, 0x30, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x31, 0x31, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x31, 0x34, 0x7D, 0x32, 0x08, 0x31, 0x38, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x3A, 0x1F, 0x12, 0x08, 0x37, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x31, 0x7D, 0x32, 0x0B, 0x37, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x44, 0x45, 0x50, 0x31, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x31, 0x0A, 0x11, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x31, 0x31, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x2F, 0x24, 0x32, 0x1A, 0x0E, 0x33, 0x5B, 0x30, 0x32, 0x5D, 0x7C, 0x34, 0x30, 0x7C, 0x5B, 0x36, 0x38, 0x5D, 0x39, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x6C, 0x0A, 0x11, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x31, 0x30, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x2F, 0x24, 0x32, 0x1A, 0x49, 0x32, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x31, 0x7C, 0x30, 0x5B, 0x32, 0x33, 0x38, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x32, 0x34, 0x5D, 0x7C, 0x32, 0x38, 0x7C, 0x33, 0x34, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x5B, 0x31, 0x35, 0x5D, 0x7C, 0x34, 0x30, 0x29, 0x7C, 0x5B, 0x34, 0x2D, 0x38, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x31, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x30, 0x36, 0x7C, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x31, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0xBD, 0x04, 0x0A, 0x10, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x38, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x2F, 0x24, 0x32, 0x1A, 0x51, 0x5B, 0x32, 0x34, 0x2D, 0x36, 0x5D, 0x7C, 0x5B, 0x37, 0x2D, 0x39, 0x5D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x5B, 0x33, 0x35, 0x36, 0x39, 0x5D, 0x5B, 0x30, 0x32, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x37, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x37, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x2D, 0x38, 0x5D, 0x29, 0x1A, 0xC7, 0x03, 0x5B, 0x32, 0x34, 0x2D, 0x36, 0x5D, 0x7C, 0x5B, 0x37, 0x2D, 0x39, 0x5D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x2D, 0x34, 0x36, 0x37, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x32, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x32, 0x34, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x5B, 0x34, 0x36, 0x5D, 0x5B, 0x31, 0x32, 0x34, 0x36, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x32, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x32, 0x35, 0x36, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x34, 0x35, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x31, 0x33, 0x35, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x33, 0x35, 0x37, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x33, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x32, 0x34, 0x36, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x33, 0x35, 0x36, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x33, 0x34, 0x36, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x34, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x38, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x33, 0x35, 0x37, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x32, 0x34, 0x36, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x33, 0x34, 0x36, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x33, 0x35, 0x36, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x32, 0x34, 0x36, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x33, 0x35, 0x36, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x2D, 0x34, 0x38, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x32, 0x34, 0x2D, 0x36, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x33, 0x34, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x33, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x32, 0x35, 0x37, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x36, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x33, 0x35, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x33, 0x35, 0x37, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x34, 0x35, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x32, 0x31, 0x7C, 0x33, 0x5B, 0x31, 0x34, 0x36, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x33, 0x34, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x31, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x34, 0x36, 0x37, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x33, 0x36, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x32, 0x34, 0x37, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x33, 0x35, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x33, 0x35, 0x37, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x33, 0x34, 0x36, 0x37, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x33, 0x36, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x34, 0x37, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x34, 0x36, 0x38, 0x5D, 0x29, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x23, 0x0A, 0x10, 0x28, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x31, 0x2C, 0x36, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x2F, 0x24, 0x32, 0x1A, 0x01, 0x33, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x30, 0x0A, 0x14, 0x28, 0x5B, 0x31, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x0A, 0x31, 0x5B, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x38, 0x30, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x43, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x31, 0x30, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x0A, 0x28, 0x3F, 0x3A, 0x31, 0x38, 0x7C, 0x39, 0x30, 0x29, 0x30, 0x1A, 0x0D, 0x31, 0x38, 0x30, 0x7C, 0x39, 0x30, 0x30, 0x5B, 0x31, 0x33, 0x35, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2B, 0x0A, 0x13, 0x28, 0x37, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x03, 0x37, 0x30, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x32, 0x12, 0x1C, 0x31, 0x36, 0x28, 0x3F, 0x3A, 0x34, 0x5C, 0x64, 0x7B, 0x31, 0x2C, 0x31, 0x30, 0x7D, 0x7C, 0x5B, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x31, 0x2C, 0x31, 0x31, 0x7D, 0x29, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x31, 0x34, 0x7D, 0x32, 0x08, 0x31, 0x36, 0x34, 0x31, 0x32, 0x33, 0x34, 0x35, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xE1, 0x01, 0x0A, 0x13, 0x12, 0x0A, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x12, 0x27, 0x12, 0x16, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x35, 0x5D, 0x7C, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x32, 0x06, 0x32, 0x35, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x1B, 0x12, 0x0A, 0x5B, 0x36, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x32, 0x06, 0x36, 0x30, 0x31, 0x32, 0x33, 0x34, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x44, 0x4A, 0x50, 0xFD, 0x01, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x25, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xE5, 0x02, 0x0A, 0x13, 0x12, 0x0A, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x12, 0x4E, 0x12, 0x3B, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x36, 0x2D, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x33, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x49, 0x12, 0x36, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x32, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x32, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x33, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x38, 0x31, 0x7C, 0x39, 0x39, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x1A, 0x12, 0x07, 0x38, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x1A, 0x12, 0x07, 0x39, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x39, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x44, 0x4B, 0x50, 0x2D, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x31, 0x0A, 0x1E, 0x28, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x90, 0x03, 0x0A, 0x1E, 0x12, 0x0B, 0x5B, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x12, 0x52, 0x12, 0x33, 0x37, 0x36, 0x37, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x35, 0x35, 0x7C, 0x36, 0x36, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x32, 0x35, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x35, 0x30, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x37, 0x36, 0x37, 0x34, 0x32, 0x30, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x45, 0x12, 0x2F, 0x37, 0x36, 0x37, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x33, 0x34, 0x36, 0x5D, 0x35, 0x7C, 0x37, 0x5B, 0x35, 0x2D, 0x37, 0x5D, 0x29, 0x7C, 0x33, 0x31, 0x5B, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x36, 0x31, 0x5B, 0x34, 0x2D, 0x36, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x37, 0x36, 0x37, 0x32, 0x32, 0x35, 0x31, 0x32, 0x33, 0x34, 0x22, 0x33, 0x12, 0x1D, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x38, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x23, 0x12, 0x0D, 0x39, 0x30, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x2D, 0x12, 0x17, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x33, 0x33, 0x7C, 0x34, 0x34, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x44, 0x4D, 0x50, 0x01, 0x5A, 0x03, 0x30, 0x31, 0x31, 0x62, 0x01, 0x31, 0x7A, 0x01, 0x31, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xBA, 0x01, 0x03, 0x37, 0x36, 0x37, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xDF, 0x02, 0x0A, 0x1D, 0x12, 0x0A, 0x5B, 0x35, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x12, 0x30, 0x12, 0x11, 0x38, 0x5B, 0x30, 0x32, 0x34, 0x5D, 0x39, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x38, 0x30, 0x39, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x30, 0x12, 0x11, 0x38, 0x5B, 0x30, 0x32, 0x34, 0x5D, 0x39, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x38, 0x30, 0x39, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x33, 0x12, 0x1D, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x38, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x23, 0x12, 0x0D, 0x39, 0x30, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x2D, 0x12, 0x17, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x33, 0x33, 0x7C, 0x34, 0x34, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x44, 0x4F, 0x50, 0x01, 0x5A, 0x03, 0x30, 0x31, 0x31, 0x62, 0x01, 0x31, 0x7A, 0x01, 0x31, 0x90, 0x01, 0x01, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xBA, 0x01, 0x07, 0x38, 0x5B, 0x30, 0x32, 0x34, 0x5D, 0x39, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x93, 0x04, 0x0A, 0x21, 0x12, 0x16, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x7C, 0x5B, 0x35, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x39, 0x7D, 0x12, 0x47, 0x12, 0x32, 0x28, 0x3F, 0x3A, 0x31, 0x5C, 0x64, 0x7C, 0x32, 0x5B, 0x30, 0x31, 0x34, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x31, 0x33, 0x35, 0x36, 0x38, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x39, 0x36, 0x31, 0x39, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x39, 0x7D, 0x32, 0x08, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x2E, 0x12, 0x1A, 0x28, 0x3F, 0x3A, 0x35, 0x5B, 0x35, 0x36, 0x5D, 0x7C, 0x36, 0x5B, 0x36, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x37, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x35, 0x35, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x1C, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x23, 0x12, 0x0F, 0x38, 0x30, 0x5B, 0x33, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x31, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x38, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x20, 0x12, 0x0C, 0x38, 0x30, 0x5B, 0x31, 0x32, 0x5D, 0x31, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x1F, 0x12, 0x0B, 0x39, 0x38, 0x5B, 0x32, 0x33, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x39, 0x38, 0x33, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x4A, 0x02, 0x44, 0x5A, 0x50, 0xD5, 0x01, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x3B, 0x0A, 0x1E, 0x28, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x05, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x3E, 0x0A, 0x21, 0x28, 0x5B, 0x35, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x05, 0x5B, 0x35, 0x2D, 0x38, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x33, 0x0A, 0x1A, 0x28, 0x39, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x01, 0x39, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xF7, 0x03, 0x0A, 0x20, 0x12, 0x14, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x7C, 0x31, 0x5C, 0x64, 0x7B, 0x39, 0x2C, 0x31, 0x30, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x31, 0x7D, 0x12, 0x24, 0x12, 0x0F, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x1C, 0x12, 0x09, 0x5B, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x39, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x25, 0x12, 0x0B, 0x31, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x1A, 0x09, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x2C, 0x31, 0x31, 0x7D, 0x32, 0x0B, 0x31, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x45, 0x43, 0x50, 0xD1, 0x04, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x2E, 0x0A, 0x12, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x05, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x2E, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x04, 0x5B, 0x38, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2B, 0x0A, 0x16, 0x28, 0x31, 0x38, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x31, 0x22, 0x02, 0x24, 0x31, 0x2A, 0x00, 0xA2, 0x01, 0x27, 0x0A, 0x12, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x05, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x2A, 0x00, 0xA2, 0x01, 0x29, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x04, 0x5B, 0x38, 0x39, 0x5D, 0x2A, 0x00, 0xA2, 0x01, 0x27, 0x0A, 0x16, 0x28, 0x31, 0x38, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xE9, 0x05, 0x0A, 0x23, 0x12, 0x17, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x7C, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0x42, 0x12, 0x2E, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x32, 0x33, 0x35, 0x38, 0x39, 0x5D, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x30, 0x5C, 0x64, 0x7C, 0x5B, 0x33, 0x2D, 0x38, 0x5D, 0x29, 0x7C, 0x36, 0x5C, 0x64, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x38, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x32, 0x07, 0x33, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x1A, 0x69, 0x12, 0x54, 0x28, 0x3F, 0x3A, 0x35, 0x5C, 0x64, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x32, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x7C, 0x31, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7C, 0x39, 0x35, 0x29, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x34, 0x37, 0x38, 0x5D, 0x5C, 0x64, 0x7C, 0x36, 0x34, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x7C, 0x36, 0x35, 0x5B, 0x31, 0x2D, 0x35, 0x38, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x32, 0x08, 0x35, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x32, 0x12, 0x1C, 0x38, 0x30, 0x30, 0x28, 0x3F, 0x3A, 0x30, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x7C, 0x31, 0x5C, 0x64, 0x7C, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x08, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x2A, 0x1A, 0x12, 0x08, 0x39, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x1F, 0x12, 0x0C, 0x37, 0x30, 0x5B, 0x30, 0x2D, 0x32, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x37, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x45, 0x45, 0x50, 0xF4, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x9C, 0x01, 0x0A, 0x15, 0x28, 0x5B, 0x33, 0x34, 0x2D, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x2D, 0x5B, 0x33, 0x36, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x33, 0x2D, 0x38, 0x5D, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x2D, 0x32, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x34, 0x37, 0x38, 0x5D, 0x7C, 0x36, 0x5B, 0x34, 0x35, 0x5D, 0x29, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x1A, 0x49, 0x5B, 0x33, 0x36, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x33, 0x2D, 0x38, 0x5D, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x32, 0x5D, 0x7C, 0x31, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x2D, 0x38, 0x5D, 0x7C, 0x39, 0x35, 0x29, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x34, 0x37, 0x38, 0x5D, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x34, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x35, 0x38, 0x39, 0x5D, 0x29, 0x29, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x26, 0x0A, 0x12, 0x28, 0x37, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x02, 0x37, 0x30, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x2F, 0x0A, 0x14, 0x28, 0x38, 0x30, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x03, 0x38, 0x30, 0x30, 0x1A, 0x04, 0x38, 0x30, 0x30, 0x30, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x4F, 0x0A, 0x15, 0x28, 0x5B, 0x34, 0x35, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x12, 0x34, 0x30, 0x7C, 0x35, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x29, 0x1A, 0x17, 0x34, 0x30, 0x7C, 0x35, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x29, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x1F, 0x12, 0x0D, 0x38, 0x30, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x38, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x98, 0x04, 0x0A, 0x23, 0x12, 0x17, 0x31, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x39, 0x7D, 0x7C, 0x5B, 0x32, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0xAF, 0x01, 0x12, 0x98, 0x01, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x33, 0x35, 0x5D, 0x5B, 0x32, 0x33, 0x5D, 0x7C, 0x32, 0x5B, 0x32, 0x33, 0x5D, 0x5C, 0x64, 0x7C, 0x33, 0x5C, 0x64, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x32, 0x2D, 0x34, 0x5D, 0x7C, 0x5B, 0x35, 0x37, 0x38, 0x5D, 0x5B, 0x32, 0x33, 0x5D, 0x7C, 0x36, 0x34, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x32, 0x33, 0x34, 0x5D, 0x7C, 0x5B, 0x35, 0x37, 0x5D, 0x5B, 0x32, 0x33, 0x5D, 0x29, 0x7C, 0x36, 0x5B, 0x32, 0x34, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x33, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x38, 0x5D, 0x5B, 0x32, 0x2D, 0x34, 0x5D, 0x7C, 0x34, 0x32, 0x7C, 0x36, 0x5B, 0x32, 0x33, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x35, 0x5D, 0x32, 0x7C, 0x33, 0x5B, 0x32, 0x34, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x33, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x2D, 0x34, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x31, 0x5B, 0x36, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x30, 0x1A, 0x23, 0x12, 0x0F, 0x31, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x31, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x1E, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x1E, 0x12, 0x08, 0x39, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x45, 0x47, 0x50, 0x14, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x23, 0x0A, 0x0D, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x04, 0x5B, 0x32, 0x33, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x30, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x10, 0x5B, 0x31, 0x34, 0x2D, 0x36, 0x5D, 0x7C, 0x5B, 0x38, 0x39, 0x5D, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x31, 0x0A, 0x16, 0x28, 0x5B, 0x38, 0x39, 0x5D, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x06, 0x5B, 0x38, 0x39, 0x5D, 0x30, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x89, 0x02, 0x0A, 0x15, 0x12, 0x0A, 0x5B, 0x31, 0x37, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x12, 0x3D, 0x12, 0x29, 0x31, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x31, 0x32, 0x35, 0x36, 0x38, 0x5D, 0x7C, 0x32, 0x30, 0x7C, 0x34, 0x30, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x5B, 0x31, 0x34, 0x36, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x7C, 0x38, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x32, 0x07, 0x38, 0x33, 0x37, 0x30, 0x33, 0x36, 0x32, 0x1A, 0x25, 0x12, 0x13, 0x31, 0x37, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x7C, 0x37, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x37, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x45, 0x52, 0x50, 0xA3, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x25, 0x0A, 0x12, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xD5, 0x02, 0x0A, 0x13, 0x12, 0x0A, 0x5B, 0x35, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x12, 0x22, 0x12, 0x0E, 0x5B, 0x38, 0x39, 0x5D, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x1A, 0x12, 0x06, 0x36, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x36, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x1F, 0x12, 0x0B, 0x5B, 0x38, 0x39, 0x5D, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x20, 0x12, 0x0C, 0x38, 0x30, 0x5B, 0x33, 0x36, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x33, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x1F, 0x12, 0x0B, 0x39, 0x30, 0x5B, 0x31, 0x32, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x39, 0x30, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x3A, 0x1B, 0x12, 0x07, 0x37, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x37, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x45, 0x53, 0x50, 0x22, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x34, 0x0A, 0x21, 0x28, 0x5B, 0x35, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x1B, 0x12, 0x07, 0x35, 0x31, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x35, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x0A, 0xF5, 0x06, 0x0A, 0x16, 0x12, 0x0B, 0x5B, 0x31, 0x2D, 0x35, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x12, 0xA6, 0x05, 0x12, 0x8F, 0x05, 0x28, 0x3F, 0x3A, 0x31, 0x31, 0x28, 0x3F, 0x3A, 0x31, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x31, 0x32, 0x34, 0x5D, 0x7C, 0x32, 0x5B, 0x32, 0x2D, 0x35, 0x37, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x7C, 0x35, 0x5B, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x38, 0x5B, 0x36, 0x2D, 0x38, 0x5D, 0x29, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x31, 0x33, 0x7C, 0x33, 0x5B, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x38, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x2D, 0x36, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x32, 0x38, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x32, 0x38, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x7C, 0x38, 0x37, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x36, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x2D, 0x34, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x32, 0x33, 0x5D, 0x7C, 0x36, 0x5B, 0x35, 0x2D, 0x38, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x35, 0x37, 0x5D, 0x7C, 0x34, 0x34, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x31, 0x38, 0x7C, 0x32, 0x5B, 0x36, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x2D, 0x35, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x31, 0x35, 0x2D, 0x38, 0x5D, 0x29, 0x29, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x31, 0x31, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x32, 0x5B, 0x30, 0x2D, 0x37, 0x5D, 0x7C, 0x33, 0x33, 0x5C, 0x64, 0x7C, 0x34, 0x34, 0x5B, 0x31, 0x34, 0x36, 0x37, 0x5D, 0x7C, 0x36, 0x36, 0x5B, 0x31, 0x2D, 0x36, 0x38, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x31, 0x31, 0x5B, 0x31, 0x32, 0x34, 0x2D, 0x36, 0x5D, 0x7C, 0x33, 0x33, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x34, 0x34, 0x5B, 0x31, 0x34, 0x36, 0x37, 0x5D, 0x7C, 0x35, 0x35, 0x5B, 0x31, 0x34, 0x5D, 0x7C, 0x36, 0x36, 0x5B, 0x31, 0x2D, 0x33, 0x36, 0x37, 0x39, 0x5D, 0x7C, 0x37, 0x37, 0x5B, 0x31, 0x32, 0x34, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x38, 0x38, 0x30, 0x29, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x33, 0x28, 0x3F, 0x3A, 0x31, 0x31, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x32, 0x32, 0x5B, 0x30, 0x2D, 0x36, 0x5D, 0x7C, 0x33, 0x33, 0x5B, 0x30, 0x31, 0x33, 0x34, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x34, 0x34, 0x5B, 0x30, 0x34, 0x5D, 0x7C, 0x35, 0x35, 0x5B, 0x30, 0x2D, 0x36, 0x5D, 0x7C, 0x36, 0x36, 0x5B, 0x30, 0x31, 0x34, 0x36, 0x37, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x34, 0x34, 0x5B, 0x30, 0x2D, 0x38, 0x5D, 0x7C, 0x35, 0x35, 0x5B, 0x30, 0x2D, 0x36, 0x39, 0x5D, 0x7C, 0x36, 0x36, 0x5B, 0x30, 0x2D, 0x33, 0x5D, 0x7C, 0x37, 0x37, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x29, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x36, 0x28, 0x3F, 0x3A, 0x32, 0x32, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x2D, 0x37, 0x5D, 0x7C, 0x33, 0x33, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x7C, 0x34, 0x34, 0x5B, 0x31, 0x33, 0x2D, 0x36, 0x39, 0x5D, 0x7C, 0x35, 0x35, 0x5B, 0x31, 0x34, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x36, 0x36, 0x30, 0x7C, 0x38, 0x38, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x31, 0x31, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x32, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x33, 0x5B, 0x31, 0x33, 0x2D, 0x37, 0x5D, 0x7C, 0x34, 0x34, 0x5B, 0x31, 0x33, 0x2D, 0x36, 0x5D, 0x7C, 0x35, 0x35, 0x5B, 0x31, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x29, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x37, 0x28, 0x3F, 0x3A, 0x32, 0x32, 0x37, 0x7C, 0x35, 0x35, 0x5B, 0x30, 0x35, 0x5D, 0x7C, 0x28, 0x3F, 0x3A, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x29, 0x5B, 0x31, 0x34, 0x2D, 0x38, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x31, 0x31, 0x5B, 0x31, 0x34, 0x39, 0x5D, 0x7C, 0x32, 0x32, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x33, 0x33, 0x5B, 0x30, 0x2D, 0x36, 0x38, 0x5D, 0x7C, 0x34, 0x34, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x38, 0x5D, 0x7C, 0x35, 0x35, 0x30, 0x7C, 0x36, 0x36, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x7C, 0x37, 0x37, 0x5C, 0x64, 0x29, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x31, 0x31, 0x31, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x1A, 0x20, 0x12, 0x0C, 0x39, 0x31, 0x5B, 0x30, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x39, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x45, 0x54, 0x50, 0xFB, 0x01, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x2B, 0x0A, 0x18, 0x28, 0x5B, 0x31, 0x2D, 0x35, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xA0, 0x05, 0x0A, 0x23, 0x12, 0x17, 0x31, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x31, 0x31, 0x7D, 0x7C, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x31, 0x30, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x31, 0x32, 0x7D, 0x12, 0x7A, 0x12, 0x62, 0x31, 0x28, 0x3F, 0x3A, 0x5B, 0x33, 0x35, 0x36, 0x38, 0x39, 0x5D, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x39, 0x7D, 0x7C, 0x5B, 0x34, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x31, 0x30, 0x7D, 0x29, 0x7C, 0x32, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x39, 0x7D, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x39, 0x7D, 0x7C, 0x39, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x38, 0x7D, 0x29, 0x7C, 0x5B, 0x35, 0x36, 0x38, 0x39, 0x5D, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x39, 0x7D, 0x7C, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x31, 0x32, 0x7D, 0x32, 0x0A, 0x31, 0x33, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x2A, 0x12, 0x13, 0x34, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x31, 0x30, 0x7D, 0x7C, 0x35, 0x30, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x38, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x31, 0x7D, 0x32, 0x09, 0x34, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x22, 0x12, 0x0A, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x37, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x23, 0x12, 0x0D, 0x5B, 0x36, 0x37, 0x5D, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x36, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x36, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x46, 0x49, 0x50, 0xE6, 0x02, 0x5A, 0x0A, 0x30, 0x30, 0x7C, 0x39, 0x39, 0x5B, 0x30, 0x34, 0x39, 0x5D, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x37, 0x0A, 0x11, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x31, 0x30, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x14, 0x32, 0x5B, 0x30, 0x39, 0x5D, 0x7C, 0x5B, 0x31, 0x34, 0x5D, 0x7C, 0x35, 0x30, 0x7C, 0x37, 0x5B, 0x31, 0x33, 0x35, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2E, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x31, 0x31, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x0E, 0x5B, 0x32, 0x35, 0x36, 0x38, 0x39, 0x5D, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x33, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2A, 0x0A, 0x12, 0x28, 0x5B, 0x36, 0x2D, 0x38, 0x5D, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x37, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x06, 0x5B, 0x36, 0x2D, 0x38, 0x5D, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0xA1, 0x01, 0x12, 0x8A, 0x01, 0x31, 0x30, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x37, 0x7D, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x30, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x36, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x37, 0x7D, 0x7C, 0x32, 0x5B, 0x31, 0x34, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x31, 0x2C, 0x36, 0x7D, 0x7C, 0x5B, 0x33, 0x2D, 0x35, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x37, 0x7D, 0x7C, 0x39, 0x5B, 0x30, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x31, 0x2C, 0x36, 0x7D, 0x29, 0x7C, 0x39, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x38, 0x7D, 0x29, 0x7C, 0x33, 0x30, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x37, 0x7D, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x31, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x7C, 0x33, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x7C, 0x35, 0x5B, 0x30, 0x33, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x37, 0x7D, 0x29, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x08, 0x31, 0x30, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x0A, 0xD8, 0x02, 0x0A, 0x26, 0x12, 0x13, 0x5B, 0x33, 0x36, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x30, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x3F, 0x12, 0x2F, 0x12, 0x1D, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x30, 0x2D, 0x35, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x38, 0x5B, 0x35, 0x38, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x33, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x1A, 0x27, 0x12, 0x15, 0x28, 0x3F, 0x3A, 0x37, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x37, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x22, 0x20, 0x12, 0x09, 0x30, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x31, 0x7D, 0x32, 0x0B, 0x30, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x46, 0x4A, 0x50, 0xA7, 0x05, 0x5A, 0x09, 0x30, 0x28, 0x3F, 0x3A, 0x30, 0x7C, 0x35, 0x32, 0x29, 0x8A, 0x01, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x23, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x06, 0x5B, 0x33, 0x36, 0x2D, 0x39, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x28, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x30, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xD0, 0x01, 0x01, 0x0A, 0xAB, 0x01, 0x0A, 0x13, 0x12, 0x0A, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x12, 0x1B, 0x12, 0x0B, 0x5B, 0x32, 0x2D, 0x34, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x32, 0x05, 0x33, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x19, 0x12, 0x09, 0x5B, 0x35, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x32, 0x05, 0x35, 0x31, 0x32, 0x33, 0x34, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x46, 0x4B, 0x50, 0xF4, 0x03, 0x5A, 0x02, 0x30, 0x30, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xF4, 0x01, 0x0A, 0x12, 0x12, 0x09, 0x5B, 0x33, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x12, 0x30, 0x12, 0x1E, 0x33, 0x5B, 0x32, 0x33, 0x35, 0x37, 0x5D, 0x30, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x7C, 0x39, 0x5B, 0x32, 0x2D, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x33, 0x32, 0x30, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x30, 0x12, 0x1E, 0x33, 0x5B, 0x32, 0x33, 0x35, 0x37, 0x5D, 0x30, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x7C, 0x39, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x33, 0x35, 0x30, 0x31, 0x32, 0x33, 0x34, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x46, 0x4D, 0x50, 0xB3, 0x05, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x1B, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xDB, 0x02, 0x0A, 0x13, 0x12, 0x0A, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x12, 0x2A, 0x12, 0x19, 0x28, 0x3F, 0x3A, 0x32, 0x30, 0x7C, 0x5B, 0x33, 0x2D, 0x34, 0x5D, 0x5C, 0x64, 0x7C, 0x38, 0x5B, 0x31, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x32, 0x06, 0x32, 0x30, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x2C, 0x12, 0x1B, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5C, 0x64, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x37, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x32, 0x06, 0x32, 0x31, 0x31, 0x32, 0x33, 0x34, 0x22, 0x1F, 0x12, 0x0E, 0x38, 0x30, 0x5B, 0x32, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x32, 0x06, 0x38, 0x30, 0x32, 0x31, 0x32, 0x33, 0x2A, 0x34, 0x12, 0x23, 0x39, 0x30, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x33, 0x34, 0x35, 0x5D, 0x5B, 0x31, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x32, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x39, 0x39, 0x29, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x32, 0x06, 0x39, 0x30, 0x31, 0x31, 0x32, 0x33, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x24, 0x12, 0x13, 0x28, 0x3F, 0x3A, 0x36, 0x5B, 0x30, 0x2D, 0x33, 0x36, 0x5D, 0x7C, 0x38, 0x38, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x32, 0x06, 0x36, 0x30, 0x31, 0x32, 0x33, 0x34, 0x4A, 0x02, 0x46, 0x4F, 0x50, 0xAA, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x7A, 0x13, 0x28, 0x31, 0x30, 0x28, 0x3F, 0x3A, 0x30, 0x31, 0x7C, 0x5B, 0x31, 0x32, 0x5D, 0x30, 0x7C, 0x38, 0x38, 0x29, 0x29, 0x9A, 0x01, 0x17, 0x0A, 0x07, 0x28, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x29, 0x12, 0x02, 0x24, 0x31, 0x22, 0x00, 0x2A, 0x06, 0x24, 0x43, 0x43, 0x20, 0x24, 0x31, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xB7, 0x03, 0x0A, 0x13, 0x12, 0x0A, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x12, 0x1E, 0x12, 0x0A, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x1A, 0x26, 0x12, 0x12, 0x36, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x7C, 0x37, 0x5B, 0x35, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x36, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x1B, 0x12, 0x07, 0x38, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x23, 0x12, 0x0F, 0x38, 0x39, 0x5B, 0x31, 0x2D, 0x33, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x39, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x32, 0x12, 0x1E, 0x38, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x31, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x31, 0x35, 0x36, 0x5D, 0x7C, 0x38, 0x34, 0x7C, 0x39, 0x30, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x31, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x1A, 0x12, 0x06, 0x39, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x4A, 0x02, 0x46, 0x52, 0x50, 0x21, 0x5A, 0x08, 0x5B, 0x30, 0x34, 0x35, 0x37, 0x39, 0x5D, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x8A, 0x01, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x45, 0x0A, 0x24, 0x28, 0x5B, 0x31, 0x2D, 0x37, 0x39, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0E, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x20, 0x24, 0x35, 0x1A, 0x06, 0x5B, 0x31, 0x2D, 0x37, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x37, 0x0A, 0x1D, 0x28, 0x38, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x01, 0x38, 0x22, 0x04, 0x30, 0x20, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xEF, 0x03, 0x0A, 0x1C, 0x12, 0x11, 0x5B, 0x34, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x7C, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x38, 0x7D, 0x12, 0x5A, 0x12, 0x49, 0x28, 0x3F, 0x3A, 0x34, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x34, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7C, 0x32, 0x5B, 0x30, 0x34, 0x5D, 0x29, 0x7C, 0x28, 0x3F, 0x3A, 0x35, 0x5B, 0x30, 0x34, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5C, 0x64, 0x7C, 0x38, 0x5B, 0x32, 0x33, 0x36, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x32, 0x33, 0x36, 0x38, 0x5D, 0x29, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x32, 0x06, 0x34, 0x34, 0x31, 0x32, 0x33, 0x34, 0x1A, 0xAF, 0x01, 0x12, 0x9B, 0x01, 0x30, 0x28, 0x3F, 0x3A, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x38, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x2D, 0x32, 0x36, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x33, 0x38, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x33, 0x2D, 0x37, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x2D, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x2D, 0x35, 0x38, 0x39, 0x5D, 0x7C, 0x37, 0x31, 0x7C, 0x38, 0x33, 0x7C, 0x39, 0x5B, 0x35, 0x37, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x7C, 0x32, 0x5B, 0x38, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x33, 0x34, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x36, 0x37, 0x5D, 0x5C, 0x64, 0x7C, 0x38, 0x5B, 0x34, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x31, 0x34, 0x36, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x30, 0x36, 0x30, 0x33, 0x31, 0x32, 0x33, 0x34, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x47, 0x41, 0x50, 0xF1, 0x01, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x2C, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x05, 0x5B, 0x34, 0x2D, 0x39, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x30, 0x0A, 0x1A, 0x28, 0x30, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x01, 0x30, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xD0, 0x01, 0x01, 0x0A, 0xE4, 0x14, 0x0A, 0x14, 0x12, 0x08, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x30, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0xF9, 0x0A, 0x12, 0xE0, 0x0A, 0x32, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x31, 0x33, 0x37, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x31, 0x38, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x31, 0x37, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x31, 0x32, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x7C, 0x31, 0x28, 0x3F, 0x3A, 0x28, 0x3F, 0x3A, 0x31, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x30, 0x2D, 0x34, 0x38, 0x5D, 0x7C, 0x5B, 0x34, 0x36, 0x5D, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x31, 0x32, 0x37, 0x38, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x33, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x31, 0x33, 0x34, 0x39, 0x5D, 0x29, 0x7C, 0x32, 0x31, 0x5B, 0x30, 0x2D, 0x37, 0x5D, 0x7C, 0x33, 0x31, 0x5B, 0x30, 0x2D, 0x38, 0x5D, 0x7C, 0x5B, 0x34, 0x35, 0x39, 0x5D, 0x31, 0x5C, 0x64, 0x7C, 0x36, 0x31, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x31, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x33, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x5B, 0x35, 0x38, 0x5D, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x2D, 0x34, 0x37, 0x38, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5C, 0x64, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x5C, 0x64, 0x7C, 0x5B, 0x32, 0x35, 0x5D, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x32, 0x2D, 0x35, 0x37, 0x39, 0x5D, 0x7C, 0x5B, 0x34, 0x36, 0x38, 0x5D, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x32, 0x33, 0x35, 0x36, 0x37, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x34, 0x35, 0x37, 0x38, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x32, 0x38, 0x5D, 0x5B, 0x30, 0x32, 0x2D, 0x35, 0x37, 0x38, 0x39, 0x5D, 0x7C, 0x5B, 0x33, 0x37, 0x5D, 0x5C, 0x64, 0x7C, 0x34, 0x5B, 0x30, 0x32, 0x2D, 0x36, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x38, 0x5D, 0x7C, 0x5B, 0x36, 0x39, 0x5D, 0x5B, 0x30, 0x2D, 0x37, 0x39, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x32, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x31, 0x35, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5C, 0x64, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x2D, 0x35, 0x37, 0x38, 0x39, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x33, 0x34, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x5B, 0x33, 0x38, 0x5D, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x34, 0x36, 0x37, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x36, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x31, 0x32, 0x34, 0x35, 0x37, 0x38, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x32, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5C, 0x64, 0x7C, 0x33, 0x5B, 0x30, 0x32, 0x33, 0x36, 0x37, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x2D, 0x35, 0x37, 0x38, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x32, 0x2D, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x2D, 0x36, 0x39, 0x5D, 0x7C, 0x37, 0x5C, 0x64, 0x7C, 0x38, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x32, 0x35, 0x36, 0x39, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x32, 0x2D, 0x35, 0x38, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x32, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x35, 0x37, 0x38, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x35, 0x37, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x33, 0x34, 0x37, 0x38, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x31, 0x32, 0x34, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x38, 0x5C, 0x64, 0x7C, 0x39, 0x5B, 0x32, 0x2D, 0x35, 0x37, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x31, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x30, 0x28, 0x3F, 0x3A, 0x34, 0x36, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x7C, 0x38, 0x37, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x35, 0x34, 0x35, 0x5B, 0x31, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x37, 0x36, 0x28, 0x3F, 0x3A, 0x32, 0x5C, 0x64, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x37, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x34, 0x37, 0x38, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x33, 0x34, 0x35, 0x5D, 0x29, 0x29, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x36, 0x33, 0x38, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x7C, 0x36, 0x34, 0x37, 0x5B, 0x32, 0x33, 0x5D, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x34, 0x37, 0x5B, 0x30, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x34, 0x5B, 0x30, 0x31, 0x35, 0x37, 0x38, 0x39, 0x5D, 0x29, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x30, 0x34, 0x34, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x7C, 0x32, 0x30, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x32, 0x33, 0x5D, 0x7C, 0x38, 0x5C, 0x64, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x30, 0x28, 0x3F, 0x3A, 0x33, 0x30, 0x7C, 0x35, 0x5B, 0x32, 0x2D, 0x35, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x29, 0x7C, 0x31, 0x34, 0x30, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x35, 0x32, 0x7C, 0x38, 0x37, 0x5B, 0x31, 0x32, 0x33, 0x5D, 0x29, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x32, 0x34, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x32, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x36, 0x5C, 0x64, 0x29, 0x7C, 0x32, 0x37, 0x36, 0x5C, 0x64, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x32, 0x36, 0x5B, 0x30, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x38, 0x36, 0x29, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x30, 0x36, 0x28, 0x3F, 0x3A, 0x34, 0x5C, 0x64, 0x7C, 0x37, 0x5B, 0x34, 0x2D, 0x37, 0x39, 0x5D, 0x29, 0x7C, 0x32, 0x39, 0x35, 0x5B, 0x35, 0x36, 0x37, 0x5D, 0x7C, 0x33, 0x35, 0x5B, 0x33, 0x34, 0x5D, 0x5C, 0x64, 0x7C, 0x34, 0x37, 0x28, 0x3F, 0x3A, 0x32, 0x34, 0x7C, 0x36, 0x31, 0x29, 0x7C, 0x35, 0x39, 0x28, 0x3F, 0x3A, 0x35, 0x5B, 0x30, 0x38, 0x5D, 0x7C, 0x36, 0x5B, 0x36, 0x37, 0x5D, 0x7C, 0x37, 0x34, 0x29, 0x7C, 0x39, 0x35, 0x35, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x32, 0x36, 0x28, 0x3F, 0x3A, 0x36, 0x5B, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x37, 0x5D, 0x29, 0x7C, 0x34, 0x34, 0x32, 0x5C, 0x64, 0x7C, 0x35, 0x30, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x2D, 0x33, 0x5D, 0x7C, 0x5B, 0x33, 0x2D, 0x36, 0x38, 0x5D, 0x32, 0x7C, 0x37, 0x36, 0x29, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x32, 0x37, 0x5B, 0x35, 0x36, 0x5D, 0x5C, 0x64, 0x7C, 0x33, 0x37, 0x28, 0x3F, 0x3A, 0x35, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x33, 0x39, 0x5D, 0x29, 0x7C, 0x38, 0x34, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x32, 0x2D, 0x35, 0x38, 0x5D, 0x29, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x30, 0x28, 0x3F, 0x3A, 0x30, 0x28, 0x3F, 0x3A, 0x36, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x38, 0x35, 0x29, 0x7C, 0x35, 0x32, 0x5C, 0x64, 0x29, 0x7C, 0x33, 0x35, 0x38, 0x33, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x36, 0x36, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x38, 0x31, 0x29, 0x29, 0x7C, 0x36, 0x33, 0x28, 0x3F, 0x3A, 0x32, 0x33, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x29, 0x7C, 0x39, 0x35, 0x36, 0x31, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x7C, 0x31, 0x37, 0x36, 0x38, 0x38, 0x38, 0x5B, 0x32, 0x33, 0x34, 0x36, 0x37, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x7C, 0x31, 0x36, 0x39, 0x37, 0x37, 0x5B, 0x32, 0x33, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0xB0, 0x01, 0x12, 0x99, 0x01, 0x37, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x5C, 0x64, 0x5C, 0x64, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x2D, 0x38, 0x5D, 0x7C, 0x5B, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x32, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x7C, 0x38, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x31, 0x34, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x5B, 0x32, 0x33, 0x5D, 0x5B, 0x30, 0x2D, 0x38, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x34, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x31, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x37, 0x34, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x48, 0x12, 0x27, 0x38, 0x30, 0x28, 0x3F, 0x3A, 0x30, 0x28, 0x3F, 0x3A, 0x31, 0x31, 0x31, 0x31, 0x7C, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x29, 0x7C, 0x38, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x29, 0x7C, 0x35, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x11, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x39, 0x12, 0x23, 0x28, 0x3F, 0x3A, 0x38, 0x37, 0x5B, 0x31, 0x32, 0x33, 0x5D, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x31, 0x5D, 0x5C, 0x64, 0x7C, 0x38, 0x5B, 0x30, 0x2D, 0x33, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x32, 0x42, 0x12, 0x23, 0x38, 0x28, 0x3F, 0x3A, 0x34, 0x28, 0x3F, 0x3A, 0x35, 0x34, 0x36, 0x34, 0x5C, 0x64, 0x7C, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x29, 0x7C, 0x37, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x29, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x38, 0x34, 0x33, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x3A, 0x1D, 0x12, 0x07, 0x37, 0x30, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x37, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x1D, 0x12, 0x07, 0x35, 0x36, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x36, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x4A, 0x02, 0x47, 0x42, 0x50, 0x2C, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x6A, 0x02, 0x20, 0x78, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x37, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x0D, 0x32, 0x7C, 0x35, 0x5B, 0x35, 0x36, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x36, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x3D, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x13, 0x31, 0x28, 0x3F, 0x3A, 0x31, 0x7C, 0x5C, 0x64, 0x31, 0x29, 0x7C, 0x33, 0x7C, 0x39, 0x5B, 0x30, 0x31, 0x38, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x8C, 0x01, 0x0A, 0x10, 0x28, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x35, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x16, 0x31, 0x28, 0x3F, 0x3A, 0x33, 0x38, 0x7C, 0x35, 0x5B, 0x32, 0x33, 0x5D, 0x7C, 0x36, 0x39, 0x7C, 0x37, 0x36, 0x7C, 0x39, 0x34, 0x29, 0x1A, 0x1F, 0x31, 0x28, 0x3F, 0x3A, 0x33, 0x38, 0x37, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x32, 0x34, 0x7C, 0x33, 0x39, 0x29, 0x7C, 0x36, 0x39, 0x37, 0x7C, 0x37, 0x36, 0x38, 0x7C, 0x39, 0x34, 0x36, 0x29, 0x1A, 0x31, 0x31, 0x28, 0x3F, 0x3A, 0x33, 0x38, 0x37, 0x33, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x32, 0x34, 0x32, 0x7C, 0x33, 0x39, 0x5B, 0x34, 0x35, 0x36, 0x5D, 0x29, 0x7C, 0x36, 0x39, 0x37, 0x5B, 0x33, 0x34, 0x37, 0x5D, 0x7C, 0x37, 0x36, 0x38, 0x5B, 0x33, 0x34, 0x37, 0x5D, 0x7C, 0x39, 0x34, 0x36, 0x37, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x24, 0x0A, 0x11, 0x28, 0x31, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x36, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x01, 0x31, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2A, 0x0A, 0x0F, 0x28, 0x37, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x09, 0x37, 0x5B, 0x31, 0x2D, 0x35, 0x37, 0x38, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x3F, 0x0A, 0x0C, 0x28, 0x38, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x03, 0x38, 0x30, 0x30, 0x1A, 0x04, 0x38, 0x30, 0x30, 0x31, 0x1A, 0x05, 0x38, 0x30, 0x30, 0x31, 0x31, 0x1A, 0x06, 0x38, 0x30, 0x30, 0x31, 0x31, 0x31, 0x1A, 0x07, 0x38, 0x30, 0x30, 0x31, 0x31, 0x31, 0x31, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x3B, 0x0A, 0x0E, 0x28, 0x38, 0x34, 0x35, 0x29, 0x28, 0x34, 0x36, 0x29, 0x28, 0x34, 0x5C, 0x64, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x03, 0x38, 0x34, 0x35, 0x1A, 0x04, 0x38, 0x34, 0x35, 0x34, 0x1A, 0x05, 0x38, 0x34, 0x35, 0x34, 0x36, 0x1A, 0x06, 0x38, 0x34, 0x35, 0x34, 0x36, 0x34, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x3D, 0x0A, 0x16, 0x28, 0x38, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x12, 0x38, 0x28, 0x3F, 0x3A, 0x34, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x33, 0x5D, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2B, 0x0A, 0x14, 0x28, 0x38, 0x30, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x02, 0x38, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x27, 0x0A, 0x0F, 0x28, 0x5B, 0x35, 0x38, 0x5D, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x06, 0x5B, 0x35, 0x38, 0x5D, 0x30, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x51, 0x12, 0x3B, 0x37, 0x36, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x31, 0x32, 0x5D, 0x7C, 0x32, 0x5B, 0x33, 0x35, 0x36, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x31, 0x33, 0x34, 0x5D, 0x7C, 0x35, 0x5B, 0x34, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x2D, 0x33, 0x36, 0x39, 0x5D, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x31, 0x7C, 0x39, 0x5B, 0x33, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x37, 0x36, 0x34, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0xB0, 0x01, 0x01, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x29, 0x12, 0x13, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x30, 0x33, 0x34, 0x37, 0x5D, 0x7C, 0x35, 0x35, 0x29, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x35, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x0A, 0xC3, 0x03, 0x0A, 0x1E, 0x12, 0x0B, 0x5B, 0x34, 0x35, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x12, 0x85, 0x01, 0x12, 0x66, 0x34, 0x37, 0x33, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x30, 0x2D, 0x32, 0x5D, 0x7C, 0x36, 0x39, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x38, 0x39, 0x5D, 0x7C, 0x38, 0x36, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x36, 0x5D, 0x38, 0x7C, 0x33, 0x5B, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x34, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x35, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x37, 0x33, 0x7C, 0x39, 0x30, 0x29, 0x7C, 0x36, 0x33, 0x5B, 0x36, 0x38, 0x5D, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x35, 0x38, 0x7C, 0x38, 0x34, 0x29, 0x7C, 0x39, 0x33, 0x38, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x34, 0x37, 0x33, 0x32, 0x36, 0x39, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x44, 0x12, 0x2E, 0x34, 0x37, 0x33, 0x28, 0x3F, 0x3A, 0x34, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x33, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x30, 0x7C, 0x35, 0x38, 0x29, 0x7C, 0x35, 0x33, 0x5B, 0x33, 0x2D, 0x38, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x34, 0x37, 0x33, 0x34, 0x30, 0x33, 0x31, 0x32, 0x33, 0x34, 0x22, 0x33, 0x12, 0x1D, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x38, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x23, 0x12, 0x0D, 0x39, 0x30, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x2D, 0x12, 0x17, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x33, 0x33, 0x7C, 0x34, 0x34, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x47, 0x44, 0x50, 0x01, 0x5A, 0x03, 0x30, 0x31, 0x31, 0x62, 0x01, 0x31, 0x7A, 0x01, 0x31, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xBA, 0x01, 0x03, 0x34, 0x37, 0x33, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xBC, 0x03, 0x0A, 0x1E, 0x12, 0x13, 0x5B, 0x31, 0x33, 0x2D, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x7C, 0x38, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x39, 0x7D, 0x12, 0x67, 0x12, 0x52, 0x28, 0x3F, 0x3A, 0x33, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x35, 0x36, 0x5D, 0x5C, 0x64, 0x7C, 0x34, 0x5B, 0x31, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x31, 0x5C, 0x64, 0x7C, 0x32, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x33, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x38, 0x7D, 0x32, 0x08, 0x33, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x41, 0x12, 0x2E, 0x28, 0x3F, 0x3A, 0x31, 0x34, 0x7C, 0x35, 0x5B, 0x30, 0x31, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x31, 0x34, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x35, 0x35, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x1C, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x47, 0x45, 0x50, 0xE3, 0x07, 0x5A, 0x04, 0x38, 0x7E, 0x31, 0x30, 0x62, 0x01, 0x38, 0x7A, 0x01, 0x38, 0x9A, 0x01, 0x3C, 0x0A, 0x1C, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x07, 0x5B, 0x31, 0x33, 0x2D, 0x37, 0x39, 0x5D, 0x22, 0x04, 0x38, 0x20, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x34, 0x0A, 0x1A, 0x28, 0x38, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x01, 0x38, 0x22, 0x04, 0x38, 0x20, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x67, 0x0A, 0x00, 0x12, 0x00, 0x1A, 0x00, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x47, 0x46, 0x50, 0xD2, 0x04, 0x5A, 0x02, 0x30, 0x30, 0x90, 0x01, 0x01, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x93, 0x04, 0x0A, 0x1B, 0x12, 0x0F, 0x5B, 0x31, 0x33, 0x35, 0x37, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0x21, 0x12, 0x09, 0x31, 0x34, 0x38, 0x31, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x34, 0x38, 0x31, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x1A, 0x2B, 0x12, 0x15, 0x37, 0x28, 0x3F, 0x3A, 0x37, 0x38, 0x31, 0x7C, 0x38, 0x33, 0x39, 0x7C, 0x39, 0x31, 0x31, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x37, 0x37, 0x38, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x48, 0x12, 0x27, 0x38, 0x30, 0x28, 0x3F, 0x3A, 0x30, 0x28, 0x3F, 0x3A, 0x31, 0x31, 0x31, 0x31, 0x7C, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x29, 0x7C, 0x38, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x29, 0x7C, 0x35, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x11, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x39, 0x12, 0x23, 0x28, 0x3F, 0x3A, 0x38, 0x37, 0x5B, 0x31, 0x32, 0x33, 0x5D, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x31, 0x5D, 0x5C, 0x64, 0x7C, 0x38, 0x5B, 0x30, 0x2D, 0x33, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x32, 0x42, 0x12, 0x23, 0x38, 0x28, 0x3F, 0x3A, 0x34, 0x28, 0x3F, 0x3A, 0x35, 0x34, 0x36, 0x34, 0x5C, 0x64, 0x7C, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x29, 0x7C, 0x37, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x29, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x38, 0x34, 0x33, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x3A, 0x1D, 0x12, 0x07, 0x37, 0x30, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x37, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x1D, 0x12, 0x07, 0x35, 0x36, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x36, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x4A, 0x02, 0x47, 0x47, 0x50, 0x2C, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x6A, 0x02, 0x20, 0x78, 0x7A, 0x01, 0x30, 0xAA, 0x01, 0x51, 0x12, 0x3B, 0x37, 0x36, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x31, 0x32, 0x5D, 0x7C, 0x32, 0x5B, 0x33, 0x35, 0x36, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x31, 0x33, 0x34, 0x5D, 0x7C, 0x35, 0x5B, 0x34, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x2D, 0x33, 0x36, 0x39, 0x5D, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x31, 0x7C, 0x39, 0x5B, 0x33, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x37, 0x36, 0x34, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x29, 0x12, 0x13, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x30, 0x33, 0x34, 0x37, 0x5D, 0x7C, 0x35, 0x35, 0x29, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x35, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x0A, 0x84, 0x03, 0x0A, 0x17, 0x12, 0x0C, 0x5B, 0x32, 0x33, 0x35, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x38, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x12, 0x99, 0x01, 0x12, 0x82, 0x01, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x32, 0x33, 0x37, 0x5D, 0x5C, 0x64, 0x7C, 0x5B, 0x31, 0x36, 0x37, 0x5D, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x2D, 0x36, 0x5D, 0x7C, 0x37, 0x5C, 0x64, 0x29, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x2D, 0x35, 0x5D, 0x7C, 0x37, 0x5C, 0x64, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x2D, 0x33, 0x37, 0x5D, 0x7C, 0x37, 0x5C, 0x64, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x37, 0x5D, 0x5C, 0x64, 0x7C, 0x33, 0x30, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x2D, 0x37, 0x5D, 0x7C, 0x37, 0x5C, 0x64, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x2D, 0x32, 0x5D, 0x7C, 0x37, 0x5C, 0x64, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x32, 0x30, 0x7C, 0x37, 0x5C, 0x64, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x33, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x3E, 0x12, 0x2A, 0x32, 0x28, 0x3F, 0x3A, 0x28, 0x3F, 0x3A, 0x5B, 0x34, 0x37, 0x5D, 0x5C, 0x64, 0x7C, 0x30, 0x38, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x5B, 0x33, 0x36, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x29, 0x7C, 0x35, 0x34, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x32, 0x33, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x47, 0x48, 0x50, 0xE9, 0x01, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x28, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x8B, 0x02, 0x0A, 0x14, 0x12, 0x0B, 0x5B, 0x32, 0x35, 0x36, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x12, 0x32, 0x12, 0x1F, 0x32, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x5C, 0x64, 0x7C, 0x31, 0x36, 0x5B, 0x30, 0x2D, 0x37, 0x5D, 0x7C, 0x32, 0x32, 0x5B, 0x32, 0x34, 0x35, 0x37, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x1A, 0x25, 0x12, 0x12, 0x28, 0x3F, 0x3A, 0x35, 0x5B, 0x34, 0x2D, 0x38, 0x5D, 0x7C, 0x36, 0x30, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x35, 0x37, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x1A, 0x12, 0x07, 0x38, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x20, 0x12, 0x0D, 0x38, 0x5B, 0x31, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x38, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x1A, 0x12, 0x07, 0x38, 0x37, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x37, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x47, 0x49, 0x50, 0xDE, 0x02, 0x5A, 0x02, 0x30, 0x30, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x9D, 0x02, 0x0A, 0x15, 0x12, 0x0C, 0x5B, 0x31, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x12, 0x39, 0x12, 0x28, 0x28, 0x3F, 0x3A, 0x31, 0x39, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x34, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x34, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x39, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x32, 0x06, 0x33, 0x32, 0x31, 0x30, 0x30, 0x30, 0x1A, 0x20, 0x12, 0x0F, 0x5B, 0x32, 0x34, 0x35, 0x5D, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x32, 0x06, 0x32, 0x32, 0x31, 0x32, 0x33, 0x34, 0x22, 0x18, 0x12, 0x07, 0x38, 0x30, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x32, 0x06, 0x38, 0x30, 0x31, 0x32, 0x33, 0x34, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x1B, 0x12, 0x0A, 0x33, 0x5B, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x32, 0x06, 0x33, 0x38, 0x31, 0x32, 0x33, 0x34, 0x4A, 0x02, 0x47, 0x4C, 0x50, 0xAB, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x25, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xAD, 0x02, 0x0A, 0x13, 0x12, 0x0A, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x12, 0x7B, 0x12, 0x69, 0x28, 0x3F, 0x3A, 0x34, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x33, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x32, 0x34, 0x36, 0x37, 0x39, 0x5D, 0x7C, 0x5B, 0x36, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x35, 0x34, 0x5B, 0x30, 0x2D, 0x37, 0x5D, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x5B, 0x36, 0x37, 0x5D, 0x5C, 0x64, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x34, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x33, 0x35, 0x5D, 0x7C, 0x33, 0x5B, 0x35, 0x38, 0x5D, 0x7C, 0x34, 0x38, 0x29, 0x29, 0x7C, 0x38, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x35, 0x36, 0x36, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x1D, 0x12, 0x0B, 0x5B, 0x33, 0x36, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x33, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x47, 0x4D, 0x50, 0xDC, 0x01, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x1B, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xCF, 0x02, 0x0A, 0x14, 0x12, 0x0B, 0x5B, 0x33, 0x35, 0x36, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x12, 0x4B, 0x12, 0x38, 0x33, 0x30, 0x28, 0x3F, 0x3A, 0x32, 0x34, 0x7C, 0x33, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x33, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x38, 0x39, 0x5D, 0x7C, 0x5B, 0x37, 0x38, 0x5D, 0x31, 0x7C, 0x39, 0x5B, 0x31, 0x34, 0x37, 0x38, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x33, 0x30, 0x32, 0x34, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x5A, 0x12, 0x47, 0x35, 0x35, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x30, 0x28, 0x3F, 0x3A, 0x32, 0x5C, 0x64, 0x7C, 0x33, 0x5B, 0x33, 0x34, 0x36, 0x37, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x34, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x5B, 0x32, 0x34, 0x35, 0x37, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x34, 0x5D, 0x30, 0x7C, 0x33, 0x35, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x36, 0x30, 0x32, 0x30, 0x31, 0x32, 0x33, 0x34, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x47, 0x4E, 0x50, 0xE0, 0x01, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x2F, 0x0A, 0x1C, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xD4, 0x02, 0x0A, 0x12, 0x12, 0x09, 0x5B, 0x35, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x12, 0x51, 0x12, 0x3D, 0x35, 0x39, 0x30, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x2D, 0x36, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x32, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x36, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x31, 0x38, 0x5D, 0x7C, 0x5B, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x35, 0x39, 0x30, 0x32, 0x30, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x58, 0x12, 0x44, 0x36, 0x39, 0x30, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x31, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x35, 0x5D, 0x7C, 0x5B, 0x33, 0x2D, 0x35, 0x5D, 0x5C, 0x64, 0x7C, 0x36, 0x5B, 0x30, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x2D, 0x36, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x36, 0x39, 0x30, 0x33, 0x30, 0x31, 0x32, 0x33, 0x34, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x47, 0x50, 0x50, 0xCE, 0x04, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x29, 0x0A, 0x16, 0x28, 0x5B, 0x35, 0x36, 0x5D, 0x39, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xB0, 0x01, 0x01, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xF4, 0x02, 0x0A, 0x17, 0x12, 0x0C, 0x5B, 0x32, 0x33, 0x35, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x12, 0x48, 0x12, 0x32, 0x33, 0x28, 0x3F, 0x3A, 0x33, 0x28, 0x3F, 0x3A, 0x33, 0x5C, 0x64, 0x5B, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x5B, 0x34, 0x36, 0x5D, 0x29, 0x7C, 0x35, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x5B, 0x37, 0x2D, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x33, 0x33, 0x33, 0x30, 0x39, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x26, 0x12, 0x10, 0x28, 0x3F, 0x3A, 0x32, 0x32, 0x32, 0x7C, 0x35, 0x35, 0x31, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x32, 0x32, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x24, 0x12, 0x0E, 0x38, 0x30, 0x5C, 0x64, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x24, 0x12, 0x0E, 0x39, 0x30, 0x5C, 0x64, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x47, 0x51, 0x50, 0xF0, 0x01, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x2C, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x05, 0x5B, 0x32, 0x33, 0x35, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x21, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x04, 0x5B, 0x38, 0x39, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x81, 0x06, 0x0A, 0x15, 0x12, 0x0B, 0x5B, 0x32, 0x36, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x12, 0xF1, 0x02, 0x12, 0xDA, 0x02, 0x32, 0x28, 0x3F, 0x3A, 0x31, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x7C, 0x5B, 0x32, 0x38, 0x39, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x31, 0x5C, 0x64, 0x7C, 0x32, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x7C, 0x5B, 0x34, 0x35, 0x5D, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x37, 0x39, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x31, 0x5C, 0x64, 0x7C, 0x32, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x33, 0x2D, 0x35, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x31, 0x5C, 0x64, 0x7C, 0x32, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x32, 0x34, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x7C, 0x5B, 0x33, 0x39, 0x5D, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x31, 0x5C, 0x64, 0x7C, 0x33, 0x5B, 0x32, 0x34, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x32, 0x36, 0x39, 0x5D, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x34, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x31, 0x5C, 0x64, 0x7C, 0x5B, 0x32, 0x33, 0x5D, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x35, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x33, 0x34, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x35, 0x2D, 0x37, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x31, 0x5C, 0x64, 0x7C, 0x32, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x7C, 0x5B, 0x33, 0x34, 0x5D, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x1A, 0x1D, 0x12, 0x07, 0x36, 0x39, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x36, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x1E, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x21, 0x12, 0x0B, 0x39, 0x30, 0x5B, 0x31, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x32, 0x2B, 0x12, 0x15, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x36, 0x5D, 0x7C, 0x31, 0x32, 0x7C, 0x32, 0x35, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x3A, 0x1D, 0x12, 0x07, 0x37, 0x30, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x37, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x47, 0x52, 0x50, 0x1E, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x2C, 0x0A, 0x16, 0x28, 0x5B, 0x32, 0x37, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x04, 0x32, 0x31, 0x7C, 0x37, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x34, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x0D, 0x32, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x31, 0x7C, 0x5B, 0x36, 0x38, 0x39, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x2A, 0x0A, 0x0F, 0x28, 0x32, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x0C, 0x32, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xCB, 0x02, 0x0A, 0x28, 0x12, 0x15, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x7C, 0x31, 0x5B, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x12, 0x22, 0x12, 0x0F, 0x5B, 0x32, 0x36, 0x37, 0x5D, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x32, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x1A, 0x1D, 0x12, 0x0A, 0x5B, 0x33, 0x34, 0x35, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x35, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x22, 0x12, 0x0B, 0x31, 0x38, 0x5B, 0x30, 0x31, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x31, 0x7D, 0x32, 0x0B, 0x31, 0x38, 0x30, 0x30, 0x31, 0x31, 0x31, 0x32, 0x32, 0x32, 0x32, 0x2A, 0x1E, 0x12, 0x07, 0x31, 0x39, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x31, 0x7D, 0x32, 0x0B, 0x31, 0x39, 0x30, 0x30, 0x31, 0x31, 0x31, 0x32, 0x32, 0x32, 0x32, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x47, 0x54, 0x50, 0xF6, 0x03, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x22, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x05, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x28, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x31, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xE6, 0x05, 0x0A, 0x1E, 0x12, 0x0B, 0x5B, 0x35, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x12, 0xF4, 0x01, 0x12, 0xD4, 0x01, 0x36, 0x37, 0x31, 0x28, 0x3F, 0x3A, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x33, 0x5B, 0x33, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x33, 0x34, 0x39, 0x5D, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x5B, 0x32, 0x36, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x35, 0x36, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x33, 0x36, 0x37, 0x38, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x35, 0x35, 0x7C, 0x36, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x7C, 0x38, 0x38, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x32, 0x2D, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x33, 0x34, 0x5D, 0x7C, 0x37, 0x38, 0x7C, 0x38, 0x5B, 0x35, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x37, 0x39, 0x5D, 0x37, 0x7C, 0x32, 0x5B, 0x30, 0x31, 0x36, 0x37, 0x5D, 0x7C, 0x33, 0x5B, 0x34, 0x35, 0x5D, 0x7C, 0x38, 0x5B, 0x37, 0x38, 0x39, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x2D, 0x35, 0x37, 0x38, 0x39, 0x5D, 0x38, 0x7C, 0x36, 0x5B, 0x34, 0x38, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x32, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x37, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x37, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x37, 0x38, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x37, 0x38, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x36, 0x37, 0x31, 0x33, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x1A, 0xF4, 0x01, 0x12, 0xD4, 0x01, 0x36, 0x37, 0x31, 0x28, 0x3F, 0x3A, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x33, 0x5B, 0x33, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x33, 0x34, 0x39, 0x5D, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x5B, 0x32, 0x36, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x35, 0x36, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x33, 0x36, 0x37, 0x38, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x35, 0x35, 0x7C, 0x36, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x7C, 0x38, 0x38, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x32, 0x2D, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x33, 0x34, 0x5D, 0x7C, 0x37, 0x38, 0x7C, 0x38, 0x5B, 0x35, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x37, 0x39, 0x5D, 0x37, 0x7C, 0x32, 0x5B, 0x30, 0x31, 0x36, 0x37, 0x5D, 0x7C, 0x33, 0x5B, 0x34, 0x35, 0x5D, 0x7C, 0x38, 0x5B, 0x37, 0x38, 0x39, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x2D, 0x35, 0x37, 0x38, 0x39, 0x5D, 0x38, 0x7C, 0x36, 0x5B, 0x34, 0x38, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x32, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x37, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x37, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x37, 0x38, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x37, 0x38, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x36, 0x37, 0x31, 0x33, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x22, 0x33, 0x12, 0x1D, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x38, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x23, 0x12, 0x0D, 0x39, 0x30, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x2D, 0x12, 0x17, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x33, 0x33, 0x7C, 0x34, 0x34, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x47, 0x55, 0x50, 0x01, 0x5A, 0x03, 0x30, 0x31, 0x31, 0x62, 0x01, 0x31, 0x7A, 0x01, 0x31, 0x90, 0x01, 0x01, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xBA, 0x01, 0x03, 0x36, 0x37, 0x31, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xF6, 0x01, 0x0A, 0x14, 0x12, 0x0B, 0x5B, 0x33, 0x35, 0x36, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x12, 0x44, 0x12, 0x32, 0x33, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x31, 0x32, 0x35, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x32, 0x34, 0x35, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x7C, 0x37, 0x30, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x34, 0x36, 0x37, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x33, 0x32, 0x30, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x1C, 0x12, 0x0A, 0x5B, 0x35, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x35, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x47, 0x57, 0x50, 0xF5, 0x01, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x1B, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xD8, 0x02, 0x0A, 0x16, 0x12, 0x0D, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x12, 0x7A, 0x12, 0x68, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x7C, 0x35, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5C, 0x64, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x2D, 0x37, 0x39, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x32, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x5C, 0x64, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x34, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x5D, 0x7C, 0x35, 0x5B, 0x35, 0x36, 0x5D, 0x29, 0x7C, 0x37, 0x37, 0x5B, 0x31, 0x2D, 0x35, 0x37, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x32, 0x32, 0x30, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x18, 0x12, 0x06, 0x36, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x36, 0x30, 0x39, 0x31, 0x32, 0x33, 0x34, 0x22, 0x22, 0x12, 0x10, 0x28, 0x3F, 0x3A, 0x32, 0x38, 0x39, 0x7C, 0x38, 0x36, 0x32, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x32, 0x38, 0x39, 0x31, 0x32, 0x33, 0x34, 0x2A, 0x1B, 0x12, 0x09, 0x39, 0x30, 0x30, 0x38, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x39, 0x30, 0x30, 0x38, 0x31, 0x32, 0x33, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x47, 0x59, 0x50, 0xD0, 0x04, 0x5A, 0x03, 0x30, 0x30, 0x31, 0x9A, 0x01, 0x1B, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xA6, 0x03, 0x0A, 0x2B, 0x12, 0x1F, 0x5B, 0x32, 0x33, 0x35, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x7C, 0x38, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x7C, 0x39, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x30, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x31, 0x31, 0x7D, 0x12, 0x1C, 0x12, 0x09, 0x5B, 0x32, 0x33, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x1A, 0x1E, 0x12, 0x0B, 0x5B, 0x35, 0x2D, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x35, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x1C, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x1F, 0x12, 0x08, 0x39, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x31, 0x7D, 0x32, 0x0B, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x1E, 0x12, 0x0B, 0x38, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x48, 0x4B, 0x50, 0xD4, 0x06, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x39, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x1C, 0x5B, 0x32, 0x33, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x5B, 0x38, 0x39, 0x5D, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x29, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x28, 0x0A, 0x13, 0x28, 0x38, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x03, 0x38, 0x30, 0x30, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x32, 0x0A, 0x1A, 0x28, 0x39, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x03, 0x39, 0x30, 0x30, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x9E, 0x03, 0x0A, 0x15, 0x12, 0x0C, 0x5B, 0x32, 0x33, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x12, 0xE8, 0x01, 0x12, 0xD4, 0x01, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x31, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x31, 0x2D, 0x33, 0x36, 0x5D, 0x7C, 0x5B, 0x32, 0x33, 0x5D, 0x5C, 0x64, 0x7C, 0x34, 0x5B, 0x30, 0x35, 0x36, 0x5D, 0x7C, 0x35, 0x5B, 0x35, 0x37, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x31, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x32, 0x7C, 0x33, 0x2D, 0x35, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x33, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x36, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x34, 0x5B, 0x33, 0x2D, 0x35, 0x5D, 0x7C, 0x35, 0x5C, 0x64, 0x7C, 0x36, 0x5B, 0x35, 0x36, 0x5D, 0x7C, 0x37, 0x34, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x34, 0x5B, 0x30, 0x2D, 0x33, 0x37, 0x38, 0x5D, 0x7C, 0x5B, 0x35, 0x36, 0x5D, 0x5C, 0x64, 0x7C, 0x5B, 0x37, 0x38, 0x5D, 0x5B, 0x30, 0x2D, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x31, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x36, 0x5B, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x33, 0x34, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x37, 0x39, 0x7C, 0x38, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x37, 0x38, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x1E, 0x12, 0x0B, 0x5B, 0x33, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x48, 0x4E, 0x50, 0xF8, 0x03, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x1B, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xA8, 0x06, 0x0A, 0x25, 0x12, 0x19, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x38, 0x7D, 0x7C, 0x5B, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x31, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x32, 0x7D, 0x12, 0x4F, 0x12, 0x3A, 0x28, 0x3F, 0x3A, 0x31, 0x7C, 0x36, 0x5B, 0x30, 0x32, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x7C, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x2D, 0x33, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x32, 0x2D, 0x34, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x32, 0x08, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x27, 0x12, 0x10, 0x39, 0x5B, 0x31, 0x32, 0x35, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x30, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x31, 0x32, 0x7D, 0x32, 0x09, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x25, 0x12, 0x0D, 0x38, 0x30, 0x5B, 0x30, 0x31, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x37, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x20, 0x12, 0x0D, 0x36, 0x5B, 0x31, 0x34, 0x35, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x32, 0x06, 0x36, 0x31, 0x31, 0x32, 0x33, 0x34, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x22, 0x12, 0x0C, 0x37, 0x5B, 0x34, 0x35, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x37, 0x34, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x48, 0x52, 0x50, 0x81, 0x03, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x27, 0x0A, 0x11, 0x28, 0x31, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x31, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x31, 0x0A, 0x16, 0x28, 0x36, 0x5B, 0x30, 0x32, 0x39, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x06, 0x36, 0x5B, 0x30, 0x32, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x31, 0x0A, 0x17, 0x28, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x05, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x32, 0x0A, 0x1C, 0x28, 0x39, 0x5B, 0x31, 0x32, 0x35, 0x38, 0x39, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x39, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x3A, 0x0A, 0x21, 0x28, 0x39, 0x5B, 0x31, 0x32, 0x35, 0x38, 0x39, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x01, 0x39, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x34, 0x0A, 0x17, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x08, 0x36, 0x5B, 0x31, 0x34, 0x35, 0x5D, 0x7C, 0x37, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x34, 0x0A, 0x17, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x08, 0x36, 0x5B, 0x31, 0x34, 0x35, 0x5D, 0x7C, 0x37, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2E, 0x0A, 0x18, 0x28, 0x38, 0x30, 0x5B, 0x30, 0x31, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x38, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2E, 0x0A, 0x18, 0x28, 0x38, 0x30, 0x5B, 0x30, 0x31, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x38, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x9B, 0x02, 0x0A, 0x15, 0x12, 0x0C, 0x5B, 0x32, 0x2D, 0x34, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x12, 0x2D, 0x12, 0x1A, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x34, 0x5D, 0x5C, 0x64, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x7C, 0x39, 0x34, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x32, 0x34, 0x35, 0x33, 0x33, 0x30, 0x30, 0x1A, 0x26, 0x12, 0x13, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x33, 0x34, 0x31, 0x30, 0x31, 0x32, 0x33, 0x34, 0x22, 0x19, 0x12, 0x06, 0x38, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x1E, 0x12, 0x0B, 0x39, 0x38, 0x5B, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x39, 0x38, 0x39, 0x30, 0x31, 0x32, 0x33, 0x34, 0x4A, 0x02, 0x48, 0x54, 0x50, 0xFD, 0x03, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x25, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xAF, 0x03, 0x0A, 0x12, 0x12, 0x07, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x39, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x12, 0x71, 0x12, 0x5C, 0x28, 0x3F, 0x3A, 0x31, 0x5C, 0x64, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x31, 0x5C, 0x64, 0x7C, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x33, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x33, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x31, 0x5C, 0x64, 0x7C, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x38, 0x5B, 0x32, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x2D, 0x36, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x32, 0x08, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x28, 0x12, 0x14, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x37, 0x5D, 0x30, 0x7C, 0x33, 0x5B, 0x30, 0x31, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x32, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x1A, 0x12, 0x07, 0x38, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x1D, 0x12, 0x0A, 0x39, 0x5B, 0x30, 0x31, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x39, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x1A, 0x12, 0x07, 0x34, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x34, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x48, 0x55, 0x50, 0x24, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x02, 0x30, 0x36, 0x7A, 0x02, 0x30, 0x36, 0x9A, 0x01, 0x28, 0x0A, 0x11, 0x28, 0x31, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x31, 0x22, 0x04, 0x28, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x32, 0x0A, 0x17, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x05, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x22, 0x04, 0x28, 0x24, 0x31, 0x29, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xDD, 0x07, 0x0A, 0x19, 0x12, 0x0D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x30, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x31, 0x31, 0x7D, 0x12, 0xB1, 0x03, 0x12, 0x99, 0x03, 0x32, 0x5B, 0x31, 0x32, 0x34, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x7C, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x33, 0x35, 0x5D, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x2D, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x7C, 0x38, 0x5C, 0x64, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x31, 0x7C, 0x32, 0x5B, 0x31, 0x2D, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x36, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x36, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x5D, 0x7C, 0x38, 0x5C, 0x64, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x2D, 0x35, 0x38, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x31, 0x33, 0x34, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x2D, 0x33, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x2D, 0x36, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x33, 0x37, 0x38, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x33, 0x34, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x32, 0x34, 0x35, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x32, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x32, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x38, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x34, 0x36, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x31, 0x39, 0x3F, 0x7C, 0x5B, 0x32, 0x35, 0x5D, 0x5C, 0x64, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x34, 0x36, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x31, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x33, 0x36, 0x5D, 0x5C, 0x64, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x33, 0x36, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x31, 0x33, 0x34, 0x2D, 0x38, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x2D, 0x34, 0x37, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x32, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x33, 0x36, 0x37, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x35, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x31, 0x33, 0x34, 0x36, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x38, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x09, 0x36, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x27, 0x12, 0x10, 0x38, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x39, 0x2C, 0x31, 0x31, 0x7D, 0x32, 0x09, 0x38, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x2D, 0x12, 0x15, 0x31, 0x37, 0x37, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x38, 0x7D, 0x7C, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x37, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x31, 0x31, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x1E, 0x12, 0x08, 0x38, 0x30, 0x39, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x49, 0x44, 0x50, 0x3E, 0x5A, 0x1B, 0x30, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x37, 0x38, 0x39, 0x5D, 0x7C, 0x31, 0x30, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x31, 0x5B, 0x36, 0x37, 0x5D, 0x29, 0x29, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x30, 0x0A, 0x10, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x0C, 0x32, 0x5B, 0x31, 0x32, 0x34, 0x5D, 0x7C, 0x5B, 0x33, 0x36, 0x5D, 0x31, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x3E, 0x0A, 0x10, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x37, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x1A, 0x5B, 0x34, 0x35, 0x37, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x33, 0x36, 0x5D, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x38, 0x0A, 0x1A, 0x28, 0x38, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x09, 0x38, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x21, 0x0A, 0x0E, 0x28, 0x31, 0x37, 0x37, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x38, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x01, 0x31, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x23, 0x0A, 0x0E, 0x28, 0x38, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x37, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x03, 0x38, 0x30, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x32, 0x0A, 0x17, 0x28, 0x38, 0x30, 0x39, 0x29, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x03, 0x38, 0x30, 0x39, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xD9, 0x08, 0x0A, 0x1A, 0x12, 0x0E, 0x5B, 0x31, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0x91, 0x02, 0x12, 0xFB, 0x01, 0x31, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x31, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x7C, 0x5B, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x7C, 0x33, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x37, 0x7D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x32, 0x34, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x7C, 0x5B, 0x31, 0x32, 0x36, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x7C, 0x5B, 0x33, 0x34, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x37, 0x7D, 0x7C, 0x35, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x37, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x7C, 0x38, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x34, 0x35, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x7C, 0x31, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x32, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x37, 0x7D, 0x7C, 0x5B, 0x33, 0x36, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x7C, 0x38, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x31, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x34, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x37, 0x7D, 0x7C, 0x5B, 0x32, 0x33, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x7C, 0x5B, 0x35, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x29, 0x7C, 0x37, 0x5B, 0x31, 0x34, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x31, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x5B, 0x30, 0x34, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x7C, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x29, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x07, 0x32, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x1A, 0x31, 0x12, 0x1A, 0x38, 0x28, 0x3F, 0x3A, 0x32, 0x32, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x5B, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x29, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x39, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x09, 0x38, 0x35, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x1F, 0x12, 0x09, 0x31, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x38, 0x12, 0x22, 0x31, 0x35, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x30, 0x7C, 0x35, 0x39, 0x7C, 0x39, 0x5B, 0x30, 0x38, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x35, 0x32, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x22, 0x12, 0x0C, 0x31, 0x38, 0x5B, 0x35, 0x39, 0x5D, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x38, 0x35, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x3A, 0x1C, 0x12, 0x08, 0x37, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x37, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x42, 0x1B, 0x12, 0x07, 0x37, 0x36, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x37, 0x36, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x4A, 0x02, 0x49, 0x45, 0x50, 0xE1, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x2B, 0x0A, 0x13, 0x28, 0x31, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x31, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x48, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x26, 0x32, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x33, 0x34, 0x37, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x2D, 0x35, 0x38, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x2D, 0x34, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x2F, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x0D, 0x34, 0x30, 0x5B, 0x32, 0x34, 0x5D, 0x7C, 0x35, 0x30, 0x5B, 0x34, 0x35, 0x5D, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x2B, 0x0A, 0x12, 0x28, 0x34, 0x38, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x02, 0x34, 0x38, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x2C, 0x0A, 0x13, 0x28, 0x38, 0x31, 0x38, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x02, 0x38, 0x31, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x3B, 0x0A, 0x17, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x0D, 0x5B, 0x32, 0x34, 0x2D, 0x36, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x34, 0x5D, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x37, 0x0A, 0x18, 0x28, 0x5B, 0x37, 0x38, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x0A, 0x37, 0x36, 0x7C, 0x38, 0x5B, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2A, 0x0A, 0x13, 0x28, 0x37, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x02, 0x37, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x46, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x0D, 0x31, 0x28, 0x3F, 0x3A, 0x38, 0x5B, 0x30, 0x35, 0x39, 0x5D, 0x7C, 0x35, 0x29, 0x1A, 0x0E, 0x31, 0x28, 0x3F, 0x3A, 0x38, 0x5B, 0x30, 0x35, 0x39, 0x5D, 0x30, 0x7C, 0x35, 0x29, 0x22, 0x02, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x1C, 0x12, 0x08, 0x38, 0x31, 0x38, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x31, 0x38, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x0A, 0x85, 0x06, 0x0A, 0x37, 0x12, 0x2B, 0x5B, 0x31, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x7C, 0x5B, 0x32, 0x2D, 0x35, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x36, 0x7D, 0x29, 0x3F, 0x7C, 0x36, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0x2F, 0x12, 0x1A, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x2D, 0x34, 0x38, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x2D, 0x38, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x32, 0x08, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x1A, 0x22, 0x12, 0x0E, 0x35, 0x5B, 0x30, 0x32, 0x34, 0x36, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x35, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x31, 0x12, 0x19, 0x31, 0x28, 0x3F, 0x3A, 0x38, 0x30, 0x5B, 0x30, 0x31, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x7C, 0x32, 0x35, 0x35, 0x29, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x36, 0x12, 0x1E, 0x31, 0x28, 0x3F, 0x3A, 0x32, 0x31, 0x32, 0x7C, 0x28, 0x3F, 0x3A, 0x39, 0x31, 0x39, 0x7C, 0x32, 0x30, 0x30, 0x29, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x39, 0x31, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x27, 0x12, 0x11, 0x31, 0x28, 0x3F, 0x3A, 0x37, 0x30, 0x30, 0x7C, 0x38, 0x30, 0x39, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x37, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x1B, 0x12, 0x07, 0x37, 0x37, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x37, 0x37, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x4A, 0x02, 0x49, 0x4C, 0x50, 0xCC, 0x07, 0x5A, 0x0E, 0x30, 0x28, 0x3F, 0x3A, 0x30, 0x7C, 0x31, 0x5B, 0x32, 0x2D, 0x34, 0x38, 0x5D, 0x29, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x33, 0x0A, 0x17, 0x28, 0x5B, 0x32, 0x2D, 0x34, 0x38, 0x39, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x07, 0x5B, 0x32, 0x2D, 0x34, 0x38, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2F, 0x0A, 0x16, 0x28, 0x5B, 0x35, 0x37, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x04, 0x5B, 0x35, 0x37, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x3A, 0x0A, 0x1D, 0x28, 0x31, 0x29, 0x28, 0x5B, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x2D, 0x24, 0x34, 0x1A, 0x06, 0x31, 0x5B, 0x37, 0x2D, 0x39, 0x5D, 0x22, 0x02, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x21, 0x0A, 0x0D, 0x28, 0x31, 0x32, 0x35, 0x35, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x1A, 0x03, 0x31, 0x32, 0x35, 0x22, 0x02, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2B, 0x0A, 0x14, 0x28, 0x31, 0x32, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x03, 0x31, 0x32, 0x30, 0x22, 0x02, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2B, 0x0A, 0x14, 0x28, 0x31, 0x32, 0x31, 0x32, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x03, 0x31, 0x32, 0x31, 0x22, 0x02, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x1D, 0x0A, 0x07, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x03, 0x2A, 0x24, 0x31, 0x1A, 0x07, 0x5B, 0x32, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x22, 0x02, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x2E, 0x12, 0x16, 0x31, 0x37, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x5B, 0x32, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x37, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0xCA, 0x01, 0x1B, 0x12, 0x0C, 0x5B, 0x32, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x32, 0x04, 0x32, 0x32, 0x35, 0x30, 0x0A, 0xC2, 0x03, 0x0A, 0x1B, 0x12, 0x0F, 0x5B, 0x31, 0x33, 0x35, 0x37, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0x21, 0x12, 0x09, 0x31, 0x36, 0x32, 0x34, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x36, 0x32, 0x34, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x1A, 0x23, 0x12, 0x0D, 0x37, 0x5B, 0x35, 0x36, 0x39, 0x5D, 0x32, 0x34, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x37, 0x39, 0x32, 0x34, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x21, 0x12, 0x0B, 0x38, 0x30, 0x38, 0x31, 0x36, 0x32, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x38, 0x31, 0x36, 0x32, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x31, 0x12, 0x1B, 0x28, 0x3F, 0x3A, 0x38, 0x37, 0x32, 0x32, 0x39, 0x39, 0x7C, 0x39, 0x30, 0x5B, 0x30, 0x31, 0x36, 0x37, 0x5D, 0x36, 0x32, 0x34, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x31, 0x36, 0x32, 0x34, 0x37, 0x38, 0x39, 0x30, 0x32, 0x3C, 0x12, 0x26, 0x38, 0x28, 0x3F, 0x3A, 0x34, 0x28, 0x3F, 0x3A, 0x34, 0x30, 0x5B, 0x34, 0x39, 0x5D, 0x30, 0x36, 0x7C, 0x35, 0x36, 0x32, 0x34, 0x5C, 0x64, 0x29, 0x7C, 0x37, 0x30, 0x36, 0x32, 0x34, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x34, 0x35, 0x36, 0x32, 0x34, 0x37, 0x38, 0x39, 0x30, 0x3A, 0x1D, 0x12, 0x07, 0x37, 0x30, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x37, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x1D, 0x12, 0x07, 0x35, 0x36, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x36, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x4A, 0x02, 0x49, 0x4D, 0x50, 0x2C, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x6A, 0x02, 0x20, 0x78, 0x7A, 0x01, 0x30, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x5E, 0x12, 0x48, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x38, 0x31, 0x36, 0x32, 0x5C, 0x64, 0x7C, 0x33, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x34, 0x30, 0x5B, 0x34, 0x39, 0x5D, 0x30, 0x36, 0x7C, 0x35, 0x36, 0x32, 0x34, 0x5C, 0x64, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x30, 0x36, 0x32, 0x34, 0x5C, 0x64, 0x7C, 0x32, 0x32, 0x39, 0x39, 0x5C, 0x64, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x7C, 0x35, 0x35, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x35, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x0A, 0xF6, 0x17, 0x0A, 0x23, 0x12, 0x17, 0x31, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x31, 0x7D, 0x7C, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x2C, 0x31, 0x30, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x32, 0x7D, 0x12, 0xC0, 0x08, 0x12, 0xA7, 0x08, 0x28, 0x3F, 0x3A, 0x31, 0x31, 0x7C, 0x32, 0x5B, 0x30, 0x32, 0x5D, 0x7C, 0x33, 0x33, 0x7C, 0x34, 0x5B, 0x30, 0x34, 0x5D, 0x7C, 0x37, 0x39, 0x7C, 0x38, 0x30, 0x29, 0x5B, 0x32, 0x2D, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x7C, 0x28, 0x3F, 0x3A, 0x31, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x32, 0x35, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x34, 0x35, 0x5D, 0x7C, 0x5B, 0x35, 0x39, 0x5D, 0x5B, 0x31, 0x34, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x31, 0x34, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x32, 0x35, 0x37, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x31, 0x33, 0x34, 0x36, 0x5D, 0x29, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x32, 0x35, 0x37, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x31, 0x33, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x31, 0x33, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x31, 0x35, 0x38, 0x5D, 0x7C, 0x37, 0x38, 0x7C, 0x38, 0x5B, 0x31, 0x35, 0x36, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x34, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x32, 0x36, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x7C, 0x35, 0x5B, 0x33, 0x34, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x31, 0x34, 0x38, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x32, 0x2D, 0x34, 0x36, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x35, 0x39, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x33, 0x36, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x2D, 0x34, 0x37, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x35, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x32, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x35, 0x37, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x31, 0x34, 0x2D, 0x37, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x33, 0x36, 0x5D, 0x5B, 0x32, 0x35, 0x5D, 0x7C, 0x32, 0x32, 0x7C, 0x34, 0x5B, 0x32, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x5B, 0x37, 0x38, 0x5D, 0x31, 0x7C, 0x39, 0x5B, 0x31, 0x35, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x31, 0x32, 0x7C, 0x5B, 0x32, 0x33, 0x34, 0x35, 0x5D, 0x31, 0x7C, 0x35, 0x37, 0x7C, 0x36, 0x5B, 0x31, 0x33, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x34, 0x5D, 0x7C, 0x38, 0x30, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x31, 0x32, 0x7C, 0x32, 0x5B, 0x31, 0x34, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x33, 0x34, 0x5D, 0x7C, 0x34, 0x5B, 0x34, 0x37, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x35, 0x5D, 0x7C, 0x5B, 0x36, 0x37, 0x5D, 0x31, 0x7C, 0x38, 0x38, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x31, 0x36, 0x7C, 0x32, 0x5B, 0x30, 0x31, 0x34, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x32, 0x36, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x33, 0x36, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x37, 0x38, 0x5D, 0x7C, 0x38, 0x5B, 0x33, 0x34, 0x5D, 0x7C, 0x39, 0x31, 0x29, 0x29, 0x5B, 0x32, 0x2D, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x28, 0x3F, 0x3A, 0x28, 0x3F, 0x3A, 0x31, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x33, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x33, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x33, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x35, 0x39, 0x5D, 0x5B, 0x30, 0x32, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x33, 0x34, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x31, 0x33, 0x34, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x34, 0x2D, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x35, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x37, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x33, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x2D, 0x34, 0x37, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x31, 0x7C, 0x31, 0x5B, 0x37, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x32, 0x35, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x33, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x37, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x31, 0x34, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x32, 0x5B, 0x35, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x37, 0x5D, 0x7C, 0x35, 0x5B, 0x34, 0x2D, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x33, 0x35, 0x5D, 0x7C, 0x37, 0x33, 0x7C, 0x38, 0x5B, 0x32, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x33, 0x38, 0x39, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x36, 0x5D, 0x5B, 0x31, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x34, 0x2D, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x33, 0x34, 0x36, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x34, 0x2D, 0x36, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x34, 0x36, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x2D, 0x34, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x34, 0x36, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x31, 0x33, 0x35, 0x38, 0x5D, 0x7C, 0x32, 0x5B, 0x32, 0x34, 0x35, 0x37, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x2D, 0x34, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x33, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x34, 0x2D, 0x35, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x33, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x31, 0x33, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x32, 0x33, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x33, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5C, 0x64, 0x7C, 0x36, 0x5B, 0x32, 0x34, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x32, 0x35, 0x36, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x2D, 0x34, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x32, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x36, 0x37, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x36, 0x37, 0x5D, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x2D, 0x36, 0x5D, 0x7C, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x29, 0x29, 0x29, 0x5B, 0x32, 0x2D, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x1A, 0x95, 0x03, 0x12, 0xFE, 0x02, 0x28, 0x3F, 0x3A, 0x37, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x35, 0x36, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x33, 0x39, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x37, 0x7C, 0x37, 0x5B, 0x33, 0x36, 0x37, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x36, 0x38, 0x39, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x30, 0x35, 0x7C, 0x31, 0x5B, 0x31, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x32, 0x39, 0x5D, 0x5B, 0x38, 0x39, 0x5D, 0x7C, 0x33, 0x39, 0x7C, 0x38, 0x5B, 0x33, 0x38, 0x39, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x2D, 0x35, 0x5D, 0x7C, 0x5B, 0x34, 0x37, 0x5D, 0x39, 0x7C, 0x35, 0x30, 0x7C, 0x36, 0x5B, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x38, 0x39, 0x5D, 0x5B, 0x37, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x32, 0x37, 0x5D, 0x7C, 0x31, 0x32, 0x7C, 0x32, 0x30, 0x7C, 0x33, 0x5B, 0x31, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x34, 0x35, 0x5D, 0x7C, 0x36, 0x5B, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x36, 0x37, 0x5D, 0x7C, 0x39, 0x5B, 0x36, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x32, 0x38, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x32, 0x7C, 0x36, 0x30, 0x7C, 0x39, 0x5B, 0x35, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x33, 0x5D, 0x5B, 0x30, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x31, 0x34, 0x7C, 0x32, 0x5B, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x35, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x31, 0x35, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x33, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7C, 0x39, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x31, 0x35, 0x38, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x32, 0x34, 0x5D, 0x7C, 0x32, 0x5B, 0x32, 0x33, 0x36, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x32, 0x33, 0x34, 0x35, 0x38, 0x5D, 0x7C, 0x35, 0x32, 0x7C, 0x36, 0x5B, 0x30, 0x35, 0x38, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x35, 0x36, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x34, 0x34, 0x29, 0x7C, 0x39, 0x5B, 0x30, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x22, 0x30, 0x12, 0x18, 0x31, 0x28, 0x3F, 0x3A, 0x36, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x38, 0x7D, 0x29, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x31, 0x32, 0x7D, 0x32, 0x0A, 0x31, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x49, 0x4E, 0x50, 0x5B, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0xF6, 0x01, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x5A, 0x37, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x35, 0x37, 0x39, 0x5D, 0x7C, 0x33, 0x39, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x33, 0x38, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x7C, 0x37, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x2D, 0x37, 0x39, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x31, 0x35, 0x38, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x32, 0x34, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x34, 0x37, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x39, 0x1A, 0x70, 0x37, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x35, 0x37, 0x39, 0x5D, 0x7C, 0x33, 0x39, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x33, 0x38, 0x39, 0x5D, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x2D, 0x35, 0x5D, 0x7C, 0x34, 0x39, 0x7C, 0x35, 0x30, 0x7C, 0x5B, 0x36, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x36, 0x7C, 0x37, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x2D, 0x37, 0x39, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x31, 0x35, 0x38, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x32, 0x34, 0x5D, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x37, 0x39, 0x5D, 0x7C, 0x34, 0x34, 0x29, 0x7C, 0x39, 0x5B, 0x30, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x39, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x46, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x1C, 0x31, 0x31, 0x7C, 0x32, 0x5B, 0x30, 0x32, 0x5D, 0x7C, 0x33, 0x33, 0x7C, 0x34, 0x5B, 0x30, 0x34, 0x5D, 0x7C, 0x37, 0x39, 0x7C, 0x38, 0x30, 0x5B, 0x32, 0x2D, 0x36, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x6A, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x40, 0x31, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x32, 0x35, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x34, 0x35, 0x5D, 0x7C, 0x5B, 0x35, 0x36, 0x39, 0x5D, 0x5B, 0x31, 0x34, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x32, 0x35, 0x37, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x33, 0x34, 0x36, 0x5D, 0x7C, 0x5B, 0x36, 0x38, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x63, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x39, 0x32, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x32, 0x35, 0x37, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x31, 0x33, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x31, 0x33, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x31, 0x35, 0x38, 0x5D, 0x7C, 0x37, 0x38, 0x7C, 0x38, 0x5B, 0x31, 0x35, 0x36, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x34, 0x5D, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x57, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x2D, 0x33, 0x28, 0x3F, 0x3A, 0x32, 0x36, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x7C, 0x35, 0x5B, 0x33, 0x34, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x31, 0x34, 0x38, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x32, 0x2D, 0x34, 0x36, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x35, 0x39, 0x5D, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x6E, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x44, 0x34, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x33, 0x36, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x2D, 0x34, 0x37, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x35, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x32, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x35, 0x37, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x31, 0x34, 0x2D, 0x37, 0x5D, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x53, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x29, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x33, 0x36, 0x5D, 0x5B, 0x32, 0x35, 0x5D, 0x7C, 0x32, 0x32, 0x7C, 0x34, 0x5B, 0x32, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x5B, 0x37, 0x38, 0x5D, 0x31, 0x7C, 0x39, 0x5B, 0x31, 0x35, 0x5D, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x4B, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x21, 0x36, 0x28, 0x3F, 0x3A, 0x31, 0x32, 0x7C, 0x5B, 0x32, 0x33, 0x34, 0x35, 0x5D, 0x31, 0x7C, 0x35, 0x37, 0x7C, 0x36, 0x5B, 0x31, 0x33, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x34, 0x5D, 0x7C, 0x38, 0x30, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x86, 0x01, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x29, 0x37, 0x28, 0x3F, 0x3A, 0x31, 0x32, 0x7C, 0x32, 0x5B, 0x31, 0x34, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x33, 0x34, 0x5D, 0x7C, 0x34, 0x5B, 0x34, 0x37, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x35, 0x5D, 0x7C, 0x5B, 0x36, 0x37, 0x5D, 0x31, 0x7C, 0x38, 0x38, 0x29, 0x1A, 0x31, 0x37, 0x28, 0x3F, 0x3A, 0x31, 0x32, 0x7C, 0x32, 0x5B, 0x31, 0x34, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x33, 0x34, 0x5D, 0x7C, 0x34, 0x5B, 0x34, 0x37, 0x5D, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x31, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x5B, 0x36, 0x37, 0x5D, 0x31, 0x7C, 0x38, 0x38, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x56, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x2C, 0x38, 0x28, 0x3F, 0x3A, 0x31, 0x36, 0x7C, 0x32, 0x5B, 0x30, 0x31, 0x34, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x32, 0x36, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x33, 0x36, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x37, 0x38, 0x5D, 0x7C, 0x38, 0x5B, 0x33, 0x34, 0x5D, 0x7C, 0x39, 0x31, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x46, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x1C, 0x31, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x2D, 0x35, 0x37, 0x39, 0x5D, 0x7C, 0x5B, 0x36, 0x38, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x31, 0x0A, 0x14, 0x28, 0x31, 0x36, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x03, 0x31, 0x36, 0x30, 0x1A, 0x04, 0x31, 0x36, 0x30, 0x30, 0x22, 0x02, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x29, 0x0A, 0x0F, 0x28, 0x31, 0x38, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x35, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x03, 0x31, 0x38, 0x30, 0x1A, 0x04, 0x31, 0x38, 0x30, 0x30, 0x22, 0x02, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x3C, 0x0A, 0x19, 0x28, 0x31, 0x38, 0x5B, 0x30, 0x36, 0x5D, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x06, 0x31, 0x38, 0x5B, 0x30, 0x36, 0x5D, 0x1A, 0x07, 0x31, 0x38, 0x5B, 0x30, 0x36, 0x5D, 0x30, 0x22, 0x02, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x23, 0x12, 0x0C, 0x31, 0x38, 0x36, 0x30, 0x33, 0x34, 0x35, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x31, 0x7D, 0x32, 0x0B, 0x31, 0x38, 0x36, 0x30, 0x33, 0x34, 0x35, 0x31, 0x32, 0x33, 0x34, 0x0A, 0xC3, 0x01, 0x0A, 0x0F, 0x12, 0x06, 0x33, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x12, 0x19, 0x12, 0x07, 0x33, 0x37, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x33, 0x37, 0x30, 0x39, 0x31, 0x30, 0x30, 0x1A, 0x19, 0x12, 0x07, 0x33, 0x38, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x33, 0x38, 0x30, 0x31, 0x32, 0x33, 0x34, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x49, 0x4F, 0x50, 0xF6, 0x01, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x1B, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xFF, 0x02, 0x0A, 0x18, 0x12, 0x0C, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0x4B, 0x12, 0x36, 0x31, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x7C, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x31, 0x33, 0x2D, 0x35, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x32, 0x33, 0x36, 0x37, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x32, 0x33, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x33, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x32, 0x36, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x32, 0x08, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x21, 0x12, 0x0B, 0x37, 0x5B, 0x35, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x37, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x49, 0x51, 0x50, 0xC4, 0x07, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x27, 0x0A, 0x11, 0x28, 0x31, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x31, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x33, 0x0A, 0x19, 0x28, 0x5B, 0x32, 0x2D, 0x36, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x05, 0x5B, 0x32, 0x2D, 0x36, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2E, 0x0A, 0x18, 0x28, 0x37, 0x5B, 0x35, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x37, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xAA, 0x06, 0x0A, 0x24, 0x12, 0x18, 0x5B, 0x32, 0x2D, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x39, 0x7D, 0x7C, 0x5B, 0x31, 0x37, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0xBA, 0x03, 0x12, 0xA1, 0x03, 0x32, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x37, 0x7D, 0x7C, 0x35, 0x31, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x37, 0x7D, 0x29, 0x7C, 0x28, 0x3F, 0x3A, 0x32, 0x34, 0x31, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x31, 0x31, 0x7C, 0x35, 0x5B, 0x32, 0x33, 0x5D, 0x29, 0x7C, 0x34, 0x34, 0x31, 0x7C, 0x35, 0x5B, 0x31, 0x34, 0x5D, 0x31, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x37, 0x7D, 0x7C, 0x28, 0x3F, 0x3A, 0x33, 0x28, 0x3F, 0x3A, 0x33, 0x34, 0x7C, 0x34, 0x31, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x31, 0x31, 0x7C, 0x35, 0x32, 0x29, 0x7C, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x7C, 0x28, 0x3F, 0x3A, 0x31, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x33, 0x34, 0x35, 0x38, 0x39, 0x5D, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x5B, 0x32, 0x37, 0x5D, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x29, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x31, 0x38, 0x39, 0x5D, 0x7C, 0x5B, 0x33, 0x36, 0x38, 0x39, 0x5D, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x34, 0x32, 0x7C, 0x35, 0x5B, 0x32, 0x35, 0x36, 0x5D, 0x7C, 0x37, 0x5B, 0x33, 0x34, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x31, 0x32, 0x7C, 0x32, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x32, 0x35, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x31, 0x7C, 0x5B, 0x36, 0x2D, 0x39, 0x5D, 0x5B, 0x31, 0x32, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x2D, 0x34, 0x36, 0x37, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x2D, 0x34, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x31, 0x32, 0x7C, 0x32, 0x5B, 0x38, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x5B, 0x35, 0x2D, 0x37, 0x5D, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x32, 0x34, 0x35, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x31, 0x32, 0x7C, 0x5B, 0x33, 0x34, 0x37, 0x2D, 0x39, 0x5D, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x35, 0x31, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x33, 0x35, 0x38, 0x39, 0x5D, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x32, 0x38, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x34, 0x35, 0x5D, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x32, 0x34, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x32, 0x35, 0x36, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x32, 0x34, 0x35, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x1A, 0x2C, 0x12, 0x16, 0x39, 0x28, 0x3F, 0x3A, 0x31, 0x5C, 0x64, 0x7C, 0x33, 0x5B, 0x31, 0x32, 0x34, 0x2D, 0x38, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x22, 0x12, 0x0C, 0x39, 0x39, 0x33, 0x5B, 0x31, 0x32, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x39, 0x33, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x4A, 0x02, 0x49, 0x52, 0x50, 0x62, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x29, 0x0A, 0x12, 0x28, 0x32, 0x31, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x02, 0x32, 0x31, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x39, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x0F, 0x5B, 0x31, 0x33, 0x2D, 0x38, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x25, 0x12, 0x0F, 0x39, 0x34, 0x33, 0x5B, 0x32, 0x34, 0x36, 0x37, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x34, 0x33, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x1F, 0x12, 0x09, 0x39, 0x39, 0x39, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x39, 0x39, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x0A, 0xDA, 0x04, 0x0A, 0x1D, 0x12, 0x12, 0x5B, 0x34, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x33, 0x38, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x12, 0xB3, 0x01, 0x12, 0xA0, 0x01, 0x28, 0x3F, 0x3A, 0x34, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x35, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x2D, 0x37, 0x5D, 0x7C, 0x5B, 0x33, 0x37, 0x5D, 0x5B, 0x30, 0x2D, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x32, 0x34, 0x35, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x36, 0x5D, 0x7C, 0x36, 0x5C, 0x64, 0x7C, 0x38, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x37, 0x39, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x35, 0x7C, 0x5B, 0x31, 0x35, 0x36, 0x5D, 0x5C, 0x64, 0x7C, 0x32, 0x5B, 0x30, 0x32, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x36, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x33, 0x2D, 0x36, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x32, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x2D, 0x32, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x29, 0x7C, 0x38, 0x37, 0x5B, 0x32, 0x33, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x34, 0x31, 0x30, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x97, 0x01, 0x12, 0x82, 0x01, 0x33, 0x38, 0x5B, 0x35, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x28, 0x3F, 0x3A, 0x36, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x31, 0x34, 0x2D, 0x38, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x2D, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x32, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x32, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x32, 0x39, 0x5D, 0x7C, 0x5B, 0x36, 0x37, 0x5D, 0x5B, 0x30, 0x2D, 0x36, 0x39, 0x5D, 0x7C, 0x5B, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x35, 0x5B, 0x30, 0x35, 0x37, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x37, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x2D, 0x35, 0x5D, 0x7C, 0x5B, 0x34, 0x36, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x32, 0x07, 0x36, 0x31, 0x30, 0x31, 0x32, 0x33, 0x34, 0x22, 0x1A, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x2A, 0x19, 0x12, 0x07, 0x39, 0x30, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x39, 0x30, 0x31, 0x31, 0x32, 0x33, 0x34, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x21, 0x12, 0x0F, 0x34, 0x39, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x34, 0x39, 0x33, 0x31, 0x32, 0x33, 0x34, 0x4A, 0x02, 0x49, 0x53, 0x50, 0xE2, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x22, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x05, 0x5B, 0x34, 0x2D, 0x39, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x29, 0x0A, 0x16, 0x28, 0x33, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x33, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xBE, 0x06, 0x0A, 0x1B, 0x12, 0x0F, 0x5B, 0x30, 0x31, 0x33, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x31, 0x30, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x31, 0x7D, 0x12, 0x53, 0x12, 0x3B, 0x30, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x39, 0x7D, 0x7C, 0x5B, 0x31, 0x33, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x31, 0x35, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x38, 0x7D, 0x7C, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x38, 0x7D, 0x29, 0x29, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x31, 0x7D, 0x32, 0x0A, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x1F, 0x12, 0x08, 0x33, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x39, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x39, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x09, 0x33, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x29, 0x12, 0x13, 0x38, 0x30, 0x28, 0x3F, 0x3A, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x33, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x29, 0x12, 0x13, 0x38, 0x39, 0x28, 0x3F, 0x3A, 0x32, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x7C, 0x39, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x29, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x39, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x25, 0x12, 0x0D, 0x38, 0x34, 0x5B, 0x37, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x39, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x34, 0x38, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x3A, 0x22, 0x12, 0x0A, 0x31, 0x37, 0x38, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x39, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x37, 0x38, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x49, 0x54, 0x50, 0x27, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x2E, 0x0A, 0x17, 0x28, 0x30, 0x5B, 0x32, 0x36, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x05, 0x30, 0x5B, 0x32, 0x36, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x2C, 0x0A, 0x15, 0x28, 0x30, 0x5B, 0x32, 0x36, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x05, 0x30, 0x5B, 0x32, 0x36, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x24, 0x0A, 0x10, 0x28, 0x30, 0x5B, 0x32, 0x36, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x36, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x05, 0x30, 0x5B, 0x32, 0x36, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x3A, 0x0A, 0x18, 0x28, 0x30, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x10, 0x30, 0x5B, 0x31, 0x33, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x5B, 0x30, 0x31, 0x35, 0x39, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x30, 0x0A, 0x11, 0x28, 0x30, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x36, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x10, 0x30, 0x5B, 0x31, 0x33, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x5B, 0x30, 0x31, 0x35, 0x39, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x3A, 0x0A, 0x16, 0x28, 0x30, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x12, 0x30, 0x5B, 0x31, 0x33, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x2D, 0x38, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x32, 0x0A, 0x11, 0x28, 0x30, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x36, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x12, 0x30, 0x5B, 0x31, 0x33, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x2D, 0x38, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x3B, 0x0A, 0x17, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x12, 0x5B, 0x31, 0x33, 0x5D, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x34, 0x5B, 0x37, 0x38, 0x5D, 0x29, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x28, 0x0A, 0x10, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x36, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x09, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x33, 0x7C, 0x39, 0x29, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xD0, 0x01, 0x01, 0x0A, 0xF5, 0x04, 0x0A, 0x1B, 0x12, 0x0F, 0x5B, 0x31, 0x33, 0x35, 0x37, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0x21, 0x12, 0x09, 0x31, 0x35, 0x33, 0x34, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x35, 0x33, 0x34, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x1A, 0x36, 0x12, 0x20, 0x37, 0x28, 0x3F, 0x3A, 0x35, 0x30, 0x39, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x39, 0x37, 0x29, 0x7C, 0x38, 0x32, 0x39, 0x7C, 0x39, 0x33, 0x37, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x37, 0x37, 0x39, 0x37, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x31, 0x12, 0x1B, 0x38, 0x30, 0x28, 0x3F, 0x3A, 0x30, 0x37, 0x28, 0x3F, 0x3A, 0x33, 0x35, 0x7C, 0x38, 0x31, 0x29, 0x7C, 0x38, 0x39, 0x30, 0x31, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x37, 0x33, 0x35, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x44, 0x12, 0x2E, 0x28, 0x3F, 0x3A, 0x38, 0x37, 0x31, 0x32, 0x30, 0x36, 0x7C, 0x39, 0x30, 0x28, 0x3F, 0x3A, 0x30, 0x36, 0x36, 0x5B, 0x35, 0x39, 0x5D, 0x7C, 0x31, 0x38, 0x31, 0x30, 0x7C, 0x37, 0x31, 0x28, 0x3F, 0x3A, 0x30, 0x37, 0x7C, 0x35, 0x35, 0x29, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x31, 0x38, 0x31, 0x30, 0x35, 0x36, 0x37, 0x38, 0x32, 0x4E, 0x12, 0x38, 0x38, 0x28, 0x3F, 0x3A, 0x34, 0x28, 0x3F, 0x3A, 0x34, 0x28, 0x3F, 0x3A, 0x34, 0x28, 0x3F, 0x3A, 0x30, 0x35, 0x7C, 0x34, 0x32, 0x7C, 0x36, 0x39, 0x29, 0x7C, 0x37, 0x30, 0x33, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x34, 0x31, 0x7C, 0x38, 0x30, 0x30, 0x29, 0x29, 0x7C, 0x37, 0x30, 0x30, 0x30, 0x32, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x34, 0x34, 0x37, 0x30, 0x33, 0x34, 0x35, 0x36, 0x37, 0x3A, 0x21, 0x12, 0x0B, 0x37, 0x30, 0x31, 0x35, 0x31, 0x31, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x37, 0x30, 0x31, 0x35, 0x31, 0x31, 0x35, 0x36, 0x37, 0x38, 0x42, 0x1D, 0x12, 0x07, 0x35, 0x36, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x36, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x4A, 0x02, 0x4A, 0x45, 0x50, 0x2C, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x6A, 0x02, 0x20, 0x78, 0x7A, 0x01, 0x30, 0xAA, 0x01, 0x51, 0x12, 0x3B, 0x37, 0x36, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x31, 0x32, 0x5D, 0x7C, 0x32, 0x5B, 0x33, 0x35, 0x36, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x31, 0x33, 0x34, 0x5D, 0x7C, 0x35, 0x5B, 0x34, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x2D, 0x33, 0x36, 0x39, 0x5D, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x31, 0x7C, 0x39, 0x5B, 0x33, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x37, 0x36, 0x34, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x7C, 0x12, 0x66, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x28, 0x3F, 0x3A, 0x30, 0x37, 0x28, 0x3F, 0x3A, 0x33, 0x35, 0x7C, 0x38, 0x31, 0x29, 0x7C, 0x38, 0x39, 0x30, 0x31, 0x29, 0x7C, 0x33, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x34, 0x28, 0x3F, 0x3A, 0x34, 0x28, 0x3F, 0x3A, 0x30, 0x35, 0x7C, 0x34, 0x32, 0x7C, 0x36, 0x39, 0x29, 0x7C, 0x37, 0x30, 0x33, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x34, 0x31, 0x7C, 0x38, 0x30, 0x30, 0x29, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x30, 0x32, 0x7C, 0x31, 0x32, 0x30, 0x36, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x7C, 0x35, 0x35, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x35, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x0A, 0xF7, 0x03, 0x0A, 0x1D, 0x12, 0x0A, 0x5B, 0x35, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x12, 0x8C, 0x01, 0x12, 0x6D, 0x38, 0x37, 0x36, 0x28, 0x3F, 0x3A, 0x28, 0x3F, 0x3A, 0x35, 0x5B, 0x30, 0x2D, 0x32, 0x36, 0x5D, 0x7C, 0x36, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x7C, 0x28, 0x3F, 0x3A, 0x37, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x32, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x5C, 0x64, 0x7C, 0x38, 0x5B, 0x30, 0x35, 0x36, 0x5D, 0x7C, 0x39, 0x5B, 0x34, 0x35, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x32, 0x33, 0x37, 0x38, 0x5D, 0x7C, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7C, 0x39, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x38, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x38, 0x37, 0x36, 0x35, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x72, 0x12, 0x5C, 0x38, 0x37, 0x36, 0x28, 0x3F, 0x3A, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x31, 0x37, 0x38, 0x5D, 0x7C, 0x5B, 0x33, 0x34, 0x38, 0x5D, 0x5C, 0x64, 0x7C, 0x35, 0x5B, 0x37, 0x38, 0x5D, 0x29, 0x5C, 0x64, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x37, 0x5D, 0x7C, 0x37, 0x5C, 0x64, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x34, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x2D, 0x33, 0x36, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x31, 0x5D, 0x39, 0x7C, 0x39, 0x5B, 0x30, 0x35, 0x37, 0x39, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x37, 0x36, 0x32, 0x31, 0x30, 0x31, 0x32, 0x33, 0x34, 0x22, 0x33, 0x12, 0x1D, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x38, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x23, 0x12, 0x0D, 0x39, 0x30, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x2D, 0x12, 0x17, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x33, 0x33, 0x7C, 0x34, 0x34, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4A, 0x4D, 0x50, 0x01, 0x5A, 0x03, 0x30, 0x31, 0x31, 0x62, 0x01, 0x31, 0x7A, 0x01, 0x31, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xBA, 0x01, 0x03, 0x38, 0x37, 0x36, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xE0, 0x03, 0x0A, 0x19, 0x12, 0x0E, 0x5B, 0x32, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x12, 0x25, 0x12, 0x10, 0x5B, 0x32, 0x33, 0x35, 0x36, 0x5D, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x32, 0x08, 0x36, 0x32, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x2D, 0x12, 0x19, 0x37, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7C, 0x39, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x37, 0x39, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x1A, 0x12, 0x07, 0x38, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x2A, 0x1B, 0x12, 0x08, 0x39, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x32, 0x1A, 0x12, 0x07, 0x38, 0x35, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x35, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x3A, 0x1B, 0x12, 0x07, 0x37, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x37, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4A, 0x4F, 0x50, 0xC2, 0x07, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x2F, 0x0A, 0x12, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x06, 0x5B, 0x32, 0x33, 0x35, 0x36, 0x5D, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x42, 0x0A, 0x1F, 0x28, 0x37, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0E, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x20, 0x24, 0x35, 0x1A, 0x08, 0x37, 0x5B, 0x34, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x29, 0x0A, 0x10, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x36, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x07, 0x37, 0x30, 0x7C, 0x5B, 0x38, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x26, 0x12, 0x13, 0x38, 0x28, 0x3F, 0x3A, 0x31, 0x30, 0x7C, 0x5B, 0x37, 0x38, 0x5D, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x37, 0x31, 0x30, 0x31, 0x32, 0x33, 0x34, 0x0A, 0x95, 0x23, 0x0A, 0x14, 0x12, 0x08, 0x5C, 0x64, 0x7B, 0x39, 0x2C, 0x31, 0x30, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x39, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0x93, 0x02, 0x12, 0xFE, 0x01, 0x28, 0x3F, 0x3A, 0x31, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x32, 0x33, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x32, 0x5B, 0x33, 0x2D, 0x36, 0x5D, 0x7C, 0x33, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x2D, 0x36, 0x5D, 0x7C, 0x5B, 0x35, 0x38, 0x5D, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x29, 0x7C, 0x32, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x5B, 0x33, 0x36, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x36, 0x5B, 0x30, 0x32, 0x33, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x5B, 0x32, 0x2D, 0x35, 0x37, 0x38, 0x5D, 0x5C, 0x64, 0x7C, 0x39, 0x5B, 0x32, 0x2D, 0x35, 0x39, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x36, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x5B, 0x32, 0x2D, 0x35, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x32, 0x35, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x32, 0x36, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x36, 0x37, 0x39, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x32, 0x2D, 0x35, 0x38, 0x5D, 0x5C, 0x64, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x33, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x21, 0x12, 0x0B, 0x5B, 0x37, 0x2D, 0x39, 0x5D, 0x30, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x37, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x1C, 0x12, 0x08, 0x31, 0x32, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x31, 0x32, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x1C, 0x12, 0x08, 0x39, 0x39, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x39, 0x39, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x1B, 0x12, 0x07, 0x36, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x36, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x42, 0x1D, 0x12, 0x07, 0x35, 0x30, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x4A, 0x02, 0x4A, 0x50, 0x50, 0x51, 0x5A, 0x03, 0x30, 0x31, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x34, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x0A, 0x28, 0x3F, 0x3A, 0x31, 0x32, 0x7C, 0x39, 0x39, 0x29, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x31, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x07, 0x5B, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0xF6, 0x03, 0x0A, 0x12, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x5A, 0x31, 0x28, 0x3F, 0x3A, 0x32, 0x36, 0x7C, 0x33, 0x5B, 0x37, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x35, 0x36, 0x5D, 0x7C, 0x35, 0x5B, 0x34, 0x2D, 0x36, 0x38, 0x5D, 0x7C, 0x36, 0x5B, 0x33, 0x2D, 0x35, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x37, 0x36, 0x7C, 0x39, 0x37, 0x29, 0x7C, 0x34, 0x39, 0x39, 0x7C, 0x37, 0x34, 0x36, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x38, 0x39, 0x5D, 0x7C, 0x36, 0x33, 0x7C, 0x34, 0x37, 0x7C, 0x35, 0x31, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x34, 0x39, 0x7C, 0x38, 0x30, 0x7C, 0x39, 0x5B, 0x31, 0x36, 0x5D, 0x29, 0x1A, 0xAC, 0x01, 0x31, 0x28, 0x3F, 0x3A, 0x32, 0x36, 0x37, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x37, 0x5B, 0x32, 0x34, 0x37, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x37, 0x38, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x35, 0x5B, 0x36, 0x37, 0x5D, 0x7C, 0x36, 0x36, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x34, 0x37, 0x7C, 0x35, 0x38, 0x7C, 0x36, 0x34, 0x7C, 0x38, 0x5B, 0x36, 0x37, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x32, 0x34, 0x35, 0x5D, 0x7C, 0x34, 0x38, 0x7C, 0x35, 0x5B, 0x34, 0x2D, 0x36, 0x38, 0x5D, 0x29, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x37, 0x36, 0x7C, 0x39, 0x37, 0x29, 0x39, 0x7C, 0x34, 0x39, 0x39, 0x5B, 0x32, 0x34, 0x36, 0x38, 0x5D, 0x7C, 0x37, 0x34, 0x36, 0x38, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x33, 0x28, 0x3F, 0x3A, 0x38, 0x5B, 0x37, 0x38, 0x5D, 0x7C, 0x39, 0x36, 0x29, 0x7C, 0x36, 0x33, 0x36, 0x7C, 0x34, 0x37, 0x37, 0x7C, 0x35, 0x31, 0x5B, 0x32, 0x34, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x34, 0x39, 0x36, 0x7C, 0x38, 0x30, 0x32, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x32, 0x33, 0x5D, 0x7C, 0x36, 0x39, 0x29, 0x29, 0x1A, 0xC3, 0x01, 0x31, 0x28, 0x3F, 0x3A, 0x32, 0x36, 0x37, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x37, 0x5B, 0x32, 0x34, 0x37, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x37, 0x38, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x35, 0x5B, 0x36, 0x37, 0x5D, 0x7C, 0x36, 0x36, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x34, 0x37, 0x7C, 0x35, 0x38, 0x7C, 0x36, 0x34, 0x7C, 0x38, 0x5B, 0x36, 0x37, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x32, 0x34, 0x35, 0x5D, 0x7C, 0x34, 0x38, 0x7C, 0x35, 0x5B, 0x34, 0x2D, 0x36, 0x38, 0x5D, 0x29, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x37, 0x36, 0x39, 0x7C, 0x39, 0x37, 0x39, 0x5B, 0x32, 0x2D, 0x36, 0x39, 0x5D, 0x29, 0x7C, 0x34, 0x39, 0x39, 0x5B, 0x32, 0x34, 0x36, 0x38, 0x5D, 0x7C, 0x37, 0x34, 0x36, 0x38, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x33, 0x28, 0x3F, 0x3A, 0x38, 0x5B, 0x37, 0x38, 0x5D, 0x7C, 0x39, 0x36, 0x5B, 0x32, 0x34, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x36, 0x33, 0x36, 0x5B, 0x32, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x37, 0x37, 0x7C, 0x35, 0x31, 0x5B, 0x32, 0x34, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x34, 0x39, 0x36, 0x7C, 0x38, 0x30, 0x32, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x32, 0x33, 0x5D, 0x7C, 0x36, 0x39, 0x29, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0xFB, 0x14, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0xA7, 0x03, 0x31, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x33, 0x2D, 0x36, 0x5D, 0x7C, 0x33, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x2D, 0x36, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x5B, 0x36, 0x38, 0x5D, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x35, 0x37, 0x38, 0x5D, 0x29, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x33, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x33, 0x2D, 0x35, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x34, 0x2D, 0x38, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x32, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x33, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x32, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x33, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x35, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x38, 0x30, 0x7C, 0x39, 0x5B, 0x33, 0x2D, 0x35, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x31, 0x2D, 0x33, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x34, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x38, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x34, 0x2D, 0x37, 0x5D, 0x7C, 0x39, 0x5B, 0x34, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x31, 0x35, 0x5D, 0x7C, 0x33, 0x5B, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x33, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x31, 0x34, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x34, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x33, 0x2D, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x35, 0x37, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x33, 0x2D, 0x35, 0x37, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x33, 0x5D, 0x30, 0x7C, 0x34, 0x5B, 0x30, 0x32, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x32, 0x34, 0x35, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x2D, 0x34, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x32, 0x2D, 0x37, 0x5D, 0x7C, 0x39, 0x5B, 0x33, 0x2D, 0x37, 0x5D, 0x29, 0x1A, 0x9E, 0x05, 0x31, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x33, 0x2D, 0x36, 0x5D, 0x7C, 0x33, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x2D, 0x36, 0x5D, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x33, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x5B, 0x34, 0x35, 0x5D, 0x5B, 0x32, 0x2D, 0x36, 0x39, 0x5D, 0x29, 0x7C, 0x5B, 0x36, 0x38, 0x5D, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x35, 0x37, 0x38, 0x5D, 0x29, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x33, 0x5D, 0x29, 0x7C, 0x33, 0x5B, 0x33, 0x2D, 0x35, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x38, 0x5D, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x35, 0x5B, 0x37, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x2D, 0x34, 0x5D, 0x7C, 0x5B, 0x30, 0x34, 0x36, 0x38, 0x5D, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x31, 0x33, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x36, 0x37, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x32, 0x34, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x36, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x31, 0x31, 0x7C, 0x33, 0x5B, 0x32, 0x2D, 0x34, 0x5D, 0x29, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x33, 0x37, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x33, 0x5B, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x33, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x35, 0x39, 0x5D, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x5B, 0x36, 0x38, 0x5D, 0x29, 0x7C, 0x38, 0x30, 0x7C, 0x39, 0x5B, 0x33, 0x2D, 0x35, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x31, 0x2D, 0x33, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x34, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x38, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x34, 0x2D, 0x37, 0x5D, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x38, 0x39, 0x5D, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x5B, 0x34, 0x2D, 0x37, 0x5D, 0x29, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x31, 0x35, 0x5D, 0x7C, 0x33, 0x5B, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x33, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x31, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x2D, 0x34, 0x37, 0x38, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x2D, 0x35, 0x38, 0x39, 0x5D, 0x29, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x34, 0x5B, 0x34, 0x2D, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x37, 0x5B, 0x32, 0x2D, 0x35, 0x36, 0x5D, 0x7C, 0x5B, 0x33, 0x2D, 0x36, 0x5D, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x29, 0x7C, 0x34, 0x5B, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x5B, 0x33, 0x37, 0x5D, 0x7C, 0x35, 0x5B, 0x34, 0x2D, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x33, 0x36, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x37, 0x5B, 0x35, 0x37, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x33, 0x2D, 0x35, 0x37, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x33, 0x5D, 0x30, 0x7C, 0x34, 0x5B, 0x30, 0x32, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x32, 0x34, 0x35, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x2D, 0x34, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x32, 0x2D, 0x37, 0x5D, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x33, 0x34, 0x5D, 0x7C, 0x5B, 0x34, 0x2D, 0x37, 0x5D, 0x29, 0x29, 0x1A, 0xFD, 0x05, 0x31, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x33, 0x2D, 0x36, 0x5D, 0x7C, 0x33, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x2D, 0x36, 0x5D, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x33, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x5B, 0x34, 0x35, 0x5D, 0x5B, 0x32, 0x2D, 0x36, 0x39, 0x5D, 0x29, 0x7C, 0x5B, 0x36, 0x38, 0x5D, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x35, 0x37, 0x38, 0x5D, 0x29, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x33, 0x5D, 0x29, 0x7C, 0x33, 0x5B, 0x33, 0x2D, 0x35, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x38, 0x5D, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x35, 0x5B, 0x37, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x2D, 0x34, 0x5D, 0x7C, 0x5B, 0x30, 0x34, 0x36, 0x38, 0x5D, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x31, 0x33, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x36, 0x37, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x32, 0x34, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x36, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x31, 0x31, 0x7C, 0x33, 0x5B, 0x32, 0x2D, 0x34, 0x5D, 0x29, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x33, 0x37, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x33, 0x5B, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x33, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x35, 0x39, 0x5D, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x5B, 0x36, 0x38, 0x5D, 0x29, 0x7C, 0x38, 0x30, 0x7C, 0x39, 0x5B, 0x33, 0x2D, 0x35, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x31, 0x2D, 0x33, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x34, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x38, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x34, 0x2D, 0x37, 0x5D, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x38, 0x39, 0x5D, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x5B, 0x34, 0x2D, 0x37, 0x5D, 0x29, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x31, 0x35, 0x5D, 0x7C, 0x33, 0x5B, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x33, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x31, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x2D, 0x34, 0x37, 0x38, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x2D, 0x35, 0x38, 0x39, 0x5D, 0x29, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x34, 0x5B, 0x34, 0x2D, 0x38, 0x5D, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x33, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x32, 0x30, 0x7C, 0x34, 0x5B, 0x30, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x35, 0x36, 0x5D, 0x29, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x37, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x2D, 0x35, 0x39, 0x5D, 0x29, 0x7C, 0x5B, 0x33, 0x2D, 0x36, 0x5D, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x29, 0x7C, 0x34, 0x5B, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x5B, 0x33, 0x37, 0x5D, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x34, 0x36, 0x37, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x31, 0x34, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x32, 0x2D, 0x36, 0x39, 0x5D, 0x29, 0x7C, 0x38, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x33, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x33, 0x5D, 0x29, 0x29, 0x7C, 0x37, 0x5B, 0x35, 0x37, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x33, 0x2D, 0x35, 0x37, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x33, 0x5D, 0x30, 0x7C, 0x34, 0x5B, 0x30, 0x32, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x32, 0x34, 0x35, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x2D, 0x34, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x32, 0x2D, 0x37, 0x5D, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x33, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x36, 0x38, 0x39, 0x5D, 0x29, 0x7C, 0x34, 0x5B, 0x32, 0x2D, 0x36, 0x39, 0x5D, 0x7C, 0x5B, 0x35, 0x2D, 0x37, 0x5D, 0x29, 0x29, 0x1A, 0x85, 0x06, 0x31, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x33, 0x2D, 0x36, 0x5D, 0x7C, 0x33, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x2D, 0x36, 0x5D, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x33, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x5B, 0x34, 0x35, 0x5D, 0x5B, 0x32, 0x2D, 0x36, 0x39, 0x5D, 0x29, 0x7C, 0x5B, 0x36, 0x38, 0x5D, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x35, 0x37, 0x38, 0x5D, 0x29, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x33, 0x5D, 0x29, 0x7C, 0x33, 0x5B, 0x33, 0x2D, 0x35, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x38, 0x5D, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x35, 0x5B, 0x37, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x2D, 0x34, 0x5D, 0x7C, 0x5B, 0x30, 0x34, 0x36, 0x38, 0x5D, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x31, 0x33, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x36, 0x37, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x32, 0x34, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x36, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x31, 0x31, 0x7C, 0x33, 0x5B, 0x32, 0x2D, 0x34, 0x5D, 0x29, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x33, 0x37, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x33, 0x5B, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x33, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x35, 0x39, 0x5D, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x5B, 0x36, 0x38, 0x5D, 0x29, 0x7C, 0x38, 0x30, 0x7C, 0x39, 0x5B, 0x33, 0x2D, 0x35, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x31, 0x2D, 0x33, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x34, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x38, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x34, 0x2D, 0x37, 0x5D, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x38, 0x39, 0x5D, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x5B, 0x34, 0x2D, 0x37, 0x5D, 0x29, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x31, 0x35, 0x5D, 0x7C, 0x33, 0x5B, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x33, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x31, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x2D, 0x34, 0x37, 0x38, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x2D, 0x35, 0x38, 0x39, 0x5D, 0x29, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x34, 0x5B, 0x34, 0x2D, 0x38, 0x5D, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x33, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x32, 0x30, 0x7C, 0x34, 0x5B, 0x30, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x35, 0x5B, 0x32, 0x35, 0x5D, 0x7C, 0x36, 0x30, 0x29, 0x29, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x37, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x2D, 0x35, 0x39, 0x5D, 0x29, 0x7C, 0x5B, 0x33, 0x2D, 0x36, 0x5D, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x29, 0x7C, 0x34, 0x5B, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x5B, 0x33, 0x37, 0x5D, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x34, 0x36, 0x37, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x31, 0x34, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x32, 0x2D, 0x36, 0x39, 0x5D, 0x29, 0x7C, 0x38, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x33, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x33, 0x5D, 0x29, 0x29, 0x7C, 0x37, 0x5B, 0x35, 0x37, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x33, 0x2D, 0x35, 0x37, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x33, 0x5D, 0x30, 0x7C, 0x34, 0x5B, 0x30, 0x32, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x32, 0x34, 0x35, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x2D, 0x34, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x32, 0x2D, 0x37, 0x5D, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x33, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x36, 0x38, 0x39, 0x5D, 0x29, 0x7C, 0x34, 0x5B, 0x32, 0x2D, 0x36, 0x39, 0x5D, 0x7C, 0x5B, 0x35, 0x2D, 0x37, 0x5D, 0x29, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0xE4, 0x03, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x77, 0x31, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x33, 0x7C, 0x35, 0x5B, 0x35, 0x2D, 0x38, 0x39, 0x5D, 0x7C, 0x36, 0x34, 0x7C, 0x37, 0x38, 0x7C, 0x38, 0x5B, 0x33, 0x39, 0x5D, 0x7C, 0x39, 0x31, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x32, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x36, 0x34, 0x7C, 0x37, 0x5B, 0x33, 0x34, 0x37, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x2D, 0x35, 0x38, 0x39, 0x5D, 0x7C, 0x33, 0x39, 0x29, 0x7C, 0x36, 0x30, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x5B, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x37, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x32, 0x34, 0x35, 0x38, 0x39, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x33, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x39, 0x33, 0x29, 0x1A, 0x9A, 0x01, 0x31, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x33, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x35, 0x37, 0x5D, 0x7C, 0x5B, 0x36, 0x38, 0x5D, 0x30, 0x7C, 0x39, 0x5B, 0x31, 0x39, 0x5D, 0x29, 0x7C, 0x36, 0x34, 0x7C, 0x37, 0x38, 0x7C, 0x38, 0x5B, 0x33, 0x39, 0x5D, 0x7C, 0x39, 0x31, 0x37, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x36, 0x38, 0x5D, 0x7C, 0x32, 0x30, 0x7C, 0x39, 0x5B, 0x31, 0x37, 0x38, 0x5D, 0x29, 0x7C, 0x36, 0x34, 0x7C, 0x37, 0x5B, 0x33, 0x34, 0x37, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x2D, 0x35, 0x38, 0x39, 0x5D, 0x7C, 0x33, 0x39, 0x5B, 0x36, 0x37, 0x5D, 0x29, 0x7C, 0x36, 0x30, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x5B, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x37, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x32, 0x34, 0x35, 0x38, 0x39, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x33, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x39, 0x33, 0x5B, 0x33, 0x34, 0x5D, 0x29, 0x1A, 0xA3, 0x01, 0x31, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x33, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x35, 0x37, 0x5D, 0x7C, 0x5B, 0x36, 0x38, 0x5D, 0x30, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x31, 0x37, 0x7C, 0x39, 0x39, 0x29, 0x29, 0x7C, 0x36, 0x34, 0x7C, 0x37, 0x38, 0x7C, 0x38, 0x5B, 0x33, 0x39, 0x5D, 0x7C, 0x39, 0x31, 0x37, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x36, 0x38, 0x5D, 0x7C, 0x32, 0x30, 0x7C, 0x39, 0x5B, 0x31, 0x37, 0x38, 0x5D, 0x29, 0x7C, 0x36, 0x34, 0x7C, 0x37, 0x5B, 0x33, 0x34, 0x37, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x2D, 0x35, 0x38, 0x39, 0x5D, 0x7C, 0x33, 0x39, 0x5B, 0x36, 0x37, 0x5D, 0x29, 0x7C, 0x36, 0x30, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x5B, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x37, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x32, 0x34, 0x35, 0x38, 0x39, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x33, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x39, 0x33, 0x28, 0x3F, 0x3A, 0x33, 0x31, 0x7C, 0x34, 0x29, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x4D, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x23, 0x32, 0x28, 0x3F, 0x3A, 0x39, 0x5B, 0x31, 0x34, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x37, 0x34, 0x7C, 0x5B, 0x33, 0x34, 0x5D, 0x37, 0x7C, 0x5B, 0x35, 0x36, 0x5D, 0x39, 0x29, 0x7C, 0x38, 0x32, 0x7C, 0x39, 0x39, 0x33, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x40, 0x0A, 0x12, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x19, 0x33, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x31, 0x5D, 0x29, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x30, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x06, 0x5B, 0x32, 0x34, 0x37, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x8C, 0x03, 0x0A, 0x14, 0x12, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x30, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0x38, 0x12, 0x22, 0x28, 0x3F, 0x3A, 0x32, 0x30, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x36, 0x5D, 0x7C, 0x35, 0x5C, 0x64, 0x7C, 0x36, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x32, 0x30, 0x32, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x1A, 0x3D, 0x12, 0x29, 0x37, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x2D, 0x36, 0x5D, 0x7C, 0x32, 0x5C, 0x64, 0x7C, 0x33, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x32, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x32, 0x33, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x37, 0x31, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x28, 0x12, 0x11, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x38, 0x38, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x39, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x27, 0x12, 0x10, 0x39, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x31, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x09, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4B, 0x45, 0x50, 0xFE, 0x01, 0x5A, 0x03, 0x30, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x2A, 0x0A, 0x10, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x37, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x08, 0x5B, 0x32, 0x2D, 0x36, 0x5D, 0x7C, 0x39, 0x31, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x29, 0x0A, 0x10, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x07, 0x5B, 0x37, 0x38, 0x5D, 0x7C, 0x39, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xA1, 0x04, 0x0A, 0x17, 0x12, 0x0C, 0x5B, 0x33, 0x35, 0x36, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x39, 0x7D, 0x12, 0xEA, 0x01, 0x12, 0xD3, 0x01, 0x28, 0x3F, 0x3A, 0x33, 0x28, 0x3F, 0x3A, 0x31, 0x28, 0x3F, 0x3A, 0x32, 0x5C, 0x64, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x32, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x29, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x32, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x34, 0x37, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x2D, 0x37, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x32, 0x32, 0x7C, 0x35, 0x5B, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x32, 0x32, 0x7C, 0x33, 0x5B, 0x34, 0x2D, 0x37, 0x5D, 0x7C, 0x35, 0x39, 0x7C, 0x36, 0x5B, 0x30, 0x2D, 0x35, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x32, 0x32, 0x7C, 0x35, 0x5B, 0x33, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x2D, 0x33, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x32, 0x32, 0x7C, 0x33, 0x5B, 0x34, 0x36, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x35, 0x39, 0x7C, 0x36, 0x5C, 0x64, 0x7C, 0x37, 0x5B, 0x35, 0x2D, 0x37, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x32, 0x32, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x2D, 0x38, 0x5D, 0x29, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x30, 0x39, 0x7C, 0x31, 0x32, 0x7C, 0x32, 0x5B, 0x32, 0x2D, 0x34, 0x5D, 0x29, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x33, 0x31, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x35, 0x12, 0x21, 0x35, 0x5B, 0x31, 0x32, 0x34, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x35, 0x5D, 0x7C, 0x37, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x37, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x1C, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4B, 0x47, 0x50, 0xE4, 0x07, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x36, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x0C, 0x33, 0x31, 0x5B, 0x32, 0x35, 0x5D, 0x7C, 0x5B, 0x35, 0x2D, 0x38, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x30, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x10, 0x33, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x33, 0x36, 0x5D, 0x7C, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xCB, 0x03, 0x0A, 0x18, 0x12, 0x0C, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0x45, 0x12, 0x30, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x33, 0x2D, 0x36, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x2D, 0x36, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x2D, 0x34, 0x5D, 0x7C, 0x5B, 0x35, 0x2D, 0x37, 0x5D, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x29, 0x5B, 0x32, 0x2D, 0x34, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x1A, 0x4A, 0x12, 0x37, 0x28, 0x3F, 0x3A, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x34, 0x39, 0x5D, 0x29, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x38, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x2C, 0x12, 0x16, 0x31, 0x38, 0x30, 0x30, 0x28, 0x3F, 0x3A, 0x31, 0x5C, 0x64, 0x7C, 0x32, 0x5B, 0x30, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x2C, 0x12, 0x16, 0x31, 0x39, 0x30, 0x30, 0x28, 0x3F, 0x3A, 0x31, 0x5C, 0x64, 0x7C, 0x32, 0x5B, 0x30, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4B, 0x48, 0x50, 0xD7, 0x06, 0x5A, 0x07, 0x30, 0x30, 0x5B, 0x31, 0x37, 0x38, 0x5D, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x38, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x0E, 0x31, 0x5C, 0x64, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2F, 0x0A, 0x17, 0x28, 0x31, 0x5B, 0x38, 0x39, 0x5D, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x06, 0x31, 0x5B, 0x38, 0x39, 0x5D, 0x30, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xD9, 0x01, 0x0A, 0x15, 0x12, 0x0C, 0x5B, 0x32, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x12, 0x2A, 0x12, 0x1A, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x33, 0x34, 0x5D, 0x5C, 0x64, 0x7C, 0x35, 0x30, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x32, 0x05, 0x33, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x19, 0x12, 0x09, 0x5B, 0x36, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x32, 0x05, 0x36, 0x31, 0x32, 0x33, 0x34, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4B, 0x49, 0x50, 0xAE, 0x05, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x14, 0x0A, 0x07, 0x28, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x29, 0x12, 0x02, 0x24, 0x31, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xE6, 0x01, 0x0A, 0x12, 0x12, 0x09, 0x5B, 0x33, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x12, 0x2F, 0x12, 0x1D, 0x37, 0x28, 0x3F, 0x3A, 0x36, 0x5B, 0x30, 0x2D, 0x33, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x37, 0x37, 0x31, 0x32, 0x33, 0x34, 0x35, 0x1A, 0x1C, 0x12, 0x0A, 0x33, 0x5B, 0x32, 0x33, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x33, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4B, 0x4D, 0x50, 0x8D, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x22, 0x0A, 0x12, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x80, 0x03, 0x0A, 0x1D, 0x12, 0x0A, 0x5B, 0x35, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x12, 0x44, 0x12, 0x25, 0x38, 0x36, 0x39, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x39, 0x7C, 0x33, 0x36, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x36, 0x5B, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x30, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x38, 0x36, 0x39, 0x32, 0x33, 0x36, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x44, 0x12, 0x2E, 0x38, 0x36, 0x39, 0x28, 0x3F, 0x3A, 0x35, 0x28, 0x3F, 0x3A, 0x35, 0x5B, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x36, 0x5B, 0x35, 0x2D, 0x37, 0x5D, 0x29, 0x7C, 0x36, 0x36, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x36, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x36, 0x39, 0x35, 0x35, 0x36, 0x31, 0x32, 0x33, 0x34, 0x22, 0x33, 0x12, 0x1D, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x38, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x23, 0x12, 0x0D, 0x39, 0x30, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x2D, 0x12, 0x17, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x33, 0x33, 0x7C, 0x34, 0x34, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4B, 0x4E, 0x50, 0x01, 0x5A, 0x03, 0x30, 0x31, 0x31, 0x62, 0x01, 0x31, 0x7A, 0x01, 0x31, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xBA, 0x01, 0x03, 0x38, 0x36, 0x39, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x6D, 0x0A, 0x00, 0x12, 0x00, 0x1A, 0x00, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4B, 0x50, 0x50, 0xD2, 0x06, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x90, 0x01, 0x01, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xCA, 0x0B, 0x0A, 0x20, 0x12, 0x14, 0x5B, 0x31, 0x2D, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x39, 0x7D, 0x7C, 0x38, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0x4C, 0x12, 0x36, 0x28, 0x3F, 0x3A, 0x32, 0x7C, 0x5B, 0x33, 0x34, 0x5D, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x29, 0x28, 0x3F, 0x3A, 0x31, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x33, 0x7D, 0x7C, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x29, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x08, 0x32, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x28, 0x12, 0x10, 0x31, 0x5B, 0x30, 0x2D, 0x32, 0x35, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x39, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x22, 0x1B, 0x12, 0x07, 0x38, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x20, 0x12, 0x0C, 0x36, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x36, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x1D, 0x12, 0x07, 0x35, 0x30, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x1D, 0x12, 0x07, 0x37, 0x30, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x37, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x4A, 0x02, 0x4B, 0x52, 0x50, 0x52, 0x5A, 0x18, 0x30, 0x30, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x32, 0x34, 0x2D, 0x36, 0x38, 0x5D, 0x7C, 0x5B, 0x33, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x62, 0x01, 0x30, 0x7A, 0x15, 0x30, 0x28, 0x38, 0x5B, 0x31, 0x2D, 0x34, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x38, 0x35, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x3F, 0x9A, 0x01, 0x77, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x1F, 0x31, 0x28, 0x3F, 0x3A, 0x30, 0x7C, 0x31, 0x5B, 0x31, 0x39, 0x5D, 0x7C, 0x5B, 0x36, 0x39, 0x5D, 0x39, 0x7C, 0x35, 0x5B, 0x34, 0x35, 0x38, 0x5D, 0x29, 0x7C, 0x5B, 0x35, 0x37, 0x5D, 0x30, 0x1A, 0x25, 0x31, 0x28, 0x3F, 0x3A, 0x30, 0x7C, 0x31, 0x5B, 0x31, 0x39, 0x5D, 0x7C, 0x5B, 0x36, 0x39, 0x5D, 0x39, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x34, 0x34, 0x7C, 0x35, 0x39, 0x7C, 0x38, 0x29, 0x29, 0x7C, 0x5B, 0x35, 0x37, 0x5D, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x07, 0x30, 0x24, 0x43, 0x43, 0x2D, 0x24, 0x31, 0x9A, 0x01, 0x9F, 0x01, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x31, 0x31, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x36, 0x39, 0x5D, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x5B, 0x37, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x29, 0x7C, 0x5B, 0x36, 0x38, 0x5D, 0x30, 0x7C, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x1A, 0x3B, 0x31, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x36, 0x39, 0x5D, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x5B, 0x37, 0x38, 0x5D, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x7C, 0x34, 0x5B, 0x35, 0x36, 0x5D, 0x29, 0x29, 0x7C, 0x5B, 0x36, 0x38, 0x5D, 0x30, 0x7C, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x07, 0x30, 0x24, 0x43, 0x43, 0x2D, 0x24, 0x31, 0x9A, 0x01, 0x37, 0x0A, 0x12, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x03, 0x31, 0x33, 0x31, 0x1A, 0x04, 0x31, 0x33, 0x31, 0x32, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x07, 0x30, 0x24, 0x43, 0x43, 0x2D, 0x24, 0x31, 0x9A, 0x01, 0x3F, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x03, 0x31, 0x33, 0x31, 0x1A, 0x09, 0x31, 0x33, 0x31, 0x5B, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x07, 0x30, 0x24, 0x43, 0x43, 0x2D, 0x24, 0x31, 0x9A, 0x01, 0x38, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x07, 0x31, 0x33, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x07, 0x30, 0x24, 0x43, 0x43, 0x2D, 0x24, 0x31, 0x9A, 0x01, 0x3D, 0x0A, 0x1C, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x2D, 0x24, 0x34, 0x1A, 0x02, 0x33, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x07, 0x30, 0x24, 0x43, 0x43, 0x2D, 0x24, 0x31, 0x9A, 0x01, 0x73, 0x0A, 0x12, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x12, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x36, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x37, 0x5D, 0x29, 0x1A, 0x31, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x36, 0x5D, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x31, 0x7C, 0x31, 0x5B, 0x34, 0x35, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x39, 0x7C, 0x34, 0x7C, 0x36, 0x5B, 0x36, 0x37, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x37, 0x38, 0x5D, 0x29, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x07, 0x30, 0x24, 0x43, 0x43, 0x2D, 0x24, 0x31, 0x9A, 0x01, 0x8F, 0x01, 0x0A, 0x12, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x16, 0x32, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x34, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x29, 0x1A, 0x49, 0x32, 0x28, 0x3F, 0x3A, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x2D, 0x33, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x32, 0x2D, 0x36, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x38, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x2D, 0x35, 0x38, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x36, 0x39, 0x5D, 0x7C, 0x5B, 0x35, 0x38, 0x39, 0x5D, 0x29, 0x7C, 0x5B, 0x34, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x07, 0x30, 0x24, 0x43, 0x43, 0x2D, 0x24, 0x31, 0x9A, 0x01, 0x30, 0x0A, 0x0D, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x1A, 0x0A, 0x32, 0x31, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x07, 0x30, 0x24, 0x43, 0x43, 0x2D, 0x24, 0x31, 0x9A, 0x01, 0x4D, 0x0A, 0x10, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x1A, 0x0B, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x31, 0x1A, 0x17, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x31, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x07, 0x30, 0x24, 0x43, 0x43, 0x2D, 0x24, 0x31, 0x9A, 0x01, 0x6C, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x1A, 0x15, 0x31, 0x28, 0x3F, 0x3A, 0x35, 0x5B, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x34, 0x36, 0x37, 0x38, 0x5D, 0x29, 0x1A, 0x2F, 0x31, 0x28, 0x3F, 0x3A, 0x35, 0x28, 0x3F, 0x3A, 0x34, 0x34, 0x7C, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x38, 0x7C, 0x39, 0x39, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x34, 0x34, 0x7C, 0x36, 0x5B, 0x31, 0x36, 0x5D, 0x7C, 0x37, 0x30, 0x7C, 0x38, 0x38, 0x29, 0x29, 0x22, 0x02, 0x24, 0x31, 0x2A, 0x07, 0x30, 0x24, 0x43, 0x43, 0x2D, 0x24, 0x31, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x47, 0x12, 0x34, 0x31, 0x28, 0x3F, 0x3A, 0x35, 0x28, 0x3F, 0x3A, 0x34, 0x34, 0x7C, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x38, 0x7C, 0x39, 0x39, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x34, 0x34, 0x7C, 0x36, 0x5B, 0x31, 0x36, 0x5D, 0x7C, 0x37, 0x30, 0x7C, 0x38, 0x38, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x31, 0x35, 0x34, 0x34, 0x31, 0x32, 0x33, 0x34, 0x0A, 0x95, 0x03, 0x0A, 0x19, 0x12, 0x0E, 0x5B, 0x31, 0x32, 0x35, 0x36, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x12, 0x60, 0x12, 0x4B, 0x28, 0x3F, 0x3A, 0x31, 0x38, 0x5C, 0x64, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x33, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x33, 0x34, 0x5D, 0x7C, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x5D, 0x5C, 0x64, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x29, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x6D, 0x12, 0x5A, 0x28, 0x3F, 0x3A, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x2D, 0x32, 0x5D, 0x7C, 0x35, 0x5C, 0x64, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x33, 0x34, 0x36, 0x37, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x31, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5C, 0x64, 0x7C, 0x37, 0x5B, 0x30, 0x36, 0x37, 0x5D, 0x7C, 0x39, 0x39, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x34, 0x39, 0x5D, 0x7C, 0x36, 0x36, 0x7C, 0x5B, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x35, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4B, 0x57, 0x50, 0xC5, 0x07, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x25, 0x0A, 0x10, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x06, 0x5B, 0x31, 0x32, 0x36, 0x39, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x20, 0x0A, 0x10, 0x28, 0x35, 0x5B, 0x30, 0x35, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x01, 0x35, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xE4, 0x03, 0x0A, 0x1E, 0x12, 0x0B, 0x5B, 0x33, 0x35, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x12, 0x81, 0x01, 0x12, 0x62, 0x33, 0x34, 0x35, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x32, 0x7C, 0x34, 0x34, 0x29, 0x7C, 0x34, 0x34, 0x34, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x32, 0x33, 0x7C, 0x33, 0x38, 0x7C, 0x34, 0x30, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x36, 0x5B, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x37, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x31, 0x5B, 0x34, 0x35, 0x5D, 0x7C, 0x32, 0x35, 0x7C, 0x34, 0x5B, 0x38, 0x39, 0x5D, 0x7C, 0x38, 0x38, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x31, 0x34, 0x7C, 0x34, 0x5B, 0x30, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x33, 0x34, 0x35, 0x32, 0x32, 0x32, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x5D, 0x12, 0x47, 0x33, 0x34, 0x35, 0x28, 0x3F, 0x3A, 0x33, 0x32, 0x5B, 0x33, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x34, 0x36, 0x37, 0x5D, 0x7C, 0x32, 0x5B, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x34, 0x5B, 0x35, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x36, 0x37, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x38, 0x39, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x33, 0x34, 0x35, 0x33, 0x32, 0x33, 0x31, 0x32, 0x33, 0x34, 0x22, 0x33, 0x12, 0x1D, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x38, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x2A, 0x2F, 0x12, 0x19, 0x39, 0x30, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x33, 0x34, 0x35, 0x39, 0x37, 0x36, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x2D, 0x12, 0x17, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x33, 0x33, 0x7C, 0x34, 0x34, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4B, 0x59, 0x50, 0x01, 0x5A, 0x03, 0x30, 0x31, 0x31, 0x62, 0x01, 0x31, 0x7A, 0x01, 0x31, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xBA, 0x01, 0x03, 0x33, 0x34, 0x35, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x90, 0x06, 0x0A, 0x20, 0x12, 0x16, 0x28, 0x3F, 0x3A, 0x37, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x7C, 0x38, 0x30, 0x5B, 0x30, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x12, 0xE6, 0x03, 0x12, 0xCF, 0x03, 0x37, 0x28, 0x3F, 0x3A, 0x31, 0x28, 0x3F, 0x3A, 0x30, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x33, 0x5D, 0x5C, 0x64, 0x7C, 0x34, 0x5B, 0x30, 0x32, 0x33, 0x5D, 0x7C, 0x35, 0x39, 0x7C, 0x36, 0x33, 0x29, 0x7C, 0x31, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x33, 0x5D, 0x5C, 0x64, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x35, 0x39, 0x29, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x33, 0x5D, 0x5C, 0x64, 0x7C, 0x35, 0x39, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x32, 0x5C, 0x64, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x39, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x32, 0x5C, 0x64, 0x7C, 0x33, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x37, 0x39, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x32, 0x5C, 0x64, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x7C, 0x35, 0x39, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x32, 0x5C, 0x64, 0x7C, 0x5B, 0x33, 0x34, 0x5D, 0x5C, 0x64, 0x7C, 0x35, 0x5B, 0x31, 0x39, 0x5D, 0x7C, 0x36, 0x31, 0x29, 0x7C, 0x37, 0x32, 0x5C, 0x64, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x37, 0x5D, 0x5C, 0x64, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x35, 0x5D, 0x7C, 0x29, 0x29, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x31, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x33, 0x5D, 0x5C, 0x64, 0x7C, 0x34, 0x5B, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x33, 0x34, 0x36, 0x39, 0x5D, 0x29, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x5C, 0x64, 0x7C, 0x33, 0x5B, 0x30, 0x36, 0x37, 0x39, 0x5D, 0x7C, 0x34, 0x36, 0x7C, 0x35, 0x5B, 0x31, 0x32, 0x36, 0x37, 0x39, 0x5D, 0x7C, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x33, 0x34, 0x5D, 0x5C, 0x64, 0x7C, 0x35, 0x5B, 0x31, 0x33, 0x39, 0x5D, 0x7C, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x32, 0x5C, 0x64, 0x7C, 0x33, 0x5B, 0x31, 0x32, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x39, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x33, 0x5D, 0x5C, 0x64, 0x7C, 0x34, 0x5B, 0x30, 0x31, 0x32, 0x34, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x35, 0x39, 0x7C, 0x36, 0x31, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x32, 0x5C, 0x64, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x7C, 0x35, 0x39, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x33, 0x5D, 0x5C, 0x64, 0x7C, 0x34, 0x30, 0x7C, 0x35, 0x5B, 0x32, 0x37, 0x39, 0x5D, 0x7C, 0x37, 0x5C, 0x64, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x33, 0x5D, 0x5C, 0x64, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x33, 0x5D, 0x7C, 0x35, 0x39, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x32, 0x5C, 0x64, 0x7C, 0x33, 0x5B, 0x31, 0x32, 0x34, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x35, 0x39, 0x29, 0x29, 0x7C, 0x33, 0x36, 0x32, 0x32, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x37, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x1A, 0x46, 0x12, 0x30, 0x37, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x31, 0x32, 0x35, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x7C, 0x36, 0x5B, 0x30, 0x32, 0x2D, 0x34, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x7C, 0x37, 0x5B, 0x31, 0x35, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x37, 0x37, 0x31, 0x30, 0x30, 0x30, 0x39, 0x39, 0x39, 0x38, 0x22, 0x1E, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x1E, 0x12, 0x08, 0x38, 0x30, 0x39, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x1E, 0x12, 0x08, 0x37, 0x35, 0x31, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x37, 0x35, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x4A, 0x02, 0x4B, 0x5A, 0x50, 0x07, 0x5A, 0x04, 0x38, 0x7E, 0x31, 0x30, 0x62, 0x01, 0x38, 0x7A, 0x01, 0x38, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x1E, 0x12, 0x08, 0x37, 0x35, 0x31, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x37, 0x35, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xD0, 0x02, 0x0A, 0x19, 0x12, 0x0D, 0x5B, 0x32, 0x2D, 0x35, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0x28, 0x12, 0x13, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x2D, 0x35, 0x37, 0x5D, 0x31, 0x7C, 0x35, 0x34, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x31, 0x32, 0x31, 0x32, 0x38, 0x36, 0x32, 0x1A, 0x36, 0x12, 0x20, 0x32, 0x30, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x32, 0x33, 0x5D, 0x7C, 0x35, 0x5B, 0x34, 0x2D, 0x36, 0x5D, 0x7C, 0x37, 0x37, 0x7C, 0x39, 0x5B, 0x38, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x32, 0x30, 0x32, 0x33, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4C, 0x41, 0x50, 0xD8, 0x06, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x33, 0x0A, 0x19, 0x28, 0x32, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x02, 0x32, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x36, 0x0A, 0x18, 0x28, 0x5B, 0x32, 0x2D, 0x35, 0x37, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x09, 0x32, 0x31, 0x7C, 0x5B, 0x33, 0x2D, 0x35, 0x37, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xB6, 0x03, 0x0A, 0x18, 0x12, 0x0D, 0x5B, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x12, 0x45, 0x12, 0x33, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x34, 0x2D, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x36, 0x32, 0x29, 0x7C, 0x5B, 0x38, 0x39, 0x5D, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x33, 0x12, 0x1E, 0x28, 0x3F, 0x3A, 0x33, 0x5C, 0x64, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x31, 0x5D, 0x5C, 0x64, 0x7C, 0x36, 0x5B, 0x36, 0x37, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x32, 0x08, 0x37, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x1D, 0x12, 0x0A, 0x39, 0x5B, 0x30, 0x31, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x39, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x1D, 0x12, 0x0A, 0x38, 0x5B, 0x30, 0x31, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4C, 0x42, 0x50, 0xC1, 0x07, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x48, 0x0A, 0x12, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x21, 0x5B, 0x31, 0x33, 0x2D, 0x36, 0x5D, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x32, 0x29, 0x7C, 0x5B, 0x38, 0x39, 0x5D, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x44, 0x0A, 0x17, 0x28, 0x5B, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x18, 0x5B, 0x38, 0x39, 0x5D, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x36, 0x5B, 0x36, 0x37, 0x5D, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xAC, 0x03, 0x0A, 0x1E, 0x12, 0x0B, 0x5B, 0x35, 0x37, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x12, 0x50, 0x12, 0x31, 0x37, 0x35, 0x38, 0x28, 0x3F, 0x3A, 0x32, 0x33, 0x34, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x35, 0x5B, 0x30, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x2D, 0x32, 0x5D, 0x29, 0x7C, 0x36, 0x33, 0x38, 0x7C, 0x37, 0x35, 0x38, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x37, 0x35, 0x38, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x63, 0x12, 0x4D, 0x37, 0x35, 0x38, 0x28, 0x3F, 0x3A, 0x32, 0x38, 0x5B, 0x34, 0x2D, 0x37, 0x5D, 0x7C, 0x33, 0x38, 0x34, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x36, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x38, 0x5B, 0x34, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x38, 0x39, 0x5D, 0x7C, 0x32, 0x30, 0x7C, 0x38, 0x34, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x37, 0x35, 0x38, 0x32, 0x38, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x33, 0x12, 0x1D, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x38, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x23, 0x12, 0x0D, 0x39, 0x30, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x2D, 0x12, 0x17, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x33, 0x33, 0x7C, 0x34, 0x34, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4C, 0x43, 0x50, 0x01, 0x5A, 0x03, 0x30, 0x31, 0x31, 0x62, 0x01, 0x31, 0x7A, 0x01, 0x31, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xBA, 0x01, 0x03, 0x37, 0x35, 0x38, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xAE, 0x05, 0x0A, 0x29, 0x12, 0x1E, 0x28, 0x3F, 0x3A, 0x36, 0x36, 0x7C, 0x38, 0x30, 0x7C, 0x39, 0x30, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x7C, 0x5B, 0x32, 0x33, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x12, 0x56, 0x12, 0x44, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x31, 0x37, 0x7C, 0x33, 0x5C, 0x64, 0x7C, 0x36, 0x5B, 0x30, 0x32, 0x2D, 0x35, 0x38, 0x5D, 0x7C, 0x39, 0x36, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x32, 0x7C, 0x37, 0x5B, 0x30, 0x31, 0x33, 0x35, 0x37, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x34, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x32, 0x36, 0x39, 0x5D, 0x29, 0x7C, 0x38, 0x37, 0x30, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x6D, 0x12, 0x57, 0x36, 0x36, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x31, 0x37, 0x38, 0x5D, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x32, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x33, 0x36, 0x5D, 0x5C, 0x64, 0x7C, 0x34, 0x5B, 0x31, 0x32, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x34, 0x35, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x31, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x34, 0x5B, 0x32, 0x2D, 0x35, 0x39, 0x5D, 0x7C, 0x35, 0x36, 0x7C, 0x5B, 0x36, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x36, 0x36, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x3D, 0x12, 0x29, 0x38, 0x30, 0x28, 0x3F, 0x3A, 0x30, 0x28, 0x3F, 0x3A, 0x30, 0x37, 0x7C, 0x32, 0x5B, 0x32, 0x33, 0x38, 0x5D, 0x7C, 0x37, 0x39, 0x7C, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x7C, 0x39, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x32, 0x07, 0x38, 0x30, 0x30, 0x32, 0x32, 0x32, 0x32, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x4F, 0x12, 0x3B, 0x39, 0x30, 0x28, 0x3F, 0x3A, 0x30, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x32, 0x37, 0x38, 0x5D, 0x7C, 0x37, 0x39, 0x7C, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x7C, 0x31, 0x28, 0x3F, 0x3A, 0x32, 0x33, 0x7C, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x36, 0x36, 0x7C, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x32, 0x07, 0x39, 0x30, 0x30, 0x32, 0x32, 0x32, 0x32, 0x3A, 0x1A, 0x12, 0x08, 0x37, 0x30, 0x31, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x37, 0x30, 0x31, 0x31, 0x32, 0x33, 0x34, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4C, 0x49, 0x50, 0xA7, 0x03, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x35, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x0E, 0x5B, 0x32, 0x33, 0x5D, 0x7C, 0x37, 0x5B, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x37, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x26, 0x0A, 0x13, 0x28, 0x36, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x36, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x30, 0x0A, 0x18, 0x28, 0x5B, 0x37, 0x2D, 0x39, 0x5D, 0x30, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x06, 0x5B, 0x37, 0x2D, 0x39, 0x5D, 0x30, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x39, 0x0A, 0x1E, 0x28, 0x5B, 0x38, 0x39, 0x5D, 0x30, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0C, 0x30, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x05, 0x5B, 0x38, 0x39, 0x5D, 0x30, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xD3, 0x02, 0x0A, 0x15, 0x12, 0x0A, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x12, 0x52, 0x12, 0x3C, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x38, 0x39, 0x5D, 0x31, 0x7C, 0x32, 0x5B, 0x31, 0x33, 0x2D, 0x37, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x35, 0x37, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x32, 0x34, 0x35, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x33, 0x35, 0x2D, 0x37, 0x5D, 0x29, 0x5B, 0x32, 0x2D, 0x35, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x21, 0x12, 0x0D, 0x37, 0x5B, 0x31, 0x32, 0x35, 0x37, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x37, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4C, 0x4B, 0x50, 0x5E, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x31, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x31, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x07, 0x5B, 0x31, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2B, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x37, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xD0, 0x02, 0x0A, 0x21, 0x12, 0x16, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x5B, 0x34, 0x2D, 0x36, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x12, 0x19, 0x12, 0x06, 0x32, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x1A, 0x34, 0x12, 0x20, 0x28, 0x3F, 0x3A, 0x34, 0x5B, 0x36, 0x37, 0x5D, 0x7C, 0x35, 0x5C, 0x64, 0x7C, 0x36, 0x5B, 0x34, 0x2D, 0x38, 0x5D, 0x7C, 0x37, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x32, 0x07, 0x34, 0x36, 0x31, 0x32, 0x33, 0x34, 0x35, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x1A, 0x12, 0x07, 0x39, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x39, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4C, 0x52, 0x50, 0xE7, 0x01, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x31, 0x0A, 0x17, 0x28, 0x5B, 0x32, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x05, 0x5B, 0x32, 0x37, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2F, 0x0A, 0x15, 0x28, 0x5B, 0x34, 0x2D, 0x36, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x05, 0x5B, 0x34, 0x2D, 0x36, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xE3, 0x01, 0x0A, 0x14, 0x12, 0x0B, 0x5B, 0x32, 0x35, 0x36, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x12, 0x19, 0x12, 0x06, 0x32, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x1C, 0x12, 0x09, 0x5B, 0x35, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x35, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x20, 0x12, 0x0D, 0x38, 0x30, 0x30, 0x5B, 0x32, 0x35, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4C, 0x53, 0x50, 0x8A, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x1B, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xD5, 0x03, 0x0A, 0x13, 0x12, 0x0A, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x12, 0x2F, 0x12, 0x1C, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x31, 0x34, 0x37, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x32, 0x34, 0x2D, 0x36, 0x5D, 0x7C, 0x35, 0x32, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x33, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x1A, 0x19, 0x12, 0x06, 0x36, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x36, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x1B, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x2A, 0x20, 0x12, 0x0D, 0x39, 0x30, 0x5B, 0x30, 0x32, 0x33, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4C, 0x54, 0x50, 0xF2, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x38, 0x7A, 0x01, 0x38, 0x9A, 0x01, 0x4C, 0x0A, 0x1D, 0x28, 0x5B, 0x33, 0x34, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x16, 0x33, 0x37, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x31, 0x7C, 0x35, 0x5B, 0x34, 0x35, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x2D, 0x34, 0x5D, 0x29, 0x22, 0x04, 0x38, 0x20, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x5D, 0x0A, 0x1C, 0x28, 0x5B, 0x33, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x2B, 0x33, 0x5B, 0x31, 0x34, 0x38, 0x5D, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x34, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x39, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x31, 0x38, 0x39, 0x5D, 0x7C, 0x32, 0x38, 0x29, 0x7C, 0x5B, 0x36, 0x38, 0x39, 0x5D, 0x22, 0x04, 0x38, 0x20, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x33, 0x0A, 0x15, 0x28, 0x35, 0x29, 0x28, 0x32, 0x5B, 0x30, 0x2D, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x08, 0x35, 0x32, 0x5B, 0x30, 0x2D, 0x37, 0x39, 0x5D, 0x22, 0x04, 0x38, 0x20, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xE5, 0x0A, 0x0A, 0x3F, 0x12, 0x33, 0x5B, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x31, 0x30, 0x7D, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x39, 0x7D, 0x7C, 0x35, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x31, 0x2C, 0x38, 0x7D, 0x29, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x31, 0x31, 0x7D, 0x12, 0xFD, 0x02, 0x12, 0xE6, 0x02, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x5C, 0x64, 0x7B, 0x31, 0x2C, 0x32, 0x7D, 0x7C, 0x33, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x36, 0x37, 0x5D, 0x5C, 0x64, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x3F, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x5C, 0x64, 0x3F, 0x7C, 0x39, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x3F, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x35, 0x39, 0x5D, 0x5B, 0x30, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x31, 0x33, 0x5D, 0x5C, 0x64, 0x7C, 0x5B, 0x32, 0x36, 0x5D, 0x5B, 0x30, 0x31, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x32, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x33, 0x38, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x38, 0x5D, 0x29, 0x5C, 0x64, 0x3F, 0x7C, 0x34, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x33, 0x7D, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x31, 0x34, 0x35, 0x38, 0x5D, 0x5C, 0x64, 0x7C, 0x5B, 0x32, 0x37, 0x5D, 0x5B, 0x30, 0x2D, 0x36, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x33, 0x5D, 0x7C, 0x5B, 0x36, 0x39, 0x5D, 0x5B, 0x30, 0x2D, 0x37, 0x5D, 0x29, 0x5C, 0x64, 0x3F, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x31, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x35, 0x5D, 0x7C, 0x5B, 0x34, 0x35, 0x5D, 0x5B, 0x30, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x36, 0x37, 0x39, 0x5D, 0x5B, 0x30, 0x38, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x36, 0x2D, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x3F, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x2D, 0x33, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x34, 0x36, 0x39, 0x5D, 0x39, 0x7C, 0x5B, 0x35, 0x38, 0x5D, 0x5B, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x38, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x3F, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x38, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x2D, 0x34, 0x39, 0x5D, 0x7C, 0x33, 0x37, 0x7C, 0x34, 0x39, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x32, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x2D, 0x34, 0x37, 0x38, 0x5D, 0x29, 0x5C, 0x64, 0x3F, 0x29, 0x5C, 0x64, 0x7B, 0x31, 0x2C, 0x37, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x31, 0x31, 0x7D, 0x32, 0x08, 0x32, 0x37, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x23, 0x12, 0x0F, 0x36, 0x5B, 0x32, 0x36, 0x39, 0x5D, 0x5B, 0x31, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x36, 0x32, 0x38, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x1B, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x2A, 0x1E, 0x12, 0x0B, 0x39, 0x30, 0x5B, 0x30, 0x31, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x32, 0x1B, 0x12, 0x08, 0x38, 0x30, 0x31, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x30, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x3A, 0x1A, 0x12, 0x07, 0x37, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x37, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x42, 0x1E, 0x12, 0x09, 0x32, 0x30, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x38, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x07, 0x32, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x4A, 0x02, 0x4C, 0x55, 0x50, 0xE0, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x7A, 0x30, 0x28, 0x31, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x36, 0x5D, 0x7C, 0x31, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x33, 0x35, 0x7C, 0x34, 0x5B, 0x30, 0x34, 0x5D, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x5B, 0x32, 0x36, 0x5D, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x38, 0x7C, 0x39, 0x39, 0x29, 0x5C, 0x64, 0x29, 0x9A, 0x01, 0x45, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x22, 0x5B, 0x32, 0x33, 0x2D, 0x35, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x38, 0x39, 0x5D, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x29, 0x22, 0x00, 0x2A, 0x06, 0x24, 0x43, 0x43, 0x20, 0x24, 0x31, 0x9A, 0x01, 0x4F, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x22, 0x5B, 0x32, 0x33, 0x2D, 0x35, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x38, 0x39, 0x5D, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x29, 0x22, 0x00, 0x2A, 0x06, 0x24, 0x43, 0x43, 0x20, 0x24, 0x31, 0x9A, 0x01, 0x2F, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x02, 0x32, 0x30, 0x22, 0x00, 0x2A, 0x06, 0x24, 0x43, 0x43, 0x20, 0x24, 0x31, 0x9A, 0x01, 0x4B, 0x0A, 0x1E, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x31, 0x2C, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x12, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x33, 0x36, 0x37, 0x5D, 0x7C, 0x34, 0x5B, 0x33, 0x2D, 0x38, 0x5D, 0x29, 0x22, 0x00, 0x2A, 0x06, 0x24, 0x43, 0x43, 0x20, 0x24, 0x31, 0x9A, 0x01, 0x39, 0x0A, 0x1C, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x02, 0x32, 0x30, 0x22, 0x00, 0x2A, 0x06, 0x24, 0x43, 0x43, 0x20, 0x24, 0x31, 0x9A, 0x01, 0x55, 0x0A, 0x25, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x31, 0x2C, 0x32, 0x7D, 0x29, 0x12, 0x0E, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x20, 0x24, 0x35, 0x1A, 0x12, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x33, 0x36, 0x37, 0x5D, 0x7C, 0x34, 0x5B, 0x33, 0x2D, 0x38, 0x5D, 0x29, 0x22, 0x00, 0x2A, 0x06, 0x24, 0x43, 0x43, 0x20, 0x24, 0x31, 0x9A, 0x01, 0x6D, 0x0A, 0x1E, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x31, 0x2C, 0x34, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x34, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x32, 0x35, 0x38, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x32, 0x5D, 0x29, 0x7C, 0x5B, 0x33, 0x2D, 0x35, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x38, 0x39, 0x5D, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x29, 0x22, 0x00, 0x2A, 0x06, 0x24, 0x43, 0x43, 0x20, 0x24, 0x31, 0x9A, 0x01, 0x39, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x0C, 0x5B, 0x38, 0x39, 0x5D, 0x30, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x37, 0x30, 0x22, 0x00, 0x2A, 0x06, 0x24, 0x43, 0x43, 0x20, 0x24, 0x31, 0x9A, 0x01, 0x2E, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x36, 0x22, 0x00, 0x2A, 0x06, 0x24, 0x43, 0x43, 0x20, 0x24, 0x31, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xF9, 0x01, 0x0A, 0x14, 0x12, 0x0B, 0x5B, 0x32, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x12, 0x19, 0x12, 0x06, 0x36, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x36, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x1A, 0x19, 0x12, 0x06, 0x32, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x1A, 0x12, 0x07, 0x38, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x1A, 0x12, 0x07, 0x39, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x39, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4C, 0x56, 0x50, 0xF3, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x28, 0x0A, 0x18, 0x28, 0x5B, 0x32, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x80, 0x02, 0x0A, 0x17, 0x12, 0x0C, 0x5B, 0x32, 0x35, 0x36, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x12, 0x3B, 0x12, 0x25, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x31, 0x33, 0x34, 0x35, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x33, 0x34, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x32, 0x33, 0x34, 0x37, 0x39, 0x5D, 0x7C, 0x37, 0x31, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x1F, 0x12, 0x0B, 0x39, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4C, 0x59, 0x50, 0xDA, 0x01, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x22, 0x0A, 0x12, 0x28, 0x5B, 0x32, 0x35, 0x36, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x90, 0x05, 0x0A, 0x14, 0x12, 0x0B, 0x5B, 0x35, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x12, 0x9E, 0x01, 0x12, 0x89, 0x01, 0x35, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x31, 0x35, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x7C, 0x32, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x2D, 0x35, 0x37, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x29, 0x5C, 0x64, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x30, 0x5C, 0x64, 0x7C, 0x5B, 0x38, 0x39, 0x5D, 0x30, 0x29, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x5C, 0x64, 0x7C, 0x5B, 0x35, 0x37, 0x5D, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x33, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x5C, 0x64, 0x7C, 0x5B, 0x38, 0x39, 0x5D, 0x30, 0x29, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x35, 0x32, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x39, 0x12, 0x25, 0x36, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x36, 0x5D, 0x7C, 0x5B, 0x31, 0x34, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x7C, 0x32, 0x5B, 0x32, 0x33, 0x36, 0x5D, 0x7C, 0x33, 0x33, 0x7C, 0x39, 0x39, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x36, 0x35, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x1B, 0x12, 0x07, 0x38, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x1B, 0x12, 0x07, 0x38, 0x39, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4D, 0x41, 0x50, 0xD4, 0x01, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x3A, 0x0A, 0x12, 0x28, 0x5B, 0x35, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x1A, 0x16, 0x35, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x31, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x29, 0x7C, 0x36, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x64, 0x0A, 0x12, 0x28, 0x5B, 0x35, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x1A, 0x18, 0x35, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x32, 0x2D, 0x34, 0x38, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x35, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x38, 0x39, 0x32, 0x1A, 0x26, 0x35, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x2D, 0x34, 0x38, 0x5D, 0x7C, 0x39, 0x30, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x5B, 0x35, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x38, 0x30, 0x29, 0x29, 0x7C, 0x38, 0x39, 0x32, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x3B, 0x0A, 0x0F, 0x28, 0x35, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x1A, 0x0A, 0x35, 0x28, 0x3F, 0x3A, 0x32, 0x39, 0x7C, 0x33, 0x38, 0x29, 0x1A, 0x0E, 0x35, 0x28, 0x3F, 0x3A, 0x32, 0x39, 0x7C, 0x33, 0x38, 0x29, 0x5B, 0x38, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2F, 0x0A, 0x0E, 0x28, 0x38, 0x5B, 0x30, 0x39, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x1A, 0x0F, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x7C, 0x39, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x8E, 0x03, 0x0A, 0x18, 0x12, 0x0D, 0x5B, 0x34, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x39, 0x7D, 0x12, 0x21, 0x12, 0x0E, 0x39, 0x5B, 0x32, 0x2D, 0x34, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x39, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x23, 0x12, 0x0D, 0x36, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x7C, 0x34, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x36, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x22, 0x12, 0x0F, 0x28, 0x3F, 0x3A, 0x38, 0x5C, 0x64, 0x7C, 0x39, 0x30, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x39, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4D, 0x43, 0x50, 0xF9, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x38, 0x0A, 0x1C, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x04, 0x5B, 0x38, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2B, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x34, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x3B, 0x0A, 0x1F, 0x28, 0x36, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0E, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x20, 0x24, 0x35, 0x1A, 0x01, 0x36, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x0F, 0x12, 0x06, 0x38, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xEC, 0x03, 0x0A, 0x15, 0x12, 0x0C, 0x5B, 0x32, 0x35, 0x36, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x12, 0x76, 0x12, 0x61, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x35, 0x36, 0x39, 0x5D, 0x7C, 0x32, 0x5C, 0x64, 0x7C, 0x33, 0x5B, 0x30, 0x31, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x2D, 0x35, 0x38, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x33, 0x37, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x33, 0x34, 0x37, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x33, 0x33, 0x7C, 0x35, 0x5B, 0x32, 0x35, 0x37, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x32, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x1A, 0x3C, 0x12, 0x29, 0x28, 0x3F, 0x3A, 0x36, 0x28, 0x3F, 0x3A, 0x35, 0x30, 0x7C, 0x37, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x5B, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x38, 0x30, 0x7C, 0x39, 0x5C, 0x64, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x36, 0x35, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x22, 0x1B, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x2A, 0x1B, 0x12, 0x08, 0x39, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4D, 0x44, 0x50, 0xF5, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x29, 0x0A, 0x12, 0x28, 0x32, 0x32, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x02, 0x32, 0x32, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x3E, 0x0A, 0x1B, 0x28, 0x5B, 0x32, 0x35, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x0E, 0x32, 0x5B, 0x31, 0x33, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x5B, 0x35, 0x2D, 0x37, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x25, 0x0A, 0x0F, 0x28, 0x5B, 0x38, 0x39, 0x5D, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x04, 0x5B, 0x38, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xD2, 0x04, 0x0A, 0x17, 0x12, 0x0C, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x12, 0x73, 0x12, 0x5E, 0x28, 0x3F, 0x3A, 0x32, 0x30, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x7C, 0x31, 0x5B, 0x33, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x32, 0x5B, 0x33, 0x36, 0x37, 0x5D, 0x7C, 0x33, 0x5B, 0x34, 0x2D, 0x37, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x32, 0x33, 0x37, 0x5D, 0x7C, 0x31, 0x5B, 0x32, 0x34, 0x36, 0x37, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x34, 0x37, 0x5D, 0x7C, 0x31, 0x5B, 0x32, 0x37, 0x5D, 0x7C, 0x32, 0x5B, 0x33, 0x37, 0x38, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x38, 0x7D, 0x32, 0x08, 0x33, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x1A, 0x4D, 0x12, 0x38, 0x36, 0x28, 0x3F, 0x3A, 0x33, 0x32, 0x5C, 0x64, 0x7C, 0x5B, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x30, 0x2D, 0x32, 0x5D, 0x5C, 0x64, 0x29, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x39, 0x7D, 0x32, 0x08, 0x36, 0x37, 0x36, 0x32, 0x32, 0x39, 0x30, 0x31, 0x22, 0x1F, 0x12, 0x0C, 0x38, 0x30, 0x30, 0x5B, 0x32, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x30, 0x30, 0x38, 0x30, 0x30, 0x30, 0x32, 0x2A, 0x35, 0x12, 0x22, 0x28, 0x3F, 0x3A, 0x38, 0x38, 0x5C, 0x64, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x34, 0x5B, 0x31, 0x33, 0x2D, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x36, 0x2D, 0x38, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x39, 0x34, 0x35, 0x31, 0x35, 0x31, 0x35, 0x31, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x22, 0x12, 0x0F, 0x37, 0x38, 0x5B, 0x31, 0x33, 0x34, 0x35, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x37, 0x38, 0x31, 0x30, 0x38, 0x37, 0x38, 0x30, 0x4A, 0x02, 0x4D, 0x45, 0x50, 0xFE, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x61, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x10, 0x5B, 0x32, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x33, 0x37, 0x38, 0x39, 0x5D, 0x1A, 0x25, 0x5B, 0x32, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x5B, 0x33, 0x38, 0x39, 0x5D, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x2D, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x29, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x3A, 0x0A, 0x15, 0x28, 0x36, 0x37, 0x29, 0x28, 0x39, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x03, 0x36, 0x37, 0x39, 0x1A, 0x08, 0x36, 0x37, 0x39, 0x5B, 0x30, 0x2D, 0x32, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x1A, 0x12, 0x07, 0x37, 0x37, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x37, 0x37, 0x32, 0x37, 0x33, 0x30, 0x31, 0x32, 0x0A, 0xBD, 0x02, 0x0A, 0x14, 0x12, 0x09, 0x5B, 0x32, 0x33, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x12, 0x69, 0x12, 0x53, 0x32, 0x28, 0x3F, 0x3A, 0x30, 0x28, 0x3F, 0x3A, 0x28, 0x3F, 0x3A, 0x32, 0x5C, 0x64, 0x7C, 0x34, 0x5B, 0x34, 0x37, 0x5D, 0x7C, 0x35, 0x5B, 0x33, 0x34, 0x36, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x37, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x36, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x34, 0x35, 0x5D, 0x29, 0x5C, 0x64, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x32, 0x39, 0x5D, 0x7C, 0x5B, 0x33, 0x35, 0x5D, 0x5C, 0x64, 0x29, 0x29, 0x7C, 0x32, 0x31, 0x30, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x32, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x20, 0x12, 0x0C, 0x33, 0x5B, 0x30, 0x32, 0x2D, 0x34, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x33, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4D, 0x47, 0x50, 0x85, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x33, 0x0A, 0x1D, 0x28, 0x5B, 0x32, 0x33, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xE5, 0x01, 0x0A, 0x12, 0x12, 0x09, 0x5B, 0x35, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x12, 0x35, 0x12, 0x21, 0x35, 0x39, 0x30, 0x28, 0x3F, 0x3A, 0x31, 0x30, 0x7C, 0x32, 0x5B, 0x37, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x32, 0x38, 0x5D, 0x7C, 0x5B, 0x37, 0x38, 0x5D, 0x37, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x35, 0x39, 0x30, 0x32, 0x37, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x34, 0x12, 0x20, 0x36, 0x39, 0x30, 0x28, 0x3F, 0x3A, 0x31, 0x30, 0x7C, 0x32, 0x5B, 0x32, 0x37, 0x5D, 0x7C, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x5B, 0x37, 0x38, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x36, 0x39, 0x30, 0x32, 0x32, 0x31, 0x32, 0x33, 0x34, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4D, 0x46, 0x50, 0xCE, 0x04, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x6E, 0x0A, 0x00, 0x12, 0x00, 0x1A, 0x00, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4D, 0x48, 0x50, 0xB4, 0x05, 0x5A, 0x03, 0x30, 0x31, 0x31, 0x62, 0x01, 0x31, 0x7A, 0x01, 0x31, 0x90, 0x01, 0x01, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x8F, 0x04, 0x0A, 0x15, 0x12, 0x0C, 0x5B, 0x32, 0x2D, 0x35, 0x37, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x12, 0x87, 0x01, 0x12, 0x72, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x33, 0x5D, 0x5C, 0x64, 0x7C, 0x35, 0x5B, 0x31, 0x32, 0x35, 0x5D, 0x7C, 0x36, 0x31, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x33, 0x2D, 0x36, 0x5D, 0x7C, 0x32, 0x5B, 0x32, 0x2D, 0x36, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x33, 0x35, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x33, 0x5D, 0x5B, 0x32, 0x2D, 0x36, 0x5D, 0x7C, 0x34, 0x5B, 0x33, 0x2D, 0x36, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x35, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x34, 0x2D, 0x36, 0x5D, 0x7C, 0x38, 0x5B, 0x34, 0x2D, 0x36, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x32, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x1A, 0x21, 0x12, 0x0E, 0x37, 0x5B, 0x30, 0x2D, 0x32, 0x35, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x37, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x1B, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x2A, 0x1F, 0x12, 0x0C, 0x35, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x35, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x32, 0x2B, 0x12, 0x18, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4D, 0x4B, 0x50, 0x85, 0x03, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x27, 0x0A, 0x11, 0x28, 0x32, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x32, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x31, 0x0A, 0x17, 0x28, 0x5B, 0x33, 0x34, 0x37, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x05, 0x5B, 0x33, 0x34, 0x37, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x39, 0x0A, 0x1D, 0x28, 0x5B, 0x35, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x04, 0x5B, 0x35, 0x38, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xEB, 0x02, 0x0A, 0x15, 0x12, 0x0C, 0x5B, 0x32, 0x34, 0x36, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x12, 0x53, 0x12, 0x40, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x30, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x2D, 0x35, 0x38, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x32, 0x37, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x31, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x5B, 0x33, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x29, 0x7C, 0x34, 0x34, 0x32, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x1A, 0x50, 0x12, 0x3D, 0x28, 0x3F, 0x3A, 0x36, 0x28, 0x3F, 0x3A, 0x5B, 0x35, 0x36, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x38, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x33, 0x35, 0x37, 0x39, 0x5D, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x31, 0x34, 0x2D, 0x37, 0x5D, 0x7C, 0x36, 0x5C, 0x64, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x36, 0x35, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x22, 0x1B, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4D, 0x4C, 0x50, 0xDF, 0x01, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x33, 0x0A, 0x20, 0x28, 0x5B, 0x32, 0x34, 0x36, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x84, 0x04, 0x0A, 0x22, 0x12, 0x17, 0x5B, 0x31, 0x32, 0x34, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x37, 0x7D, 0x7C, 0x39, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x39, 0x7D, 0x12, 0x4C, 0x12, 0x38, 0x28, 0x3F, 0x3A, 0x31, 0x5C, 0x64, 0x7C, 0x32, 0x7C, 0x34, 0x5B, 0x32, 0x2D, 0x36, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5C, 0x64, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x35, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x7C, 0x31, 0x33, 0x33, 0x33, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x38, 0x7D, 0x32, 0x07, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x1A, 0x2C, 0x12, 0x17, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x35, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x34, 0x34, 0x34, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x39, 0x7D, 0x32, 0x08, 0x39, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4D, 0x4D, 0x50, 0x5F, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x24, 0x0A, 0x11, 0x28, 0x31, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x31, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x31, 0x0A, 0x13, 0x28, 0x31, 0x29, 0x28, 0x33, 0x29, 0x28, 0x33, 0x33, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x03, 0x31, 0x33, 0x33, 0x1A, 0x04, 0x31, 0x33, 0x33, 0x33, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x24, 0x0A, 0x11, 0x28, 0x32, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x32, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x2C, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x05, 0x5B, 0x34, 0x2D, 0x38, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x1E, 0x0A, 0x0D, 0x28, 0x39, 0x34, 0x34, 0x34, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x02, 0x39, 0x34, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x32, 0x0A, 0x18, 0x28, 0x39, 0x29, 0x28, 0x5B, 0x32, 0x35, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x08, 0x39, 0x5B, 0x32, 0x35, 0x36, 0x38, 0x39, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xF2, 0x04, 0x0A, 0x23, 0x12, 0x17, 0x5B, 0x31, 0x32, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x7C, 0x5B, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0x7A, 0x12, 0x64, 0x5B, 0x31, 0x32, 0x5D, 0x28, 0x3F, 0x3A, 0x31, 0x5C, 0x64, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x5C, 0x64, 0x3F, 0x7C, 0x37, 0x5C, 0x64, 0x29, 0x7C, 0x33, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x31, 0x2C, 0x32, 0x7D, 0x7C, 0x34, 0x5B, 0x32, 0x2D, 0x36, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x31, 0x2C, 0x32, 0x7D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x34, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x31, 0x2C, 0x32, 0x7D, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x7C, 0x28, 0x3F, 0x3A, 0x35, 0x5B, 0x30, 0x35, 0x36, 0x38, 0x5D, 0x7C, 0x37, 0x30, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x08, 0x37, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x2A, 0x12, 0x17, 0x28, 0x3F, 0x3A, 0x38, 0x5B, 0x38, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x35, 0x36, 0x38, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x38, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x1E, 0x12, 0x0B, 0x37, 0x5B, 0x35, 0x36, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x37, 0x35, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x4A, 0x02, 0x4D, 0x4E, 0x50, 0xD0, 0x07, 0x5A, 0x03, 0x30, 0x30, 0x31, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x30, 0x0A, 0x16, 0x28, 0x5B, 0x31, 0x32, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x05, 0x5B, 0x31, 0x32, 0x5D, 0x31, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2E, 0x0A, 0x12, 0x28, 0x5B, 0x31, 0x32, 0x5D, 0x32, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x36, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x0A, 0x5B, 0x31, 0x32, 0x5D, 0x32, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x49, 0x0A, 0x12, 0x28, 0x5B, 0x31, 0x32, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x10, 0x5B, 0x31, 0x32, 0x5D, 0x28, 0x3F, 0x3A, 0x32, 0x37, 0x7C, 0x5B, 0x33, 0x2D, 0x35, 0x5D, 0x29, 0x1A, 0x13, 0x5B, 0x31, 0x32, 0x5D, 0x28, 0x3F, 0x3A, 0x32, 0x37, 0x7C, 0x5B, 0x33, 0x2D, 0x35, 0x5D, 0x5C, 0x64, 0x29, 0x32, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x25, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x06, 0x5B, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x22, 0x02, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x4F, 0x0A, 0x14, 0x28, 0x5B, 0x31, 0x32, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x35, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x10, 0x5B, 0x31, 0x32, 0x5D, 0x28, 0x3F, 0x3A, 0x32, 0x37, 0x7C, 0x5B, 0x33, 0x2D, 0x35, 0x5D, 0x29, 0x1A, 0x17, 0x5B, 0x31, 0x32, 0x5D, 0x28, 0x3F, 0x3A, 0x32, 0x37, 0x7C, 0x5B, 0x33, 0x2D, 0x35, 0x5D, 0x5C, 0x64, 0x29, 0x5B, 0x34, 0x2D, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xE9, 0x01, 0x0A, 0x13, 0x12, 0x0A, 0x5B, 0x32, 0x36, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x12, 0x32, 0x12, 0x1F, 0x28, 0x3F, 0x3A, 0x32, 0x38, 0x5B, 0x32, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x38, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x1A, 0x1D, 0x12, 0x0A, 0x36, 0x5B, 0x32, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x36, 0x36, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4D, 0x4F, 0x50, 0xD5, 0x06, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x20, 0x0A, 0x13, 0x28, 0x5B, 0x32, 0x36, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xB6, 0x03, 0x0A, 0x1E, 0x12, 0x0B, 0x5B, 0x35, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x12, 0x5D, 0x12, 0x3E, 0x36, 0x37, 0x30, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x33, 0x2D, 0x35, 0x5D, 0x7C, 0x38, 0x38, 0x7C, 0x35, 0x36, 0x29, 0x7C, 0x33, 0x32, 0x5B, 0x32, 0x33, 0x5D, 0x7C, 0x34, 0x5B, 0x33, 0x38, 0x5D, 0x33, 0x7C, 0x35, 0x33, 0x32, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x36, 0x34, 0x7C, 0x37, 0x30, 0x7C, 0x38, 0x5C, 0x64, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x36, 0x37, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x5D, 0x12, 0x3E, 0x36, 0x37, 0x30, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x33, 0x2D, 0x35, 0x5D, 0x7C, 0x38, 0x38, 0x7C, 0x35, 0x36, 0x29, 0x7C, 0x33, 0x32, 0x5B, 0x32, 0x33, 0x5D, 0x7C, 0x34, 0x5B, 0x33, 0x38, 0x5D, 0x33, 0x7C, 0x35, 0x33, 0x32, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x36, 0x34, 0x7C, 0x37, 0x30, 0x7C, 0x38, 0x5C, 0x64, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x36, 0x37, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x33, 0x12, 0x1D, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x38, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x23, 0x12, 0x0D, 0x39, 0x30, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x2D, 0x12, 0x17, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x33, 0x33, 0x7C, 0x34, 0x34, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4D, 0x50, 0x50, 0x01, 0x5A, 0x03, 0x30, 0x31, 0x31, 0x62, 0x01, 0x31, 0x7A, 0x01, 0x31, 0x90, 0x01, 0x01, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xBA, 0x01, 0x03, 0x36, 0x37, 0x30, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x6D, 0x0A, 0x00, 0x12, 0x00, 0x1A, 0x00, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4D, 0x51, 0x50, 0xD4, 0x04, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x90, 0x01, 0x01, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xCC, 0x02, 0x0A, 0x14, 0x12, 0x0B, 0x5B, 0x32, 0x2D, 0x34, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x12, 0x33, 0x12, 0x20, 0x32, 0x35, 0x5B, 0x30, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x7C, 0x33, 0x35, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x34, 0x35, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x33, 0x35, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x59, 0x12, 0x46, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x5C, 0x64, 0x7C, 0x37, 0x30, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x33, 0x5C, 0x64, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x33, 0x36, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x34, 0x5C, 0x64, 0x7C, 0x36, 0x5B, 0x30, 0x34, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x34, 0x2D, 0x39, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x1B, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4D, 0x52, 0x50, 0xDE, 0x01, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x32, 0x0A, 0x1F, 0x28, 0x5B, 0x32, 0x2D, 0x34, 0x38, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xC4, 0x02, 0x0A, 0x1E, 0x12, 0x0B, 0x5B, 0x35, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x12, 0x2A, 0x12, 0x0B, 0x36, 0x36, 0x34, 0x34, 0x39, 0x31, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x36, 0x36, 0x34, 0x34, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x1A, 0x21, 0x12, 0x0B, 0x36, 0x36, 0x34, 0x34, 0x39, 0x32, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x36, 0x36, 0x34, 0x34, 0x39, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x33, 0x12, 0x1D, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x38, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x23, 0x12, 0x0D, 0x39, 0x30, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x2D, 0x12, 0x17, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x33, 0x33, 0x7C, 0x34, 0x34, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4D, 0x53, 0x50, 0x01, 0x5A, 0x03, 0x30, 0x31, 0x31, 0x62, 0x01, 0x31, 0x7A, 0x01, 0x31, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xBA, 0x01, 0x03, 0x36, 0x36, 0x34, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xF8, 0x02, 0x0A, 0x14, 0x12, 0x0B, 0x5B, 0x32, 0x35, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x12, 0x3C, 0x12, 0x29, 0x32, 0x28, 0x3F, 0x3A, 0x30, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x2D, 0x36, 0x5D, 0x7C, 0x5B, 0x36, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x7C, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x31, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x59, 0x12, 0x46, 0x28, 0x3F, 0x3A, 0x37, 0x28, 0x3F, 0x3A, 0x32, 0x31, 0x30, 0x7C, 0x5B, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x7C, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x31, 0x33, 0x5D, 0x5C, 0x64, 0x7C, 0x36, 0x39, 0x36, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x7C, 0x38, 0x39, 0x7C, 0x39, 0x37, 0x29, 0x7C, 0x39, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x39, 0x36, 0x39, 0x36, 0x31, 0x32, 0x33, 0x34, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x41, 0x12, 0x2E, 0x35, 0x30, 0x28, 0x3F, 0x3A, 0x30, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x31, 0x36, 0x37, 0x39, 0x5D, 0x7C, 0x34, 0x5C, 0x64, 0x29, 0x7C, 0x5B, 0x31, 0x36, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x7C, 0x37, 0x5B, 0x30, 0x36, 0x5D, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x35, 0x30, 0x30, 0x33, 0x31, 0x32, 0x33, 0x34, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4D, 0x54, 0x50, 0xE4, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x1B, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x1C, 0x12, 0x09, 0x37, 0x31, 0x31, 0x37, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x37, 0x31, 0x31, 0x37, 0x31, 0x32, 0x33, 0x34, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x85, 0x03, 0x0A, 0x13, 0x12, 0x0A, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x12, 0x68, 0x12, 0x56, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x33, 0x34, 0x37, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x31, 0x5B, 0x30, 0x2D, 0x38, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x2D, 0x37, 0x39, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7C, 0x32, 0x5B, 0x34, 0x2D, 0x37, 0x5D, 0x29, 0x7C, 0x5B, 0x35, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x31, 0x34, 0x7C, 0x33, 0x5B, 0x31, 0x32, 0x39, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x32, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x1A, 0x4A, 0x12, 0x38, 0x28, 0x3F, 0x3A, 0x32, 0x35, 0x5C, 0x64, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x31, 0x32, 0x33, 0x38, 0x39, 0x5D, 0x7C, 0x39, 0x5C, 0x64, 0x29, 0x7C, 0x37, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x7C, 0x38, 0x37, 0x5B, 0x31, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x32, 0x35, 0x31, 0x32, 0x33, 0x34, 0x35, 0x22, 0x1E, 0x12, 0x0C, 0x38, 0x30, 0x5B, 0x30, 0x31, 0x32, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x2A, 0x19, 0x12, 0x07, 0x33, 0x30, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x33, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4D, 0x55, 0x50, 0xE6, 0x01, 0x5A, 0x0E, 0x30, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x30, 0x7C, 0x33, 0x33, 0x29, 0x8A, 0x01, 0x03, 0x30, 0x32, 0x30, 0x9A, 0x01, 0x20, 0x0A, 0x13, 0x28, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x9A, 0x03, 0x0A, 0x29, 0x12, 0x1D, 0x5B, 0x33, 0x36, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x7C, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x29, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0x4D, 0x12, 0x3B, 0x28, 0x3F, 0x3A, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x35, 0x39, 0x5D, 0x7C, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x5B, 0x35, 0x36, 0x37, 0x5D, 0x5B, 0x30, 0x32, 0x34, 0x36, 0x38, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x32, 0x34, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x39, 0x30, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x36, 0x37, 0x30, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x28, 0x12, 0x16, 0x28, 0x3F, 0x3A, 0x37, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x36, 0x2D, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x37, 0x37, 0x31, 0x32, 0x33, 0x34, 0x35, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x1E, 0x12, 0x08, 0x39, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4D, 0x56, 0x50, 0xC0, 0x07, 0x5A, 0x09, 0x30, 0x28, 0x3F, 0x3A, 0x30, 0x7C, 0x31, 0x39, 0x29, 0x8A, 0x01, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x34, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x1A, 0x17, 0x5B, 0x33, 0x36, 0x37, 0x5D, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x30, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x29, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x2A, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x03, 0x39, 0x30, 0x30, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x1A, 0x12, 0x08, 0x37, 0x38, 0x31, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x37, 0x38, 0x31, 0x32, 0x33, 0x34, 0x35, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xBF, 0x03, 0x0A, 0x33, 0x12, 0x28, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x33, 0x2D, 0x35, 0x5D, 0x7C, 0x5B, 0x32, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x7C, 0x5B, 0x38, 0x39, 0x5D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x3F, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x12, 0x2B, 0x12, 0x17, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x31, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x32, 0x07, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x1A, 0x3B, 0x12, 0x25, 0x28, 0x3F, 0x3A, 0x5B, 0x33, 0x2D, 0x35, 0x5D, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x38, 0x5C, 0x64, 0x29, 0x3F, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x39, 0x5C, 0x64, 0x29, 0x3F, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x39, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4D, 0x57, 0x50, 0x89, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x2D, 0x0A, 0x12, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x06, 0x5B, 0x31, 0x33, 0x2D, 0x35, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2C, 0x0A, 0x16, 0x28, 0x32, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x32, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x28, 0x0A, 0x12, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x37, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2F, 0x0A, 0x16, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x04, 0x5B, 0x38, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x9D, 0x0D, 0x0A, 0x19, 0x12, 0x0D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x2C, 0x31, 0x30, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x31, 0x7D, 0x12, 0xC1, 0x03, 0x12, 0xA8, 0x03, 0x28, 0x3F, 0x3A, 0x33, 0x33, 0x7C, 0x35, 0x35, 0x7C, 0x38, 0x31, 0x29, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x7C, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x35, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x34, 0x36, 0x37, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x31, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x5B, 0x32, 0x34, 0x35, 0x38, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x31, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x32, 0x34, 0x2D, 0x36, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x33, 0x37, 0x5D, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x38, 0x38, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x37, 0x39, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x32, 0x2D, 0x36, 0x38, 0x5D, 0x7C, 0x5B, 0x32, 0x33, 0x34, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x33, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x32, 0x34, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x7C, 0x38, 0x5B, 0x36, 0x37, 0x5D, 0x7C, 0x39, 0x5B, 0x34, 0x2D, 0x38, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x33, 0x34, 0x36, 0x37, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x36, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x37, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x31, 0x33, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x32, 0x34, 0x2D, 0x36, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x32, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x33, 0x37, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x32, 0x34, 0x37, 0x39, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x33, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x33, 0x34, 0x38, 0x5D, 0x7C, 0x5B, 0x36, 0x39, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x32, 0x32, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x1A, 0xC5, 0x03, 0x12, 0xAD, 0x03, 0x31, 0x28, 0x3F, 0x3A, 0x28, 0x3F, 0x3A, 0x33, 0x33, 0x7C, 0x35, 0x35, 0x7C, 0x38, 0x31, 0x29, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x7C, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x35, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x34, 0x36, 0x37, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x31, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x5B, 0x32, 0x34, 0x35, 0x38, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x31, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x32, 0x34, 0x2D, 0x36, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x33, 0x37, 0x5D, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x38, 0x38, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x37, 0x39, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x32, 0x2D, 0x36, 0x38, 0x5D, 0x7C, 0x5B, 0x32, 0x2D, 0x34, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x33, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x32, 0x34, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x7C, 0x38, 0x5B, 0x36, 0x37, 0x5D, 0x7C, 0x39, 0x5B, 0x34, 0x2D, 0x38, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x33, 0x34, 0x36, 0x37, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x36, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x37, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x31, 0x33, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x32, 0x34, 0x2D, 0x36, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x32, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x33, 0x37, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x32, 0x34, 0x37, 0x39, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x33, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x33, 0x34, 0x38, 0x5D, 0x7C, 0x5B, 0x36, 0x39, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x29, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x31, 0x7D, 0x32, 0x0B, 0x31, 0x32, 0x32, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x1E, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x1E, 0x12, 0x08, 0x39, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4D, 0x58, 0x50, 0x34, 0x5A, 0x05, 0x30, 0x5B, 0x30, 0x39, 0x5D, 0x62, 0x02, 0x30, 0x31, 0x7A, 0x14, 0x30, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x30, 0x34, 0x5B, 0x34, 0x35, 0x5D, 0x28, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x29, 0x82, 0x01, 0x03, 0x31, 0x24, 0x31, 0x9A, 0x01, 0x36, 0x0A, 0x17, 0x28, 0x5B, 0x33, 0x35, 0x38, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x08, 0x33, 0x33, 0x7C, 0x35, 0x35, 0x7C, 0x38, 0x31, 0x22, 0x05, 0x30, 0x31, 0x20, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x55, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x29, 0x5B, 0x32, 0x34, 0x36, 0x37, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x32, 0x34, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x38, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x22, 0x05, 0x30, 0x31, 0x20, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x3D, 0x0A, 0x18, 0x31, 0x28, 0x5B, 0x33, 0x35, 0x38, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x0C, 0x30, 0x34, 0x35, 0x20, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x0D, 0x31, 0x28, 0x3F, 0x3A, 0x33, 0x33, 0x7C, 0x35, 0x35, 0x7C, 0x38, 0x31, 0x29, 0x22, 0x02, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x5B, 0x0A, 0x16, 0x31, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x0C, 0x30, 0x34, 0x35, 0x20, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x2D, 0x31, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x34, 0x36, 0x37, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x32, 0x34, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x38, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x29, 0x22, 0x02, 0x24, 0x31, 0x2A, 0x00, 0xA2, 0x01, 0x2F, 0x0A, 0x17, 0x28, 0x5B, 0x33, 0x35, 0x38, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x08, 0x33, 0x33, 0x7C, 0x35, 0x35, 0x7C, 0x38, 0x31, 0x2A, 0x00, 0xA2, 0x01, 0x4E, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x29, 0x5B, 0x32, 0x34, 0x36, 0x37, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x32, 0x34, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x38, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x2A, 0x00, 0xA2, 0x01, 0x3A, 0x0A, 0x1A, 0x28, 0x31, 0x29, 0x28, 0x5B, 0x33, 0x35, 0x38, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x0D, 0x31, 0x28, 0x3F, 0x3A, 0x33, 0x33, 0x7C, 0x35, 0x35, 0x7C, 0x38, 0x31, 0x29, 0x2A, 0x00, 0xA2, 0x01, 0x58, 0x0A, 0x18, 0x28, 0x31, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x2D, 0x31, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x34, 0x36, 0x37, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x32, 0x34, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x38, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x29, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xBD, 0x04, 0x0A, 0x19, 0x12, 0x0D, 0x5B, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0x35, 0x12, 0x1F, 0x28, 0x3F, 0x3A, 0x33, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x7C, 0x5B, 0x34, 0x2D, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x38, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x33, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x22, 0x12, 0x0E, 0x31, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x22, 0x22, 0x12, 0x0C, 0x31, 0x5B, 0x33, 0x38, 0x5D, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x33, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x1F, 0x12, 0x09, 0x31, 0x36, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x36, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x1F, 0x12, 0x09, 0x31, 0x37, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x37, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x42, 0x1E, 0x12, 0x08, 0x31, 0x35, 0x34, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x35, 0x34, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x4A, 0x02, 0x4D, 0x59, 0x50, 0x3C, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x31, 0x0A, 0x16, 0x28, 0x5B, 0x34, 0x2D, 0x37, 0x39, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x06, 0x5B, 0x34, 0x2D, 0x37, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x27, 0x0A, 0x11, 0x28, 0x33, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x33, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x3D, 0x0A, 0x18, 0x28, 0x5B, 0x31, 0x38, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x10, 0x31, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x38, 0x0A, 0x1B, 0x28, 0x31, 0x29, 0x28, 0x5B, 0x33, 0x36, 0x2D, 0x38, 0x5D, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x2D, 0x24, 0x34, 0x1A, 0x08, 0x31, 0x5B, 0x33, 0x36, 0x2D, 0x38, 0x5D, 0x30, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x2A, 0x0A, 0x13, 0x28, 0x31, 0x35, 0x34, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x02, 0x31, 0x35, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xC3, 0x02, 0x0A, 0x16, 0x12, 0x0B, 0x5B, 0x32, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x39, 0x7D, 0x12, 0x38, 0x12, 0x25, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x33, 0x34, 0x36, 0x5D, 0x5C, 0x64, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x32, 0x5D, 0x7C, 0x5B, 0x37, 0x38, 0x5D, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x39, 0x33, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x1E, 0x12, 0x0A, 0x38, 0x5B, 0x32, 0x34, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x1C, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4D, 0x5A, 0x50, 0x82, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x31, 0x0A, 0x18, 0x28, 0x5B, 0x32, 0x38, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x07, 0x32, 0x7C, 0x38, 0x5B, 0x32, 0x34, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x28, 0x0A, 0x14, 0x28, 0x38, 0x30, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x02, 0x38, 0x30, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x81, 0x06, 0x0A, 0x16, 0x12, 0x0B, 0x5B, 0x36, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x39, 0x7D, 0x12, 0xF9, 0x02, 0x12, 0xE2, 0x02, 0x36, 0x28, 0x3F, 0x3A, 0x31, 0x28, 0x3F, 0x3A, 0x31, 0x37, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x31, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x5B, 0x32, 0x33, 0x2D, 0x36, 0x5D, 0x7C, 0x37, 0x5C, 0x64, 0x3F, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x32, 0x5C, 0x64, 0x7C, 0x33, 0x5B, 0x33, 0x37, 0x38, 0x5D, 0x29, 0x7C, 0x34, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x36, 0x39, 0x7C, 0x37, 0x5B, 0x30, 0x31, 0x34, 0x5D, 0x29, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x31, 0x37, 0x7C, 0x32, 0x35, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x2D, 0x33, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x34, 0x5C, 0x64, 0x3F, 0x29, 0x7C, 0x36, 0x39, 0x7C, 0x37, 0x30, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x31, 0x37, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x32, 0x33, 0x37, 0x5D, 0x5C, 0x64, 0x3F, 0x7C, 0x5B, 0x31, 0x34, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x29, 0x7C, 0x33, 0x34, 0x7C, 0x36, 0x5B, 0x32, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x38, 0x31, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x31, 0x37, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x31, 0x32, 0x5D, 0x7C, 0x37, 0x3F, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x36, 0x5D, 0x7C, 0x31, 0x5C, 0x64, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x31, 0x33, 0x35, 0x37, 0x5D, 0x7C, 0x5B, 0x32, 0x35, 0x5D, 0x5C, 0x64, 0x3F, 0x29, 0x7C, 0x36, 0x39, 0x7C, 0x37, 0x5B, 0x30, 0x31, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x31, 0x37, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x34, 0x35, 0x39, 0x5D, 0x7C, 0x5B, 0x32, 0x33, 0x36, 0x37, 0x38, 0x5D, 0x5C, 0x64, 0x3F, 0x29, 0x7C, 0x36, 0x39, 0x7C, 0x37, 0x5B, 0x30, 0x31, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x31, 0x37, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x35, 0x7C, 0x36, 0x5C, 0x64, 0x3F, 0x29, 0x7C, 0x33, 0x38, 0x7C, 0x34, 0x32, 0x7C, 0x36, 0x39, 0x7C, 0x37, 0x5B, 0x30, 0x31, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x31, 0x37, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x35, 0x36, 0x39, 0x5D, 0x7C, 0x5B, 0x32, 0x33, 0x34, 0x5D, 0x5C, 0x64, 0x3F, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x5C, 0x64, 0x3F, 0x7C, 0x5B, 0x31, 0x33, 0x5D, 0x29, 0x7C, 0x36, 0x39, 0x7C, 0x37, 0x5B, 0x30, 0x31, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x36, 0x31, 0x32, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x1A, 0x26, 0x12, 0x12, 0x28, 0x3F, 0x3A, 0x36, 0x30, 0x7C, 0x38, 0x5B, 0x31, 0x32, 0x35, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x1D, 0x12, 0x09, 0x38, 0x37, 0x30, 0x31, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x37, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x1B, 0x12, 0x08, 0x38, 0x38, 0x36, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x38, 0x36, 0x31, 0x32, 0x33, 0x34, 0x35, 0x4A, 0x02, 0x4E, 0x41, 0x50, 0x88, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x2E, 0x0A, 0x13, 0x28, 0x38, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x06, 0x38, 0x5B, 0x31, 0x32, 0x35, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2B, 0x0A, 0x15, 0x28, 0x36, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x36, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x29, 0x0A, 0x12, 0x28, 0x38, 0x38, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x02, 0x38, 0x38, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2B, 0x0A, 0x13, 0x28, 0x38, 0x37, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x03, 0x38, 0x37, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x6D, 0x0A, 0x00, 0x12, 0x00, 0x1A, 0x00, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4E, 0x43, 0x50, 0xAF, 0x05, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x90, 0x01, 0x01, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x93, 0x03, 0x0A, 0x13, 0x12, 0x0A, 0x5B, 0x30, 0x32, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x12, 0x6F, 0x12, 0x5C, 0x32, 0x28, 0x3F, 0x3A, 0x30, 0x28, 0x3F, 0x3A, 0x32, 0x30, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x33, 0x34, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x34, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x34, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x35, 0x37, 0x38, 0x5D, 0x29, 0x7C, 0x31, 0x28, 0x3F, 0x3A, 0x34, 0x5B, 0x31, 0x34, 0x35, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x34, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x34, 0x2D, 0x36, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x36, 0x39, 0x5D, 0x7C, 0x38, 0x38, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x30, 0x32, 0x30, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x20, 0x12, 0x0D, 0x39, 0x5B, 0x30, 0x33, 0x34, 0x36, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x39, 0x33, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x1A, 0x12, 0x07, 0x30, 0x38, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x30, 0x38, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x1A, 0x12, 0x07, 0x30, 0x39, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x30, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4E, 0x45, 0x50, 0xE3, 0x01, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x3A, 0x0A, 0x1E, 0x28, 0x5B, 0x30, 0x32, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x07, 0x5B, 0x32, 0x39, 0x5D, 0x7C, 0x30, 0x39, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x26, 0x0A, 0x12, 0x28, 0x30, 0x38, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x02, 0x30, 0x38, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xD0, 0x01, 0x01, 0x0A, 0x86, 0x02, 0x0A, 0x14, 0x12, 0x09, 0x5B, 0x31, 0x33, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x36, 0x7D, 0x12, 0x35, 0x12, 0x22, 0x28, 0x3F, 0x3A, 0x31, 0x28, 0x3F, 0x3A, 0x30, 0x36, 0x7C, 0x31, 0x37, 0x7C, 0x32, 0x38, 0x7C, 0x33, 0x39, 0x29, 0x7C, 0x33, 0x5B, 0x30, 0x31, 0x32, 0x5D, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x36, 0x7D, 0x32, 0x06, 0x31, 0x30, 0x36, 0x36, 0x30, 0x39, 0x1A, 0x1A, 0x12, 0x07, 0x33, 0x38, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x36, 0x7D, 0x32, 0x06, 0x33, 0x38, 0x31, 0x32, 0x33, 0x34, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4E, 0x46, 0x50, 0xA0, 0x05, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x1E, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x01, 0x31, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x1B, 0x0A, 0x0B, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x01, 0x33, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x82, 0x06, 0x0A, 0x26, 0x12, 0x1A, 0x5B, 0x31, 0x2D, 0x36, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x38, 0x7D, 0x7C, 0x5B, 0x37, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x31, 0x33, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x31, 0x34, 0x7D, 0x12, 0x96, 0x01, 0x12, 0x80, 0x01, 0x5B, 0x31, 0x32, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x7C, 0x39, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x7C, 0x28, 0x3F, 0x3A, 0x34, 0x5B, 0x30, 0x32, 0x33, 0x35, 0x36, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x32, 0x33, 0x36, 0x38, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x32, 0x2D, 0x34, 0x36, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x35, 0x36, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x28, 0x3F, 0x3A, 0x34, 0x5B, 0x34, 0x37, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x34, 0x35, 0x37, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x37, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x36, 0x7D, 0x7C, 0x28, 0x3F, 0x3A, 0x37, 0x38, 0x7C, 0x34, 0x31, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x39, 0x7D, 0x32, 0x08, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x4A, 0x12, 0x34, 0x28, 0x3F, 0x3A, 0x37, 0x30, 0x28, 0x3F, 0x3A, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x32, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x32, 0x33, 0x36, 0x38, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x25, 0x12, 0x0B, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x31, 0x7D, 0x1A, 0x09, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x2C, 0x31, 0x34, 0x7D, 0x32, 0x0B, 0x38, 0x30, 0x30, 0x31, 0x37, 0x35, 0x39, 0x31, 0x37, 0x35, 0x39, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x24, 0x12, 0x0B, 0x37, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x31, 0x7D, 0x1A, 0x09, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x2C, 0x31, 0x34, 0x7D, 0x32, 0x0A, 0x37, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4E, 0x47, 0x50, 0xEA, 0x01, 0x5A, 0x03, 0x30, 0x30, 0x39, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x31, 0x0A, 0x17, 0x28, 0x5B, 0x31, 0x32, 0x39, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x05, 0x5B, 0x31, 0x32, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x4D, 0x0A, 0x19, 0x28, 0x5B, 0x33, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x1F, 0x5B, 0x33, 0x2D, 0x36, 0x5D, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x30, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x38, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x38, 0x0A, 0x1B, 0x28, 0x5B, 0x37, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x08, 0x37, 0x30, 0x7C, 0x38, 0x5B, 0x30, 0x31, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x33, 0x0A, 0x18, 0x28, 0x5B, 0x37, 0x38, 0x5D, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x35, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x06, 0x5B, 0x37, 0x38, 0x5D, 0x30, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x33, 0x0A, 0x18, 0x28, 0x5B, 0x37, 0x38, 0x5D, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x36, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x06, 0x5B, 0x37, 0x38, 0x5D, 0x30, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x29, 0x0A, 0x12, 0x28, 0x37, 0x38, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x02, 0x37, 0x38, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xDB, 0x01, 0x0A, 0x13, 0x12, 0x0A, 0x5B, 0x31, 0x32, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x12, 0x19, 0x12, 0x06, 0x32, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x1A, 0x19, 0x12, 0x06, 0x38, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x1C, 0x12, 0x09, 0x31, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x31, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4E, 0x49, 0x50, 0xF9, 0x03, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x1B, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xAF, 0x04, 0x0A, 0x18, 0x12, 0x0C, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0x4F, 0x12, 0x3B, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x31, 0x33, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x32, 0x2D, 0x36, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x36, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x31, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x35, 0x37, 0x5D, 0x5C, 0x64, 0x7C, 0x38, 0x5B, 0x34, 0x37, 0x38, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x31, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x1A, 0x20, 0x12, 0x0C, 0x36, 0x5B, 0x31, 0x2D, 0x35, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x36, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x1F, 0x12, 0x0A, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x37, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x07, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x2A, 0x23, 0x12, 0x0E, 0x39, 0x30, 0x5B, 0x30, 0x36, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x37, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x07, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x10, 0x12, 0x07, 0x38, 0x35, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x4A, 0x02, 0x4E, 0x4C, 0x50, 0x1F, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x5E, 0x0A, 0x19, 0x28, 0x5B, 0x31, 0x2D, 0x35, 0x37, 0x38, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x30, 0x31, 0x5B, 0x30, 0x33, 0x35, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x33, 0x34, 0x36, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x33, 0x35, 0x36, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x33, 0x35, 0x36, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x33, 0x35, 0x38, 0x5D, 0x7C, 0x37, 0x7C, 0x38, 0x5B, 0x34, 0x35, 0x38, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x56, 0x0A, 0x1A, 0x28, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x27, 0x31, 0x5B, 0x31, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x32, 0x5B, 0x32, 0x35, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x32, 0x34, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x32, 0x34, 0x36, 0x37, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x1D, 0x0A, 0x0A, 0x28, 0x36, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x01, 0x36, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x28, 0x0A, 0x12, 0x28, 0x5B, 0x38, 0x39, 0x5D, 0x30, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x37, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x04, 0x38, 0x30, 0x7C, 0x39, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x8D, 0x04, 0x0A, 0x24, 0x12, 0x11, 0x30, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x7C, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x12, 0x47, 0x12, 0x34, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x34, 0x36, 0x37, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x38, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x1A, 0x28, 0x12, 0x15, 0x28, 0x3F, 0x3A, 0x34, 0x5B, 0x30, 0x31, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x39, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x34, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x1E, 0x12, 0x0B, 0x38, 0x30, 0x5B, 0x30, 0x31, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x2A, 0x1E, 0x12, 0x0B, 0x38, 0x32, 0x5B, 0x30, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x32, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x32, 0x2D, 0x12, 0x1A, 0x38, 0x31, 0x30, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x2D, 0x36, 0x5D, 0x7C, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x31, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x3A, 0x1B, 0x12, 0x08, 0x38, 0x38, 0x30, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x38, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4E, 0x4F, 0x50, 0x2F, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x31, 0x0A, 0x1A, 0x28, 0x5B, 0x34, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x05, 0x5B, 0x34, 0x38, 0x39, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x3C, 0x0A, 0x20, 0x28, 0x5B, 0x32, 0x33, 0x35, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x07, 0x5B, 0x32, 0x33, 0x35, 0x2D, 0x37, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xB0, 0x01, 0x01, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x42, 0x12, 0x28, 0x30, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x7C, 0x38, 0x31, 0x28, 0x3F, 0x3A, 0x30, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x31, 0x5C, 0x64, 0x29, 0x7C, 0x35, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x05, 0x30, 0x31, 0x32, 0x33, 0x34, 0xD0, 0x01, 0x01, 0x0A, 0xBF, 0x03, 0x0A, 0x24, 0x12, 0x18, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x37, 0x7D, 0x7C, 0x39, 0x38, 0x5B, 0x34, 0x35, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0x6C, 0x12, 0x57, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x31, 0x34, 0x2D, 0x36, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x33, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x33, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x33, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x34, 0x36, 0x37, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x37, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x38, 0x7D, 0x32, 0x08, 0x31, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x30, 0x1A, 0x21, 0x12, 0x0B, 0x39, 0x38, 0x5B, 0x34, 0x35, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x38, 0x34, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4E, 0x50, 0x50, 0xD1, 0x07, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x31, 0x0A, 0x16, 0x28, 0x31, 0x29, 0x28, 0x5B, 0x34, 0x2D, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x06, 0x31, 0x5B, 0x34, 0x2D, 0x36, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x3D, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x13, 0x31, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x37, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2D, 0x0A, 0x16, 0x28, 0x39, 0x38, 0x5B, 0x34, 0x35, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x02, 0x39, 0x38, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xD5, 0x01, 0x0A, 0x13, 0x12, 0x0A, 0x5B, 0x34, 0x35, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x12, 0x22, 0x12, 0x10, 0x28, 0x3F, 0x3A, 0x34, 0x34, 0x34, 0x7C, 0x38, 0x38, 0x38, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x34, 0x34, 0x34, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x1E, 0x12, 0x0C, 0x35, 0x35, 0x5B, 0x35, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x35, 0x35, 0x35, 0x31, 0x32, 0x33, 0x34, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4E, 0x52, 0x50, 0xA2, 0x05, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x1B, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xA8, 0x01, 0x0A, 0x13, 0x12, 0x0A, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x12, 0x18, 0x12, 0x09, 0x5B, 0x33, 0x34, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x32, 0x04, 0x34, 0x30, 0x30, 0x32, 0x1A, 0x19, 0x12, 0x0A, 0x5B, 0x31, 0x32, 0x35, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x32, 0x04, 0x31, 0x32, 0x33, 0x34, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4E, 0x55, 0x50, 0xAB, 0x05, 0x5A, 0x02, 0x30, 0x30, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xC2, 0x05, 0x0A, 0x2A, 0x12, 0x1E, 0x36, 0x5B, 0x32, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x5B, 0x32, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x30, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x31, 0x7D, 0x12, 0x4E, 0x12, 0x39, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x32, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x5B, 0x34, 0x39, 0x5D, 0x5B, 0x32, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x2D, 0x35, 0x38, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x32, 0x34, 0x30, 0x39, 0x39, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x32, 0x08, 0x33, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x63, 0x12, 0x4C, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x7C, 0x31, 0x28, 0x3F, 0x3A, 0x30, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x37, 0x7D, 0x7C, 0x5B, 0x31, 0x32, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x36, 0x7D, 0x7C, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x29, 0x7C, 0x5B, 0x32, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x29, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x09, 0x32, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x2B, 0x12, 0x14, 0x35, 0x30, 0x38, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x7C, 0x38, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x38, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x20, 0x12, 0x09, 0x39, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x39, 0x2C, 0x31, 0x31, 0x7D, 0x32, 0x09, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4E, 0x5A, 0x50, 0x40, 0x5A, 0x0A, 0x30, 0x28, 0x3F, 0x3A, 0x30, 0x7C, 0x31, 0x36, 0x31, 0x29, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x8A, 0x01, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x39, 0x0A, 0x17, 0x28, 0x5B, 0x33, 0x34, 0x36, 0x37, 0x39, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x0D, 0x5B, 0x33, 0x34, 0x36, 0x37, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2B, 0x0A, 0x14, 0x28, 0x32, 0x31, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x02, 0x32, 0x31, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x44, 0x0A, 0x1D, 0x28, 0x5B, 0x32, 0x35, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x12, 0x32, 0x5B, 0x30, 0x32, 0x34, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x7C, 0x5B, 0x38, 0x39, 0x5D, 0x30, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x36, 0x0A, 0x17, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x0A, 0x32, 0x5B, 0x30, 0x31, 0x36, 0x39, 0x5D, 0x7C, 0x38, 0x36, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x30, 0x0A, 0x0E, 0x28, 0x32, 0x34, 0x30, 0x39, 0x39, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x03, 0x32, 0x34, 0x30, 0x1A, 0x04, 0x32, 0x34, 0x30, 0x39, 0x1A, 0x05, 0x32, 0x34, 0x30, 0x39, 0x39, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x21, 0x12, 0x0C, 0x5B, 0x32, 0x38, 0x5D, 0x36, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x39, 0x7D, 0x32, 0x08, 0x32, 0x36, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xD7, 0x02, 0x0A, 0x2E, 0x12, 0x23, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x33, 0x2D, 0x36, 0x5D, 0x7C, 0x35, 0x7C, 0x39, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x36, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x12, 0x1E, 0x12, 0x0B, 0x32, 0x5B, 0x33, 0x2D, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x33, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x1E, 0x12, 0x0B, 0x39, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x39, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x29, 0x12, 0x14, 0x38, 0x30, 0x30, 0x37, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x35, 0x7D, 0x7C, 0x35, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x32, 0x08, 0x38, 0x30, 0x30, 0x37, 0x31, 0x32, 0x33, 0x34, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4F, 0x4D, 0x50, 0xC8, 0x07, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x1C, 0x0A, 0x0C, 0x28, 0x32, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x01, 0x32, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x1F, 0x0A, 0x0F, 0x28, 0x39, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x01, 0x39, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x24, 0x0A, 0x11, 0x28, 0x5B, 0x35, 0x38, 0x5D, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x36, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x04, 0x5B, 0x35, 0x38, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x6D, 0x0A, 0x00, 0x12, 0x00, 0x1A, 0x00, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x50, 0x41, 0x50, 0xFB, 0x03, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x90, 0x01, 0x01, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xF6, 0x02, 0x0A, 0x18, 0x12, 0x0D, 0x5B, 0x31, 0x34, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x12, 0x46, 0x12, 0x31, 0x28, 0x3F, 0x3A, 0x31, 0x5C, 0x64, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x34, 0x36, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x2D, 0x34, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x38, 0x7D, 0x32, 0x08, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x1A, 0x1A, 0x12, 0x06, 0x39, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x50, 0x45, 0x50, 0x33, 0x5A, 0x14, 0x31, 0x39, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x31, 0x32, 0x34, 0x5D, 0x7C, 0x37, 0x37, 0x7C, 0x39, 0x30, 0x29, 0x30, 0x30, 0x62, 0x01, 0x30, 0x6A, 0x07, 0x20, 0x41, 0x6E, 0x65, 0x78, 0x6F, 0x20, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x1E, 0x0A, 0x0A, 0x28, 0x31, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x01, 0x31, 0x22, 0x04, 0x28, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x28, 0x0A, 0x10, 0x28, 0x5B, 0x34, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x05, 0x5B, 0x34, 0x2D, 0x38, 0x5D, 0x22, 0x04, 0x28, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x2B, 0x0A, 0x16, 0x28, 0x39, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x39, 0x22, 0x02, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x67, 0x0A, 0x00, 0x12, 0x00, 0x1A, 0x00, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x50, 0x46, 0x50, 0xB1, 0x05, 0x5A, 0x02, 0x30, 0x30, 0x90, 0x01, 0x01, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x83, 0x03, 0x0A, 0x17, 0x12, 0x0C, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x12, 0x55, 0x12, 0x43, 0x28, 0x3F, 0x3A, 0x33, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x7C, 0x34, 0x5B, 0x32, 0x35, 0x37, 0x5D, 0x5C, 0x64, 0x7C, 0x35, 0x5B, 0x33, 0x34, 0x5D, 0x5C, 0x64, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x32, 0x39, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x38, 0x35, 0x5B, 0x30, 0x32, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x37, 0x38, 0x5D, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x33, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x33, 0x12, 0x1F, 0x28, 0x3F, 0x3A, 0x36, 0x38, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x32, 0x36, 0x5D, 0x5C, 0x64, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x32, 0x07, 0x36, 0x38, 0x31, 0x32, 0x33, 0x34, 0x35, 0x22, 0x1A, 0x12, 0x08, 0x31, 0x38, 0x30, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x31, 0x38, 0x30, 0x31, 0x32, 0x33, 0x34, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x1A, 0x12, 0x08, 0x32, 0x37, 0x35, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x32, 0x37, 0x35, 0x31, 0x32, 0x33, 0x34, 0x4A, 0x02, 0x50, 0x47, 0x50, 0xA3, 0x05, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x24, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x07, 0x5B, 0x31, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x32, 0x0A, 0x19, 0x28, 0x37, 0x5B, 0x31, 0x2D, 0x33, 0x36, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x07, 0x37, 0x5B, 0x31, 0x2D, 0x33, 0x36, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xF3, 0x06, 0x0A, 0x24, 0x12, 0x18, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x7C, 0x31, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x33, 0x7D, 0x12, 0x4D, 0x12, 0x38, 0x28, 0x3F, 0x3A, 0x32, 0x7C, 0x33, 0x5B, 0x32, 0x2D, 0x36, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x2D, 0x36, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x2D, 0x35, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x34, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x32, 0x08, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x1A, 0x50, 0x12, 0x3A, 0x39, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x32, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x2D, 0x33, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x32, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x33, 0x34, 0x39, 0x5D, 0x7C, 0x5B, 0x38, 0x39, 0x5D, 0x39, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x35, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x26, 0x12, 0x0B, 0x31, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x1A, 0x09, 0x5C, 0x64, 0x7B, 0x31, 0x31, 0x2C, 0x31, 0x33, 0x7D, 0x32, 0x0C, 0x31, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x50, 0x48, 0x50, 0x3F, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x29, 0x0A, 0x11, 0x28, 0x32, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x32, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0xDD, 0x01, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x46, 0x33, 0x28, 0x3F, 0x3A, 0x32, 0x33, 0x7C, 0x33, 0x39, 0x7C, 0x34, 0x36, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x33, 0x2D, 0x36, 0x5D, 0x7C, 0x5B, 0x33, 0x35, 0x5D, 0x39, 0x7C, 0x34, 0x5B, 0x32, 0x36, 0x5D, 0x7C, 0x37, 0x36, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x32, 0x32, 0x7C, 0x34, 0x34, 0x29, 0x7C, 0x36, 0x34, 0x32, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x36, 0x32, 0x7C, 0x38, 0x5B, 0x32, 0x34, 0x35, 0x5D, 0x29, 0x1A, 0x73, 0x33, 0x28, 0x3F, 0x3A, 0x32, 0x33, 0x30, 0x7C, 0x33, 0x39, 0x37, 0x7C, 0x34, 0x36, 0x31, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x33, 0x35, 0x7C, 0x5B, 0x34, 0x36, 0x5D, 0x34, 0x7C, 0x35, 0x31, 0x29, 0x7C, 0x33, 0x39, 0x36, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x32, 0x32, 0x7C, 0x36, 0x33, 0x29, 0x7C, 0x35, 0x39, 0x5B, 0x33, 0x34, 0x37, 0x5D, 0x7C, 0x37, 0x36, 0x5B, 0x31, 0x35, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x32, 0x32, 0x31, 0x7C, 0x34, 0x34, 0x36, 0x29, 0x7C, 0x36, 0x34, 0x32, 0x5B, 0x32, 0x33, 0x5D, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x36, 0x32, 0x32, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x34, 0x5D, 0x32, 0x7C, 0x35, 0x5B, 0x31, 0x33, 0x5D, 0x29, 0x29, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x56, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x15, 0x33, 0x34, 0x36, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x32, 0x37, 0x7C, 0x39, 0x5B, 0x33, 0x35, 0x5D, 0x29, 0x7C, 0x38, 0x38, 0x33, 0x1A, 0x1D, 0x33, 0x34, 0x36, 0x39, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x32, 0x37, 0x39, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x33, 0x30, 0x7C, 0x35, 0x36, 0x29, 0x29, 0x7C, 0x38, 0x38, 0x33, 0x34, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x33, 0x0A, 0x17, 0x28, 0x5B, 0x33, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x05, 0x5B, 0x33, 0x2D, 0x38, 0x5D, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x2C, 0x0A, 0x16, 0x28, 0x39, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x39, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x27, 0x0A, 0x14, 0x28, 0x31, 0x38, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x31, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x33, 0x0A, 0x1D, 0x28, 0x31, 0x38, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x31, 0x2C, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x01, 0x31, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xF3, 0x0C, 0x0A, 0x4C, 0x12, 0x40, 0x31, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x7C, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x31, 0x31, 0x7D, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x39, 0x7D, 0x7C, 0x32, 0x5C, 0x64, 0x28, 0x3F, 0x3A, 0x31, 0x31, 0x31, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x37, 0x7D, 0x29, 0x29, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x32, 0x7D, 0x12, 0x99, 0x02, 0x12, 0x80, 0x02, 0x28, 0x3F, 0x3A, 0x32, 0x31, 0x7C, 0x34, 0x32, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x7C, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x32, 0x35, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x31, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x34, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x36, 0x5D, 0x7C, 0x39, 0x31, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x32, 0x33, 0x35, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x2D, 0x34, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x29, 0x7C, 0x34, 0x35, 0x5B, 0x33, 0x34, 0x37, 0x39, 0x5D, 0x7C, 0x35, 0x34, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x37, 0x5D, 0x7C, 0x36, 0x30, 0x5B, 0x34, 0x36, 0x38, 0x5D, 0x7C, 0x37, 0x32, 0x5B, 0x32, 0x33, 0x36, 0x5D, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x32, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x33, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x33, 0x34, 0x37, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x33, 0x35, 0x36, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x31, 0x7C, 0x32, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x2D, 0x36, 0x5D, 0x7C, 0x36, 0x5B, 0x33, 0x35, 0x36, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x35, 0x2D, 0x38, 0x5D, 0x29, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x36, 0x7D, 0x7C, 0x35, 0x38, 0x5B, 0x31, 0x32, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x1A, 0x42, 0x12, 0x2C, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x5C, 0x64, 0x7C, 0x31, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x7C, 0x36, 0x34, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x33, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x1B, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x2A, 0x1B, 0x12, 0x08, 0x39, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x1C, 0x12, 0x08, 0x31, 0x32, 0x32, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x31, 0x32, 0x32, 0x30, 0x34, 0x34, 0x34, 0x34, 0x34, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x50, 0x4B, 0x50, 0x5C, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0xDD, 0x01, 0x0A, 0x1A, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x31, 0x31, 0x31, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x36, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x31, 0x32, 0x35, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x34, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x36, 0x5D, 0x7C, 0x39, 0x31, 0x29, 0x31, 0x1A, 0x37, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x31, 0x32, 0x35, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x34, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x36, 0x5D, 0x7C, 0x39, 0x31, 0x29, 0x31, 0x31, 0x1A, 0x38, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x31, 0x32, 0x35, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x34, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x36, 0x5D, 0x7C, 0x39, 0x31, 0x29, 0x31, 0x31, 0x31, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0xD2, 0x01, 0x0A, 0x1A, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x31, 0x31, 0x31, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x20, 0x32, 0x5B, 0x33, 0x34, 0x39, 0x5D, 0x7C, 0x34, 0x35, 0x7C, 0x35, 0x34, 0x7C, 0x36, 0x30, 0x7C, 0x37, 0x32, 0x7C, 0x38, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x1A, 0x27, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x33, 0x34, 0x39, 0x5D, 0x7C, 0x34, 0x35, 0x7C, 0x35, 0x34, 0x7C, 0x36, 0x30, 0x7C, 0x37, 0x32, 0x7C, 0x38, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x31, 0x1A, 0x28, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x33, 0x34, 0x39, 0x5D, 0x7C, 0x34, 0x35, 0x7C, 0x35, 0x34, 0x7C, 0x36, 0x30, 0x7C, 0x37, 0x32, 0x7C, 0x38, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x31, 0x31, 0x1A, 0x29, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x33, 0x34, 0x39, 0x5D, 0x7C, 0x34, 0x35, 0x7C, 0x35, 0x34, 0x7C, 0x36, 0x30, 0x7C, 0x37, 0x32, 0x7C, 0x38, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x31, 0x31, 0x31, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x5E, 0x0A, 0x10, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x3A, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x31, 0x32, 0x35, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x34, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x36, 0x5D, 0x7C, 0x39, 0x31, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x71, 0x0A, 0x10, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x20, 0x32, 0x5B, 0x33, 0x34, 0x39, 0x5D, 0x7C, 0x34, 0x35, 0x7C, 0x35, 0x34, 0x7C, 0x36, 0x30, 0x7C, 0x37, 0x32, 0x7C, 0x38, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x1A, 0x2B, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x33, 0x34, 0x39, 0x5D, 0x7C, 0x34, 0x35, 0x7C, 0x35, 0x34, 0x7C, 0x36, 0x30, 0x7C, 0x37, 0x32, 0x7C, 0x38, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x22, 0x0A, 0x0F, 0x28, 0x33, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x01, 0x33, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x30, 0x0A, 0x14, 0x28, 0x5B, 0x31, 0x35, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x36, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x08, 0x35, 0x38, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x31, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x28, 0x0A, 0x11, 0x28, 0x35, 0x38, 0x36, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x03, 0x35, 0x38, 0x36, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x31, 0x0A, 0x16, 0x28, 0x5B, 0x38, 0x39, 0x5D, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x06, 0x5B, 0x38, 0x39, 0x5D, 0x30, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0xEC, 0x01, 0x12, 0xD1, 0x01, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x32, 0x35, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x33, 0x35, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x2D, 0x34, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x33, 0x34, 0x37, 0x39, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x37, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x30, 0x5B, 0x34, 0x36, 0x38, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x34, 0x5D, 0x7C, 0x32, 0x5B, 0x32, 0x33, 0x36, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x36, 0x5D, 0x7C, 0x32, 0x5B, 0x32, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x33, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x33, 0x34, 0x37, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x33, 0x35, 0x36, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x31, 0x7C, 0x32, 0x32, 0x7C, 0x33, 0x5B, 0x32, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x2D, 0x36, 0x5D, 0x7C, 0x36, 0x5B, 0x33, 0x35, 0x36, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x29, 0x29, 0x31, 0x31, 0x31, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x09, 0x5C, 0x64, 0x7B, 0x31, 0x31, 0x2C, 0x31, 0x32, 0x7D, 0x32, 0x0B, 0x32, 0x31, 0x31, 0x31, 0x31, 0x38, 0x32, 0x35, 0x38, 0x38, 0x38, 0x0A, 0x91, 0x04, 0x0A, 0x13, 0x12, 0x0A, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x12, 0x66, 0x12, 0x52, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x32, 0x5B, 0x32, 0x2D, 0x35, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x2D, 0x34, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x34, 0x36, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x34, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x34, 0x2D, 0x37, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x34, 0x35, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x1A, 0x34, 0x12, 0x20, 0x28, 0x3F, 0x3A, 0x35, 0x5B, 0x30, 0x31, 0x33, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x36, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x38, 0x39, 0x5D, 0x7C, 0x38, 0x38, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x35, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x1C, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x1B, 0x12, 0x07, 0x37, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x37, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x32, 0x1C, 0x12, 0x08, 0x38, 0x30, 0x31, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x1B, 0x12, 0x07, 0x33, 0x39, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x33, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x4A, 0x02, 0x50, 0x4C, 0x50, 0x30, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x68, 0x0A, 0x1C, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x37, 0x5B, 0x31, 0x32, 0x34, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x2D, 0x34, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x34, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x34, 0x2D, 0x37, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x34, 0x35, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x45, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x1E, 0x33, 0x39, 0x7C, 0x35, 0x5B, 0x30, 0x31, 0x33, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x36, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x32, 0x38, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x38, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x6D, 0x0A, 0x00, 0x12, 0x00, 0x1A, 0x00, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x50, 0x4D, 0x50, 0xFC, 0x03, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x90, 0x01, 0x01, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xE8, 0x02, 0x0A, 0x1E, 0x12, 0x0B, 0x5B, 0x35, 0x37, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x12, 0x34, 0x12, 0x15, 0x28, 0x3F, 0x3A, 0x37, 0x38, 0x37, 0x7C, 0x39, 0x33, 0x39, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x37, 0x38, 0x37, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x34, 0x12, 0x15, 0x28, 0x3F, 0x3A, 0x37, 0x38, 0x37, 0x7C, 0x39, 0x33, 0x39, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x37, 0x38, 0x37, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x33, 0x12, 0x1D, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x38, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x2A, 0x23, 0x12, 0x0D, 0x39, 0x30, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x2D, 0x12, 0x17, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x33, 0x33, 0x7C, 0x34, 0x34, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x50, 0x52, 0x50, 0x01, 0x5A, 0x03, 0x30, 0x31, 0x31, 0x62, 0x01, 0x31, 0x7A, 0x01, 0x31, 0x90, 0x01, 0x01, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xBA, 0x01, 0x07, 0x37, 0x38, 0x37, 0x7C, 0x39, 0x33, 0x39, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xDD, 0x03, 0x0A, 0x35, 0x12, 0x29, 0x5B, 0x32, 0x34, 0x35, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x7C, 0x31, 0x28, 0x3F, 0x3A, 0x5B, 0x37, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x7C, 0x5B, 0x34, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x33, 0x7D, 0x29, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0x41, 0x12, 0x2C, 0x28, 0x3F, 0x3A, 0x32, 0x32, 0x5B, 0x32, 0x33, 0x34, 0x37, 0x38, 0x39, 0x5D, 0x7C, 0x34, 0x32, 0x5B, 0x34, 0x35, 0x5D, 0x7C, 0x38, 0x32, 0x5B, 0x30, 0x31, 0x34, 0x35, 0x38, 0x5D, 0x7C, 0x39, 0x32, 0x5B, 0x33, 0x36, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x32, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x1A, 0x1E, 0x12, 0x0A, 0x35, 0x5B, 0x36, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x35, 0x39, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x1F, 0x12, 0x09, 0x31, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x21, 0x12, 0x0F, 0x31, 0x28, 0x3F, 0x3A, 0x34, 0x7C, 0x39, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x35, 0x7D, 0x32, 0x05, 0x31, 0x39, 0x31, 0x32, 0x33, 0x32, 0x1F, 0x12, 0x09, 0x31, 0x37, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x37, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x50, 0x53, 0x50, 0xCA, 0x07, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x32, 0x0A, 0x17, 0x28, 0x5B, 0x32, 0x34, 0x38, 0x39, 0x5D, 0x29, 0x28, 0x32, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x06, 0x5B, 0x32, 0x34, 0x38, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2D, 0x0A, 0x17, 0x28, 0x35, 0x5B, 0x36, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x35, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x30, 0x0A, 0x17, 0x28, 0x31, 0x5B, 0x37, 0x38, 0x5D, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x05, 0x31, 0x5B, 0x37, 0x38, 0x5D, 0x22, 0x02, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x9C, 0x03, 0x0A, 0x16, 0x12, 0x0D, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x12, 0x5A, 0x12, 0x46, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x32, 0x5D, 0x5C, 0x64, 0x7C, 0x5B, 0x33, 0x35, 0x5D, 0x5B, 0x31, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x35, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x36, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x32, 0x35, 0x36, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x40, 0x12, 0x2C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x33, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x7C, 0x32, 0x5B, 0x31, 0x32, 0x34, 0x2D, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x38, 0x30, 0x7C, 0x39, 0x5C, 0x64, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x26, 0x12, 0x12, 0x34, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x7C, 0x38, 0x30, 0x5B, 0x30, 0x32, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x1B, 0x12, 0x07, 0x37, 0x31, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x37, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x32, 0x1C, 0x12, 0x08, 0x38, 0x30, 0x38, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x38, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x1B, 0x12, 0x07, 0x33, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x33, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x4A, 0x02, 0x50, 0x54, 0x50, 0xDF, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x2D, 0x0A, 0x1D, 0x28, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x68, 0x0A, 0x00, 0x12, 0x00, 0x1A, 0x00, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x50, 0x57, 0x50, 0xA8, 0x05, 0x5A, 0x03, 0x30, 0x31, 0x31, 0x90, 0x01, 0x01, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x6E, 0x0A, 0x00, 0x12, 0x00, 0x1A, 0x00, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x50, 0x59, 0x50, 0xD3, 0x04, 0x5A, 0x03, 0x30, 0x30, 0x32, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x90, 0x01, 0x01, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xA0, 0x02, 0x0A, 0x17, 0x12, 0x0C, 0x5B, 0x33, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x12, 0x1C, 0x12, 0x07, 0x34, 0x34, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x32, 0x08, 0x34, 0x34, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x29, 0x12, 0x14, 0x28, 0x3F, 0x3A, 0x33, 0x33, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x32, 0x08, 0x33, 0x33, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x1C, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x32, 0x07, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x51, 0x41, 0x50, 0xCE, 0x07, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x1F, 0x0A, 0x0F, 0x28, 0x38, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x01, 0x38, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x27, 0x0A, 0x13, 0x28, 0x5B, 0x33, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x05, 0x5B, 0x33, 0x2D, 0x37, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xE2, 0x02, 0x0A, 0x13, 0x12, 0x0A, 0x5B, 0x32, 0x36, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x12, 0x1C, 0x12, 0x08, 0x32, 0x36, 0x32, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x32, 0x36, 0x32, 0x31, 0x36, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x26, 0x12, 0x12, 0x36, 0x28, 0x3F, 0x3A, 0x39, 0x5B, 0x32, 0x33, 0x5D, 0x7C, 0x34, 0x37, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x36, 0x39, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x1B, 0x12, 0x07, 0x38, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x23, 0x12, 0x0F, 0x38, 0x39, 0x5B, 0x31, 0x2D, 0x33, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x39, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x32, 0x12, 0x1E, 0x38, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x31, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x31, 0x35, 0x36, 0x5D, 0x7C, 0x38, 0x34, 0x7C, 0x39, 0x30, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x31, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x52, 0x45, 0x50, 0x86, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x37, 0x0A, 0x21, 0x28, 0x5B, 0x32, 0x36, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xB0, 0x01, 0x01, 0xBA, 0x01, 0x0B, 0x32, 0x36, 0x32, 0x7C, 0x36, 0x5B, 0x34, 0x39, 0x5D, 0x7C, 0x38, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x8D, 0x03, 0x0A, 0x15, 0x12, 0x0C, 0x5B, 0x32, 0x33, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x12, 0x23, 0x12, 0x0F, 0x5B, 0x32, 0x33, 0x5D, 0x5B, 0x31, 0x33, 0x2D, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x32, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x1A, 0x1F, 0x12, 0x0B, 0x37, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x37, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x1C, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x20, 0x12, 0x0C, 0x39, 0x30, 0x5B, 0x30, 0x33, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x1C, 0x12, 0x08, 0x38, 0x30, 0x31, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x3A, 0x1C, 0x12, 0x08, 0x38, 0x30, 0x32, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x52, 0x4F, 0x50, 0x28, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x6A, 0x05, 0x20, 0x69, 0x6E, 0x74, 0x20, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x33, 0x0A, 0x17, 0x28, 0x5B, 0x32, 0x33, 0x37, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x07, 0x5B, 0x32, 0x33, 0x5D, 0x31, 0x7C, 0x37, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x39, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x0F, 0x5B, 0x32, 0x33, 0x5D, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x38, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xE8, 0x03, 0x0A, 0x1C, 0x12, 0x10, 0x5B, 0x31, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x31, 0x31, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x31, 0x32, 0x7D, 0x12, 0x21, 0x12, 0x0C, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x07, 0x31, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x1A, 0x25, 0x12, 0x10, 0x36, 0x5B, 0x30, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x31, 0x30, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x31, 0x32, 0x7D, 0x32, 0x07, 0x36, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x22, 0x1F, 0x12, 0x0A, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x36, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x32, 0x08, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x2A, 0x29, 0x12, 0x14, 0x28, 0x3F, 0x3A, 0x39, 0x5B, 0x30, 0x2D, 0x32, 0x5D, 0x7C, 0x34, 0x32, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x32, 0x08, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x52, 0x53, 0x50, 0xFD, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x34, 0x0A, 0x14, 0x28, 0x5B, 0x32, 0x33, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x37, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x0E, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x33, 0x38, 0x39, 0x5D, 0x7C, 0x33, 0x39, 0x29, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x53, 0x0A, 0x12, 0x28, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x38, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x2F, 0x31, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x2D, 0x37, 0x5D, 0x7C, 0x5B, 0x33, 0x38, 0x39, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x2D, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x34, 0x32, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x27, 0x0A, 0x14, 0x28, 0x36, 0x5B, 0x30, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x31, 0x30, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x01, 0x36, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2A, 0x0A, 0x14, 0x28, 0x5B, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x36, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x04, 0x5B, 0x38, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x82, 0x04, 0x0A, 0x15, 0x12, 0x0B, 0x5B, 0x33, 0x34, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x12, 0xB7, 0x01, 0x12, 0xA0, 0x01, 0x28, 0x3F, 0x3A, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x35, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x31, 0x34, 0x35, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x30, 0x31, 0x7C, 0x31, 0x5B, 0x31, 0x33, 0x35, 0x36, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x33, 0x34, 0x36, 0x37, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x33, 0x2D, 0x36, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x35, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x33, 0x37, 0x2D, 0x39, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x33, 0x30, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x1A, 0x1C, 0x12, 0x06, 0x39, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x22, 0x21, 0x12, 0x0B, 0x38, 0x30, 0x5B, 0x30, 0x34, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x21, 0x12, 0x0B, 0x38, 0x30, 0x5B, 0x33, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x52, 0x55, 0x50, 0x07, 0x5A, 0x04, 0x38, 0x7E, 0x31, 0x30, 0x62, 0x01, 0x38, 0x7A, 0x01, 0x38, 0x9A, 0x01, 0x44, 0x0A, 0x22, 0x28, 0x5B, 0x33, 0x34, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x2D, 0x24, 0x34, 0x1A, 0x07, 0x5B, 0x33, 0x34, 0x36, 0x38, 0x39, 0x5D, 0x22, 0x06, 0x38, 0x20, 0x28, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x2F, 0x0A, 0x16, 0x28, 0x37, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x37, 0x22, 0x06, 0x38, 0x20, 0x28, 0x24, 0x31, 0x29, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xB0, 0x01, 0x01, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xC4, 0x02, 0x0A, 0x14, 0x12, 0x0B, 0x5B, 0x32, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x12, 0x1B, 0x12, 0x07, 0x32, 0x35, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x32, 0x35, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x1F, 0x12, 0x0B, 0x37, 0x5B, 0x32, 0x35, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x37, 0x32, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x1C, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x1C, 0x12, 0x08, 0x39, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x52, 0x57, 0x50, 0xFA, 0x01, 0x5A, 0x03, 0x30, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x29, 0x0A, 0x14, 0x28, 0x32, 0x35, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x32, 0x22, 0x02, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x34, 0x0A, 0x1A, 0x28, 0x5B, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x05, 0x5B, 0x37, 0x2D, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x99, 0x04, 0x0A, 0x19, 0x12, 0x0D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x30, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x31, 0x7D, 0x12, 0x4E, 0x12, 0x39, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x32, 0x34, 0x2D, 0x37, 0x5D, 0x7C, 0x32, 0x5B, 0x32, 0x34, 0x2D, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x33, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x33, 0x34, 0x2D, 0x36, 0x38, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x33, 0x35, 0x2D, 0x37, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x32, 0x08, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x30, 0x12, 0x19, 0x28, 0x3F, 0x3A, 0x35, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x36, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x38, 0x31, 0x31, 0x31, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x39, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x09, 0x35, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x1E, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x20, 0x12, 0x09, 0x39, 0x32, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x31, 0x7D, 0x32, 0x0B, 0x39, 0x32, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x53, 0x41, 0x50, 0xC6, 0x07, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x33, 0x0A, 0x17, 0x28, 0x5B, 0x31, 0x2D, 0x34, 0x36, 0x37, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x07, 0x5B, 0x31, 0x2D, 0x34, 0x36, 0x37, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2A, 0x0A, 0x14, 0x28, 0x39, 0x32, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x39, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x29, 0x0A, 0x13, 0x28, 0x35, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x35, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2A, 0x0A, 0x13, 0x28, 0x38, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x02, 0x38, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2B, 0x0A, 0x14, 0x28, 0x38, 0x31, 0x31, 0x31, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x02, 0x38, 0x31, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x67, 0x0A, 0x00, 0x12, 0x00, 0x1A, 0x00, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x53, 0x42, 0x50, 0xA5, 0x05, 0x5A, 0x02, 0x30, 0x30, 0x90, 0x01, 0x01, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xBB, 0x04, 0x0A, 0x17, 0x12, 0x0C, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x36, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x12, 0xD7, 0x01, 0x12, 0xC5, 0x01, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x37, 0x38, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x34, 0x2D, 0x36, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x2D, 0x34, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x33, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x36, 0x37, 0x5D, 0x7C, 0x5B, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x7C, 0x34, 0x5B, 0x34, 0x2D, 0x36, 0x5D, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x5B, 0x30, 0x31, 0x36, 0x5D, 0x7C, 0x37, 0x5C, 0x64, 0x7C, 0x38, 0x5B, 0x30, 0x2D, 0x35, 0x38, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x2D, 0x35, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x35, 0x5C, 0x64, 0x7C, 0x36, 0x5B, 0x30, 0x2D, 0x32, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x2D, 0x32, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x2D, 0x34, 0x37, 0x38, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x34, 0x35, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x32, 0x2D, 0x34, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x32, 0x34, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x31, 0x35, 0x5D, 0x7C, 0x37, 0x5C, 0x64, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x29, 0x7C, 0x37, 0x38, 0x5B, 0x30, 0x31, 0x33, 0x38, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x32, 0x06, 0x32, 0x31, 0x37, 0x31, 0x32, 0x33, 0x1A, 0x4F, 0x12, 0x3E, 0x28, 0x3F, 0x3A, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x32, 0x34, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x36, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x34, 0x36, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x32, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x34, 0x2D, 0x37, 0x39, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x32, 0x06, 0x35, 0x31, 0x30, 0x31, 0x32, 0x33, 0x22, 0x1A, 0x12, 0x09, 0x38, 0x30, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x32, 0x06, 0x38, 0x30, 0x30, 0x30, 0x30, 0x30, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x26, 0x12, 0x14, 0x28, 0x3F, 0x3A, 0x34, 0x34, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x7C, 0x36, 0x34, 0x37, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x34, 0x34, 0x31, 0x30, 0x31, 0x32, 0x33, 0x4A, 0x02, 0x53, 0x43, 0x50, 0xF8, 0x01, 0x5A, 0x06, 0x30, 0x5B, 0x30, 0x2D, 0x32, 0x5D, 0x8A, 0x01, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x31, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x14, 0x5B, 0x32, 0x33, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x5B, 0x34, 0x36, 0x5D, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x29, 0x0A, 0x12, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x05, 0x5B, 0x34, 0x36, 0x5D, 0x34, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xF3, 0x01, 0x0A, 0x12, 0x12, 0x09, 0x5B, 0x31, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x12, 0x2C, 0x12, 0x18, 0x31, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x35, 0x5D, 0x5C, 0x64, 0x7C, 0x38, 0x5B, 0x33, 0x35, 0x36, 0x37, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x31, 0x32, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x20, 0x12, 0x0C, 0x39, 0x5B, 0x31, 0x32, 0x35, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x39, 0x31, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x34, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x53, 0x44, 0x50, 0xF9, 0x01, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x28, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x8C, 0x11, 0x0A, 0x14, 0x12, 0x08, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x30, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0xD5, 0x04, 0x12, 0xC0, 0x04, 0x31, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x5B, 0x31, 0x33, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x37, 0x7D, 0x7C, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x32, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x33, 0x2D, 0x36, 0x5D, 0x7C, 0x5B, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x36, 0x7D, 0x29, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x33, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x37, 0x7D, 0x7C, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x2D, 0x37, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x31, 0x33, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x33, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x31, 0x38, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x2D, 0x35, 0x37, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x36, 0x7D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x5B, 0x33, 0x35, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x37, 0x7D, 0x7C, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x7C, 0x31, 0x5C, 0x64, 0x7C, 0x32, 0x5B, 0x30, 0x2D, 0x32, 0x35, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x35, 0x36, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x32, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x2D, 0x33, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x32, 0x33, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x36, 0x7D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x32, 0x34, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x37, 0x7D, 0x7C, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x31, 0x33, 0x35, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x34, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x31, 0x35, 0x36, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x36, 0x7D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x2D, 0x36, 0x5D, 0x7C, 0x31, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x2D, 0x36, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x7C, 0x34, 0x5C, 0x64, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x35, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x33, 0x2D, 0x35, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x31, 0x33, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x31, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x36, 0x7D, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x33, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x37, 0x7D, 0x7C, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x32, 0x2D, 0x35, 0x37, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x33, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x2D, 0x33, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x32, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x32, 0x34, 0x37, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x36, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x36, 0x7D, 0x29, 0x7C, 0x38, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x38, 0x7D, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x30, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x37, 0x7D, 0x7C, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x2D, 0x36, 0x38, 0x5D, 0x7C, 0x32, 0x5C, 0x64, 0x7C, 0x33, 0x5B, 0x30, 0x32, 0x2D, 0x35, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x31, 0x33, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x31, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x36, 0x7D, 0x29, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x39, 0x7D, 0x32, 0x07, 0x38, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x21, 0x12, 0x0D, 0x37, 0x5B, 0x30, 0x32, 0x2D, 0x34, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x37, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x1F, 0x12, 0x09, 0x32, 0x30, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x32, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x28, 0x12, 0x12, 0x39, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x33, 0x39, 0x7C, 0x34, 0x34, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x32, 0x1B, 0x12, 0x07, 0x37, 0x37, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x37, 0x37, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x53, 0x45, 0x50, 0x2E, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x35, 0x0A, 0x1C, 0x28, 0x38, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x01, 0x38, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x66, 0x0A, 0x21, 0x28, 0x5B, 0x31, 0x2D, 0x36, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x2D, 0x31, 0x5B, 0x30, 0x31, 0x33, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x31, 0x33, 0x36, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x33, 0x35, 0x36, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x32, 0x34, 0x36, 0x5D, 0x7C, 0x35, 0x34, 0x7C, 0x36, 0x5B, 0x30, 0x33, 0x5D, 0x7C, 0x39, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x58, 0x0A, 0x18, 0x28, 0x5B, 0x31, 0x2D, 0x36, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x2B, 0x31, 0x5B, 0x31, 0x33, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x33, 0x36, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x33, 0x35, 0x36, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x32, 0x34, 0x36, 0x5D, 0x7C, 0x35, 0x34, 0x7C, 0x36, 0x5B, 0x30, 0x33, 0x5D, 0x7C, 0x39, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x87, 0x01, 0x0A, 0x1C, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x53, 0x31, 0x5B, 0x32, 0x34, 0x35, 0x37, 0x5D, 0x7C, 0x32, 0x5B, 0x32, 0x34, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x32, 0x34, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x33, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x32, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x35, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x33, 0x5D, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x7F, 0x0A, 0x17, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x53, 0x31, 0x5B, 0x32, 0x34, 0x35, 0x37, 0x5D, 0x7C, 0x32, 0x5B, 0x32, 0x34, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x32, 0x34, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x33, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x32, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x35, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x33, 0x5D, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x41, 0x0A, 0x20, 0x28, 0x37, 0x5B, 0x30, 0x32, 0x2D, 0x34, 0x36, 0x37, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x09, 0x37, 0x5B, 0x30, 0x32, 0x2D, 0x34, 0x36, 0x37, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2B, 0x0A, 0x14, 0x28, 0x32, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x02, 0x32, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x3D, 0x0A, 0x1F, 0x28, 0x39, 0x5B, 0x30, 0x33, 0x34, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x06, 0x39, 0x5B, 0x30, 0x33, 0x34, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xA2, 0x01, 0x30, 0x0A, 0x1C, 0x28, 0x38, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x01, 0x38, 0x2A, 0x00, 0xA2, 0x01, 0x61, 0x0A, 0x21, 0x28, 0x5B, 0x31, 0x2D, 0x36, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x2D, 0x31, 0x5B, 0x30, 0x31, 0x33, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x31, 0x33, 0x36, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x33, 0x35, 0x36, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x32, 0x34, 0x36, 0x5D, 0x7C, 0x35, 0x34, 0x7C, 0x36, 0x5B, 0x30, 0x33, 0x5D, 0x7C, 0x39, 0x30, 0x2A, 0x00, 0xA2, 0x01, 0x53, 0x0A, 0x18, 0x28, 0x5B, 0x31, 0x2D, 0x36, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x2B, 0x31, 0x5B, 0x31, 0x33, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x33, 0x36, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x33, 0x35, 0x36, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x32, 0x34, 0x36, 0x5D, 0x7C, 0x35, 0x34, 0x7C, 0x36, 0x5B, 0x30, 0x33, 0x5D, 0x7C, 0x39, 0x30, 0x2A, 0x00, 0xA2, 0x01, 0x82, 0x01, 0x0A, 0x1C, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x53, 0x31, 0x5B, 0x32, 0x34, 0x35, 0x37, 0x5D, 0x7C, 0x32, 0x5B, 0x32, 0x34, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x32, 0x34, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x33, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x32, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x35, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x33, 0x5D, 0x29, 0x2A, 0x00, 0xA2, 0x01, 0x7A, 0x0A, 0x17, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x53, 0x31, 0x5B, 0x32, 0x34, 0x35, 0x37, 0x5D, 0x7C, 0x32, 0x5B, 0x32, 0x34, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x32, 0x34, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x33, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x32, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x35, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x33, 0x5D, 0x29, 0x2A, 0x00, 0xA2, 0x01, 0x3C, 0x0A, 0x20, 0x28, 0x37, 0x5B, 0x30, 0x32, 0x2D, 0x34, 0x36, 0x37, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x09, 0x37, 0x5B, 0x30, 0x32, 0x2D, 0x34, 0x36, 0x37, 0x5D, 0x2A, 0x00, 0xA2, 0x01, 0x26, 0x0A, 0x14, 0x28, 0x32, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x02, 0x32, 0x30, 0x2A, 0x00, 0xA2, 0x01, 0x38, 0x0A, 0x1F, 0x28, 0x39, 0x5B, 0x30, 0x33, 0x34, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x06, 0x39, 0x5B, 0x30, 0x33, 0x34, 0x5D, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xF1, 0x03, 0x0A, 0x24, 0x12, 0x18, 0x5B, 0x33, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x7C, 0x5B, 0x31, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x30, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x31, 0x31, 0x7D, 0x12, 0x1E, 0x12, 0x0B, 0x36, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x36, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x1A, 0x29, 0x12, 0x16, 0x28, 0x3F, 0x3A, 0x38, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x2D, 0x38, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x24, 0x12, 0x0A, 0x31, 0x3F, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x09, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x2C, 0x31, 0x31, 0x7D, 0x32, 0x0B, 0x31, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x20, 0x12, 0x09, 0x31, 0x39, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x31, 0x7D, 0x32, 0x0B, 0x31, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x1E, 0x12, 0x0B, 0x33, 0x5B, 0x30, 0x2D, 0x32, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x33, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x4A, 0x02, 0x53, 0x47, 0x50, 0x41, 0x5A, 0x0B, 0x30, 0x5B, 0x30, 0x2D, 0x33, 0x5D, 0x5B, 0x30, 0x2D, 0x39, 0x5D, 0x9A, 0x01, 0x2F, 0x0A, 0x14, 0x28, 0x5B, 0x33, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x0C, 0x5B, 0x33, 0x36, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x2E, 0x0A, 0x17, 0x28, 0x31, 0x5B, 0x38, 0x39, 0x5D, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x05, 0x31, 0x5B, 0x38, 0x39, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x28, 0x0A, 0x14, 0x28, 0x37, 0x30, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x02, 0x37, 0x30, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x27, 0x0A, 0x13, 0x28, 0x38, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x02, 0x38, 0x30, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x20, 0x12, 0x09, 0x37, 0x30, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x31, 0x7D, 0x32, 0x0B, 0x37, 0x30, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x0A, 0xC3, 0x01, 0x0A, 0x13, 0x12, 0x0A, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x12, 0x27, 0x12, 0x18, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x2D, 0x34, 0x36, 0x38, 0x5D, 0x5C, 0x64, 0x7C, 0x37, 0x5B, 0x30, 0x31, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x32, 0x04, 0x32, 0x31, 0x35, 0x38, 0x1A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x25, 0x12, 0x16, 0x28, 0x3F, 0x3A, 0x5B, 0x35, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x37, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x32, 0x04, 0x35, 0x30, 0x31, 0x32, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x53, 0x48, 0x50, 0xA2, 0x02, 0x5A, 0x02, 0x30, 0x30, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xD2, 0x04, 0x0A, 0x23, 0x12, 0x18, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x7C, 0x5B, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x38, 0x7D, 0x12, 0x41, 0x12, 0x2C, 0x28, 0x3F, 0x3A, 0x31, 0x5C, 0x64, 0x7C, 0x32, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x34, 0x2D, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x34, 0x2D, 0x38, 0x5D, 0x7C, 0x5B, 0x35, 0x37, 0x5D, 0x5B, 0x33, 0x2D, 0x38, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x32, 0x08, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x1A, 0x31, 0x12, 0x1E, 0x28, 0x3F, 0x3A, 0x5B, 0x33, 0x37, 0x5D, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x31, 0x39, 0x5D, 0x7C, 0x35, 0x31, 0x7C, 0x36, 0x34, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x33, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x1E, 0x12, 0x09, 0x38, 0x30, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x36, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x2D, 0x12, 0x18, 0x39, 0x30, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x36, 0x7D, 0x7C, 0x38, 0x39, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x38, 0x7D, 0x32, 0x08, 0x39, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x25, 0x12, 0x12, 0x28, 0x3F, 0x3A, 0x35, 0x39, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x35, 0x39, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x4A, 0x02, 0x53, 0x49, 0x50, 0x82, 0x03, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x54, 0x0A, 0x19, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x21, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x33, 0x5B, 0x34, 0x2D, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x34, 0x2D, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x33, 0x2D, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x33, 0x2D, 0x38, 0x5D, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x41, 0x0A, 0x17, 0x28, 0x5B, 0x33, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x15, 0x5B, 0x33, 0x37, 0x5D, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x31, 0x39, 0x5D, 0x7C, 0x35, 0x31, 0x7C, 0x36, 0x34, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2D, 0x0A, 0x13, 0x28, 0x5B, 0x38, 0x39, 0x5D, 0x5B, 0x30, 0x39, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x36, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x08, 0x5B, 0x38, 0x39, 0x5D, 0x5B, 0x30, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2D, 0x0A, 0x12, 0x28, 0x5B, 0x35, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x09, 0x35, 0x39, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xEB, 0x02, 0x0A, 0x25, 0x12, 0x12, 0x30, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x7C, 0x5B, 0x34, 0x37, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x12, 0x1A, 0x12, 0x07, 0x37, 0x39, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x37, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x28, 0x12, 0x15, 0x28, 0x3F, 0x3A, 0x34, 0x5B, 0x30, 0x31, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x39, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x34, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x1E, 0x12, 0x0B, 0x38, 0x30, 0x5B, 0x30, 0x31, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x2A, 0x1E, 0x12, 0x0B, 0x38, 0x32, 0x5B, 0x30, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x32, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x32, 0x2D, 0x12, 0x1A, 0x38, 0x31, 0x30, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x2D, 0x36, 0x5D, 0x7C, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x31, 0x30, 0x32, 0x31, 0x32, 0x33, 0x34, 0x3A, 0x1B, 0x12, 0x08, 0x38, 0x38, 0x30, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x38, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x53, 0x4A, 0x50, 0x2F, 0x5A, 0x02, 0x30, 0x30, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x42, 0x12, 0x28, 0x30, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x7C, 0x38, 0x31, 0x28, 0x3F, 0x3A, 0x30, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x31, 0x5C, 0x64, 0x29, 0x7C, 0x35, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x05, 0x30, 0x31, 0x32, 0x33, 0x34, 0xD0, 0x01, 0x01, 0x0A, 0xEC, 0x03, 0x0A, 0x15, 0x12, 0x0C, 0x5B, 0x32, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x12, 0x1E, 0x12, 0x0A, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x36, 0x12, 0x22, 0x39, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x34, 0x38, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x39, 0x31, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x1C, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x2A, 0x12, 0x16, 0x39, 0x28, 0x3F, 0x3A, 0x5B, 0x37, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x7C, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x29, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x1F, 0x12, 0x0B, 0x38, 0x5B, 0x35, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x35, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x2B, 0x12, 0x17, 0x36, 0x28, 0x3F, 0x3A, 0x35, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x2D, 0x36, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x36, 0x39, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x4A, 0x02, 0x53, 0x4B, 0x50, 0xA5, 0x03, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x31, 0x0A, 0x18, 0x28, 0x32, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x2F, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x01, 0x32, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x3B, 0x0A, 0x1E, 0x28, 0x5B, 0x33, 0x2D, 0x35, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x2F, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x05, 0x5B, 0x33, 0x2D, 0x35, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x34, 0x0A, 0x1A, 0x28, 0x5B, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x05, 0x5B, 0x36, 0x38, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x8D, 0x02, 0x0A, 0x17, 0x12, 0x0C, 0x5B, 0x32, 0x2D, 0x35, 0x37, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x38, 0x7D, 0x12, 0x2A, 0x12, 0x15, 0x5B, 0x32, 0x33, 0x35, 0x5D, 0x32, 0x5B, 0x32, 0x2D, 0x34, 0x5D, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x32, 0x32, 0x32, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x3F, 0x12, 0x2A, 0x28, 0x3F, 0x3A, 0x32, 0x35, 0x7C, 0x33, 0x5B, 0x30, 0x33, 0x5D, 0x7C, 0x34, 0x34, 0x7C, 0x35, 0x5B, 0x30, 0x35, 0x36, 0x5D, 0x7C, 0x37, 0x5B, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x38, 0x38, 0x29, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x35, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x53, 0x4C, 0x50, 0xE8, 0x01, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x20, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x88, 0x04, 0x0A, 0x19, 0x12, 0x0D, 0x5B, 0x30, 0x35, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0x32, 0x12, 0x1A, 0x30, 0x35, 0x34, 0x39, 0x28, 0x3F, 0x3A, 0x38, 0x5B, 0x30, 0x31, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x30, 0x35, 0x34, 0x39, 0x38, 0x38, 0x36, 0x33, 0x37, 0x37, 0x1A, 0x1D, 0x12, 0x0A, 0x36, 0x5B, 0x31, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x36, 0x36, 0x36, 0x36, 0x31, 0x32, 0x31, 0x32, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x1E, 0x12, 0x0B, 0x37, 0x5B, 0x31, 0x37, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x37, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x1E, 0x12, 0x0B, 0x35, 0x5B, 0x31, 0x35, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x35, 0x38, 0x30, 0x30, 0x31, 0x31, 0x31, 0x30, 0x4A, 0x02, 0x53, 0x4D, 0x50, 0xFA, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x7A, 0x14, 0x28, 0x3F, 0x3A, 0x30, 0x35, 0x34, 0x39, 0x29, 0x3F, 0x28, 0x5B, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x29, 0x82, 0x01, 0x06, 0x30, 0x35, 0x34, 0x39, 0x24, 0x31, 0x9A, 0x01, 0x36, 0x0A, 0x1C, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x05, 0x5B, 0x35, 0x2D, 0x37, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x1D, 0x0A, 0x0D, 0x28, 0x30, 0x35, 0x34, 0x39, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x01, 0x30, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x1C, 0x0A, 0x07, 0x28, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x29, 0x12, 0x07, 0x30, 0x35, 0x34, 0x39, 0x20, 0x24, 0x31, 0x1A, 0x04, 0x5B, 0x38, 0x39, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0xA2, 0x01, 0x34, 0x0A, 0x1C, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x05, 0x5B, 0x35, 0x2D, 0x37, 0x5D, 0x2A, 0x00, 0xA2, 0x01, 0x1D, 0x0A, 0x0D, 0x28, 0x30, 0x35, 0x34, 0x39, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x29, 0x12, 0x07, 0x28, 0x24, 0x31, 0x29, 0x20, 0x24, 0x32, 0x1A, 0x01, 0x30, 0x2A, 0x00, 0xA2, 0x01, 0x1C, 0x0A, 0x07, 0x28, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x29, 0x12, 0x09, 0x28, 0x30, 0x35, 0x34, 0x39, 0x29, 0x20, 0x24, 0x31, 0x1A, 0x04, 0x5B, 0x38, 0x39, 0x5D, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xD0, 0x01, 0x01, 0x0A, 0x9A, 0x03, 0x0A, 0x12, 0x12, 0x09, 0x5B, 0x33, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x12, 0x34, 0x12, 0x20, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x31, 0x30, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x38, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x33, 0x30, 0x31, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x1A, 0xA7, 0x01, 0x12, 0x92, 0x01, 0x37, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x32, 0x35, 0x36, 0x5D, 0x30, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x32, 0x33, 0x5D, 0x7C, 0x32, 0x5B, 0x38, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x33, 0x34, 0x38, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x33, 0x38, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x34, 0x35, 0x5D, 0x7C, 0x38, 0x5B, 0x33, 0x2D, 0x38, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x31, 0x34, 0x2D, 0x38, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x2D, 0x37, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x36, 0x5D, 0x7C, 0x5B, 0x35, 0x36, 0x5D, 0x5C, 0x64, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x35, 0x38, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x2D, 0x36, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x37, 0x30, 0x31, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x1E, 0x12, 0x0A, 0x33, 0x33, 0x33, 0x30, 0x31, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x33, 0x33, 0x33, 0x30, 0x31, 0x31, 0x32, 0x33, 0x34, 0x4A, 0x02, 0x53, 0x4E, 0x50, 0xDD, 0x01, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x2F, 0x0A, 0x1C, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x97, 0x02, 0x0A, 0x19, 0x12, 0x0E, 0x5B, 0x31, 0x33, 0x2D, 0x35, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x12, 0x2A, 0x12, 0x18, 0x28, 0x3F, 0x3A, 0x35, 0x5B, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x31, 0x33, 0x34, 0x5D, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x35, 0x35, 0x32, 0x32, 0x30, 0x31, 0x30, 0x1A, 0x24, 0x12, 0x11, 0x28, 0x3F, 0x3A, 0x39, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x31, 0x35, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x39, 0x30, 0x37, 0x39, 0x32, 0x30, 0x32, 0x34, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x53, 0x4F, 0x50, 0xFC, 0x01, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x24, 0x0A, 0x0F, 0x28, 0x5B, 0x31, 0x33, 0x2D, 0x35, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x06, 0x5B, 0x31, 0x33, 0x2D, 0x35, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x22, 0x0A, 0x0F, 0x28, 0x5B, 0x31, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x04, 0x31, 0x35, 0x7C, 0x39, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x67, 0x0A, 0x00, 0x12, 0x00, 0x1A, 0x00, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x53, 0x52, 0x50, 0xD5, 0x04, 0x5A, 0x02, 0x30, 0x30, 0x90, 0x01, 0x01, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xC9, 0x01, 0x0A, 0x12, 0x12, 0x09, 0x5B, 0x32, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x12, 0x19, 0x12, 0x07, 0x32, 0x32, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x32, 0x32, 0x32, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x1C, 0x12, 0x0A, 0x39, 0x5B, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x39, 0x38, 0x31, 0x32, 0x33, 0x34, 0x35, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x53, 0x54, 0x50, 0xEF, 0x01, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x1B, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x8C, 0x03, 0x0A, 0x2F, 0x12, 0x1D, 0x5B, 0x32, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x7C, 0x5B, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x3F, 0x1A, 0x0E, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x7C, 0x5C, 0x64, 0x7B, 0x31, 0x31, 0x7D, 0x12, 0x1E, 0x12, 0x0B, 0x32, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x1A, 0x19, 0x12, 0x06, 0x37, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x37, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x2E, 0x12, 0x12, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x3F, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x3F, 0x32, 0x07, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x2A, 0x2E, 0x12, 0x12, 0x39, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x3F, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x3F, 0x32, 0x07, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x53, 0x56, 0x50, 0xF7, 0x03, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x21, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x04, 0x5B, 0x32, 0x37, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x21, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x04, 0x5B, 0x38, 0x39, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x2B, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x04, 0x5B, 0x38, 0x39, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xF9, 0x02, 0x0A, 0x18, 0x12, 0x0D, 0x5B, 0x31, 0x2D, 0x35, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x12, 0x56, 0x12, 0x40, 0x28, 0x3F, 0x3A, 0x31, 0x28, 0x3F, 0x3A, 0x31, 0x5C, 0x64, 0x3F, 0x7C, 0x34, 0x5C, 0x64, 0x7C, 0x5B, 0x32, 0x33, 0x35, 0x36, 0x5D, 0x29, 0x7C, 0x32, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x5D, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x31, 0x5C, 0x64, 0x7C, 0x5B, 0x33, 0x34, 0x5D, 0x29, 0x7C, 0x34, 0x5B, 0x31, 0x33, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x3C, 0x12, 0x28, 0x39, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x32, 0x33, 0x5D, 0x7C, 0x34, 0x5B, 0x34, 0x35, 0x37, 0x5D, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x5B, 0x36, 0x37, 0x5D, 0x7C, 0x38, 0x38, 0x7C, 0x39, 0x5B, 0x31, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x39, 0x34, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x30, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x53, 0x59, 0x50, 0xC3, 0x07, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x31, 0x0A, 0x17, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x05, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2E, 0x0A, 0x18, 0x28, 0x39, 0x5B, 0x33, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x39, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xF0, 0x02, 0x0A, 0x13, 0x12, 0x0A, 0x5B, 0x30, 0x32, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x12, 0x8A, 0x01, 0x12, 0x77, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x37, 0x5D, 0x7C, 0x5B, 0x31, 0x33, 0x5D, 0x37, 0x7C, 0x32, 0x5B, 0x35, 0x37, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x33, 0x34, 0x5D, 0x7C, 0x5B, 0x31, 0x32, 0x37, 0x38, 0x5D, 0x33, 0x7C, 0x33, 0x5B, 0x32, 0x33, 0x5D, 0x7C, 0x5B, 0x34, 0x36, 0x5D, 0x5B, 0x33, 0x34, 0x5D, 0x29, 0x7C, 0x28, 0x3F, 0x3A, 0x34, 0x30, 0x5B, 0x34, 0x2D, 0x36, 0x39, 0x5D, 0x7C, 0x36, 0x37, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x31, 0x5B, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x32, 0x33, 0x5D, 0x5B, 0x37, 0x38, 0x5D, 0x7C, 0x34, 0x38, 0x7C, 0x35, 0x5B, 0x30, 0x31, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x32, 0x31, 0x37, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x1E, 0x12, 0x0B, 0x37, 0x5B, 0x36, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x37, 0x36, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x1C, 0x12, 0x09, 0x30, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x30, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x53, 0x5A, 0x50, 0x8C, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x22, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x05, 0x5B, 0x30, 0x32, 0x37, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x1C, 0x12, 0x09, 0x30, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x30, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xD0, 0x01, 0x01, 0x0A, 0xA1, 0x03, 0x0A, 0x1E, 0x12, 0x0B, 0x5B, 0x35, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x12, 0x3A, 0x12, 0x1B, 0x36, 0x34, 0x39, 0x28, 0x3F, 0x3A, 0x37, 0x31, 0x32, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x34, 0x5C, 0x64, 0x7C, 0x35, 0x30, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x36, 0x34, 0x39, 0x37, 0x31, 0x32, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x52, 0x12, 0x3C, 0x36, 0x34, 0x39, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x31, 0x2D, 0x33, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x35, 0x37, 0x5D, 0x29, 0x7C, 0x34, 0x5B, 0x33, 0x34, 0x5D, 0x5B, 0x31, 0x32, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x36, 0x34, 0x39, 0x32, 0x33, 0x31, 0x31, 0x32, 0x33, 0x34, 0x22, 0x33, 0x12, 0x1D, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x38, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x2A, 0x23, 0x12, 0x0D, 0x39, 0x30, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x2D, 0x12, 0x17, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x33, 0x33, 0x7C, 0x34, 0x34, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x24, 0x12, 0x0E, 0x36, 0x34, 0x39, 0x37, 0x31, 0x5B, 0x30, 0x31, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x36, 0x34, 0x39, 0x37, 0x31, 0x30, 0x31, 0x32, 0x33, 0x34, 0x4A, 0x02, 0x54, 0x43, 0x50, 0x01, 0x5A, 0x03, 0x30, 0x31, 0x31, 0x62, 0x01, 0x31, 0x7A, 0x01, 0x31, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xBA, 0x01, 0x03, 0x36, 0x34, 0x39, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xA4, 0x02, 0x0A, 0x14, 0x12, 0x0B, 0x5B, 0x32, 0x36, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x12, 0x32, 0x12, 0x1F, 0x32, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x33, 0x37, 0x38, 0x39, 0x5D, 0x30, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x35, 0x5D, 0x7C, 0x36, 0x5B, 0x38, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x32, 0x35, 0x30, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x40, 0x12, 0x2D, 0x28, 0x3F, 0x3A, 0x36, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x30, 0x2D, 0x37, 0x5D, 0x7C, 0x36, 0x5C, 0x64, 0x29, 0x7C, 0x37, 0x37, 0x5C, 0x64, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x35, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x7C, 0x39, 0x5C, 0x64, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x36, 0x33, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x54, 0x44, 0x50, 0xEB, 0x01, 0x5A, 0x05, 0x30, 0x30, 0x7C, 0x31, 0x36, 0x8A, 0x01, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x2F, 0x0A, 0x1C, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x6D, 0x0A, 0x00, 0x12, 0x00, 0x1A, 0x00, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x54, 0x46, 0x50, 0x86, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x90, 0x01, 0x01, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x88, 0x02, 0x0A, 0x14, 0x12, 0x0B, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x12, 0x33, 0x12, 0x21, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x33, 0x5D, 0x7C, 0x34, 0x34, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x32, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x1A, 0x32, 0x12, 0x20, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x35, 0x36, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x7C, 0x39, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x30, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x54, 0x47, 0x50, 0xE4, 0x01, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x25, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xD0, 0x01, 0x01, 0x0A, 0xDB, 0x03, 0x0A, 0x1F, 0x12, 0x13, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x7C, 0x31, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0x3F, 0x12, 0x2C, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x7C, 0x35, 0x5B, 0x33, 0x2D, 0x36, 0x5D, 0x7C, 0x37, 0x5B, 0x33, 0x2D, 0x37, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x1A, 0x1A, 0x12, 0x06, 0x38, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x1F, 0x12, 0x09, 0x31, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x1F, 0x12, 0x09, 0x31, 0x39, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x1B, 0x12, 0x07, 0x36, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x36, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x4A, 0x02, 0x54, 0x48, 0x50, 0x42, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x27, 0x0A, 0x11, 0x28, 0x32, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x32, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x33, 0x0A, 0x19, 0x28, 0x5B, 0x33, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x05, 0x5B, 0x33, 0x2D, 0x37, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x27, 0x0A, 0x11, 0x28, 0x38, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x38, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2C, 0x0A, 0x17, 0x28, 0x31, 0x5B, 0x38, 0x39, 0x5D, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x31, 0x22, 0x02, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xAA, 0x04, 0x0A, 0x16, 0x12, 0x0B, 0x5B, 0x33, 0x2D, 0x35, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x39, 0x7D, 0x12, 0x56, 0x12, 0x40, 0x28, 0x3F, 0x3A, 0x33, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x33, 0x2D, 0x35, 0x5D, 0x7C, 0x32, 0x5B, 0x32, 0x34, 0x35, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x34, 0x2D, 0x37, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x35, 0x5D, 0x7C, 0x37, 0x32, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x34, 0x36, 0x7C, 0x37, 0x34, 0x7C, 0x38, 0x37, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x33, 0x37, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x2C, 0x12, 0x18, 0x28, 0x3F, 0x3A, 0x35, 0x30, 0x35, 0x7C, 0x39, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x39, 0x31, 0x37, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x54, 0x4A, 0x50, 0xE0, 0x07, 0x5A, 0x04, 0x38, 0x7E, 0x31, 0x30, 0x62, 0x01, 0x38, 0x7A, 0x01, 0x38, 0x9A, 0x01, 0x3E, 0x0A, 0x1A, 0x28, 0x5B, 0x33, 0x34, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x0C, 0x5B, 0x33, 0x34, 0x5D, 0x37, 0x7C, 0x39, 0x31, 0x5B, 0x37, 0x38, 0x5D, 0x22, 0x06, 0x28, 0x38, 0x29, 0x20, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x47, 0x0A, 0x17, 0x28, 0x5B, 0x34, 0x35, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x18, 0x34, 0x5B, 0x34, 0x38, 0x5D, 0x7C, 0x35, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x31, 0x39, 0x7C, 0x5B, 0x30, 0x32, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x29, 0x22, 0x06, 0x28, 0x38, 0x29, 0x20, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x43, 0x0A, 0x13, 0x28, 0x33, 0x33, 0x31, 0x37, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x03, 0x33, 0x33, 0x31, 0x1A, 0x04, 0x33, 0x33, 0x31, 0x37, 0x1A, 0x05, 0x33, 0x33, 0x31, 0x37, 0x30, 0x1A, 0x06, 0x33, 0x33, 0x31, 0x37, 0x30, 0x30, 0x22, 0x06, 0x28, 0x38, 0x29, 0x20, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x52, 0x0A, 0x12, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x06, 0x33, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x1A, 0x20, 0x33, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x32, 0x34, 0x35, 0x5D, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x2D, 0x35, 0x38, 0x39, 0x5D, 0x29, 0x29, 0x22, 0x06, 0x28, 0x38, 0x29, 0x20, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x67, 0x0A, 0x00, 0x12, 0x00, 0x1A, 0x00, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x54, 0x4B, 0x50, 0xB2, 0x05, 0x5A, 0x02, 0x30, 0x30, 0x90, 0x01, 0x01, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x97, 0x02, 0x0A, 0x16, 0x12, 0x0D, 0x5B, 0x32, 0x2D, 0x34, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x12, 0x2F, 0x12, 0x1D, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x32, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x1A, 0x1D, 0x12, 0x0B, 0x37, 0x5B, 0x32, 0x2D, 0x34, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x37, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x22, 0x19, 0x12, 0x07, 0x38, 0x30, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x38, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x2A, 0x19, 0x12, 0x07, 0x39, 0x30, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x39, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x19, 0x12, 0x07, 0x37, 0x30, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x32, 0x07, 0x37, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x54, 0x4C, 0x50, 0x9E, 0x05, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x1B, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x81, 0x02, 0x0A, 0x13, 0x12, 0x0A, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x12, 0x2C, 0x12, 0x19, 0x28, 0x3F, 0x3A, 0x31, 0x32, 0x5C, 0x64, 0x7C, 0x32, 0x34, 0x33, 0x7C, 0x5B, 0x33, 0x2D, 0x35, 0x5D, 0x32, 0x32, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x1E, 0x12, 0x0B, 0x36, 0x5B, 0x36, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x36, 0x36, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x54, 0x4D, 0x50, 0xE1, 0x07, 0x5A, 0x04, 0x38, 0x7E, 0x31, 0x30, 0x62, 0x01, 0x38, 0x7A, 0x01, 0x38, 0x9A, 0x01, 0x35, 0x0A, 0x1E, 0x28, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x22, 0x04, 0x38, 0x20, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xFD, 0x01, 0x0A, 0x15, 0x12, 0x0C, 0x5B, 0x32, 0x34, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x12, 0x19, 0x12, 0x06, 0x37, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x37, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x1A, 0x29, 0x12, 0x16, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x30, 0x2D, 0x37, 0x5D, 0x7C, 0x34, 0x30, 0x7C, 0x39, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x32, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x1E, 0x12, 0x0B, 0x38, 0x5B, 0x30, 0x32, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x32, 0x08, 0x38, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x54, 0x4E, 0x50, 0xD8, 0x01, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x29, 0x0A, 0x19, 0x28, 0x5B, 0x32, 0x34, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x67, 0x0A, 0x00, 0x12, 0x00, 0x1A, 0x00, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x54, 0x4F, 0x50, 0xA4, 0x05, 0x5A, 0x02, 0x30, 0x30, 0x90, 0x01, 0x01, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xF2, 0x04, 0x0A, 0x21, 0x12, 0x15, 0x5B, 0x32, 0x2D, 0x35, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x7C, 0x34, 0x34, 0x34, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0x99, 0x01, 0x12, 0x82, 0x01, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x33, 0x5D, 0x5B, 0x32, 0x36, 0x5D, 0x7C, 0x5B, 0x32, 0x38, 0x5D, 0x5B, 0x32, 0x34, 0x36, 0x38, 0x5D, 0x7C, 0x5B, 0x34, 0x35, 0x5D, 0x5B, 0x32, 0x36, 0x38, 0x5D, 0x7C, 0x5B, 0x36, 0x37, 0x5D, 0x5B, 0x32, 0x34, 0x36, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x33, 0x5D, 0x5B, 0x32, 0x38, 0x5D, 0x7C, 0x5B, 0x32, 0x34, 0x2D, 0x36, 0x5D, 0x5B, 0x32, 0x34, 0x36, 0x38, 0x5D, 0x7C, 0x5B, 0x37, 0x38, 0x5D, 0x5B, 0x30, 0x32, 0x34, 0x36, 0x38, 0x5D, 0x7C, 0x39, 0x32, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x36, 0x5D, 0x5B, 0x32, 0x34, 0x36, 0x5D, 0x7C, 0x5B, 0x32, 0x33, 0x35, 0x37, 0x38, 0x5D, 0x5B, 0x32, 0x34, 0x36, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x36, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x1A, 0x46, 0x12, 0x30, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x2D, 0x37, 0x5D, 0x7C, 0x32, 0x32, 0x7C, 0x33, 0x5C, 0x64, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x34, 0x36, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x1E, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x1E, 0x12, 0x08, 0x39, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x54, 0x52, 0x50, 0x5A, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x48, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x1C, 0x5B, 0x32, 0x33, 0x5D, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x29, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x2F, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x05, 0x5B, 0x35, 0x38, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x28, 0x0A, 0x13, 0x28, 0x34, 0x34, 0x34, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x31, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x03, 0x34, 0x34, 0x34, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x1E, 0x12, 0x08, 0x35, 0x31, 0x32, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x26, 0x12, 0x11, 0x34, 0x34, 0x34, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x7C, 0x38, 0x35, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x07, 0x34, 0x34, 0x34, 0x31, 0x34, 0x34, 0x34, 0x0A, 0xDF, 0x03, 0x0A, 0x1D, 0x12, 0x0A, 0x5B, 0x35, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x12, 0x6D, 0x12, 0x4E, 0x38, 0x36, 0x38, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x30, 0x31, 0x7C, 0x32, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x30, 0x37, 0x7C, 0x31, 0x5B, 0x34, 0x2D, 0x36, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x33, 0x2D, 0x36, 0x5D, 0x5C, 0x64, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x30, 0x2D, 0x38, 0x5D, 0x29, 0x7C, 0x38, 0x32, 0x5B, 0x31, 0x32, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x38, 0x36, 0x38, 0x32, 0x32, 0x31, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x7A, 0x12, 0x64, 0x38, 0x36, 0x38, 0x28, 0x3F, 0x3A, 0x32, 0x39, 0x5C, 0x64, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x5B, 0x36, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x38, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x32, 0x30, 0x7C, 0x37, 0x38, 0x7C, 0x38, 0x5C, 0x64, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x36, 0x38, 0x32, 0x39, 0x31, 0x31, 0x32, 0x33, 0x34, 0x22, 0x33, 0x12, 0x1D, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x38, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x2A, 0x23, 0x12, 0x0D, 0x39, 0x30, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x2D, 0x12, 0x17, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x33, 0x33, 0x7C, 0x34, 0x34, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x54, 0x54, 0x50, 0x01, 0x5A, 0x03, 0x30, 0x31, 0x31, 0x62, 0x01, 0x31, 0x7A, 0x01, 0x31, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xBA, 0x01, 0x03, 0x38, 0x36, 0x38, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xAE, 0x01, 0x0A, 0x16, 0x12, 0x0B, 0x5B, 0x32, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x36, 0x7D, 0x12, 0x1C, 0x12, 0x0C, 0x32, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x32, 0x05, 0x32, 0x30, 0x31, 0x32, 0x33, 0x1A, 0x18, 0x12, 0x07, 0x39, 0x30, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x32, 0x06, 0x39, 0x30, 0x31, 0x32, 0x33, 0x34, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x54, 0x56, 0x50, 0xB0, 0x05, 0x5A, 0x02, 0x30, 0x30, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xE5, 0x02, 0x0A, 0x17, 0x12, 0x0C, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x39, 0x7D, 0x12, 0x21, 0x12, 0x0C, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x39, 0x7D, 0x32, 0x08, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x1A, 0x1A, 0x12, 0x06, 0x39, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x1C, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x1C, 0x12, 0x08, 0x39, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x54, 0x57, 0x50, 0xF6, 0x06, 0x5A, 0x10, 0x30, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x32, 0x35, 0x36, 0x37, 0x39, 0x5D, 0x7C, 0x31, 0x39, 0x29, 0x62, 0x01, 0x30, 0x6A, 0x01, 0x23, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x38, 0x0A, 0x17, 0x28, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x0C, 0x5B, 0x32, 0x2D, 0x37, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x32, 0x0A, 0x19, 0x28, 0x5B, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x04, 0x38, 0x30, 0x7C, 0x39, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xC1, 0x03, 0x0A, 0x10, 0x12, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x12, 0x21, 0x12, 0x0B, 0x32, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x32, 0x32, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x2A, 0x12, 0x16, 0x28, 0x3F, 0x3A, 0x36, 0x5B, 0x31, 0x35, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x36, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x1F, 0x12, 0x0B, 0x38, 0x30, 0x5B, 0x30, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x1B, 0x12, 0x07, 0x39, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x26, 0x12, 0x12, 0x38, 0x28, 0x3F, 0x3A, 0x34, 0x30, 0x7C, 0x36, 0x5B, 0x30, 0x31, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x34, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x1B, 0x12, 0x07, 0x34, 0x31, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x34, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x4A, 0x02, 0x54, 0x5A, 0x50, 0xFF, 0x01, 0x5A, 0x07, 0x30, 0x30, 0x5B, 0x30, 0x35, 0x36, 0x5D, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x2F, 0x0A, 0x16, 0x28, 0x5B, 0x32, 0x34, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x04, 0x5B, 0x32, 0x34, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x32, 0x0A, 0x19, 0x28, 0x5B, 0x36, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x04, 0x5B, 0x36, 0x37, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x32, 0x0A, 0x19, 0x28, 0x5B, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x04, 0x5B, 0x38, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xE4, 0x07, 0x0A, 0x17, 0x12, 0x0C, 0x5B, 0x33, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x39, 0x7D, 0x12, 0x3D, 0x12, 0x27, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x33, 0x2D, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x32, 0x34, 0x35, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x33, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x1A, 0x31, 0x12, 0x1D, 0x28, 0x3F, 0x3A, 0x33, 0x39, 0x7C, 0x35, 0x30, 0x7C, 0x36, 0x5B, 0x33, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x33, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x1C, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x1C, 0x12, 0x08, 0x39, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x55, 0x41, 0x50, 0xFC, 0x02, 0x5A, 0x03, 0x30, 0x7E, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0xA4, 0x01, 0x0A, 0x18, 0x28, 0x5B, 0x33, 0x2D, 0x36, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x36, 0x33, 0x39, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x5B, 0x34, 0x35, 0x5D, 0x5B, 0x30, 0x2D, 0x35, 0x5D, 0x7C, 0x38, 0x37, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x7C, 0x36, 0x5B, 0x33, 0x37, 0x5D, 0x7C, 0x37, 0x5B, 0x33, 0x37, 0x5D, 0x29, 0x7C, 0x36, 0x5B, 0x33, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x1A, 0x3F, 0x33, 0x39, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x5B, 0x34, 0x35, 0x5D, 0x5B, 0x30, 0x2D, 0x35, 0x5D, 0x7C, 0x38, 0x37, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x31, 0x34, 0x2D, 0x37, 0x5D, 0x7C, 0x37, 0x29, 0x7C, 0x37, 0x5B, 0x33, 0x37, 0x5D, 0x29, 0x7C, 0x36, 0x5B, 0x33, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0xCA, 0x01, 0x0A, 0x1C, 0x28, 0x5B, 0x33, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x43, 0x33, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x32, 0x7C, 0x34, 0x5B, 0x31, 0x33, 0x37, 0x38, 0x5D, 0x32, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x32, 0x34, 0x35, 0x37, 0x5D, 0x32, 0x7C, 0x36, 0x5B, 0x32, 0x34, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x5B, 0x34, 0x39, 0x5D, 0x32, 0x7C, 0x5B, 0x31, 0x32, 0x5D, 0x5B, 0x32, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x34, 0x5D, 0x29, 0x7C, 0x38, 0x7C, 0x39, 0x30, 0x1A, 0x54, 0x33, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x2D, 0x34, 0x36, 0x2D, 0x38, 0x5D, 0x32, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x32, 0x29, 0x7C, 0x34, 0x5B, 0x31, 0x33, 0x37, 0x38, 0x5D, 0x32, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x32, 0x34, 0x35, 0x37, 0x5D, 0x32, 0x7C, 0x36, 0x5B, 0x32, 0x34, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x5B, 0x34, 0x39, 0x5D, 0x32, 0x7C, 0x5B, 0x31, 0x32, 0x5D, 0x5B, 0x32, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x34, 0x5D, 0x29, 0x7C, 0x38, 0x7C, 0x39, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0xD2, 0x02, 0x0A, 0x13, 0x28, 0x5B, 0x33, 0x2D, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x87, 0x01, 0x33, 0x28, 0x3F, 0x3A, 0x35, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x31, 0x2D, 0x34, 0x36, 0x2D, 0x38, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x33, 0x37, 0x5D, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x7C, 0x5B, 0x34, 0x35, 0x5D, 0x5B, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x34, 0x2D, 0x36, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x32, 0x34, 0x35, 0x5D, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x31, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x7C, 0x37, 0x5B, 0x34, 0x2D, 0x36, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x5B, 0x34, 0x39, 0x5D, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x31, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x31, 0x32, 0x5D, 0x5B, 0x31, 0x33, 0x2D, 0x38, 0x5D, 0x29, 0x1A, 0xA2, 0x01, 0x33, 0x28, 0x3F, 0x3A, 0x35, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x31, 0x2D, 0x34, 0x36, 0x2D, 0x38, 0x5D, 0x28, 0x3F, 0x3A, 0x32, 0x32, 0x7C, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x29, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x33, 0x37, 0x5D, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x7C, 0x5B, 0x34, 0x35, 0x5D, 0x5B, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x34, 0x2D, 0x36, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x32, 0x34, 0x35, 0x5D, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x30, 0x32, 0x33, 0x38, 0x39, 0x5D, 0x7C, 0x5B, 0x30, 0x31, 0x35, 0x36, 0x38, 0x39, 0x5D, 0x29, 0x7C, 0x33, 0x7C, 0x37, 0x5B, 0x34, 0x2D, 0x36, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x5B, 0x34, 0x39, 0x5D, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x31, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x31, 0x32, 0x5D, 0x5B, 0x31, 0x33, 0x2D, 0x38, 0x5D, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xD2, 0x03, 0x0A, 0x10, 0x12, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x39, 0x7D, 0x12, 0x52, 0x12, 0x3C, 0x33, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x5C, 0x64, 0x7C, 0x37, 0x5B, 0x31, 0x33, 0x36, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x33, 0x35, 0x36, 0x5D, 0x7C, 0x39, 0x36, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x32, 0x30, 0x28, 0x3F, 0x3A, 0x30, 0x5C, 0x64, 0x7C, 0x32, 0x34, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x33, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x2D, 0x12, 0x19, 0x37, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x35, 0x37, 0x38, 0x5D, 0x5C, 0x64, 0x7C, 0x30, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x37, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x21, 0x12, 0x0D, 0x38, 0x30, 0x30, 0x5B, 0x31, 0x32, 0x33, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x20, 0x12, 0x0C, 0x39, 0x30, 0x5B, 0x31, 0x32, 0x33, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x39, 0x30, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x55, 0x47, 0x50, 0x80, 0x02, 0x5A, 0x07, 0x30, 0x30, 0x5B, 0x30, 0x35, 0x37, 0x5D, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x41, 0x0A, 0x15, 0x28, 0x5B, 0x32, 0x34, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x1A, 0x5B, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x30, 0x30, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x36, 0x5B, 0x34, 0x35, 0x5D, 0x7C, 0x5B, 0x37, 0x2D, 0x39, 0x5D, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x37, 0x0A, 0x0F, 0x28, 0x5B, 0x33, 0x34, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x16, 0x33, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x2D, 0x33, 0x36, 0x2D, 0x39, 0x5D, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x22, 0x0A, 0x0D, 0x28, 0x32, 0x30, 0x32, 0x34, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x03, 0x32, 0x30, 0x32, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x8E, 0x0C, 0x0A, 0x1D, 0x12, 0x0A, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x12, 0xD3, 0x04, 0x12, 0xB3, 0x04, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x34, 0x35, 0x38, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x34, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x34, 0x36, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x32, 0x37, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x36, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x33, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x31, 0x33, 0x35, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x31, 0x34, 0x36, 0x37, 0x39, 0x5D, 0x7C, 0x34, 0x37, 0x7C, 0x35, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x35, 0x36, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x32, 0x2D, 0x35, 0x37, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x33, 0x2D, 0x35, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x32, 0x34, 0x35, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x32, 0x33, 0x35, 0x5D, 0x7C, 0x35, 0x38, 0x7C, 0x36, 0x39, 0x7C, 0x37, 0x5B, 0x30, 0x35, 0x38, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x34, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x32, 0x33, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x32, 0x30, 0x7C, 0x33, 0x5B, 0x30, 0x31, 0x34, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x33, 0x37, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x35, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x35, 0x36, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x33, 0x36, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x31, 0x36, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x36, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x31, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x2D, 0x32, 0x39, 0x5D, 0x7C, 0x37, 0x38, 0x7C, 0x38, 0x5B, 0x31, 0x32, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x2D, 0x34, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x31, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x34, 0x37, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x32, 0x34, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x37, 0x5D, 0x7C, 0x35, 0x5B, 0x34, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x32, 0x33, 0x35, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x32, 0x2D, 0x35, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x35, 0x36, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x2D, 0x36, 0x38, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x32, 0x38, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x32, 0x35, 0x5D, 0x7C, 0x34, 0x5B, 0x33, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x32, 0x2D, 0x35, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x32, 0x38, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x33, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x35, 0x38, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x36, 0x37, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x31, 0x37, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x32, 0x34, 0x36, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x38, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x35, 0x39, 0x5D, 0x29, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x32, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0xD3, 0x04, 0x12, 0xB3, 0x04, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x34, 0x35, 0x38, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x34, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x34, 0x36, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x32, 0x37, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x36, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x33, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x31, 0x33, 0x35, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x31, 0x34, 0x36, 0x37, 0x39, 0x5D, 0x7C, 0x34, 0x37, 0x7C, 0x35, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x35, 0x36, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x32, 0x2D, 0x35, 0x37, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x33, 0x2D, 0x35, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x32, 0x34, 0x35, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x32, 0x33, 0x35, 0x5D, 0x7C, 0x35, 0x38, 0x7C, 0x36, 0x39, 0x7C, 0x37, 0x5B, 0x30, 0x35, 0x38, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x34, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x32, 0x33, 0x35, 0x2D, 0x38, 0x5D, 0x7C, 0x32, 0x30, 0x7C, 0x33, 0x5B, 0x30, 0x31, 0x34, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x33, 0x37, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x31, 0x33, 0x2D, 0x35, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x35, 0x36, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x33, 0x36, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x31, 0x36, 0x5D, 0x7C, 0x34, 0x5B, 0x31, 0x36, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x31, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x2D, 0x32, 0x39, 0x5D, 0x7C, 0x37, 0x38, 0x7C, 0x38, 0x5B, 0x31, 0x32, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x2D, 0x34, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x31, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x34, 0x37, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x32, 0x34, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x37, 0x5D, 0x7C, 0x35, 0x5B, 0x34, 0x37, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x32, 0x33, 0x35, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x32, 0x2D, 0x35, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x35, 0x36, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x2D, 0x36, 0x38, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x32, 0x38, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x32, 0x35, 0x5D, 0x7C, 0x34, 0x5B, 0x33, 0x35, 0x37, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x32, 0x2D, 0x35, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x32, 0x38, 0x5D, 0x29, 0x7C, 0x39, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x31, 0x33, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x35, 0x38, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x36, 0x37, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x31, 0x37, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x32, 0x34, 0x36, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x38, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x35, 0x39, 0x5D, 0x29, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x32, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x33, 0x12, 0x1D, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x38, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x2A, 0x23, 0x12, 0x0D, 0x39, 0x30, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x2D, 0x12, 0x17, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x33, 0x33, 0x7C, 0x34, 0x34, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x55, 0x53, 0x50, 0x01, 0x5A, 0x03, 0x30, 0x31, 0x31, 0x62, 0x01, 0x31, 0x7A, 0x01, 0x31, 0x90, 0x01, 0x01, 0x9A, 0x01, 0x27, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x0A, 0x28, 0x24, 0x31, 0x29, 0x20, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x1B, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x22, 0x00, 0x2A, 0x00, 0xA2, 0x01, 0x23, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xB0, 0x01, 0x01, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x6D, 0x0A, 0x00, 0x12, 0x00, 0x1A, 0x00, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x55, 0x59, 0x50, 0xD6, 0x04, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x90, 0x01, 0x01, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x8C, 0x02, 0x0A, 0x15, 0x12, 0x0A, 0x5B, 0x36, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x12, 0x30, 0x12, 0x1A, 0x28, 0x3F, 0x3A, 0x36, 0x5B, 0x31, 0x32, 0x35, 0x36, 0x37, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x36, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x36, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x1A, 0x24, 0x12, 0x0E, 0x39, 0x5B, 0x30, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x55, 0x5A, 0x50, 0xE6, 0x07, 0x5A, 0x04, 0x38, 0x7E, 0x31, 0x30, 0x62, 0x01, 0x38, 0x7A, 0x01, 0x38, 0x9A, 0x01, 0x34, 0x0A, 0x1E, 0x28, 0x5B, 0x36, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x22, 0x03, 0x38, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xC7, 0x01, 0x0A, 0x11, 0x12, 0x07, 0x30, 0x36, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x12, 0x20, 0x12, 0x0A, 0x30, 0x36, 0x36, 0x39, 0x38, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x30, 0x36, 0x36, 0x39, 0x38, 0x31, 0x32, 0x33, 0x34, 0x35, 0x1A, 0x0A, 0x12, 0x03, 0x4E, 0x2F, 0x41, 0x1A, 0x03, 0x4E, 0x2F, 0x41, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x56, 0x41, 0x50, 0xFB, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x22, 0x0A, 0x12, 0x28, 0x30, 0x36, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xD0, 0x01, 0x01, 0x0A, 0xBA, 0x03, 0x0A, 0x1E, 0x12, 0x0B, 0x5B, 0x35, 0x37, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x12, 0x70, 0x12, 0x51, 0x37, 0x38, 0x34, 0x28, 0x3F, 0x3A, 0x32, 0x36, 0x36, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x36, 0x5B, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5C, 0x64, 0x7C, 0x38, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x2D, 0x36, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x33, 0x38, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x33, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x38, 0x5C, 0x64, 0x7C, 0x39, 0x5B, 0x30, 0x31, 0x5D, 0x29, 0x7C, 0x35, 0x35, 0x35, 0x7C, 0x36, 0x33, 0x38, 0x7C, 0x37, 0x38, 0x34, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x37, 0x38, 0x34, 0x32, 0x36, 0x36, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x51, 0x12, 0x3B, 0x37, 0x38, 0x34, 0x28, 0x3F, 0x3A, 0x34, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x5D, 0x7C, 0x35, 0x5B, 0x34, 0x35, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x33, 0x5D, 0x7C, 0x39, 0x33, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x37, 0x38, 0x34, 0x34, 0x33, 0x30, 0x31, 0x32, 0x33, 0x34, 0x22, 0x33, 0x12, 0x1D, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x38, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x2A, 0x23, 0x12, 0x0D, 0x39, 0x30, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x2D, 0x12, 0x17, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x33, 0x33, 0x7C, 0x34, 0x34, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x56, 0x43, 0x50, 0x01, 0x5A, 0x03, 0x30, 0x31, 0x31, 0x62, 0x01, 0x31, 0x7A, 0x01, 0x31, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xBA, 0x01, 0x03, 0x37, 0x38, 0x34, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xDB, 0x02, 0x0A, 0x18, 0x12, 0x0C, 0x5B, 0x32, 0x34, 0x35, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0x51, 0x12, 0x39, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x31, 0x32, 0x7C, 0x33, 0x5B, 0x34, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x35, 0x38, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x34, 0x36, 0x37, 0x5D, 0x5C, 0x64, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x29, 0x7C, 0x35, 0x30, 0x5B, 0x30, 0x31, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x32, 0x31, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x1A, 0x2D, 0x12, 0x17, 0x34, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x32, 0x34, 0x2D, 0x38, 0x5D, 0x7C, 0x32, 0x5B, 0x34, 0x36, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x34, 0x31, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x1E, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x1E, 0x12, 0x08, 0x39, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x56, 0x45, 0x50, 0x3A, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x0A, 0x28, 0x31, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x7C, 0x30, 0x9A, 0x01, 0x24, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x06, 0x24, 0x43, 0x43, 0x20, 0x24, 0x31, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xAB, 0x03, 0x0A, 0x1E, 0x12, 0x0B, 0x5B, 0x32, 0x35, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x12, 0x5D, 0x12, 0x3E, 0x32, 0x38, 0x34, 0x28, 0x3F, 0x3A, 0x28, 0x3F, 0x3A, 0x32, 0x32, 0x39, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x34, 0x36, 0x7C, 0x39, 0x5B, 0x34, 0x35, 0x5D, 0x29, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x35, 0x32, 0x7C, 0x36, 0x5B, 0x34, 0x35, 0x39, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x7C, 0x34, 0x39, 0x36, 0x5B, 0x30, 0x2D, 0x35, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x32, 0x38, 0x34, 0x32, 0x32, 0x39, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x55, 0x12, 0x3F, 0x32, 0x38, 0x34, 0x28, 0x3F, 0x3A, 0x28, 0x3F, 0x3A, 0x33, 0x30, 0x5B, 0x30, 0x2D, 0x33, 0x5D, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x34, 0x5B, 0x30, 0x2D, 0x35, 0x5D, 0x7C, 0x36, 0x38, 0x7C, 0x39, 0x39, 0x29, 0x7C, 0x35, 0x34, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x7C, 0x34, 0x39, 0x36, 0x5B, 0x36, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x32, 0x38, 0x34, 0x33, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x22, 0x33, 0x12, 0x1D, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x38, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x2A, 0x23, 0x12, 0x0D, 0x39, 0x30, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x2D, 0x12, 0x17, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x33, 0x33, 0x7C, 0x34, 0x34, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x56, 0x47, 0x50, 0x01, 0x5A, 0x03, 0x30, 0x31, 0x31, 0x62, 0x01, 0x31, 0x7A, 0x01, 0x31, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xBA, 0x01, 0x03, 0x32, 0x38, 0x34, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xEE, 0x02, 0x0A, 0x1E, 0x12, 0x0B, 0x5B, 0x33, 0x35, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x12, 0x39, 0x12, 0x1A, 0x33, 0x34, 0x30, 0x28, 0x3F, 0x3A, 0x36, 0x5B, 0x34, 0x39, 0x5D, 0x32, 0x7C, 0x37, 0x5B, 0x31, 0x37, 0x5D, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x33, 0x34, 0x30, 0x36, 0x34, 0x32, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x39, 0x12, 0x1A, 0x33, 0x34, 0x30, 0x28, 0x3F, 0x3A, 0x36, 0x5B, 0x34, 0x39, 0x5D, 0x32, 0x7C, 0x37, 0x5B, 0x31, 0x37, 0x5D, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x33, 0x34, 0x30, 0x36, 0x34, 0x32, 0x31, 0x32, 0x33, 0x34, 0x22, 0x33, 0x12, 0x1D, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x35, 0x35, 0x7C, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x38, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x2A, 0x23, 0x12, 0x0D, 0x39, 0x30, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x39, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x2D, 0x12, 0x17, 0x35, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x33, 0x33, 0x7C, 0x34, 0x34, 0x29, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x30, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x56, 0x49, 0x50, 0x01, 0x5A, 0x03, 0x30, 0x31, 0x31, 0x62, 0x01, 0x31, 0x7A, 0x01, 0x31, 0x90, 0x01, 0x01, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xBA, 0x01, 0x03, 0x33, 0x34, 0x30, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xF2, 0x06, 0x0A, 0x22, 0x12, 0x16, 0x38, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x38, 0x7D, 0x7C, 0x5B, 0x31, 0x2D, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0xAF, 0x01, 0x12, 0x96, 0x01, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x32, 0x35, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x31, 0x38, 0x39, 0x5D, 0x7C, 0x5B, 0x33, 0x34, 0x38, 0x5D, 0x5B, 0x30, 0x31, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x31, 0x33, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x32, 0x35, 0x5D, 0x5B, 0x30, 0x31, 0x5D, 0x29, 0x7C, 0x5B, 0x34, 0x38, 0x5D, 0x5C, 0x64, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x31, 0x5D, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x31, 0x5D, 0x29, 0x7C, 0x37, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x32, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x5B, 0x31, 0x38, 0x5D, 0x5B, 0x30, 0x31, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x7C, 0x36, 0x39, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x36, 0x7D, 0x7C, 0x38, 0x30, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x32, 0x31, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x1A, 0x39, 0x12, 0x22, 0x28, 0x3F, 0x3A, 0x39, 0x5C, 0x64, 0x7C, 0x31, 0x28, 0x3F, 0x3A, 0x32, 0x5C, 0x64, 0x7C, 0x36, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x38, 0x7C, 0x39, 0x39, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x39, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x09, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x23, 0x12, 0x0B, 0x31, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x36, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x23, 0x12, 0x0B, 0x31, 0x39, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x36, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x39, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x56, 0x4E, 0x50, 0x54, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x2D, 0x0A, 0x14, 0x28, 0x5B, 0x34, 0x38, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x04, 0x5B, 0x34, 0x38, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x5B, 0x0A, 0x19, 0x28, 0x5B, 0x32, 0x33, 0x35, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x2D, 0x32, 0x5B, 0x30, 0x32, 0x35, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x31, 0x33, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x32, 0x2D, 0x37, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x1F, 0x0A, 0x0B, 0x28, 0x38, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x02, 0x38, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x23, 0x0A, 0x0F, 0x28, 0x36, 0x39, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x35, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x02, 0x36, 0x39, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x4D, 0x0A, 0x1C, 0x28, 0x5B, 0x32, 0x33, 0x35, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x1C, 0x32, 0x5B, 0x31, 0x33, 0x34, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x35, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x36, 0x35, 0x7C, 0x37, 0x5B, 0x31, 0x38, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x33, 0x0A, 0x1A, 0x28, 0x39, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x01, 0x39, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x3D, 0x0A, 0x19, 0x28, 0x31, 0x5B, 0x32, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x0F, 0x31, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x36, 0x5D, 0x7C, 0x38, 0x38, 0x7C, 0x39, 0x39, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x29, 0x0A, 0x12, 0x28, 0x31, 0x5B, 0x38, 0x39, 0x5D, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x36, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x06, 0x31, 0x5B, 0x38, 0x39, 0x5D, 0x30, 0x22, 0x02, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x67, 0x0A, 0x00, 0x12, 0x00, 0x1A, 0x00, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x56, 0x55, 0x50, 0xA6, 0x05, 0x5A, 0x02, 0x30, 0x30, 0x90, 0x01, 0x01, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x67, 0x0A, 0x00, 0x12, 0x00, 0x1A, 0x00, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x57, 0x46, 0x50, 0xA9, 0x05, 0x5A, 0x02, 0x31, 0x39, 0x90, 0x01, 0x01, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xC0, 0x02, 0x0A, 0x17, 0x12, 0x0C, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x36, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x37, 0x7D, 0x12, 0x2F, 0x12, 0x1D, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x5C, 0x64, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x34, 0x30, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x37, 0x7D, 0x32, 0x05, 0x32, 0x32, 0x31, 0x32, 0x33, 0x1A, 0x28, 0x12, 0x15, 0x28, 0x3F, 0x3A, 0x36, 0x30, 0x7C, 0x37, 0x5B, 0x32, 0x35, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x32, 0x06, 0x36, 0x30, 0x31, 0x32, 0x33, 0x34, 0x22, 0x19, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x32, 0x06, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x57, 0x53, 0x50, 0xAD, 0x05, 0x5A, 0x01, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x29, 0x0A, 0x11, 0x28, 0x38, 0x5B, 0x30, 0x34, 0x5D, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x06, 0x38, 0x5B, 0x30, 0x34, 0x5D, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x29, 0x0A, 0x10, 0x28, 0x37, 0x5B, 0x32, 0x35, 0x2D, 0x37, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x07, 0x37, 0x5B, 0x32, 0x35, 0x2D, 0x37, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xEF, 0x02, 0x0A, 0x17, 0x12, 0x0C, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x38, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x12, 0x5C, 0x12, 0x48, 0x28, 0x3F, 0x3A, 0x31, 0x28, 0x3F, 0x3A, 0x37, 0x5C, 0x64, 0x7C, 0x5B, 0x32, 0x2D, 0x36, 0x38, 0x5D, 0x29, 0x7C, 0x32, 0x5B, 0x32, 0x2D, 0x36, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x32, 0x33, 0x35, 0x38, 0x5D, 0x7C, 0x34, 0x5B, 0x32, 0x2D, 0x35, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x32, 0x2D, 0x36, 0x5D, 0x7C, 0x36, 0x5B, 0x33, 0x2D, 0x35, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x34, 0x2D, 0x36, 0x38, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x38, 0x7D, 0x32, 0x07, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x1A, 0x1F, 0x12, 0x0B, 0x37, 0x5B, 0x31, 0x33, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x37, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x59, 0x45, 0x50, 0xC7, 0x07, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x3A, 0x0A, 0x17, 0x28, 0x5B, 0x31, 0x2D, 0x37, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x0E, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x34, 0x2D, 0x36, 0x38, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x33, 0x0A, 0x18, 0x28, 0x37, 0x5B, 0x31, 0x33, 0x37, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x06, 0x37, 0x5B, 0x31, 0x33, 0x37, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xD7, 0x01, 0x0A, 0x13, 0x12, 0x0A, 0x5B, 0x32, 0x36, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x12, 0x22, 0x12, 0x0E, 0x32, 0x36, 0x39, 0x36, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x32, 0x36, 0x39, 0x36, 0x30, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x1C, 0x12, 0x08, 0x36, 0x33, 0x39, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x36, 0x33, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x1B, 0x12, 0x07, 0x38, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x59, 0x54, 0x50, 0x86, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xBA, 0x01, 0x06, 0x32, 0x36, 0x39, 0x7C, 0x36, 0x33, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xB9, 0x03, 0x0A, 0x10, 0x12, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x39, 0x7D, 0x12, 0x44, 0x12, 0x2E, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x2D, 0x38, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x2D, 0x34, 0x37, 0x38, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x2D, 0x36, 0x39, 0x5D, 0x7C, 0x34, 0x5C, 0x64, 0x7C, 0x35, 0x5B, 0x31, 0x33, 0x34, 0x36, 0x2D, 0x38, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x39, 0x7D, 0x32, 0x09, 0x31, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x1A, 0x30, 0x12, 0x1C, 0x28, 0x3F, 0x3A, 0x37, 0x5B, 0x31, 0x2D, 0x34, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x35, 0x37, 0x38, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x37, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x1B, 0x12, 0x07, 0x38, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x20, 0x12, 0x0C, 0x38, 0x36, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x36, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x32, 0x1C, 0x12, 0x08, 0x38, 0x36, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x36, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x1B, 0x12, 0x07, 0x38, 0x37, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x37, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x4A, 0x02, 0x5A, 0x41, 0x50, 0x1B, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x2B, 0x0A, 0x13, 0x28, 0x38, 0x36, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x03, 0x38, 0x36, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x49, 0x0A, 0x19, 0x28, 0x5B, 0x31, 0x2D, 0x35, 0x37, 0x38, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x1B, 0x5B, 0x31, 0x2D, 0x35, 0x37, 0x5D, 0x7C, 0x38, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xB3, 0x02, 0x0A, 0x13, 0x12, 0x0A, 0x5B, 0x32, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x12, 0x20, 0x12, 0x0C, 0x32, 0x31, 0x5B, 0x31, 0x2D, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x32, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x1A, 0x2E, 0x12, 0x1A, 0x39, 0x28, 0x3F, 0x3A, 0x35, 0x35, 0x7C, 0x36, 0x5B, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x34, 0x2D, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x39, 0x35, 0x35, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x1C, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x5A, 0x4D, 0x50, 0x84, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x25, 0x0A, 0x0F, 0x28, 0x5B, 0x32, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x04, 0x5B, 0x32, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x29, 0x0A, 0x13, 0x28, 0x38, 0x30, 0x30, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x38, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xBB, 0x0B, 0x0A, 0x42, 0x12, 0x36, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x31, 0x32, 0x34, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x38, 0x7D, 0x7C, 0x36, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x36, 0x7D, 0x29, 0x7C, 0x5B, 0x31, 0x33, 0x2D, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x38, 0x7D, 0x7C, 0x38, 0x36, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0xAB, 0x02, 0x12, 0x95, 0x02, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x34, 0x35, 0x5D, 0x7C, 0x5B, 0x31, 0x36, 0x5D, 0x7C, 0x32, 0x5B, 0x32, 0x38, 0x5D, 0x7C, 0x5B, 0x34, 0x39, 0x5D, 0x38, 0x3F, 0x7C, 0x35, 0x38, 0x5B, 0x32, 0x33, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x34, 0x36, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x33, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x38, 0x3F, 0x7C, 0x31, 0x37, 0x3F, 0x7C, 0x33, 0x5B, 0x37, 0x38, 0x5D, 0x7C, 0x5B, 0x32, 0x34, 0x35, 0x36, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x35, 0x36, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x33, 0x37, 0x39, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x37, 0x38, 0x5D, 0x7C, 0x34, 0x38, 0x33, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x37, 0x3F, 0x7C, 0x38, 0x29, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x30, 0x7C, 0x32, 0x38, 0x7C, 0x33, 0x37, 0x3F, 0x7C, 0x5B, 0x34, 0x35, 0x5D, 0x5B, 0x36, 0x38, 0x5D, 0x5B, 0x37, 0x38, 0x5D, 0x7C, 0x39, 0x38, 0x3F, 0x29, 0x7C, 0x38, 0x34, 0x38, 0x29, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x36, 0x7D, 0x7C, 0x28, 0x3F, 0x3A, 0x32, 0x28, 0x3F, 0x3A, 0x32, 0x37, 0x7C, 0x35, 0x7C, 0x37, 0x5B, 0x31, 0x33, 0x35, 0x37, 0x38, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x35, 0x5D, 0x29, 0x7C, 0x33, 0x5B, 0x33, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x34, 0x36, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x32, 0x36, 0x2D, 0x38, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x36, 0x7D, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x30, 0x7C, 0x37, 0x30, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x36, 0x7D, 0x7C, 0x28, 0x3F, 0x3A, 0x34, 0x5C, 0x64, 0x7C, 0x39, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x37, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x07, 0x31, 0x33, 0x31, 0x32, 0x33, 0x34, 0x35, 0x1A, 0x1F, 0x12, 0x0B, 0x37, 0x5B, 0x31, 0x33, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x37, 0x31, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x39, 0x12, 0x23, 0x38, 0x36, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x31, 0x32, 0x5D, 0x7C, 0x32, 0x32, 0x7C, 0x33, 0x30, 0x7C, 0x34, 0x34, 0x7C, 0x38, 0x5B, 0x33, 0x36, 0x37, 0x5D, 0x7C, 0x39, 0x39, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x38, 0x36, 0x38, 0x36, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x4A, 0x02, 0x5A, 0x57, 0x50, 0x87, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x33, 0x0A, 0x16, 0x28, 0x5B, 0x34, 0x39, 0x5D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x35, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x08, 0x34, 0x7C, 0x39, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x35, 0x0A, 0x19, 0x28, 0x5B, 0x31, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x07, 0x5B, 0x31, 0x39, 0x5D, 0x31, 0x7C, 0x37, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0xBA, 0x01, 0x0A, 0x14, 0x28, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x36, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x35, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x93, 0x01, 0x31, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x2D, 0x34, 0x36, 0x39, 0x5D, 0x7C, 0x30, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x34, 0x35, 0x5D, 0x5B, 0x30, 0x2D, 0x37, 0x39, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x5B, 0x32, 0x34, 0x2D, 0x36, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x36, 0x39, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x32, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x31, 0x35, 0x5D, 0x5B, 0x30, 0x2D, 0x36, 0x39, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x31, 0x34, 0x35, 0x5D, 0x7C, 0x5B, 0x32, 0x39, 0x5D, 0x5B, 0x30, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x5B, 0x36, 0x38, 0x5D, 0x5B, 0x30, 0x2D, 0x36, 0x39, 0x5D, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0xC2, 0x01, 0x0A, 0x19, 0x28, 0x5B, 0x31, 0x2D, 0x33, 0x35, 0x36, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x93, 0x01, 0x31, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x2D, 0x34, 0x36, 0x39, 0x5D, 0x7C, 0x30, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x34, 0x35, 0x5D, 0x5B, 0x30, 0x2D, 0x37, 0x39, 0x5D, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x5B, 0x32, 0x34, 0x2D, 0x36, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x36, 0x39, 0x5D, 0x29, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x32, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x31, 0x35, 0x5D, 0x5B, 0x30, 0x2D, 0x36, 0x39, 0x5D, 0x29, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x31, 0x34, 0x35, 0x5D, 0x7C, 0x5B, 0x32, 0x39, 0x5D, 0x5B, 0x30, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x5B, 0x36, 0x38, 0x5D, 0x5B, 0x30, 0x2D, 0x36, 0x39, 0x5D, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x72, 0x0A, 0x16, 0x28, 0x5B, 0x32, 0x33, 0x35, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x35, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x4A, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x37, 0x38, 0x5D, 0x7C, 0x30, 0x5B, 0x34, 0x35, 0x5D, 0x7C, 0x34, 0x38, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x38, 0x7C, 0x31, 0x37, 0x7C, 0x33, 0x5B, 0x37, 0x38, 0x5D, 0x7C, 0x5B, 0x37, 0x38, 0x5D, 0x29, 0x7C, 0x35, 0x5B, 0x31, 0x35, 0x5D, 0x5B, 0x37, 0x38, 0x5D, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x39, 0x5D, 0x38, 0x7C, 0x33, 0x37, 0x7C, 0x5B, 0x36, 0x38, 0x5D, 0x5B, 0x37, 0x38, 0x5D, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x7A, 0x0A, 0x1B, 0x28, 0x5B, 0x32, 0x33, 0x35, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x4A, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x37, 0x38, 0x5D, 0x7C, 0x30, 0x5B, 0x34, 0x35, 0x5D, 0x7C, 0x34, 0x38, 0x29, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x38, 0x7C, 0x31, 0x37, 0x7C, 0x33, 0x5B, 0x37, 0x38, 0x5D, 0x7C, 0x5B, 0x37, 0x38, 0x5D, 0x29, 0x7C, 0x35, 0x5B, 0x31, 0x35, 0x5D, 0x5B, 0x37, 0x38, 0x5D, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x39, 0x5D, 0x38, 0x7C, 0x33, 0x37, 0x7C, 0x5B, 0x36, 0x38, 0x5D, 0x5B, 0x37, 0x38, 0x5D, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x3E, 0x0A, 0x14, 0x28, 0x5B, 0x32, 0x35, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x35, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x0A, 0x28, 0x3F, 0x3A, 0x32, 0x35, 0x7C, 0x35, 0x34, 0x29, 0x38, 0x1A, 0x0C, 0x32, 0x35, 0x38, 0x5B, 0x32, 0x33, 0x5D, 0x7C, 0x35, 0x34, 0x38, 0x33, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x46, 0x0A, 0x19, 0x28, 0x5B, 0x32, 0x35, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x0A, 0x28, 0x3F, 0x3A, 0x32, 0x35, 0x7C, 0x35, 0x34, 0x29, 0x38, 0x1A, 0x0C, 0x32, 0x35, 0x38, 0x5B, 0x32, 0x33, 0x5D, 0x7C, 0x35, 0x34, 0x38, 0x33, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x22, 0x0A, 0x0F, 0x28, 0x38, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x01, 0x38, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, }; + +int metadata_size() { + return sizeof(metadata_data) / sizeof(metadata_data[0]); +} + +const void* metadata_get() { + return metadata_data; +} diff --git a/third_party/libphonenumber/cpp/src/metadata.h b/third_party/libphonenumber/cpp/src/metadata.h new file mode 100644 index 0000000..59794e6 --- /dev/null +++ b/third_party/libphonenumber/cpp/src/metadata.h @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2011 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef EMBEDDED_DATA_METADATA_H_ +#define EMBEDDED_DATA_METADATA_H_ + +int metadata_size(); +const void* metadata_get(); + +#endif // EMBEDDED_DATA_METADATA_H_ diff --git a/third_party/libphonenumber/cpp/src/phonenumber.cc b/third_party/libphonenumber/cpp/src/phonenumber.cc new file mode 100644 index 0000000..f622e93 --- /dev/null +++ b/third_party/libphonenumber/cpp/src/phonenumber.cc @@ -0,0 +1,87 @@ +// Copyright (C) 2009 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Author: Philippe Liard + +#include "phonemetadata.pb.h" +#include "phonenumber.pb.h" + +namespace i18n { +namespace phonenumbers { + +bool ExactlySameAs(const PhoneNumber& first_number, + const PhoneNumber& second_number) { + if (first_number.has_country_code() != second_number.has_country_code() || + first_number.country_code() != second_number.country_code()) { + return false; + } + if (first_number.has_national_number() != + second_number.has_national_number() || + first_number.national_number() != second_number.national_number()) { + return false; + } + if (first_number.has_extension() != second_number.has_extension() || + first_number.extension() != second_number.extension()) { + return false; + } + if (first_number.has_italian_leading_zero() != + second_number.has_italian_leading_zero() || + first_number.italian_leading_zero() != + second_number.italian_leading_zero()) { + return false; + } + if (first_number.has_raw_input() != second_number.has_raw_input() || + first_number.raw_input() != second_number.raw_input()) { + return false; + } + if (first_number.has_country_code_source() != + second_number.has_country_code_source() || + first_number.country_code_source() != + second_number.country_code_source()) { + return false; + } + if (first_number.has_preferred_domestic_carrier_code() != + second_number.has_preferred_domestic_carrier_code() || + first_number.preferred_domestic_carrier_code() != + second_number.preferred_domestic_carrier_code()) { + return false; + } + return true; +} + +bool ExactlySameAs(const PhoneNumberDesc& first_number_desc, + const PhoneNumberDesc& second_number_desc) { + if (first_number_desc.has_national_number_pattern() != + second_number_desc.has_national_number_pattern() || + first_number_desc.national_number_pattern() != + second_number_desc.national_number_pattern()) { + return false; + } + if (first_number_desc.has_possible_number_pattern() != + second_number_desc.has_possible_number_pattern() || + first_number_desc.possible_number_pattern() != + second_number_desc.possible_number_pattern()) { + return false; + } + if (first_number_desc.has_example_number() != + second_number_desc.has_example_number() || + first_number_desc.example_number() != + second_number_desc.example_number()) { + return false; + } + return true; +} + +} // namespace phonenumbers +} // namespace i18n diff --git a/third_party/libphonenumber/cpp/src/phonenumber.h b/third_party/libphonenumber/cpp/src/phonenumber.h new file mode 100644 index 0000000..952ca7c --- /dev/null +++ b/third_party/libphonenumber/cpp/src/phonenumber.h @@ -0,0 +1,40 @@ +// Copyright (C) 2009 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Author: Philippe Liard + +#ifndef I18N_PHONENUMBERS_PHONENUMBER_H_ +#define I18N_PHONENUMBERS_PHONENUMBER_H_ + +// Helper functions dealing with PhoneNumber and PhoneNumberDesc comparisons. + +namespace i18n { +namespace phonenumbers { + +class PhoneNumber; +class PhoneNumberDesc; + +// Compares two phone numbers. +bool ExactlySameAs(const PhoneNumber& first_number, + const PhoneNumber& second_number); + + +// Compares two phone number descriptions. +bool ExactlySameAs(const PhoneNumberDesc& first_number_desc, + const PhoneNumberDesc& second_number_desc); + +} // namespace phonenumbers +} // namespace i18n + +#endif // I18N_PHONENUMBERS_PHONENUMBER_H_ diff --git a/third_party/libphonenumber/cpp/src/phonenumberutil.cc b/third_party/libphonenumber/cpp/src/phonenumberutil.cc new file mode 100644 index 0000000..75ef374 --- /dev/null +++ b/third_party/libphonenumber/cpp/src/phonenumberutil.cc @@ -0,0 +1,2266 @@ +// Copyright (C) 2009 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Author: Shaopeng Jia +// Open-sourced by: Philippe Liard + +#include "phonenumberutil.h" + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include "base/logging.h" +#include "base/singleton.h" +#include "default_logger.h" +#include "logger_adapter.h" +#include "metadata.h" +#include "phonemetadata.pb.h" +#include "phonenumber.h" +#include "phonenumber.pb.h" +#include "regexp_adapter.h" +#include "stringutil.h" +#include "utf/unicodetext.h" +#include "utf/utf.h" + +namespace i18n { +namespace phonenumbers { + +using std::cerr; +using std::endl; +using std::ifstream; +using std::make_pair; +using std::sort; +using std::stringstream; + +using google::protobuf::RepeatedPtrField; + +namespace { + +scoped_ptr logger; + +// These objects are created in the function InitializeStaticMapsAndSets. + +// These mappings map a character (key) to a specific digit that should replace +// it for normalization purposes. +scoped_ptr > alpha_mappings; +// For performance reasons, amalgamate both into one map. +scoped_ptr > all_normalization_mappings; +// Separate map of all symbols that we wish to retain when formatting alpha +// numbers. This includes digits, ascii letters and number grouping symbols such +// as "-" and " ". +scoped_ptr > all_plus_number_grouping_symbols; + +// The kPlusSign signifies the international prefix. +const char kPlusSign[] = "+"; + +const char kPlusChars[] = "++"; +scoped_ptr plus_chars_pattern; + +const char kRfc3966ExtnPrefix[] = ";ext="; + +// Pattern that makes it easy to distinguish whether a region has a unique +// international dialing prefix or not. If a region has a unique international +// prefix (e.g. 011 in USA), it will be represented as a string that contains a +// sequence of ASCII digits. If there are multiple available international +// prefixes in a region, they will be represented as a regex string that always +// contains character(s) other than ASCII digits. +// Note this regex also includes tilde, which signals waiting for the tone. +scoped_ptr unique_international_prefix; + +// Digits accepted in phone numbers. +// Both Arabic-Indic and Eastern Arabic-Indic are supported. +const char kValidDigits[] = "0-90-9٠-٩۰-۹"; +// We accept alpha characters in phone numbers, ASCII only. We store lower-case +// here only since our regular expressions are case-insensitive. +const char kValidAlpha[] = "a-z"; +scoped_ptr capturing_digit_pattern; +scoped_ptr capturing_ascii_digits_pattern; + +// Regular expression of acceptable characters that may start a phone number +// for the purposes of parsing. This allows us to strip away meaningless +// prefixes to phone numbers that may be mistakenly given to us. This +// consists of digits, the plus symbol and arabic-indic digits. This does +// not contain alpha characters, although they may be used later in the +// number. It also does not include other punctuation, as this will be +// stripped later during parsing and is of no information value when parsing +// a number. The string starting with this valid character is captured. +// This corresponds to VALID_START_CHAR in the java version. +scoped_ptr valid_start_char; +scoped_ptr valid_start_char_pattern; + +// Regular expression of characters typically used to start a second phone +// number for the purposes of parsing. This allows us to strip off parts of +// the number that are actually the start of another number, such as for: +// (530) 583-6985 x302/x2303 -> the second extension here makes this actually +// two phone numbers, (530) 583-6985 x302 and (530) 583-6985 x2303. We remove +// the second extension so that the first number is parsed correctly. The string +// preceding this is captured. +// This corresponds to SECOND_NUMBER_START in the java version. +const char kCaptureUpToSecondNumberStart[] = "(.*)[\\\\/] *x"; +scoped_ptr + capture_up_to_second_number_start_pattern; + +// Regular expression of trailing characters that we want to remove. We remove +// all characters that are not alpha or numerical characters. The hash +// character is retained here, as it may signify the previous block was an +// extension. Note the capturing block at the start to capture the rest of the +// number if this was a match. +// This corresponds to UNWANTED_END_CHARS in the java version. +const char kUnwantedEndChar[] = "[^\\p{N}\\p{L}#]"; +scoped_ptr unwanted_end_char_pattern; + +// Regular expression of acceptable punctuation found in phone numbers. This +// excludes punctuation found as a leading character only. This consists of +// dash characters, white space characters, full stops, slashes, square +// brackets, parentheses and tildes. It also includes the letter 'x' as that is +// found as a placeholder for carrier information in some phone numbers. +// Full-width variants are also present. +// To find out the unicode code-point of the characters below in vim, highlight +// the character and type 'ga'. Note that the - is used to express ranges of +// full-width punctuation below, as well as being present in the expression +// itself. In emacs, you can use M-x unicode-what to query information about the +// unicode character. +const char kValidPunctuation[] = + "-x‐-―−ー--/  ​⁠ ()()[].\\[\\]/~⁓∼~"; + +// Regular expression of viable phone numbers. This is location independent. +// Checks we have at least three leading digits, and only valid punctuation, +// alpha characters and digits in the phone number. Does not include extension +// data. The symbol 'x' is allowed here as valid punctuation since it is often +// used as a placeholder for carrier codes, for example in Brazilian phone +// numbers. We also allow multiple plus-signs at the start. +// Corresponds to the following: +// plus_sign*([punctuation]*[digits]){3,}([punctuation]|[digits]|[alpha])* +scoped_ptr valid_phone_number; + +// Default extension prefix to use when formatting. This will be put in front of +// any extension component of the number, after the main national number is +// formatted. For example, if you wish the default extension formatting to be " +// extn: 3456", then you should specify " extn: " here as the default extension +// prefix. This can be overridden by region-specific preferences. +const char kDefaultExtnPrefix[] = " ext. "; + +// Regexp of all possible ways to write extensions, for use when parsing. This +// will be run as a case-insensitive regexp match. Wide character versions are +// also provided after each ascii version. There are three regular expressions +// here. The first covers RFC 3966 format, where the extension is added using +// ";ext=". The second more generic one starts with optional white space and +// ends with an optional full stop (.), followed by zero or more spaces/tabs and +// then the numbers themselves. The third one covers the special case of +// American numbers where the extension is written with a hash at the end, such +// as "- 503#". +// Note that the only capturing groups should be around the digits that you want +// to capture as part of the extension, or else parsing will fail! +scoped_ptr known_extn_patterns; +// Regexp of all known extension prefixes used by different regions followed +// by 1 or more valid digits, for use when parsing. +scoped_ptr extn_pattern; + +// We append optionally the extension pattern to the end here, as a valid phone +// number may have an extension prefix appended, followed by 1 or more digits. +scoped_ptr valid_phone_number_pattern; + +// We use this pattern to check if the phone number has at least three letters +// in it - if so, then we treat it as a number where some phone-number digits +// are represented by letters. +scoped_ptr valid_alpha_phone_pattern; + +scoped_ptr first_group_capturing_pattern; + +scoped_ptr carrier_code_pattern; + +void TransformRegularExpressionToRE2Syntax(string* regex) { + DCHECK(regex); + StripString(regex, "$", '\\'); +} + +// Returns a pointer to the description inside the metadata of the appropriate +// type. +const PhoneNumberDesc* GetNumberDescByType( + const PhoneMetadata& metadata, + PhoneNumberUtil::PhoneNumberType type) { + switch (type) { + case PhoneNumberUtil::PREMIUM_RATE: + return &metadata.premium_rate(); + case PhoneNumberUtil::TOLL_FREE: + return &metadata.toll_free(); + case PhoneNumberUtil::MOBILE: + return &metadata.mobile(); + case PhoneNumberUtil::FIXED_LINE: + case PhoneNumberUtil::FIXED_LINE_OR_MOBILE: + return &metadata.fixed_line(); + case PhoneNumberUtil::SHARED_COST: + return &metadata.shared_cost(); + case PhoneNumberUtil::VOIP: + return &metadata.voip(); + case PhoneNumberUtil::PERSONAL_NUMBER: + return &metadata.personal_number(); + case PhoneNumberUtil::PAGER: + return &metadata.pager(); + case PhoneNumberUtil::UAN: + return &metadata.uan(); + default: + return &metadata.general_desc(); + } +} + +// A helper function that is used by Format and FormatByPattern. +void FormatNumberByFormat(int country_calling_code, + PhoneNumberUtil::PhoneNumberFormat number_format, + const string& formatted_national_number, + const string& formatted_extension, + string* formatted_number) { + switch (number_format) { + case PhoneNumberUtil::E164: + formatted_number->assign(StrCat(kPlusSign, + SimpleItoa(country_calling_code), + formatted_national_number, + formatted_extension)); + return; + case PhoneNumberUtil::INTERNATIONAL: + formatted_number->assign(StrCat(kPlusSign, + SimpleItoa(country_calling_code), + " ", + formatted_national_number, + formatted_extension)); + return; + case PhoneNumberUtil::RFC3966: + formatted_number->assign(StrCat(kPlusSign, + SimpleItoa(country_calling_code), + "-", + formatted_national_number, + formatted_extension)); + return; + case PhoneNumberUtil::NATIONAL: + default: + formatted_number->assign(StrCat(formatted_national_number, + formatted_extension)); + } +} + +// The number_for_leading_digits_match is a separate parameter, because for +// alpha numbers we want to pass in the numeric version to select the right +// formatting rule, but then we actually apply the formatting pattern to the +// national_number (which in this case has alpha characters in it). +// +// Note that carrier_code is optional - if an empty string, no carrier code +// replacement will take place. +void FormatAccordingToFormatsWithCarrier( + const string& number_for_leading_digits_match, + const RepeatedPtrField& available_formats, + PhoneNumberUtil::PhoneNumberFormat number_format, + const string& national_number, + const string& carrier_code, + string* formatted_number) { + DCHECK(formatted_number); + for (RepeatedPtrField::const_iterator + it = available_formats.begin(); it != available_formats.end(); ++it) { + int size = it->leading_digits_pattern_size(); + if (size > 0) { + scoped_ptr + number_copy(reg_exp::CreateRegularExpressionInput( + number_for_leading_digits_match.c_str())); + // We always use the last leading_digits_pattern, as it is the most + // detailed. + if (!number_copy->ConsumeRegExp(it->leading_digits_pattern(size - 1), + true, NULL, NULL)) { + continue; + } + } + scoped_ptr pattern_to_match( + reg_exp::CreateRegularExpression(it->pattern().c_str())); + if (pattern_to_match->Match(national_number.c_str(), true, NULL)) { + string formatting_pattern(it->format()); + if (number_format == PhoneNumberUtil::NATIONAL && + carrier_code.length() > 0 && + it->domestic_carrier_code_formatting_rule().length() > 0) { + // Replace the $CC in the formatting rule with the desired carrier code. + string carrier_code_formatting_rule = + it->domestic_carrier_code_formatting_rule(); + carrier_code_pattern->Replace(&carrier_code_formatting_rule, + false, carrier_code.c_str()); + TransformRegularExpressionToRE2Syntax(&carrier_code_formatting_rule); + first_group_capturing_pattern->Replace(&formatting_pattern, + false, + carrier_code_formatting_rule.c_str()); + } else { + // Use the national prefix formatting rule instead. + string national_prefix_formatting_rule = + it->national_prefix_formatting_rule(); + if (number_format == PhoneNumberUtil::NATIONAL && + national_prefix_formatting_rule.length() > 0) { + // Apply the national_prefix_formatting_rule as the formatting_pattern + // contains only information on how the national significant number + // should be formatted at this point. + TransformRegularExpressionToRE2Syntax( + &national_prefix_formatting_rule); + first_group_capturing_pattern->Replace(&formatting_pattern, + false, + national_prefix_formatting_rule.c_str()); + } + } + TransformRegularExpressionToRE2Syntax(&formatting_pattern); + formatted_number->assign(national_number); + pattern_to_match->Replace(formatted_number, true, + formatting_pattern.c_str()); + return; + } + } + // If no pattern above is matched, we format the number as a whole. + formatted_number->assign(national_number); +} + +// Simple wrapper of FormatAccordingToFormatsWithCarrier for the common case of +// no carrier code. +void FormatAccordingToFormats( + const string& number_for_leading_digits_match, + const RepeatedPtrField& available_formats, + PhoneNumberUtil::PhoneNumberFormat number_format, + const string& national_number, + string* formatted_number) { + DCHECK(formatted_number); + FormatAccordingToFormatsWithCarrier(number_for_leading_digits_match, + available_formats, number_format, + national_number, "", formatted_number); +} + +// Returns true when one national number is the suffix of the other or both are +// the same. +bool IsNationalNumberSuffixOfTheOther(const PhoneNumber& first_number, + const PhoneNumber& second_number) { + const string& first_number_national_number = + SimpleItoa(first_number.national_number()); + const string& second_number_national_number = + SimpleItoa(second_number.national_number()); + // Note that HasSuffixString returns true if the numbers are equal. + return HasSuffixString(first_number_national_number, + second_number_national_number) || + HasSuffixString(second_number_national_number, + first_number_national_number); +} + +bool IsNumberMatchingDesc(const string& national_number, + const PhoneNumberDesc& number_desc) { + scoped_ptr + possible_pattern(reg_exp::CreateRegularExpression( + number_desc.possible_number_pattern().c_str())); + scoped_ptr + national_pattern(reg_exp::CreateRegularExpression( + number_desc.national_number_pattern().c_str())); + return (possible_pattern->Match(national_number.c_str(), true, NULL) && + national_pattern->Match(national_number.c_str(), true, NULL)); +} + +PhoneNumberUtil::PhoneNumberType GetNumberTypeHelper( + const string& national_number, const PhoneMetadata& metadata) { + const PhoneNumberDesc& general_desc = metadata.general_desc(); + if (!general_desc.has_national_number_pattern() || + !IsNumberMatchingDesc(national_number, general_desc)) { + logger->Debug("Number type unknown - " + "doesn't match general national number pattern."); + return PhoneNumberUtil::UNKNOWN; + } + if (IsNumberMatchingDesc(national_number, metadata.premium_rate())) { + logger->Debug("Number is a premium number."); + return PhoneNumberUtil::PREMIUM_RATE; + } + if (IsNumberMatchingDesc(national_number, metadata.toll_free())) { + logger->Debug("Number is a toll-free number."); + return PhoneNumberUtil::TOLL_FREE; + } + if (IsNumberMatchingDesc(national_number, metadata.shared_cost())) { + logger->Debug("Number is a shared cost number."); + return PhoneNumberUtil::SHARED_COST; + } + if (IsNumberMatchingDesc(national_number, metadata.voip())) { + logger->Debug("Number is a VOIP (Voice over IP) number."); + return PhoneNumberUtil::VOIP; + } + if (IsNumberMatchingDesc(national_number, metadata.personal_number())) { + logger->Debug("Number is a personal number."); + return PhoneNumberUtil::PERSONAL_NUMBER; + } + if (IsNumberMatchingDesc(national_number, metadata.pager())) { + logger->Debug("Number is a pager number."); + return PhoneNumberUtil::PAGER; + } + if (IsNumberMatchingDesc(national_number, metadata.uan())) { + logger->Debug("Number is a UAN."); + return PhoneNumberUtil::UAN; + } + + bool is_fixed_line = + IsNumberMatchingDesc(national_number, metadata.fixed_line()); + if (is_fixed_line) { + if (metadata.same_mobile_and_fixed_line_pattern()) { + logger->Debug("Fixed-line and mobile patterns equal, " + "number is fixed-line or mobile"); + return PhoneNumberUtil::FIXED_LINE_OR_MOBILE; + } else if (IsNumberMatchingDesc(national_number, metadata.mobile())) { + logger->Debug("Fixed-line and mobile patterns differ, but number is " + "still fixed-line or mobile"); + return PhoneNumberUtil::FIXED_LINE_OR_MOBILE; + } + logger->Debug("Number is a fixed line number."); + return PhoneNumberUtil::FIXED_LINE; + } + // Otherwise, test to see if the number is mobile. Only do this if certain + // that the patterns for mobile and fixed line aren't the same. + if (!metadata.same_mobile_and_fixed_line_pattern() && + IsNumberMatchingDesc(national_number, metadata.mobile())) { + logger->Debug("Number is a mobile number."); + return PhoneNumberUtil::MOBILE; + } + logger->Debug("Number type unknown - doesn't match any specific number type" + " pattern."); + return PhoneNumberUtil::UNKNOWN; +} + +int DecodeUTF8Char(const char* in, char32* out) { + Rune r; + int len = chartorune(&r, in); + *out = r; + + return len; +} + +char32 ToUnicodeCodepoint(const char* unicode_char) { + char32 codepoint; + DecodeUTF8Char(unicode_char, &codepoint); + + return codepoint; +} + +// Initialisation helper function used to populate the regular expressions in a +// defined order. +void CreateRegularExpressions() { + unique_international_prefix.reset( + reg_exp::CreateRegularExpression("[\\d]+(?:[~⁓∼~][\\d]+)?")); + first_group_capturing_pattern.reset( + reg_exp::CreateRegularExpression("(\\$1)")); + carrier_code_pattern.reset( + reg_exp::CreateRegularExpression("\\$CC")); + capturing_digit_pattern.reset( + reg_exp::CreateRegularExpression( + StrCat("([", kValidDigits, "])").c_str())); + capturing_ascii_digits_pattern.reset( + reg_exp::CreateRegularExpression("(\\d+)")); + valid_start_char.reset(new string(StrCat( + "[", kPlusChars, kValidDigits, "]"))); + valid_start_char_pattern.reset( + reg_exp::CreateRegularExpression(valid_start_char->c_str())); + capture_up_to_second_number_start_pattern.reset( + reg_exp::CreateRegularExpression(kCaptureUpToSecondNumberStart)); + unwanted_end_char_pattern.reset( + reg_exp::CreateRegularExpression(kUnwantedEndChar)); + valid_phone_number.reset(new string( + StrCat("[", kPlusChars, "]*(?:[", kValidPunctuation, "]*[", kValidDigits, + "]){3,}[", kValidAlpha, kValidPunctuation, kValidDigits, "]*"))); + // Canonical-equivalence doesn't seem to be an option with RE2, so we allow + // two options for representing the ó - the character itself, and one in the + // unicode decomposed form with the combining acute accent. Note that there + // are currently three capturing groups for the extension itself - if this + // number is changed, MaybeStripExtension needs to be updated. + const string capturing_extn_digits = StrCat("([", kValidDigits, "]{1,7})"); + known_extn_patterns.reset(new string( + StrCat(kRfc3966ExtnPrefix, capturing_extn_digits, "|" + "[  \\t,]*(?:ext(?:ensi(?:ó?|ó))?n?|extn?|[,xx##~~]|" + "int|int|anexo)" + "[:\\..]?[  \\t,-]*", capturing_extn_digits, "#?|" + "[- ]+([", kValidDigits, "]{1,5})#"))); + extn_pattern.reset(reg_exp::CreateRegularExpression( + StrCat("(?i)(?:", *known_extn_patterns, ")$").c_str())); + valid_phone_number_pattern.reset(reg_exp::CreateRegularExpression( + StrCat("(?i)", *valid_phone_number, "(?:", *known_extn_patterns, + ")?").c_str())); + valid_alpha_phone_pattern.reset(reg_exp::CreateRegularExpression( + StrCat("(?i)(?:.*?[", kValidAlpha, "]){3}").c_str())); + plus_chars_pattern.reset(reg_exp::CreateRegularExpression( + StrCat("[", kPlusChars, "]+").c_str())); +} + +void InitializeStaticMapsAndSets() { + // Create global objects. + all_plus_number_grouping_symbols.reset(new map); + alpha_mappings.reset(new map); + all_normalization_mappings.reset(new map); + + // Punctuation that we wish to respect in alpha numbers, as they show number + // groupings are mapped here. + all_plus_number_grouping_symbols->insert( + make_pair(ToUnicodeCodepoint("-"), '-')); + all_plus_number_grouping_symbols->insert( + make_pair(ToUnicodeCodepoint("-"), '-')); + all_plus_number_grouping_symbols->insert( + make_pair(ToUnicodeCodepoint("‐"), '-')); + all_plus_number_grouping_symbols->insert( + make_pair(ToUnicodeCodepoint("‑"), '-')); + all_plus_number_grouping_symbols->insert( + make_pair(ToUnicodeCodepoint("‒"), '-')); + all_plus_number_grouping_symbols->insert( + make_pair(ToUnicodeCodepoint("–"), '-')); + all_plus_number_grouping_symbols->insert( + make_pair(ToUnicodeCodepoint("—"), '-')); + all_plus_number_grouping_symbols->insert( + make_pair(ToUnicodeCodepoint("―"), '-')); + all_plus_number_grouping_symbols->insert( + make_pair(ToUnicodeCodepoint("−"), '-')); + all_plus_number_grouping_symbols->insert( + make_pair(ToUnicodeCodepoint("/"), '/')); + all_plus_number_grouping_symbols->insert( + make_pair(ToUnicodeCodepoint("/"), '/')); + all_plus_number_grouping_symbols->insert( + make_pair(ToUnicodeCodepoint(" "), ' ')); + all_plus_number_grouping_symbols->insert( + make_pair(ToUnicodeCodepoint(" "), ' ')); + all_plus_number_grouping_symbols->insert( + make_pair(ToUnicodeCodepoint("⁠"), ' ')); + all_plus_number_grouping_symbols->insert( + make_pair(ToUnicodeCodepoint("."), '.')); + all_plus_number_grouping_symbols->insert( + make_pair(ToUnicodeCodepoint("."), '.')); + // Only the upper-case letters are added here - the lower-case versions are + // added programmatically. + alpha_mappings->insert(make_pair(ToUnicodeCodepoint("A"), '2')); + alpha_mappings->insert(make_pair(ToUnicodeCodepoint("B"), '2')); + alpha_mappings->insert(make_pair(ToUnicodeCodepoint("C"), '2')); + alpha_mappings->insert(make_pair(ToUnicodeCodepoint("D"), '3')); + alpha_mappings->insert(make_pair(ToUnicodeCodepoint("E"), '3')); + alpha_mappings->insert(make_pair(ToUnicodeCodepoint("F"), '3')); + alpha_mappings->insert(make_pair(ToUnicodeCodepoint("G"), '4')); + alpha_mappings->insert(make_pair(ToUnicodeCodepoint("H"), '4')); + alpha_mappings->insert(make_pair(ToUnicodeCodepoint("I"), '4')); + alpha_mappings->insert(make_pair(ToUnicodeCodepoint("J"), '5')); + alpha_mappings->insert(make_pair(ToUnicodeCodepoint("K"), '5')); + alpha_mappings->insert(make_pair(ToUnicodeCodepoint("L"), '5')); + alpha_mappings->insert(make_pair(ToUnicodeCodepoint("M"), '6')); + alpha_mappings->insert(make_pair(ToUnicodeCodepoint("N"), '6')); + alpha_mappings->insert(make_pair(ToUnicodeCodepoint("O"), '6')); + alpha_mappings->insert(make_pair(ToUnicodeCodepoint("P"), '7')); + alpha_mappings->insert(make_pair(ToUnicodeCodepoint("Q"), '7')); + alpha_mappings->insert(make_pair(ToUnicodeCodepoint("R"), '7')); + alpha_mappings->insert(make_pair(ToUnicodeCodepoint("S"), '7')); + alpha_mappings->insert(make_pair(ToUnicodeCodepoint("T"), '8')); + alpha_mappings->insert(make_pair(ToUnicodeCodepoint("U"), '8')); + alpha_mappings->insert(make_pair(ToUnicodeCodepoint("V"), '8')); + alpha_mappings->insert(make_pair(ToUnicodeCodepoint("W"), '9')); + alpha_mappings->insert(make_pair(ToUnicodeCodepoint("X"), '9')); + alpha_mappings->insert(make_pair(ToUnicodeCodepoint("Y"), '9')); + alpha_mappings->insert(make_pair(ToUnicodeCodepoint("Z"), '9')); + map lower_case_mappings; + map alpha_letters; + for (map::const_iterator it = alpha_mappings->begin(); + it != alpha_mappings->end(); + ++it) { + // Convert all the upper-case ASCII letters to lower-case. + if (it->first < 128) { + char letter_as_upper = static_cast(it->first); + char32 letter_as_lower = static_cast(tolower(letter_as_upper)); + lower_case_mappings.insert(make_pair(letter_as_lower, it->second)); + // Add the letters in both variants to the alpha_letters map. This just + // pairs each letter with its upper-case representation so that it can be + // retained when normalising alpha numbers. + alpha_letters.insert(make_pair(letter_as_lower, letter_as_upper)); + alpha_letters.insert(make_pair(it->first, letter_as_upper)); + } + } + // In the Java version we don't insert the lower-case mappings in the map, + // because we convert to upper case on the fly. Doing this here would involve + // pulling in all of ICU, which we don't want to do if we don't have to. + alpha_mappings->insert(lower_case_mappings.begin(), + lower_case_mappings.end()); + all_normalization_mappings->insert(alpha_mappings->begin(), + alpha_mappings->end()); + all_plus_number_grouping_symbols->insert(alpha_letters.begin(), + alpha_letters.end()); + // Add the ASCII digits so that they don't get deleted by NormalizeHelper(). + for (char c = '0'; c <= '9'; ++c) { + all_normalization_mappings->insert(make_pair(c, c)); + all_plus_number_grouping_symbols->insert(make_pair(c, c)); + } + CreateRegularExpressions(); +} + +// Normalizes a string of characters representing a phone number by replacing +// all characters found in the accompanying map with the values therein, and +// stripping all other characters if remove_non_matches is true. +// Parameters: +// number - a pointer to a string of characters representing a phone number to +// be normalized. +// normalization_replacements - a mapping of characters to what they should be +// replaced by in the normalized version of the phone number +// remove_non_matches - indicates whether characters that are not able to be +// replaced should be stripped from the number. If this is false, they will be +// left unchanged in the number. +void NormalizeHelper(const map& normalization_replacements, + bool remove_non_matches, + string* number) { + DCHECK(number); + UnicodeText number_as_unicode; + number_as_unicode.PointToUTF8(number->data(), number->size()); + string normalized_number; + for (UnicodeText::const_iterator it = number_as_unicode.begin(); + it != number_as_unicode.end(); + ++it) { + map::const_iterator found_glyph_pair = + normalization_replacements.find(*it); + if (found_glyph_pair != normalization_replacements.end()) { + normalized_number.push_back(found_glyph_pair->second); + } else if (!remove_non_matches) { + normalized_number.append(it.utf8_data()); + } + // If neither of the above are true, we remove this character. + } + number->assign(normalized_number); +} + +// Strips the IDD from the start of the number if present. Helper function used +// by MaybeStripInternationalPrefixAndNormalize. +bool ParsePrefixAsIdd(const reg_exp::RegularExpression* idd_pattern, + string* number) { + DCHECK(number); + scoped_ptr number_copy( + reg_exp::CreateRegularExpressionInput(number->c_str())); + // First attempt to strip the idd_pattern at the start, if present. We make a + // copy so that we can revert to the original string if necessary. + if (idd_pattern->Consume(number_copy.get(), true, NULL, NULL)) { + // Only strip this if the first digit after the match is not a 0, since + // country calling codes cannot begin with 0. + string extracted_digit; + if (capturing_digit_pattern->Match(number_copy->ToString().c_str(), false, + &extracted_digit)) { + PhoneNumberUtil::NormalizeDigitsOnly(&extracted_digit); + if (extracted_digit == "0") { + return false; + } + } + number->assign(number_copy->ToString()); + return true; + } + return false; +} + +PhoneNumberUtil::ValidationResult TestNumberLengthAgainstPattern( + const reg_exp::RegularExpression* number_pattern, const string& number) { + string extracted_number; + if (number_pattern->Match(number.c_str(), true, &extracted_number)) { + return PhoneNumberUtil::IS_POSSIBLE; + } + if (number_pattern->Match(number.c_str(), false, &extracted_number)) { + return PhoneNumberUtil::TOO_LONG; + } else { + return PhoneNumberUtil::TOO_SHORT; + } +} + +} // namespace + +// Fetch the metadata which are actually already available in the address space +// (embedded). +class DefaultMetadataProvider : public PhoneNumberUtil::MetadataProvider { + public: + virtual ~DefaultMetadataProvider() {} + + virtual pair operator()() { + return make_pair(metadata_get(), metadata_size()); + } +}; + +bool PhoneNumberUtil::LoadMetadata(PhoneMetadataCollection* metadata, + MetadataProvider& provider) { + + pair p = provider(); + const void* metadata_start = p.first; + unsigned size = p.second; + + if (!metadata->ParseFromArray(metadata_start, size)) { + cerr << "Could not parse binary data." << endl; + return false; + } + return true; +} + +void PhoneNumberUtil::SetLoggerAdapter(LoggerAdapter* logger_adapter) { + logger.reset(logger_adapter); +} + +// Private constructor. Also takes care of initialisation. +PhoneNumberUtil::PhoneNumberUtil(MetadataProvider* provider) + : country_calling_code_to_region_code_map_(new vector()), + nanpa_regions_(new set()), + region_to_metadata_map_(new map()) { + + if (logger == NULL) { + SetLoggerAdapter(new DefaultLogger()); + } + PhoneMetadataCollection metadata_collection; + DefaultMetadataProvider default_provider; + + if (!LoadMetadata(&metadata_collection, provider ? *provider + : default_provider)) { + logger->Fatal("Could not load metadata"); + return; + } + // Storing data in a temporary map to make it easier to find other regions + // that share a country calling code when inserting data. + map* > country_calling_code_to_region_map; + for (RepeatedPtrField::const_iterator it = + metadata_collection.metadata().begin(); + it != metadata_collection.metadata().end(); + ++it) { + const PhoneMetadata& phone_metadata = *it; + const string& region_code = phone_metadata.id(); + region_to_metadata_map_->insert(make_pair(region_code, *it)); + int country_calling_code = it->country_code(); + map*>::iterator calling_code_in_map = + country_calling_code_to_region_map.find(country_calling_code); + if (calling_code_in_map != country_calling_code_to_region_map.end()) { + if (it->main_country_for_code()) { + calling_code_in_map->second->push_front(region_code); + } else { + calling_code_in_map->second->push_back(region_code); + } + } else { + // For most country calling codes, there will be only one region code. + list* list_with_region_code = new list(); + list_with_region_code->push_back(region_code); + country_calling_code_to_region_map.insert( + make_pair(country_calling_code, list_with_region_code)); + } + if (country_calling_code == kNanpaCountryCode) { + nanpa_regions_->insert(region_code); + } + } + + country_calling_code_to_region_code_map_->insert( + country_calling_code_to_region_code_map_->begin(), + country_calling_code_to_region_map.begin(), + country_calling_code_to_region_map.end()); + // Sort all the pairs in ascending order according to country calling code. + sort(country_calling_code_to_region_code_map_->begin(), + country_calling_code_to_region_code_map_->end(), + CompareFirst()); + + InitializeStaticMapsAndSets(); +} + +PhoneNumberUtil::~PhoneNumberUtil() { + for (vector::const_iterator it = + country_calling_code_to_region_code_map_->begin(); + it != country_calling_code_to_region_code_map_->end(); + ++it) { + delete it->second; + } +} + +// Public wrapper function to get a PhoneNumberUtil instance with the default +// metadata file. +// static +PhoneNumberUtil* PhoneNumberUtil::GetInstance() { + return Singleton::get(); +} + +void PhoneNumberUtil::GetSupportedRegions(set* regions) const { + DCHECK(regions); + for (map::const_iterator it = + region_to_metadata_map_->begin(); it != region_to_metadata_map_->end(); + ++it) { + regions->insert(it->first); + } +} + +void PhoneNumberUtil::GetNddPrefixForRegion(const string& region_code, + bool strip_non_digits, + string* national_prefix) const { + DCHECK(national_prefix); + if (!IsValidRegionCode(region_code)) { + logger->Error("Invalid region code provided."); + return; + } + const PhoneMetadata* metadata = GetMetadataForRegion(region_code); + national_prefix->assign(metadata->national_prefix()); + if (strip_non_digits) { + // Note: if any other non-numeric symbols are ever used in national + // prefixes, these would have to be removed here as well. + strrmm(national_prefix, "~"); + } +} + +bool PhoneNumberUtil::IsValidRegionCode(const string& region_code) const { + return (region_to_metadata_map_->find(region_code) != + region_to_metadata_map_->end()); +} + +bool PhoneNumberUtil::HasValidRegionCode(const string& region_code, + int country_code, + const string& number) const { + if (!IsValidRegionCode(region_code)) { + logger->Info(string("Number ") + number + + " has invalid or missing country code (" + country_code + ")"); + return false; + } + return true; +} + +// Returns a pointer to the phone metadata for the appropriate region. +const PhoneMetadata* PhoneNumberUtil::GetMetadataForRegion( + const string& region_code) const { + map::const_iterator it = + region_to_metadata_map_->find(region_code); + if (it != region_to_metadata_map_->end()) { + return &it->second; + } + return NULL; +} + +void PhoneNumberUtil::Format(const PhoneNumber& number, + PhoneNumberFormat number_format, + string* formatted_number) const { + DCHECK(formatted_number); + int country_calling_code = number.country_code(); + string national_significant_number; + GetNationalSignificantNumber(number, &national_significant_number); + if (number_format == E164) { + // Early exit for E164 case since no formatting of the national number needs + // to be applied. Extensions are not formatted. + FormatNumberByFormat(country_calling_code, E164, + national_significant_number, "", formatted_number); + return; + } + // Note here that all NANPA formatting rules are contained by US, so we use + // that to format NANPA numbers. The same applies to Russian Fed regions - + // rules are contained by Russia. French Indian Ocean country rules are + // contained by Réunion. + string region_code; + GetRegionCodeForCountryCode(country_calling_code, ®ion_code); + if (!HasValidRegionCode(region_code, country_calling_code, + national_significant_number)) { + formatted_number->assign(national_significant_number); + return; + } + string formatted_extension; + MaybeGetFormattedExtension(number, region_code, number_format, + &formatted_extension); + string formatted_national_number; + FormatNationalNumber(national_significant_number, region_code, number_format, + &formatted_national_number); + FormatNumberByFormat(country_calling_code, number_format, + formatted_national_number, + formatted_extension, formatted_number); +} + +void PhoneNumberUtil::FormatByPattern( + const PhoneNumber& number, + PhoneNumberFormat number_format, + const RepeatedPtrField& user_defined_formats, + string* formatted_number) const { + static scoped_ptr + national_prefix_pattern(reg_exp::CreateRegularExpression("\\$NP")); + static scoped_ptr + first_group_pattern(reg_exp::CreateRegularExpression("\\$FG")); + DCHECK(formatted_number); + int country_calling_code = number.country_code(); + // Note GetRegionCodeForCountryCode() is used because formatting information + // for regions which share a country calling code is contained by only one + // region for performance reasons. For example, for NANPA regions it will be + // contained in the metadata for US. + string region_code; + GetRegionCodeForCountryCode(country_calling_code, ®ion_code); + string national_significant_number; + GetNationalSignificantNumber(number, &national_significant_number); + if (!HasValidRegionCode(region_code, country_calling_code, + national_significant_number)) { + formatted_number->assign(national_significant_number); + return; + } + RepeatedPtrField user_defined_formats_copy; + for (RepeatedPtrField::const_iterator it = + user_defined_formats.begin(); + it != user_defined_formats.end(); + ++it) { + string national_prefix_formatting_rule( + it->national_prefix_formatting_rule()); + if (!national_prefix_formatting_rule.empty()) { + const string& national_prefix = + GetMetadataForRegion(region_code)->national_prefix(); + NumberFormat* num_format_copy = user_defined_formats_copy.Add(); + num_format_copy->MergeFrom(*it); + if (!national_prefix.empty()) { + // Replace $NP with national prefix and $FG with the first group ($1). + national_prefix_pattern->Replace(&national_prefix_formatting_rule, + false, + national_prefix.c_str()); + first_group_pattern->Replace(&national_prefix_formatting_rule, + false, + "$1"); + num_format_copy->set_national_prefix_formatting_rule( + national_prefix_formatting_rule); + } else { + // We don't want to have a rule for how to format the national prefix if + // there isn't one. + num_format_copy->clear_national_prefix_formatting_rule(); + } + } else { + user_defined_formats_copy.Add()->MergeFrom(*it); + } + } + + string formatted_number_without_extension; + FormatAccordingToFormats(national_significant_number, + user_defined_formats_copy, + number_format, national_significant_number, + &formatted_number_without_extension); + string formatted_extension; + MaybeGetFormattedExtension(number, region_code, NATIONAL, + &formatted_extension); + FormatNumberByFormat(country_calling_code, number_format, + formatted_number_without_extension, formatted_extension, + formatted_number); +} + +void PhoneNumberUtil::FormatNationalNumberWithCarrierCode( + const PhoneNumber& number, + const string& carrier_code, + string* formatted_number) const { + int country_calling_code = number.country_code(); + string national_significant_number; + GetNationalSignificantNumber(number, &national_significant_number); + // Note GetRegionCodeForCountryCode() is used because formatting information + // for regions which share a country calling code is contained by only one + // region for performance reasons. For example, for NANPA regions it will be + // contained in the metadata for US. + string region_code; + GetRegionCodeForCountryCode(country_calling_code, ®ion_code); + if (!HasValidRegionCode(region_code, country_calling_code, + national_significant_number)) { + formatted_number->assign(national_significant_number); + } + string formatted_extension; + MaybeGetFormattedExtension(number, region_code, NATIONAL, + &formatted_extension); + string formatted_national_number; + FormatNationalNumberWithCarrier(national_significant_number, region_code, + NATIONAL, carrier_code, + &formatted_national_number); + FormatNumberByFormat(country_calling_code, NATIONAL, + formatted_national_number, formatted_extension, + formatted_number); +} + +void PhoneNumberUtil::FormatNationalNumberWithPreferredCarrierCode( + const PhoneNumber& number, + const string& fallback_carrier_code, + string* formatted_number) const { + FormatNationalNumberWithCarrierCode( + number, + number.has_preferred_domestic_carrier_code() + ? number.preferred_domestic_carrier_code() + : fallback_carrier_code, + formatted_number); +} + +void PhoneNumberUtil::FormatOutOfCountryCallingNumber( + const PhoneNumber& number, + const string& calling_from, + string* formatted_number) const { + DCHECK(formatted_number); + if (!IsValidRegionCode(calling_from)) { + logger->Info("Trying to format number from invalid region. International" + " formatting applied."); + Format(number, INTERNATIONAL, formatted_number); + return; + } + int country_code = number.country_code(); + string region_code; + GetRegionCodeForCountryCode(country_code, ®ion_code); + string national_significant_number; + GetNationalSignificantNumber(number, &national_significant_number); + if (!HasValidRegionCode(region_code, country_code, + national_significant_number)) { + formatted_number->assign(national_significant_number); + return; + } + if (country_code == kNanpaCountryCode) { + if (IsNANPACountry(calling_from)) { + // For NANPA regions, return the national format for these regions but + // prefix it with the country calling code. + string national_number; + Format(number, NATIONAL, &national_number); + formatted_number->assign(StrCat(country_code, " ", national_number)); + return; + } + } else if (country_code == GetCountryCodeForRegion(calling_from)) { + // If neither region is a NANPA region, then we check to see if the + // country calling code of the number and the country calling code of the + // region we are calling from are the same. + // For regions that share a country calling code, the country calling code + // need not be dialled. This also applies when dialling within a region, so + // this if clause covers both these cases. + // Technically this is the case for dialling from la Réunion to other + // overseas departments of France (French Guiana, Martinique, Guadeloupe), + // but not vice versa - so we don't cover this edge case for now and for + // those cases return the version including country calling code. + // Details here: + // http://www.petitfute.com/voyage/225-info-pratiques-reunion + Format(number, NATIONAL, formatted_number); + return; + } + string formatted_national_number; + FormatNationalNumber(national_significant_number, region_code, INTERNATIONAL, + &formatted_national_number); + const PhoneMetadata* metadata = GetMetadataForRegion(calling_from); + const string& international_prefix = metadata->international_prefix(); + string formatted_extension; + MaybeGetFormattedExtension(number, region_code, INTERNATIONAL, + &formatted_extension); + // For regions that have multiple international prefixes, the international + // format of the number is returned, unless there is a preferred international + // prefix. + string international_prefix_for_formatting( + unique_international_prefix->Match(international_prefix.c_str(), + true, NULL) + ? international_prefix + : metadata->preferred_international_prefix()); + if (!international_prefix_for_formatting.empty()) { + formatted_number->assign( + StrCat(international_prefix_for_formatting, " ", country_code, " ", + formatted_national_number, formatted_extension)); + } else { + FormatNumberByFormat(country_code, INTERNATIONAL, formatted_national_number, + formatted_extension, formatted_number); + } +} + +void PhoneNumberUtil::FormatInOriginalFormat(const PhoneNumber& number, + const string& region_calling_from, + string* formatted_number) const { + DCHECK(formatted_number); + + if (!number.has_country_code_source()) { + Format(number, NATIONAL, formatted_number); + return; + } + switch (number.country_code_source()) { + case PhoneNumber::FROM_NUMBER_WITH_PLUS_SIGN: + Format(number, INTERNATIONAL, formatted_number); + return; + case PhoneNumber::FROM_NUMBER_WITH_IDD: + FormatOutOfCountryCallingNumber(number, region_calling_from, + formatted_number); + return; + case PhoneNumber::FROM_NUMBER_WITHOUT_PLUS_SIGN: + Format(number, INTERNATIONAL, formatted_number); + formatted_number->erase(formatted_number->begin()); + return; + case PhoneNumber::FROM_DEFAULT_COUNTRY: + default: + Format(number, NATIONAL, formatted_number); + } +} + +void PhoneNumberUtil::FormatOutOfCountryKeepingAlphaChars( + const PhoneNumber& number, + const string& calling_from, + string* formatted_number) const { + // If there is no raw input, then we can't keep alpha characters because there + // aren't any. In this case, we return FormatOutOfCountryCallingNumber. + if (number.raw_input().empty()) { + FormatOutOfCountryCallingNumber(number, calling_from, formatted_number); + return; + } + string region_code; + GetRegionCodeForCountryCode(number.country_code(), ®ion_code); + if (!HasValidRegionCode(region_code, number.country_code(), + number.raw_input())) { + formatted_number->assign(number.raw_input()); + return; + } + // Strip any prefix such as country calling code, IDD, that was present. We do + // this by comparing the number in raw_input with the parsed number. + string raw_input_copy(number.raw_input()); + // Normalize punctuation. We retain number grouping symbols such as " " only. + NormalizeHelper(*all_plus_number_grouping_symbols, true, &raw_input_copy); + // Now we trim everything before the first three digits in the parsed number. + // We choose three because all valid alpha numbers have 3 digits at the start + // - if it does not, then we don't trim anything at all. Similarly, if the + // national number was less than three digits, we don't trim anything at all. + string national_number; + GetNationalSignificantNumber(number, &national_number); + if (national_number.length() > 3) { + size_t first_national_number_digit = + raw_input_copy.find(national_number.substr(0, 3)); + if (first_national_number_digit != string::npos) { + raw_input_copy = raw_input_copy.substr(first_national_number_digit); + } + } + const PhoneMetadata* metadata = GetMetadataForRegion(calling_from); + if (number.country_code() == kNanpaCountryCode) { + if (IsNANPACountry(calling_from)) { + formatted_number->assign(StrCat(number.country_code(), " ", + raw_input_copy)); + return; + } + } else if (number.country_code() == GetCountryCodeForRegion(calling_from)) { + // Here we copy the formatting rules so we can modify the pattern we expect + // to match against. + RepeatedPtrField available_formats = metadata->number_format(); + for (RepeatedPtrField::iterator + it = available_formats.begin(); it != available_formats.end(); ++it) { + // The first group is the first group of digits that the user determined. + it->set_pattern("(\\d+)(.*)"); + // Here we just concatenate them back together after the national prefix + // has been fixed. + it->set_format("$1$2"); + } + // Now we format using these patterns instead of the default pattern, but + // with the national prefix prefixed if necessary, by choosing the format + // rule based on the leading digits present in the unformatted national + // number. + // This will not work in the cases where the pattern (and not the + // leading digits) decide whether a national prefix needs to be used, since + // we have overridden the pattern to match anything, but that is not the + // case in the metadata to date. + FormatAccordingToFormats(national_number, available_formats, + NATIONAL, raw_input_copy, formatted_number); + return; + } + + const string& international_prefix = metadata->international_prefix(); + // For regions that have multiple international prefixes, the international + // format of the number is returned, unless there is a preferred international + // prefix. + string international_prefix_for_formatting( + unique_international_prefix->Match(international_prefix.c_str(), + true, NULL) + ? international_prefix + : metadata->preferred_international_prefix()); + if (!international_prefix_for_formatting.empty()) { + formatted_number->assign( + StrCat(international_prefix_for_formatting, " ", number.country_code(), + " ", raw_input_copy)); + } else { + FormatNumberByFormat(number.country_code(), INTERNATIONAL, raw_input_copy, + "", formatted_number); + } +} + +void PhoneNumberUtil::FormatNationalNumber( + const string& number, + const string& region_code, + PhoneNumberFormat number_format, + string* formatted_number) const { + DCHECK(formatted_number); + FormatNationalNumberWithCarrier(number, region_code, number_format, "", + formatted_number); +} + +// Note in some regions, the national number can be written in two completely +// different ways depending on whether it forms part of the NATIONAL format or +// INTERNATIONAL format. The number_format parameter here is used to specify +// which format to use for those cases. If a carrier_code is specified, this +// will be inserted into the formatted string to replace $CC. +void PhoneNumberUtil::FormatNationalNumberWithCarrier( + const string& number, + const string& region_code, + PhoneNumberFormat number_format, + const string& carrier_code, + string* formatted_number) const { + DCHECK(formatted_number); + const PhoneMetadata* metadata = GetMetadataForRegion(region_code); + // When the intl_number_formats exists, we use that to format national number + // for the INTERNATIONAL format instead of using the number_formats. + const RepeatedPtrField available_formats = + (metadata->intl_number_format_size() == 0 || number_format == NATIONAL) + ? metadata->number_format() + : metadata->intl_number_format(); + FormatAccordingToFormatsWithCarrier(number, available_formats, number_format, + number, carrier_code, formatted_number); + if (number_format == RFC3966) { + // Replace all separators with a "-". + scoped_ptr separator_pattern( + reg_exp::CreateRegularExpression( + StrCat("[", kValidPunctuation, "]+").c_str())); + separator_pattern->Replace(formatted_number, true, "-"); + } +} + +// Gets the formatted extension of a phone number, if the phone number had an +// extension specified. If not, it returns an empty string. +void PhoneNumberUtil::MaybeGetFormattedExtension( + const PhoneNumber& number, + const string& region_code, + PhoneNumberFormat number_format, + string* extension) const { + DCHECK(extension); + if (!number.has_extension() || number.extension().length() == 0) { + extension->assign(""); + } else { + if (number_format == RFC3966) { + StrAppend(extension, kRfc3966ExtnPrefix, number.extension()); + return; + } + FormatExtension(number.extension(), region_code, extension); + } +} + +// Formats the extension part of the phone number by prefixing it with the +// appropriate extension prefix. This will be the default extension prefix, +// unless overridden by a preferred extension prefix for this region. +void PhoneNumberUtil::FormatExtension(const string& extension_digits, + const string& region_code, + string* extension) const { + DCHECK(extension); + const PhoneMetadata* metadata = GetMetadataForRegion(region_code); + if (metadata->has_preferred_extn_prefix()) { + extension->assign(StrCat(metadata->preferred_extn_prefix(), + extension_digits)); + } else { + extension->assign(StrCat(kDefaultExtnPrefix, extension_digits)); + } +} + +bool PhoneNumberUtil::IsNANPACountry(const string& region_code) const { + return nanpa_regions_->find(region_code) != nanpa_regions_->end(); +} + +// Returns the region codes that matches the specific country calling code. In +// the case of no region code being found, region_codes will be left empty. +void PhoneNumberUtil::GetRegionCodesForCountryCallingCode( + int country_calling_code, + list* region_codes) const { + DCHECK(region_codes); + // Create a IntRegionsPair with the country_code passed in, and use it to + // locate the pair with the same country_code in the sorted vector. + IntRegionsPair target_pair; + target_pair.first = country_calling_code; + typedef vector::const_iterator ConstIterator; + pair range = equal_range( + country_calling_code_to_region_code_map_->begin(), + country_calling_code_to_region_code_map_->end(), + target_pair, CompareFirst()); + if (range.first != range.second) { + region_codes->insert(region_codes->begin(), + range.first->second->begin(), + range.first->second->end()); + } +} + +// Returns the region code that matches the specific country calling code. In +// the case of no region code being found, ZZ will be returned. +void PhoneNumberUtil::GetRegionCodeForCountryCode( + int country_calling_code, + string* region_code) const { + DCHECK(region_code); + list region_codes; + + GetRegionCodesForCountryCallingCode(country_calling_code, ®ion_codes); + *region_code = region_codes.size() != 0 ? region_codes.front() : "ZZ"; +} + +void PhoneNumberUtil::GetRegionCodeForNumber(const PhoneNumber& number, + string* region_code) const { + DCHECK(region_code); + int country_calling_code = number.country_code(); + list region_codes; + GetRegionCodesForCountryCallingCode(country_calling_code, ®ion_codes); + if (region_codes.size() == 0) { + string number_string; + GetNationalSignificantNumber(number, &number_string); + logger->Warning(string("Missing/invalid country code (") + + SimpleItoa(country_calling_code) + ") for number " + number_string); + *region_code = "ZZ"; + return; + } + if (region_codes.size() == 1) { + *region_code = region_codes.front(); + } else { + GetRegionCodeForNumberFromRegionList(number, region_codes, region_code); + } +} + +void PhoneNumberUtil::GetRegionCodeForNumberFromRegionList( + const PhoneNumber& number, const list& region_codes, + string* region_code) const { + DCHECK(region_code); + string national_number; + GetNationalSignificantNumber(number, &national_number); + for (list::const_iterator it = region_codes.begin(); + it != region_codes.end(); ++it) { + const PhoneMetadata* metadata = GetMetadataForRegion(*it); + if (metadata->has_leading_digits()) { + scoped_ptr number( + reg_exp::CreateRegularExpressionInput(national_number.c_str())); + if (number->ConsumeRegExp(metadata->leading_digits(), true, NULL, NULL)) { + *region_code = *it; + return; + } + } else if (GetNumberTypeHelper(national_number, *metadata) != UNKNOWN) { + *region_code = *it; + return; + } + } + *region_code = "ZZ"; +} + +int PhoneNumberUtil::GetCountryCodeForRegion(const string& region_code) const { + if (!IsValidRegionCode(region_code)) { + logger->Info("Invalid or unknown country code provided."); + return 0; + } + const PhoneMetadata* metadata = GetMetadataForRegion(region_code); + if (!metadata) { + logger->Error("Unsupported country code provided."); + return 0; + } + return metadata->country_code(); +} + +// Gets a valid fixed-line number for the specified region_code. Returns false +// if the country was unknown or if no number exists. +bool PhoneNumberUtil::GetExampleNumber(const string& region_code, + PhoneNumber* number) const { + DCHECK(number); + return GetExampleNumberForType(region_code, + FIXED_LINE, + number); +} + +// Gets a valid number for the specified region_code and type. Returns false if +// the country was unknown or if no number exists. +bool PhoneNumberUtil::GetExampleNumberForType( + const string& region_code, + PhoneNumberUtil::PhoneNumberType type, + PhoneNumber* number) const { + DCHECK(number); + const PhoneMetadata* region_metadata = GetMetadataForRegion(region_code); + const PhoneNumberDesc* description = + GetNumberDescByType(*region_metadata, type); + if (description && description->has_example_number()) { + return (Parse(description->example_number(), + region_code, + number) == NO_PARSING_ERROR); + } + return false; +} + +PhoneNumberUtil::ErrorType PhoneNumberUtil::Parse(const string& number_to_parse, + const string& default_region, + PhoneNumber* number) const { + DCHECK(number); + return ParseHelper(number_to_parse, default_region, false, true, number); +} + +PhoneNumberUtil::ErrorType PhoneNumberUtil::ParseAndKeepRawInput( + const string& number_to_parse, + const string& default_region, + PhoneNumber* number) const { + DCHECK(number); + return ParseHelper(number_to_parse, default_region, true, true, number); +} + +// Checks to see that the region code used is valid, or if it is not valid, that +// the number to parse starts with a + symbol so that we can attempt to infer +// the country from the number. Returns false if it cannot use the region +// provided and the region cannot be inferred. +bool PhoneNumberUtil::CheckRegionForParsing( + const string& number_to_parse, + const string& default_region) const { + if (!IsValidRegionCode(default_region) && !number_to_parse.empty()) { + scoped_ptr number_as_string_piece( + reg_exp::CreateRegularExpressionInput(number_to_parse.c_str())); + if (!plus_chars_pattern->Consume(number_as_string_piece.get(), + true, NULL, NULL)) { + return false; + } + } + return true; +} + +PhoneNumberUtil::ErrorType PhoneNumberUtil::ParseHelper( + const string& number_to_parse, + const string& default_region, + bool keep_raw_input, + bool check_region, + PhoneNumber* phone_number) const { + DCHECK(phone_number); + // Extract a possible number from the string passed in (this strips leading + // characters that could not be the start of a phone number.) + string national_number; + ExtractPossibleNumber(number_to_parse, &national_number); + if (!IsViablePhoneNumber(national_number)) { + logger->Debug("The string supplied did not seem to be a phone number."); + return NOT_A_NUMBER; + } + + if (check_region && + !CheckRegionForParsing(national_number, default_region)) { + logger->Info("Missing or invalid default country."); + return INVALID_COUNTRY_CODE_ERROR; + } + PhoneNumber temp_number; + if (keep_raw_input) { + temp_number.set_raw_input(number_to_parse); + } + // Attempt to parse extension first, since it doesn't require country-specific + // data and we want to have the non-normalised number here. + string extension; + MaybeStripExtension(&national_number, &extension); + if (!extension.empty()) { + temp_number.set_extension(extension); + } + const PhoneMetadata* country_metadata = GetMetadataForRegion(default_region); + // Check to see if the number is given in international format so we know + // whether this number is from the default country or not. + string normalized_national_number(national_number); + ErrorType country_code_error = + MaybeExtractCountryCode(country_metadata, keep_raw_input, + &normalized_national_number, &temp_number); + int country_code = temp_number.country_code(); + if (country_code_error != NO_PARSING_ERROR) { + return country_code_error; + } + if (country_code != 0) { + string phone_number_region; + GetRegionCodeForCountryCode(country_code, &phone_number_region); + if (phone_number_region != default_region) { + country_metadata = GetMetadataForRegion(phone_number_region); + } + } else if (country_metadata) { + // If no extracted country calling code, use the region supplied instead. + // Note that the national number was already normalized by + // MaybeExtractCountryCode. + country_code = country_metadata->country_code(); + } + if (normalized_national_number.length() < kMinLengthForNsn) { + logger->Debug("The string supplied is too short to be a phone number."); + return TOO_SHORT_NSN; + } + if (country_metadata) { + string* carrier_code = keep_raw_input ? + temp_number.mutable_preferred_domestic_carrier_code() : NULL; + MaybeStripNationalPrefixAndCarrierCode(*country_metadata, + &normalized_national_number, + carrier_code); + } + size_t normalized_national_number_length = + normalized_national_number.length(); + if (normalized_national_number_length < kMinLengthForNsn) { + logger->Debug("The string supplied is too short to be a phone number."); + return TOO_SHORT_NSN; + } + if (normalized_national_number_length > kMaxLengthForNsn) { + logger->Debug("The string supplied is too long to be a phone number."); + return TOO_LONG_NSN; + } + temp_number.set_country_code(country_code); + if (country_metadata && + country_metadata->leading_zero_possible() && + normalized_national_number[0] == '0') { + temp_number.set_italian_leading_zero(true); + } + uint64 number_as_int; + safe_strtou64(normalized_national_number, &number_as_int); + temp_number.set_national_number(number_as_int); + phone_number->MergeFrom(temp_number); + return NO_PARSING_ERROR; +} + +// Attempts to extract a possible number from the string passed in. This +// currently strips all leading characters that could not be used to start a +// phone number. Characters that can be used to start a phone number are +// defined in the valid_start_char_pattern. If none of these characters are +// found in the number passed in, an empty string is returned. This function +// also attempts to strip off any alternative extensions or endings if two or +// more are present, such as in the case of: (530) 583-6985 x302/x2303. The +// second extension here makes this actually two phone numbers, (530) 583-6985 +// x302 and (530) 583-6985 x2303. We remove the second extension so that the +// first number is parsed correctly. +// static +void PhoneNumberUtil::ExtractPossibleNumber(const string& number, + string* extracted_number) { + DCHECK(extracted_number); + + UnicodeText number_as_unicode; + number_as_unicode.PointToUTF8(number.data(), number.size()); + char current_char[5]; + int len; + UnicodeText::const_iterator it; + for (it = number_as_unicode.begin(); it != number_as_unicode.end(); ++it) { + len = it.get_utf8(current_char); + current_char[len] = '\0'; + if (valid_start_char_pattern->Match(current_char, true, NULL)) { + break; + } + } + + if (it == number_as_unicode.end()) { + // No valid start character was found. extracted_number should be set to + // empty string. + extracted_number->assign(""); + return; + } + + UnicodeText::const_reverse_iterator reverse_it(number_as_unicode.end()); + for (; reverse_it.base() != it; ++reverse_it) { + len = reverse_it.get_utf8(current_char); + current_char[len] = '\0'; + if (!unwanted_end_char_pattern->Match(current_char, true, NULL)) { + break; + } + } + + if (reverse_it.base() == it) { + extracted_number->assign(""); + return; + } + + extracted_number->assign(UnicodeText::UTF8Substring(it, reverse_it.base())); + + logger->Debug("After stripping starting and trailing characters," + " left with: " + *extracted_number); + + // Now remove any extra numbers at the end. + capture_up_to_second_number_start_pattern->Match(extracted_number->c_str(), + false, + extracted_number); +} + +bool PhoneNumberUtil::IsPossibleNumber(const PhoneNumber& number) const { + return IsPossibleNumberWithReason(number) == IS_POSSIBLE; +} + +bool PhoneNumberUtil::IsPossibleNumberForString( + const string& number, + const string& region_dialing_from) const { + PhoneNumber number_proto; + if (Parse(number, region_dialing_from, &number_proto) == NO_PARSING_ERROR) { + return IsPossibleNumber(number_proto); + } else { + return false; + } +} + +PhoneNumberUtil::ValidationResult PhoneNumberUtil::IsPossibleNumberWithReason( + const PhoneNumber& number) const { + string national_number; + GetNationalSignificantNumber(number, &national_number); + int country_code = number.country_code(); + // Note: For Russian Fed and NANPA numbers, we just use the rules from the + // default region (US or Russia) since the GetRegionCodeForNumber will not + // work if the number is possible but not valid. This would need to be + // revisited if the possible number pattern ever differed between various + // regions within those plans. + string region_code; + GetRegionCodeForCountryCode(country_code, ®ion_code); + if (!HasValidRegionCode(region_code, country_code, national_number)) { + return INVALID_COUNTRY_CODE; + } + const PhoneNumberDesc& general_num_desc = + GetMetadataForRegion(region_code)->general_desc(); + // Handling case of numbers with no metadata. + if (!general_num_desc.has_national_number_pattern()) { + size_t number_length = national_number.length(); + if (number_length < kMinLengthForNsn) { + return TOO_SHORT; + } else if (number_length > kMaxLengthForNsn) { + return TOO_LONG; + } else { + return IS_POSSIBLE; + } + } + scoped_ptr possible_number_pattern( + reg_exp::CreateRegularExpression( + StrCat("(", general_num_desc.possible_number_pattern(), ")").c_str())); + return TestNumberLengthAgainstPattern(possible_number_pattern.get(), + national_number); +} + +bool PhoneNumberUtil::TruncateTooLongNumber(PhoneNumber* number) const { + if (IsValidNumber(*number)) { + return true; + } + PhoneNumber number_copy(*number); + uint64 national_number = number->national_number(); + do { + national_number /= 10; + number_copy.set_national_number(national_number); + if (IsPossibleNumberWithReason(number_copy) == TOO_SHORT || + national_number == 0) { + return false; + } + } while (!IsValidNumber(number_copy)); + number->set_national_number(national_number); + return true; +} + +PhoneNumberUtil::PhoneNumberType PhoneNumberUtil::GetNumberType( + const PhoneNumber& number) const { + string region_code; + GetRegionCodeForNumber(number, ®ion_code); + if (!IsValidRegionCode(region_code)) { + return UNKNOWN; + } + string national_significant_number; + GetNationalSignificantNumber(number, &national_significant_number); + return GetNumberTypeHelper(national_significant_number, + *GetMetadataForRegion(region_code)); +} + +bool PhoneNumberUtil::IsValidNumber(const PhoneNumber& number) const { + string region_code; + GetRegionCodeForNumber(number, ®ion_code); + return IsValidRegionCode(region_code) && + IsValidNumberForRegion(number, region_code); +} + +bool PhoneNumberUtil::IsValidNumberForRegion(const PhoneNumber& number, + const string& region_code) const { + if (number.country_code() != GetCountryCodeForRegion(region_code)) { + return false; + } + const PhoneMetadata* metadata = GetMetadataForRegion(region_code); + const PhoneNumberDesc& general_desc = metadata->general_desc(); + string national_number; + GetNationalSignificantNumber(number, &national_number); + + // For regions where we don't have metadata for PhoneNumberDesc, we treat + // any number passed in as a valid number if its national significant number + // is between the minimum and maximum lengths defined by ITU for a national + // significant number. + if (!general_desc.has_national_number_pattern()) { + logger->Info("Validating number with incomplete metadata."); + size_t number_length = national_number.length(); + return number_length > kMinLengthForNsn && + number_length <= kMaxLengthForNsn; + } + return GetNumberTypeHelper(national_number, *metadata) != UNKNOWN; +} + +bool PhoneNumberUtil::IsLeadingZeroPossible(int country_calling_code) const { + string region_code; + GetRegionCodeForCountryCode(country_calling_code, ®ion_code); + const PhoneMetadata* main_metadata_for_calling_code = + GetMetadataForRegion(region_code); + if (!main_metadata_for_calling_code) return false; + return main_metadata_for_calling_code->leading_zero_possible(); +} + +void PhoneNumberUtil::GetNationalSignificantNumber( + const PhoneNumber& number, + string* national_number) const { + // The leading zero in the national (significant) number of an Italian phone + // number has a special meaning. Unlike the rest of the world, it indicates + // the number is a landline number. There have been plans to migrate landline + // numbers to start with the digit two since December 2000, but it has not yet + // happened. + // See http://en.wikipedia.org/wiki/%2B39 for more details. + // Other regions such as Cote d'Ivoire and Gabon use this for their mobile + // numbers. + DCHECK(national_number); + StrAppend(national_number, + (IsLeadingZeroPossible(number.country_code()) && + number.has_italian_leading_zero() && + number.italian_leading_zero()) + ? "0" + : ""); + StrAppend(national_number, number.national_number()); +} + +int PhoneNumberUtil::GetLengthOfGeographicalAreaCode( + const PhoneNumber& number) const { + string region_code; + GetRegionCodeForNumber(number, ®ion_code); + if (!IsValidRegionCode(region_code)) { + return 0; + } + const PhoneMetadata* metadata = GetMetadataForRegion(region_code); + DCHECK(metadata); + if (!metadata->has_national_prefix()) { + return 0; + } + + string national_significant_number; + GetNationalSignificantNumber(number, &national_significant_number); + PhoneNumberType type = GetNumberTypeHelper(national_significant_number, + *metadata); + // Most numbers other than the two types below have to be dialled in full. + if (type != FIXED_LINE && type != FIXED_LINE_OR_MOBILE) { + return 0; + } + + return GetLengthOfNationalDestinationCode(number); +} + +int PhoneNumberUtil::GetLengthOfNationalDestinationCode( + const PhoneNumber& number) const { + PhoneNumber copied_proto(number); + if (number.has_extension()) { + // Clear the extension so it's not included when formatting. + copied_proto.clear_extension(); + } + + string formatted_number; + Format(copied_proto, INTERNATIONAL, &formatted_number); + scoped_ptr i18n_number( + reg_exp::CreateRegularExpressionInput(formatted_number.c_str())); + string digit_group; + string ndc; + string third_group; + for (int i = 0; i < 3; ++i) { + if (!capturing_ascii_digits_pattern->Consume(i18n_number.get(), + false, + &digit_group, + NULL)) { + // We should find at least three groups. + return 0; + } + if (i == 1) { + ndc = digit_group; + } else if (i == 2) { + third_group = digit_group; + } + } + string region_code; + GetRegionCodeForNumber(number, ®ion_code); + if (region_code == "AR" && + GetNumberType(number) == MOBILE) { + // Argentinian mobile numbers, when formatted in the international format, + // are in the form of +54 9 NDC XXXX.... As a result, we take the length of + // the third group (NDC) and add 1 for the digit 9, which also forms part of + // the national significant number. + return third_group.size() + 1; + } + return ndc.size(); +} + +// static +void PhoneNumberUtil::NormalizeDigitsOnly(string* number) { + DCHECK(number); + // Delete everything that isn't valid digits. + static scoped_ptr invalid_digits_pattern( + reg_exp::CreateRegularExpression(StrCat("[^", kValidDigits, + "]").c_str())); + static const char *empty = ""; + invalid_digits_pattern->Replace(number, true, empty); + // Normalize all decimal digits to ASCII digits. + UParseError error; + icu::ErrorCode status; + + scoped_ptr transliterator( + icu::Transliterator::createFromRules( + "NormalizeDecimalDigits", + "[[:nv=0:]-[0]-[:^nt=de:]]>0;" + "[[:nv=1:]-[1]-[:^nt=de:]]>1;" + "[[:nv=2:]-[2]-[:^nt=de:]]>2;" + "[[:nv=3:]-[3]-[:^nt=de:]]>3;" + "[[:nv=4:]-[4]-[:^nt=de:]]>4;" + "[[:nv=5:]-[5]-[:^nt=de:]]>5;" + "[[:nv=6:]-[6]-[:^nt=de:]]>6;" + "[[:nv=7:]-[7]-[:^nt=de:]]>7;" + "[[:nv=8:]-[8]-[:^nt=de:]]>8;" + "[[:nv=9:]-[9]-[:^nt=de:]]>9;", + UTRANS_FORWARD, + error, + status + ) + ); + if (!status.isSuccess()) { + logger->Error("Error creating ICU Transliterator"); + return; + } + icu::UnicodeString utf16(icu::UnicodeString::fromUTF8(number->c_str())); + transliterator->transliterate(utf16); + number->clear(); + utf16.toUTF8String(*number); +} + +bool PhoneNumberUtil::IsAlphaNumber(const string& number) const { + if (!IsViablePhoneNumber(number)) { + // Number is too short, or doesn't match the basic phone number pattern. + return false; + } + // Copy the number, since we are going to try and strip the extension from it. + string number_copy(number); + string extension; + MaybeStripExtension(&number_copy, &extension); + return valid_alpha_phone_pattern->Match(number_copy.c_str(), true, NULL); +} + +void PhoneNumberUtil::ConvertAlphaCharactersInNumber(string* number) const { + DCHECK(number); + NormalizeHelper(*all_normalization_mappings, false, number); +} + +// Normalizes a string of characters representing a phone number. This performs +// the following conversions: +// - Wide-ascii digits are converted to normal ASCII (European) digits. +// - Letters are converted to their numeric representation on a telephone +// keypad. The keypad used here is the one defined in ITU Recommendation +// E.161. This is only done if there are 3 or more letters in the number, to +// lessen the risk that such letters are typos - otherwise alpha characters +// are stripped. +// - Punctuation is stripped. +// - Arabic-Indic numerals are converted to European numerals. +void PhoneNumberUtil::Normalize(string* number) const { + DCHECK(number); + if (valid_alpha_phone_pattern->Match(number->c_str(), false, NULL)) { + NormalizeHelper(*all_normalization_mappings, true, number); + } + NormalizeDigitsOnly(number); +} + +// Checks to see if the string of characters could possibly be a phone number at +// all. At the moment, checks to see that the string begins with at least 3 +// digits, ignoring any punctuation commonly found in phone numbers. This +// method does not require the number to be normalized in advance - but does +// assume that leading non-number symbols have been removed, such as by the +// method ExtractPossibleNumber. +// static +bool PhoneNumberUtil::IsViablePhoneNumber(const string& number) { + if (number.length() < kMinLengthForNsn) { + logger->Debug("Number too short to be viable:" + number); + return false; + } + return valid_phone_number_pattern->Match(number.c_str(), true, NULL); +} + +// Strips any international prefix (such as +, 00, 011) present in the number +// provided, normalizes the resulting number, and indicates if an international +// prefix was present. +// +// possible_idd_prefix represents the international direct dialing prefix from +// the region we think this number may be dialed in. +// Returns true if an international dialing prefix could be removed from the +// number, otherwise false if the number did not seem to be in international +// format. +PhoneNumber::CountryCodeSource +PhoneNumberUtil::MaybeStripInternationalPrefixAndNormalize( + const string& possible_idd_prefix, + string* number) const { + DCHECK(number); + if (number->empty()) { + return PhoneNumber::FROM_DEFAULT_COUNTRY; + } + scoped_ptr number_string_piece( + reg_exp::CreateRegularExpressionInput(number->c_str())); + if (plus_chars_pattern->Consume(number_string_piece.get(), true, + NULL, NULL)) { + number->assign(number_string_piece->ToString()); + // Can now normalize the rest of the number since we've consumed the "+" + // sign at the start. + Normalize(number); + return PhoneNumber::FROM_NUMBER_WITH_PLUS_SIGN; + } + // Attempt to parse the first digits as an international prefix. + scoped_ptr idd_pattern( + reg_exp::CreateRegularExpression(possible_idd_prefix.c_str())); + if (ParsePrefixAsIdd(idd_pattern.get(), number)) { + Normalize(number); + return PhoneNumber::FROM_NUMBER_WITH_IDD; + } + // If still not found, then try and normalize the number and then try again. + // This shouldn't be done before, since non-numeric characters (+ and ~) may + // legally be in the international prefix. + Normalize(number); + return ParsePrefixAsIdd(idd_pattern.get(), number) + ? PhoneNumber::FROM_NUMBER_WITH_IDD + : PhoneNumber::FROM_DEFAULT_COUNTRY; +} + +// Strips any national prefix (such as 0, 1) present in the number provided. +// The number passed in should be the normalized telephone number that we wish +// to strip any national dialing prefix from. The metadata should be for the +// region that we think this number is from. +// static +void PhoneNumberUtil::MaybeStripNationalPrefixAndCarrierCode( + const PhoneMetadata& metadata, + string* number, + string* carrier_code) { + DCHECK(number); + string carrier_code_temp; + const string& possible_national_prefix = + metadata.national_prefix_for_parsing(); + if (number->empty() || possible_national_prefix.empty()) { + // Early return for numbers of zero length or with no national prefix + // possible. + return; + } + // We use two copies here since Consume modifies the phone number, and if the + // first if-clause fails the number will already be changed. + scoped_ptr number_copy( + reg_exp::CreateRegularExpressionInput(number->c_str())); + scoped_ptr number_copy_without_transform( + reg_exp::CreateRegularExpressionInput(number->c_str())); + + string number_string_copy(*number); + string captured_part_of_prefix; + scoped_ptr national_number_rule( + reg_exp::CreateRegularExpression( + metadata.general_desc().national_number_pattern().c_str())); + // Attempt to parse the first digits as a national prefix. We make a + // copy so that we can revert to the original string if necessary. + const string& transform_rule = metadata.national_prefix_transform_rule(); + if (!transform_rule.empty() && + (number_copy->ConsumeRegExp(possible_national_prefix, true, + &carrier_code_temp, + &captured_part_of_prefix) || + number_copy->ConsumeRegExp(possible_national_prefix, true, + &captured_part_of_prefix, NULL)) && + !captured_part_of_prefix.empty()) { + string re2_transform_rule(transform_rule); + TransformRegularExpressionToRE2Syntax(&re2_transform_rule); + // If this succeeded, then we must have had a transform rule and there must + // have been some part of the prefix that we captured. + // We make the transformation and check that the resultant number is viable. + // If so, replace the number and return. + scoped_ptr possible_national_prefix_rule( + reg_exp::CreateRegularExpression(possible_national_prefix.c_str())); + possible_national_prefix_rule->Replace(&number_string_copy, false, + re2_transform_rule.c_str()); + if (national_number_rule->Match(number_string_copy.c_str(), true, NULL)) { + number->assign(number_string_copy); + if (carrier_code) { + carrier_code->assign(carrier_code_temp); + } + } + } else if (number_copy_without_transform->ConsumeRegExp( + possible_national_prefix, true, &carrier_code_temp, NULL) || + number_copy_without_transform->ConsumeRegExp( + possible_national_prefix, true, NULL, NULL)) { + logger->Debug("Parsed the first digits as a national prefix."); + string unconsumed_part(number_copy_without_transform->ToString()); + // If captured_part_of_prefix is empty, this implies nothing was captured by + // the capturing groups in possible_national_prefix; therefore, no + // transformation is necessary, and we just remove the national prefix. + if (national_number_rule->Match(unconsumed_part.c_str(), true, NULL)) { + number->assign(unconsumed_part); + if (carrier_code) { + carrier_code->assign(carrier_code_temp); + } + } + } else { + logger->Debug("The first digits did not match the national prefix."); + } +} + +// Strips any extension (as in, the part of the number dialled after the call is +// connected, usually indicated with extn, ext, x or similar) from the end of +// the number, and returns it. The number passed in should be non-normalized. +// static +bool PhoneNumberUtil::MaybeStripExtension(string* number, string* extension) { + DCHECK(number); + DCHECK(extension); + // There are three extension capturing groups in the regular expression. + string possible_extension_one; + string possible_extension_two; + string possible_extension_three; + string number_copy(*number); + scoped_ptr number_copy_regex_input( + reg_exp::CreateRegularExpressionInput(number_copy.c_str())); + if (extn_pattern->Consume(number_copy_regex_input.get(), false, + &possible_extension_one, &possible_extension_two, + &possible_extension_three)) { + // Replace the extensions in the original string here. + extn_pattern->Replace(&number_copy, false, ""); + logger->Debug("Found an extension. Possible extension one: " + + possible_extension_one + + ". Possible extension two: " + possible_extension_two + + ". Remaining number: " + number_copy); + // If we find a potential extension, and the number preceding this is a + // viable number, we assume it is an extension. + if ((!possible_extension_one.empty() || !possible_extension_two.empty() || + !possible_extension_three.empty()) && + IsViablePhoneNumber(number_copy)) { + number->assign(number_copy); + if (!possible_extension_one.empty()) { + extension->assign(possible_extension_one); + } else if (!possible_extension_two.empty()) { + extension->assign(possible_extension_two); + } else if (!possible_extension_three.empty()) { + extension->assign(possible_extension_three); + } + return true; + } + } + return false; +} + +// Extracts country calling code from national_number, and returns it. It +// assumes that the leading plus sign or IDD has already been removed. Returns 0 +// if national_number doesn't start with a valid country calling code, and +// leaves national_number unmodified. Assumes the national_number is at least 3 +// characters long. +int PhoneNumberUtil::ExtractCountryCode(string* national_number) const { + int potential_country_code; + for (int i = 1; i <= 3; ++i) { + safe_strto32(national_number->substr(0, i), &potential_country_code); + string region_code; + GetRegionCodeForCountryCode(potential_country_code, ®ion_code); + if (region_code != "ZZ") { + national_number->erase(0, i); + return potential_country_code; + } + } + return 0; +} + +// Tries to extract a country calling code from a number. Country calling codes +// are extracted in the following ways: +// - by stripping the international dialing prefix of the region the person +// is dialing from, if this is present in the number, and looking at the next +// digits +// - by stripping the '+' sign if present and then looking at the next digits +// - by comparing the start of the number and the country calling code of the +// default region. If the number is not considered possible for the numbering +// plan of the default region initially, but starts with the country calling +// code of this region, validation will be reattempted after stripping this +// country calling code. If this number is considered a possible number, then +// the first digits will be considered the country calling code and removed as +// such. +// +// Returns NO_PARSING_ERROR if a country calling code was successfully +// extracted or none was present, or the appropriate error otherwise, such as +// if a + was present but it was not followed by a valid country calling code. +// If NO_PARSING_ERROR is returned, the national_number without the country +// calling code is populated, and the country_code passed in is set to the +// country calling code if found, otherwise to 0. +PhoneNumberUtil::ErrorType PhoneNumberUtil::MaybeExtractCountryCode( + const PhoneMetadata* default_region_metadata, + bool keep_raw_input, + string* national_number, + PhoneNumber* phone_number) const { + DCHECK(national_number); + DCHECK(phone_number); + // Set the default prefix to be something that will never match if there is no + // default region. + string possible_country_idd_prefix = default_region_metadata + ? default_region_metadata->international_prefix() + : "NonMatch"; + PhoneNumber::CountryCodeSource country_code_source = + MaybeStripInternationalPrefixAndNormalize(possible_country_idd_prefix, + national_number); + if (keep_raw_input) { + phone_number->set_country_code_source(country_code_source); + } + if (country_code_source != PhoneNumber::FROM_DEFAULT_COUNTRY) { + if (national_number->length() < kMinLengthForNsn) { + logger->Debug("Phone number had an IDD, but after this was not " + "long enough to be a viable phone number."); + return TOO_SHORT_AFTER_IDD; + } + int potential_country_code = ExtractCountryCode(national_number); + if (potential_country_code != 0) { + phone_number->set_country_code(potential_country_code); + return NO_PARSING_ERROR; + } + // If this fails, they must be using a strange country calling code that we + // don't recognize, or that doesn't exist. + return INVALID_COUNTRY_CODE_ERROR; + } else if (default_region_metadata) { + // Check to see if the number starts with the country calling code for the + // default region. If so, we remove the country calling code, and do some + // checks on the validity of the number before and after. + int default_country_code = default_region_metadata->country_code(); + string default_country_code_string(SimpleItoa(default_country_code)); + logger->Debug("Possible country code: " + default_country_code_string); + string potential_national_number; + if (TryStripPrefixString(*national_number, + default_country_code_string, + &potential_national_number)) { + const PhoneNumberDesc& general_num_desc = + default_region_metadata->general_desc(); + scoped_ptr valid_number_pattern( + reg_exp::CreateRegularExpression( + general_num_desc.national_number_pattern().c_str())); + + MaybeStripNationalPrefixAndCarrierCode(*default_region_metadata, + &potential_national_number, + NULL); + logger->Debug("Number without country code prefix: " + + potential_national_number); + string extracted_number; + scoped_ptr possible_number_pattern( + reg_exp::CreateRegularExpression( + StrCat("(", general_num_desc.possible_number_pattern(), + ")").c_str())); + // If the number was not valid before but is valid now, or if it was too + // long before, we consider the number with the country code stripped to + // be a better result and keep that instead. + if ((!valid_number_pattern->Match(national_number->c_str(), + true, NULL) && + valid_number_pattern->Match(potential_national_number.c_str(), + true, NULL)) || + TestNumberLengthAgainstPattern(possible_number_pattern.get(), + *national_number) + == TOO_LONG) { + national_number->assign(potential_national_number); + if (keep_raw_input) { + phone_number->set_country_code_source( + PhoneNumber::FROM_NUMBER_WITHOUT_PLUS_SIGN); + } + phone_number->set_country_code(default_country_code); + return NO_PARSING_ERROR; + } + } + } + // No country calling code present. Set the country_code to 0. + phone_number->set_country_code(0); + return NO_PARSING_ERROR; +} + +PhoneNumberUtil::MatchType PhoneNumberUtil::IsNumberMatch( + const PhoneNumber& first_number_in, + const PhoneNumber& second_number_in) const { + // Make copies of the phone number so that the numbers passed in are not + // edited. + PhoneNumber first_number(first_number_in); + PhoneNumber second_number(second_number_in); + // First clear raw_input and country_code_source and + // preferred_domestic_carrier_code fields and any empty-string extensions so + // that we can use the proto-buffer equality method. + first_number.clear_raw_input(); + first_number.clear_country_code_source(); + first_number.clear_preferred_domestic_carrier_code(); + second_number.clear_raw_input(); + second_number.clear_country_code_source(); + second_number.clear_preferred_domestic_carrier_code(); + if (first_number.extension().empty()) { + first_number.clear_extension(); + } + if (second_number.extension().empty()) { + second_number.clear_extension(); + } + // Early exit if both had extensions and these are different. + if (first_number.has_extension() && second_number.has_extension() && + first_number.extension() != second_number.extension()) { + return NO_MATCH; + } + int first_number_country_code = first_number.country_code(); + int second_number_country_code = second_number.country_code(); + // Both had country calling code specified. + if (first_number_country_code != 0 && second_number_country_code != 0) { + if (ExactlySameAs(first_number, second_number)) { + return EXACT_MATCH; + } else if (first_number_country_code == second_number_country_code && + IsNationalNumberSuffixOfTheOther(first_number, second_number)) { + // A SHORT_NSN_MATCH occurs if there is a difference because of the + // presence or absence of an 'Italian leading zero', the presence or + // absence of an extension, or one NSN being a shorter variant of the + // other. + return SHORT_NSN_MATCH; + } + // This is not a match. + return NO_MATCH; + } + // Checks cases where one or both country calling codes were not specified. To + // make equality checks easier, we first set the country_code fields to be + // equal. + first_number.set_country_code(second_number_country_code); + // If all else was the same, then this is an NSN_MATCH. + if (ExactlySameAs(first_number, second_number)) { + return NSN_MATCH; + } + if (IsNationalNumberSuffixOfTheOther(first_number, second_number)) { + return SHORT_NSN_MATCH; + } + return NO_MATCH; +} + +PhoneNumberUtil::MatchType PhoneNumberUtil::IsNumberMatchWithTwoStrings( + const string& first_number, + const string& second_number) const { + PhoneNumber first_number_as_proto; + ErrorType error_type = + Parse(first_number, "ZZ", &first_number_as_proto); + if (error_type == NO_PARSING_ERROR) { + return IsNumberMatchWithOneString(first_number_as_proto, second_number); + } + if (error_type == INVALID_COUNTRY_CODE_ERROR) { + PhoneNumber second_number_as_proto; + ErrorType error_type = Parse(second_number, "ZZ", + &second_number_as_proto); + if (error_type == NO_PARSING_ERROR) { + return IsNumberMatchWithOneString(second_number_as_proto, first_number); + } + if (error_type == INVALID_COUNTRY_CODE_ERROR) { + error_type = ParseHelper(first_number, "ZZ", false, false, + &first_number_as_proto); + if (error_type == NO_PARSING_ERROR) { + error_type = ParseHelper(second_number, "ZZ", false, false, + &second_number_as_proto); + if (error_type == NO_PARSING_ERROR) { + return IsNumberMatch(first_number_as_proto, second_number_as_proto); + } + } + } + } + // One or more of the phone numbers we are trying to match is not a viable + // phone number. + return INVALID_NUMBER; +} + +PhoneNumberUtil::MatchType PhoneNumberUtil::IsNumberMatchWithOneString( + const PhoneNumber& first_number, + const string& second_number) const { + // First see if the second number has an implicit country calling code, by + // attempting to parse it. + PhoneNumber second_number_as_proto; + ErrorType error_type = + Parse(second_number, "ZZ", &second_number_as_proto); + if (error_type == NO_PARSING_ERROR) { + return IsNumberMatch(first_number, second_number_as_proto); + } + if (error_type == INVALID_COUNTRY_CODE_ERROR) { + // The second number has no country calling code. EXACT_MATCH is no longer + // possible. We parse it as if the region was the same as that for the + // first number, and if EXACT_MATCH is returned, we replace this with + // NSN_MATCH. + string first_number_region; + GetRegionCodeForCountryCode(first_number.country_code(), + &first_number_region); + if (first_number_region != "ZZ") { + PhoneNumber second_number_with_first_number_region; + Parse(second_number, first_number_region, + &second_number_with_first_number_region); + MatchType match = IsNumberMatch(first_number, + second_number_with_first_number_region); + if (match == EXACT_MATCH) { + return NSN_MATCH; + } + return match; + } else { + // If the first number didn't have a valid country calling code, then we + // parse the second number without one as well. + error_type = ParseHelper(second_number, "ZZ", false, false, + &second_number_as_proto); + if (error_type == NO_PARSING_ERROR) { + return IsNumberMatch(first_number, second_number_as_proto); + } + } + } + // One or more of the phone numbers we are trying to match is not a viable + // phone number. + return INVALID_NUMBER; +} + +} // namespace phonenumbers +} // namespace i18n diff --git a/third_party/libphonenumber/cpp/src/phonenumberutil.h b/third_party/libphonenumber/cpp/src/phonenumberutil.h new file mode 100644 index 0000000..6a766df --- /dev/null +++ b/third_party/libphonenumber/cpp/src/phonenumberutil.h @@ -0,0 +1,678 @@ +// Copyright (C) 2009 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Utility for international phone numbers. +// +// Author: Shaopeng Jia +// Open-sourced by: Philippe Liard + +#ifndef I18N_PHONENUMBERS_PHONENUMBERUTIL_H_ +#define I18N_PHONENUMBERS_PHONENUMBERUTIL_H_ + +#include +#include +#include +#include +#include +#include + +#include "base/scoped_ptr.h" +#include "base/singleton.h" +#include "phonenumber.pb.h" + +class TelephoneNumber; + +namespace i18n { +namespace phonenumbers { + +using std::list; +using std::map; +using std::pair; +using std::set; +using std::string; +using std::vector; + +using google::protobuf::RepeatedPtrField; + +class LoggerAdapter; +class NumberFormat; +class PhoneMetadata; +class PhoneMetadataCollection; +class PhoneNumber; + +class PhoneNumberUtil { + friend struct DefaultSingletonTraits; + friend class PhoneNumberUtilTest; + public: + // INTERNATIONAL and NATIONAL formats are consistent with the definition + // in ITU-T Recommendation E. 123. For example, the number of the Google + // Zürich office will be written as "+41 44 668 1800" in INTERNATIONAL + // format, and as "044 668 1800" in NATIONAL format. E164 format is as per + // INTERNATIONAL format but with no formatting applied e.g. +41446681800. + // RFC3966 is as per INTERNATIONAL format, but with all spaces and other + // separating symbols replaced with a hyphen, and with any phone number + // extension appended with ";ext=". + enum PhoneNumberFormat { + E164, + INTERNATIONAL, + NATIONAL, + RFC3966 + }; + + // Type of phone numbers. + enum PhoneNumberType { + FIXED_LINE, + MOBILE, + // In some regions (e.g. the USA), it is impossible to distinguish between + // fixed-line and mobile numbers by looking at the phone number itself. + FIXED_LINE_OR_MOBILE, + // Freephone lines + TOLL_FREE, + PREMIUM_RATE, + // The cost of this call is shared between the caller and the recipient, and + // is hence typically less than PREMIUM_RATE calls. See + // http://en.wikipedia.org/wiki/Shared_Cost_Service for more information. + SHARED_COST, + // Voice over IP numbers. This includes TSoIP (Telephony Service over IP). + VOIP, + // A personal number is associated with a particular person, and may be + // routed to either a MOBILE or FIXED_LINE number. Some more information can + // be found here: http://en.wikipedia.org/wiki/Personal_Numbers + PERSONAL_NUMBER, + PAGER, + // Used for "Universal Access Numbers" or "Company Numbers". They may be + // further routed to specific offices, but allow one number to be used for a + // company. + UAN, + // A phone number is of type UNKNOWN when it does not fit any of the known + // patterns for a specific region. + UNKNOWN + }; + + // Types of phone number matches. See detailed description beside the + // IsNumberMatch() method. + enum MatchType { + INVALID_NUMBER, // NOT_A_NUMBER in the java version. + NO_MATCH, + SHORT_NSN_MATCH, + NSN_MATCH, + EXACT_MATCH, + }; + + enum ErrorType { + NO_PARSING_ERROR, + INVALID_COUNTRY_CODE_ERROR, // INVALID_COUNTRY_CODE in the java version. + NOT_A_NUMBER, + TOO_SHORT_AFTER_IDD, + TOO_SHORT_NSN, + TOO_LONG_NSN, // TOO_LONG in the java version. + }; + + // Possible outcomes when testing if a PhoneNumber is possible. + enum ValidationResult { + IS_POSSIBLE, + INVALID_COUNTRY_CODE, + TOO_SHORT, + TOO_LONG, + }; + + // Gets a PhoneNumberUtil instance to carry out international phone number + // formatting, parsing, or validation. The instance is loaded with phone + // number metadata for a number of most commonly used regions, as specified by + // DEFAULT_REGIONS_. + // + // The PhoneNumberUtil is implemented as a singleton. Therefore, calling + // getInstance multiple times will only result in one instance being created. + static PhoneNumberUtil* GetInstance(); + + // Returns true if the number is a valid vanity (alpha) number such as 800 + // MICROSOFT. A valid vanity number will start with at least 3 digits and will + // have three or more alpha characters. This does not do region-specific + // checks - to work out if this number is actually valid for a region, it + // should be parsed and methods such as IsPossibleNumberWithReason or + // IsValidNumber should be used. + bool IsAlphaNumber(const string& number) const; + + // Converts all alpha characters in a number to their respective digits on + // a keypad, but retains existing formatting. + void ConvertAlphaCharactersInNumber(string* number) const; + + // Normalizes a string of characters representing a phone number. This + // converts wide-ascii and arabic-indic numerals to European numerals, and + // strips punctuation and alpha characters. + static void NormalizeDigitsOnly(string* number); + + // Gets the national significant number of a phone number. Note a national + // significant number doesn't contain a national prefix or any formatting. + void GetNationalSignificantNumber(const PhoneNumber& number, + string* national_significant_num) const; + + // Gets the length of the geographical area code from the PhoneNumber object + // passed in, so that clients could use it to split a national significant + // number into geographical area code and subscriber number. It works in such + // a way that the resultant subscriber number should be diallable, at least on + // some devices. An example of how this could be used: + // + // const PhoneNumberUtil& phone_util(PhoneNumberUtil::GetInstance()); + // PhoneNumber number; + // phone_util.Parse("16502530000", "US", &number); + // string national_significant_number; + // phone_util.GetNationalSignificantNumber(number, + // &national_significant_number); + // string area_code; + // string subscriber_number; + // + // int area_code_length = phone_util.GetLengthOfGeographicalAreaCode(number); + // if (area_code_length > 0) { + // area_code = national_significant_number.substring(0, area_code_length); + // subscriber_number = national_significant_number.substring( + // area_code_length, string::npos); + // else { + // area_code = ""; + // subscriber_number = national_significant_number; + // } + // + // N.B.: area code is a very ambiguous concept, so the I18N team generally + // recommends against using it for most purposes, but recommends using the + // more general national_number instead. Read the following carefully before + // deciding to use this method: + // + // - geographical area codes change over time, and this method honors those + // changes; therefore, it doesn't guarantee the stability of the result it + // produces. + // - subscriber numbers may not be diallable from all devices (notably mobile + // devices, which typically requires the full national_number to be dialled + // in most regions). + // - most non-geographical numbers have no area codes. + // - some geographical numbers have no area codes. + int GetLengthOfGeographicalAreaCode(const PhoneNumber& number) const; + + // Gets the length of the national destination code (NDC) from the PhoneNumber + // object passed in, so that clients could use it to split a national + // significant number into NDC and subscriber number. The NDC of a phone + // number is normally the first group of digit(s) right after the country + // calling code when the number is formatted in the international format, if + // there is a subscriber number part that follows. An example of how this + // could be used: + // + // const PhoneNumberUtil& phone_util(PhoneNumberUtil::GetInstance()); + // PhoneNumber number; + // phone_util.Parse("16502530000", "US", &number); + // string national_significant_number; + // phone_util.GetNationalSignificantNumber(number, + // &national_significant_number); + // string national_destination_code; + // string subscriber_number; + // + // int national_destination_code_length = + // phone_util.GetLengthOfGeographicalAreaCode(number); + // if (national_destination_code_length > 0) { + // national_destination_code = national_significant_number.substring( + // 0, national_destination_code_length); + // subscriber_number = national_significant_number.substring( + // national_destination_code_length, string::npos); + // else { + // national_destination_code = ""; + // subscriber_number = national_significant_number; + // } + // + // Refer to the unittests to see the difference between this function and + // GetLengthOfGeographicalAreaCode(). + int GetLengthOfNationalDestinationCode(const PhoneNumber& number) const; + + // Formats a phone number in the specified format using default rules. Note + // that this does not promise to produce a phone number that the user can + // dial from where they are - although we do format in either NATIONAL or + // INTERNATIONAL format depending on what the client asks for, we do not + // currently support a more abbreviated format, such as for users in the + // same area who could potentially dial the number without area code. + void Format(const PhoneNumber& number, + PhoneNumberFormat number_format, + string* formatted_number) const; + + // Formats a phone number in the specified format using client-defined + // formatting rules. + void FormatByPattern( + const PhoneNumber& number, + PhoneNumberFormat number_format, + const RepeatedPtrField& user_defined_formats, + string* formatted_number) const; + + // Formats a phone number in national format for dialing using the carrier as + // specified in the carrier_code. The carrier_code will always be used + // regardless of whether the phone number already has a preferred domestic + // carrier code stored. If carrier_code contains an empty string, return the + // number in national format without any carrier code. + void FormatNationalNumberWithCarrierCode(const PhoneNumber& number, + const string& carrier_code, + string* formatted_number) const; + + // Formats a phone number in national format for dialing using the carrier as + // specified in the preferred_domestic_carrier_code field of the PhoneNumber + // object passed in. If that is missing, use the fallback_carrier_code passed + // in instead. If there is no preferred_domestic_carrier_code, and the + // fallback_carrier_code contains an empty string, return the number in + // national format without any carrier code. + // + // Use FormatNationalNumberWithCarrierCode instead if the carrier code passed + // in should take precedence over the number's preferred_domestic_carrier_code + // when formatting. + void FormatNationalNumberWithPreferredCarrierCode( + const PhoneNumber& number, + const string& fallback_carrier_code, + string* formatted_number) const; + + // Formats a phone number for out-of-country dialing purposes. + // + // Note this function takes care of the case for calling inside of NANPA + // and between Russia and Kazakhstan (who share the same country calling + // code). In those cases, no international prefix is used. For regions which + // have multiple international prefixes, the number in its INTERNATIONAL + // format will be returned instead. + void FormatOutOfCountryCallingNumber( + const PhoneNumber& number, + const string& calling_from, + string* formatted_number) const; + + // Formats a phone number using the original phone number format that the + // number is parsed from. The original format is embedded in the + // country_code_source field of the PhoneNumber object passed in. If such + // information is missing, the number will be formatted into the NATIONAL + // format by default. + void FormatInOriginalFormat(const PhoneNumber& number, + const string& region_calling_from, + string* formatted_number) const; + + // Formats a phone number for out-of-country dialing purposes. + // + // Note that in this version, if the number was entered originally using alpha + // characters and this version of the number is stored in raw_input, this + // representation of the number will be used rather than the digit + // representation. Grouping information, as specified by characters such as + // "-" and " ", will be retained. + // + // Caveats: + // 1) This will not produce good results if the country calling code is both + // present in the raw input _and_ is the start of the national number. This + // is not a problem in the regions which typically use alpha numbers. + // 2) This will also not produce good results if the raw input has any + // grouping information within the first three digits of the national number, + // and if the function needs to strip preceding digits/words in the raw input + // before these digits. Normally people group the first three digits together + // so this is not a huge problem - and will be fixed if it proves to be so. + void FormatOutOfCountryKeepingAlphaChars( + const PhoneNumber& number, + const string& calling_from, + string* formatted_number) const; + + // Attempts to extract a valid number from a phone number that is too long to + // be valid, and resets the PhoneNumber object passed in to that valid + // version. If no valid number could be extracted, the PhoneNumber object + // passed in will not be modified. It returns true if a valid phone number can + // be successfully extracted. + bool TruncateTooLongNumber(PhoneNumber* number) const; + + // Gets the type of a phone number. + PhoneNumberType GetNumberType(const PhoneNumber& number) const; + + // Tests whether a phone number matches a valid pattern. Note this doesn't + // verify the number is actually in use, which is impossible to tell by just + // looking at a number itself. + bool IsValidNumber(const PhoneNumber& number) const; + + // Tests whether a phone number is valid for a certain region. Note this + // doesn't verify the number is actually in use, which is impossible to tell + // by just looking at a number itself. If the country calling code is not the + // same as the country calling code for the region, this immediately exits + // with false. After this, the specific number pattern rules for the region + // are examined. + // This is useful for determining for example whether a particular number is + // valid for Canada, rather than just a valid NANPA number. + // + // The region_code parameter is an ISO 3166-1 two-letter country code string. + bool IsValidNumberForRegion( + const PhoneNumber& number, + const string& region_code) const; + + // Returns the region where a phone number is from. This could be used for + // geo-coding at the region level. + // The country/region is returned as an ISO 3166-1 two-letter country code + // string. + void GetRegionCodeForNumber(const PhoneNumber& number, + string* region_code) const; + + // Returns the country calling code for a specific region. For example, + // this would be 1 for the United States, and 64 for New Zealand. + // + // The region_code parameter is an ISO 3166-1 two-letter country code string. + int GetCountryCodeForRegion(const string& region_code) const; + + // Returns the region code that matches the specific country code. Note that + // it is possible that several regions share the same country code (e.g. US + // and Canada), and in that case, only one of the regions (normally the one + // with the largest population) is returned. + // + // The region code is returned as an ISO 3166-1 two-letter country code + // string. + void GetRegionCodeForCountryCode(int country_code, string* region_code) const; + + // Checks if this is a region under the North American Numbering Plan + // Administration (NANPA). + // + // The region_code parameter is an ISO 3166-1 two-letter country code string. + bool IsNANPACountry(const string& region_code) const; + + // Checks whether a phone number is a possible number. It provides a more + // lenient check than IsValidNumber() in the following sense: + // 1. It only checks the length of phone numbers. In particular, it doesn't + // check starting digits of the number. + // 2. It doesn't attempt to figure out the type of the number, but uses + // general rules which applies to all types of phone numbers in a + // region. Therefore, it is much faster than IsValidNumber(). + // 3. For fixed line numbers, many regions have the concept of area code, + // which together with subscriber number constitute the national + // significant number. It is sometimes okay to dial the subscriber + // number only when dialing in the same area. This function will return + // true if the subscriber-number-only version is passed in. On the other + // hand, because IsValidNumber() validates using information on both + // starting digits (for fixed line numbers, that would most likely be + // area codes) and length (obviously includes the length of area codes + // for fixed line numbers), it will return false for the + // subscriber-number-only version. + ValidationResult IsPossibleNumberWithReason(const PhoneNumber& number) const; + + // Convenience wrapper around IsPossibleNumberWithReason. Instead of returning + // the reason for failure, this method returns a boolean value. + bool IsPossibleNumber(const PhoneNumber& number) const; + + // Checks whether a phone number is a possible number given a number in the + // form of a string, and the country where the number could be dialed from. + // It provides a more lenient check than IsValidNumber(). See + // IsPossibleNumber(const PhoneNumber& number) for details. + // + // This method first parses the number, then invokes + // IsPossibleNumber(const PhoneNumber& number) with the resultant PhoneNumber + // object. + // + // region_dialing_from represents the region that we are expecting the number + // to be dialed from. Note this is different from the region where the number + // belongs. For example, the number +1 650 253 0000 is a number that belongs + // to US. When written in this form, it could be dialed from any region. When + // it is written as 00 1 650 253 0000, it could be dialed from any region + // which uses an international dialling prefix of 00. When it is written as + // 650 253 0000, it could only be dialed from within the US, and when written + // as 253 0000, it could only be dialed from within a smaller area in the US + // (Mountain View, CA, to be more specific). + // + // The country_dialing_from parameter is an ISO 3166-1 two-letter country code + // string. + bool IsPossibleNumberForString( + const string& number, + const string& country_dialing_from) const; + + // Gets a valid fixed-line number for the specified region. Returns false if + // the region was unknown. + bool GetExampleNumber(const string& region_code, + PhoneNumber* number) const; + + // Gets a valid number of the specified type for the specified region. + // Returns false if the region was unknown or if no example number of that + // type could be found. + // + // The region_code parameter is an ISO 3166-1 two-letter country code string. + bool GetExampleNumberForType(const string& region_code, + PhoneNumberType type, + PhoneNumber* number) const; + + // Parses a string and returns it in proto buffer format. This method will + // return an error like INVALID_COUNTRY_CODE if the number is not considered + // to be a possible number, and NO_PARSING_ERROR if it parsed correctly. Note + // that validation of whether the number is actually a valid number for a + // particular region is not performed. This can be done separately with + // IsValidNumber(). + // + // default_region represents the country that we are expecting the number to + // be from. This is only used if the number being parsed is not written in + // international format. The country_code for the number in this case would be + // stored as that of the default country supplied. If the number is guaranteed + // to start with a '+' followed by the country calling code, then + // "ZZ" can be supplied. + // + // The default_country parameter is an ISO 3166-1 two-letter country code + // string. + ErrorType Parse(const string& number_to_parse, + const string& default_country, + PhoneNumber* number) const; + // Parses a string and returns it in proto buffer format. This method differs + // from Parse() in that it always populates the raw_input field of the + // protocol buffer with number_to_parse as well as the country_code_source + // field. + // + // The default_country parameter is an ISO 3166-1 two-letter country code + // string. + ErrorType ParseAndKeepRawInput(const string& number_to_parse, + const string& default_country, + PhoneNumber* number) const; + + // Takes two phone numbers and compares them for equality. + // + // Returns EXACT_MATCH if the country calling code, NSN, presence of a leading + // zero for Italian numbers and any extension present are the same. + // Returns NSN_MATCH if either or both has no country calling code specified, + // and the NSNs and extensions are the same. + // Returns SHORT_NSN_MATCH if either or both has no country calling code + // specified, or the country calling code specified is the same, and one NSN + // could be a shorter version of the other number. This includes the case + // where one has an extension specified, and the other does not. + // Returns NO_MATCH otherwise. + // For example, the numbers +1 345 657 1234 and 657 1234 are a + // SHORT_NSN_MATCH. The numbers +1 345 657 1234 and 345 657 are a NO_MATCH. + MatchType IsNumberMatch(const PhoneNumber& first_number, + const PhoneNumber& second_number) const; + + // Takes two phone numbers as strings and compares them for equality. This + // is a convenience wrapper for IsNumberMatch(PhoneNumber firstNumber, + // PhoneNumber secondNumber). No default region is known. + // Returns INVALID_NUMBER if either number cannot be parsed into a phone + // number. + MatchType IsNumberMatchWithTwoStrings(const string& first_number, + const string& second_number) const; + + // Takes two phone numbers and compares them for equality. This is a + // convenience wrapper for IsNumberMatch(PhoneNumber firstNumber, + // PhoneNumber secondNumber). No default region is known. + // Returns INVALID_NUMBER if second_number cannot be parsed into a phone + // number. + MatchType IsNumberMatchWithOneString(const PhoneNumber& first_number, + const string& second_number) const; + + // Implement this 'interface' to override the way metadatas are fetched. + // Useful for testing injecting stable metadatas. + class MetadataProvider { + public: + virtual ~MetadataProvider() {} + + // Returns a pair containing a pointer to the data and its size + virtual pair operator()() = 0; + }; + + // Override the default logging system. The provided adapter destruction is + // handled by this class (don't delete it). + static void SetLoggerAdapter(LoggerAdapter* logger_adapter); + + friend bool ConvertFromTelephoneNumberProto( + const TelephoneNumber& proto_to_convert, + PhoneNumber* new_proto); + friend bool ConvertToTelephoneNumberProto(const PhoneNumber& proto_to_convert, + TelephoneNumber* resulting_proto); + + protected: + // Check whether the country_calling_code is from a country whose national + // significant number could contain a leading zero. An example of such a + // country is Italy. + bool IsLeadingZeroPossible(int country_calling_code) const; + + private: + typedef pair*> IntRegionsPair; + + // The minimum and maximum length of the national significant number. + static const size_t kMinLengthForNsn = 3; + static const size_t kMaxLengthForNsn = 15; + + // A mapping from a country calling code to a region code which denotes the + // region represented by that country calling code. Note countries under + // NANPA share the country calling code 1 and Russia and Kazakhstan share the + // country calling code 7. Under this map, 1 is mapped to region code "US" and + // 7 is mapped to region code "RU". This is implemented as a sorted vector to + // achieve better performance. + // + // Region codes are ISO 3166-1 two-letter country code strings. + scoped_ptr > country_calling_code_to_region_code_map_; + + struct CompareFirst { + bool operator()(const IntRegionsPair& p1, + const IntRegionsPair& p2) const { + return p1.first < p2.first; + } + }; + + // The set of regions that share country calling code 1. + scoped_ptr > nanpa_regions_; + static const int kNanpaCountryCode = 1; + + // A mapping from a region code to a PhoneMetadata for that region. + // Region codes are ISO 3166-1 two-letter country code strings. + scoped_ptr > region_to_metadata_map_; + + bool LoadMetadata(PhoneMetadataCollection* metadata, + MetadataProvider& provider); + + explicit PhoneNumberUtil(MetadataProvider* provider = 0); + ~PhoneNumberUtil(); + + // Gets all the supported regions. + void GetSupportedRegions(set* regions) const; + + // Returns the national dialling prefix for a specific region. For example, + // this would be 1 for the United States, and 0 for New Zealand. Set + // stripNonDigits to true to strip symbols like "~" (which indicates a wait + // for a dialling tone) from the prefix returned. If no national prefix is + // present, we return an empty string. + // + // Set strip_non_digits to true to strip non-digits from the national + // dialling prefix. + void GetNddPrefixForRegion(const string& region_code, + bool strip_non_digits, + string* national_prefix) const; + + // Helper function to check region code is not unknown or null. + // + // The region_code parameter is an ISO 3166-1 two-letter country code string. + bool IsValidRegionCode(const string& region_code) const; + + // Helper function to check region code is not unknown. The + // country_calling_code and number supplied is used only for the resultant log + // message. + // + // The region_code parameter is an ISO 3166-1 two-letter country code string. + bool HasValidRegionCode(const string& region_code, + int country_code, + const string& number) const; + + // The region_code parameter is an ISO 3166-1 two-letter country code string. + const i18n::phonenumbers::PhoneMetadata* GetMetadataForRegion( + const string& region_code) const; + + void GetRegionCodesForCountryCallingCode( + int country_calling_code, + list* region_codes) const; + + // Simple wrapper of FormatNationalNumberWithCarrier for the common case of + // no carrier code. + // + // The region_code parameter is an ISO 3166-1 two-letter country code string. + void FormatNationalNumber(const string& number, + const string& region_code, + PhoneNumberFormat number_format, + string* formatted_number) const; + + // The region_code parameter is an ISO 3166-1 two-letter country code string. + void FormatNationalNumberWithCarrier(const string& number, + const string& region_code, + PhoneNumberFormat number_format, + const string& carrier_code, + string* formatted_number) const; + + // The region_code parameter is an ISO 3166-1 two-letter country code string. + void MaybeGetFormattedExtension( + const PhoneNumber& number, + const string& region_code, + PhoneNumberFormat number_format, + string* extension) const; + + // The region_code parameter is an ISO 3166-1 two-letter country code string. + void FormatExtension(const string& extension_digits, + const string& region_code, + string* extension) const; + + void GetRegionCodeForNumberFromRegionList( + const PhoneNumber& number, + const list& region_codes, + string* region_code) const; + + void Normalize(string* number) const; + PhoneNumber::CountryCodeSource MaybeStripInternationalPrefixAndNormalize( + const string& possible_idd_prefix, + string* number) const; + + static void MaybeStripNationalPrefixAndCarrierCode( + const PhoneMetadata& metadata, + string* number, + string* carrier_code); + + static void ExtractPossibleNumber(const string& number, + string* extracted_number); + + static bool IsViablePhoneNumber(const string& number); + + static bool MaybeStripExtension(string* number, string* extension); + + int ExtractCountryCode(string* national_number) const; + ErrorType MaybeExtractCountryCode( + const PhoneMetadata* default_region_metadata, + bool keepRawInput, + string* national_number, + PhoneNumber* phone_number) const; + + // The default_region parameter is an ISO 3166-1 two-letter country code + // string. + bool CheckRegionForParsing( + const string& number_to_parse, + const string& default_region) const; + + // The default_region parameter is an ISO 3166-1 two-letter country code + // string. + ErrorType ParseHelper(const string& number_to_parse, + const string& default_region, + bool keep_raw_input, + bool check_region, + PhoneNumber* phone_number) const; + + DISALLOW_COPY_AND_ASSIGN(PhoneNumberUtil); +}; + +} // namespace phonenumbers +} // namespace i18n + +#endif // I18N_PHONENUMBERS_PHONENUMBERUTIL_H_ diff --git a/third_party/libphonenumber/cpp/src/phonenumberutil_test.cc b/third_party/libphonenumber/cpp/src/phonenumberutil_test.cc new file mode 100644 index 0000000..3ef3fa7 --- /dev/null +++ b/third_party/libphonenumber/cpp/src/phonenumberutil_test.cc @@ -0,0 +1,2866 @@ +// Copyright (C) 2009 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Author: Shaopeng Jia +// Author: Lara Rennie +// Open-sourced by: Philippe Liard + +#include +#include +#include + +#include + +#include "phonemetadata.pb.h" +#include "phonenumber.h" +#include "phonenumber.pb.h" +#include "phonenumberutil.h" +#include "regexp_adapter.h" +#include "test_metadata.h" + +namespace i18n { +namespace phonenumbers { + +using std::endl; +using std::make_pair; +using std::ostream; + +using google::protobuf::RepeatedPtrField; + +namespace { + +// Class containing string constants of region codes for easier testing. +class RegionCode { + public: + static const string& AD() { + static const string s = "AD"; + return s; + } + + static const string& AO() { + static const string s = "AO"; + return s; + } + + static const string& AR() { + static const string s = "AR"; + return s; + } + + static const string& AU() { + static const string s = "AU"; + return s; + } + + static const string& BS() { + static const string s = "BS"; + return s; + } + + static const string& CN() { + static const string s = "CN"; + return s; + } + + static const string& CS() { + static const string s = "CS"; + return s; + } + + static const string& DE() { + static const string s = "DE"; + return s; + } + + static const string& GB() { + static const string s = "GB"; + return s; + } + + static const string& IT() { + static const string s = "IT"; + return s; + } + + static const string& KR() { + static const string s = "KR"; + return s; + } + + static const string& MX() { + static const string s = "MX"; + return s; + } + + static const string& NZ() { + static const string s = "NZ"; + return s; + } + + static const string& PL() { + static const string s = "PL"; + return s; + } + + static const string& RE() { + static const string s = "RE"; + return s; + } + + static const string& SG() { + static const string s = "SG"; + return s; + } + + static const string& US() { + static const string s = "US"; + return s; + } + + static const string& YT() { + static const string s = "YT"; + return s; + } + + // Official code for the unknown region. + static const string& ZZ() { + static const string s = "ZZ"; + return s; + } +}; + +} // namespace + +class TestMetadataProvider : public PhoneNumberUtil::MetadataProvider { + public: + virtual ~TestMetadataProvider() {} + + pair operator()() { + return make_pair(test_metadata_get(), test_metadata_size()); + } +}; + +class PhoneNumberUtilTest : public testing::Test { + protected: + PhoneNumberUtilTest() : phone_util_(&provider_) {} + + // Wrapper functions for private functions that we want to test. + const PhoneMetadata* GetPhoneMetadata(const string& region_code) const { + return phone_util_.GetMetadataForRegion(region_code); + } + + void GetSupportedRegions(set* regions) { + phone_util_.GetSupportedRegions(regions); + } + + void ExtractPossibleNumber(const string& number, + string* extracted_number) const { + PhoneNumberUtil::ExtractPossibleNumber(number, extracted_number); + } + + bool IsViablePhoneNumber(const string& number) const { + return PhoneNumberUtil::IsViablePhoneNumber(number); + } + + void Normalize(string* number) const { + phone_util_.Normalize(number); + } + + bool IsLeadingZeroPossible(int country_calling_code) const { + return phone_util_.IsLeadingZeroPossible(country_calling_code); + } + + PhoneNumber::CountryCodeSource MaybeStripInternationalPrefixAndNormalize( + const string& possible_idd_prefix, + string* number) const { + return phone_util_.MaybeStripInternationalPrefixAndNormalize( + possible_idd_prefix, + number); + } + + void MaybeStripNationalPrefixAndCarrierCode(const PhoneMetadata& metadata, + string* number, + string* carrier_code) const { + PhoneNumberUtil::MaybeStripNationalPrefixAndCarrierCode(metadata, number, + carrier_code); + } + + bool MaybeStripExtension(string* number, string* extension) const { + return PhoneNumberUtil::MaybeStripExtension(number, extension); + } + + PhoneNumberUtil::ErrorType MaybeExtractCountryCode( + const PhoneMetadata* default_region_metadata, + bool keep_raw_input, + string* national_number, + PhoneNumber* phone_number) const { + return phone_util_.MaybeExtractCountryCode(default_region_metadata, + keep_raw_input, + national_number, + phone_number); + } + + void GetNddPrefixForRegion(const string& region, + bool strip_non_digits, + string* ndd_prefix) const { + // For testing purposes, we check this is empty first. + ndd_prefix->clear(); + phone_util_.GetNddPrefixForRegion(region, strip_non_digits, ndd_prefix); + } + + static bool Equals(const PhoneNumberDesc& expected_number, + const PhoneNumberDesc& actual_number) { + return ExactlySameAs(expected_number, actual_number); + } + + TestMetadataProvider provider_; + PhoneNumberUtil phone_util_; +}; + +// Provides PhoneNumber comparison operators to support the use of EXPECT_EQ and +// EXPECT_NE in the unittests. +bool operator==(const PhoneNumber& number1, const PhoneNumber& number2) { + return ExactlySameAs(number1, number2); +} + +bool operator!=(const PhoneNumber& number1, const PhoneNumber& number2) { + return !(number1 == number2); +} + +// Needed by Google Test to display errors. +ostream& operator<<(ostream& os, const PhoneNumber& number) { + os << endl + << "country_code: " << number.country_code() << endl + << "national_number: " << number.national_number() << endl; + if (number.has_extension()) { + os << "extension: " << number.extension() << endl; + } + if (number.has_italian_leading_zero()) { + os << "italian_leading_zero: " << number.italian_leading_zero() << endl; + } + if (number.has_raw_input()) { + os << "raw_input: " << number.raw_input() << endl; + } + if (number.has_country_code_source()) { + os << "country_code_source: " << number.country_code_source() << endl; + } + if (number.has_preferred_domestic_carrier_code()) { + os << "preferred_domestic_carrier_code: " + << number.preferred_domestic_carrier_code() << endl; + } + return os; +} + +TEST_F(PhoneNumberUtilTest, GetSupportedRegions) { + set regions; + + GetSupportedRegions(®ions); + EXPECT_GT(regions.size(), 0U); +} + +TEST_F(PhoneNumberUtilTest, GetInstanceLoadUSMetadata) { + const PhoneMetadata* metadata = GetPhoneMetadata(RegionCode::US()); + EXPECT_EQ("US", metadata->id()); + EXPECT_EQ(1, metadata->country_code()); + EXPECT_EQ("011", metadata->international_prefix()); + EXPECT_TRUE(metadata->has_national_prefix()); + ASSERT_EQ(2, metadata->number_format_size()); + EXPECT_EQ("(\\d{3})(\\d{3})(\\d{4})", + metadata->number_format(0).pattern()); + EXPECT_EQ("$1 $2 $3", metadata->number_format(0).format()); + EXPECT_EQ("[13-9]\\d{9}|2[0-35-9]\\d{8}", + metadata->general_desc().national_number_pattern()); + EXPECT_EQ("\\d{7}(?:\\d{3})?", + metadata->general_desc().possible_number_pattern()); + EXPECT_TRUE(Equals(metadata->general_desc(), metadata->fixed_line())); + EXPECT_EQ("\\d{10}", metadata->toll_free().possible_number_pattern()); + EXPECT_EQ("900\\d{7}", metadata->premium_rate().national_number_pattern()); + // No shared-cost data is available, so it should be initialised to "NA". + EXPECT_EQ("NA", metadata->shared_cost().national_number_pattern()); + EXPECT_EQ("NA", metadata->shared_cost().possible_number_pattern()); +} + +TEST_F(PhoneNumberUtilTest, GetInstanceLoadDEMetadata) { + const PhoneMetadata* metadata = GetPhoneMetadata(RegionCode::DE()); + EXPECT_EQ("DE", metadata->id()); + EXPECT_EQ(49, metadata->country_code()); + EXPECT_EQ("00", metadata->international_prefix()); + EXPECT_EQ("0", metadata->national_prefix()); + ASSERT_EQ(6, metadata->number_format_size()); + EXPECT_EQ(1, metadata->number_format(5).leading_digits_pattern_size()); + EXPECT_EQ("900", metadata->number_format(5).leading_digits_pattern(0)); + EXPECT_EQ("(\\d{3})(\\d{3,4})(\\d{4})", + metadata->number_format(5).pattern()); + EXPECT_EQ("$1 $2 $3", metadata->number_format(5).format()); + EXPECT_EQ("(?:[24-6]\\d{2}|3[03-9]\\d|[789](?:[1-9]\\d|0[2-9]))\\d{3,8}", + metadata->fixed_line().national_number_pattern()); + EXPECT_EQ("\\d{2,14}", metadata->fixed_line().possible_number_pattern()); + EXPECT_EQ("30123456", metadata->fixed_line().example_number()); + EXPECT_EQ("\\d{10}", metadata->toll_free().possible_number_pattern()); + EXPECT_EQ("900([135]\\d{6}|9\\d{7})", + metadata->premium_rate().national_number_pattern()); +} + +TEST_F(PhoneNumberUtilTest, GetInstanceLoadARMetadata) { + const PhoneMetadata* metadata = GetPhoneMetadata(RegionCode::AR()); + EXPECT_EQ("AR", metadata->id()); + EXPECT_EQ(54, metadata->country_code()); + EXPECT_EQ("00", metadata->international_prefix()); + EXPECT_EQ("0", metadata->national_prefix()); + EXPECT_EQ("0(?:(11|343|3715)15)?", metadata->national_prefix_for_parsing()); + EXPECT_EQ("9$1", metadata->national_prefix_transform_rule()); + ASSERT_EQ(5, metadata->number_format_size()); + EXPECT_EQ("$1 15 $2-$3", metadata->number_format(2).format()); + EXPECT_EQ("9(\\d{4})(\\d{2})(\\d{4})", metadata->number_format(3).pattern()); + EXPECT_EQ("(9)(\\d{4})(\\d{2})(\\d{4})", + metadata->intl_number_format(3).pattern()); + EXPECT_EQ("$1 $2 $3 $4", metadata->intl_number_format(3).format()); +} + +TEST_F(PhoneNumberUtilTest, GetNationalSignificantNumber) { + PhoneNumber number; + number.set_country_code(1); + number.set_national_number(6502530000ULL); + string national_significant_number; + phone_util_.GetNationalSignificantNumber(number, + &national_significant_number); + EXPECT_EQ("6502530000", national_significant_number); + + // An Italian mobile number. + national_significant_number.clear(); + number.set_country_code(39); + number.set_national_number(312345678ULL); + phone_util_.GetNationalSignificantNumber(number, + &national_significant_number); + EXPECT_EQ("312345678", national_significant_number); + + // An Italian fixed line number. + national_significant_number.clear(); + number.set_country_code(39); + number.set_national_number(236618300ULL); + number.set_italian_leading_zero(true); + phone_util_.GetNationalSignificantNumber(number, + &national_significant_number); + EXPECT_EQ("0236618300", national_significant_number); +} + +TEST_F(PhoneNumberUtilTest, GetExampleNumber) { + PhoneNumber de_number; + de_number.set_country_code(49); + de_number.set_national_number(30123456ULL); + PhoneNumber test_number; + bool success = phone_util_.GetExampleNumber(RegionCode::DE(), &test_number); + EXPECT_TRUE(success); + EXPECT_EQ(de_number, test_number); + success = phone_util_.GetExampleNumberForType(RegionCode::DE(), + PhoneNumberUtil::FIXED_LINE, + &test_number); + EXPECT_TRUE(success); + EXPECT_EQ(de_number, test_number); + test_number.Clear(); + success = phone_util_.GetExampleNumberForType(RegionCode::DE(), + PhoneNumberUtil::MOBILE, + &test_number); + // Here we test that an example number was not returned, and that the number + // passed in was not modified. + EXPECT_FALSE(success); + EXPECT_EQ(PhoneNumber::default_instance(), test_number); + // For the US, the example number is placed under general description, and + // hence should be used for both fixed line and mobile, so neither of these + // should return null. + test_number.Clear(); + success = phone_util_.GetExampleNumberForType(RegionCode::US(), + PhoneNumberUtil::FIXED_LINE, + &test_number); + // Here we test that the call to get an example number succeeded, and that the + // number passed in was modified. + EXPECT_TRUE(success); + EXPECT_NE(PhoneNumber::default_instance(), test_number); + test_number.Clear(); + success = phone_util_.GetExampleNumberForType(RegionCode::US(), + PhoneNumberUtil::MOBILE, + &test_number); + EXPECT_TRUE(success); + EXPECT_NE(PhoneNumber::default_instance(), test_number); +} + +TEST_F(PhoneNumberUtilTest, FormatUSNumber) { + PhoneNumber test_number; + string formatted_number; + test_number.set_country_code(1); + test_number.set_national_number(6502530000ULL); + phone_util_.Format(test_number, PhoneNumberUtil::NATIONAL, &formatted_number); + EXPECT_EQ("650 253 0000", formatted_number); + phone_util_.Format(test_number, PhoneNumberUtil::INTERNATIONAL, + &formatted_number); + EXPECT_EQ("+1 650 253 0000", formatted_number); + + test_number.set_national_number(8002530000ULL); + phone_util_.Format(test_number, PhoneNumberUtil::NATIONAL, &formatted_number); + EXPECT_EQ("800 253 0000", formatted_number); + phone_util_.Format(test_number, PhoneNumberUtil::INTERNATIONAL, + &formatted_number); + EXPECT_EQ("+1 800 253 0000", formatted_number); + + test_number.set_national_number(9002530000ULL); + phone_util_.Format(test_number, PhoneNumberUtil::NATIONAL, &formatted_number); + EXPECT_EQ("900 253 0000", formatted_number); + phone_util_.Format(test_number, PhoneNumberUtil::INTERNATIONAL, + &formatted_number); + EXPECT_EQ("+1 900 253 0000", formatted_number); + phone_util_.Format(test_number, PhoneNumberUtil::RFC3966, &formatted_number); + EXPECT_EQ("+1-900-253-0000", formatted_number); +} + +TEST_F(PhoneNumberUtilTest, FormatBSNumber) { + PhoneNumber test_number; + string formatted_number; + test_number.set_country_code(1); + test_number.set_national_number(2421234567ULL); + phone_util_.Format(test_number, PhoneNumberUtil::NATIONAL, &formatted_number); + EXPECT_EQ("242 123 4567", formatted_number); + phone_util_.Format(test_number, PhoneNumberUtil::INTERNATIONAL, + &formatted_number); + EXPECT_EQ("+1 242 123 4567", formatted_number); + + test_number.set_national_number(8002530000ULL); + phone_util_.Format(test_number, PhoneNumberUtil::NATIONAL, &formatted_number); + EXPECT_EQ("800 253 0000", formatted_number); + phone_util_.Format(test_number, PhoneNumberUtil::INTERNATIONAL, + &formatted_number); + EXPECT_EQ("+1 800 253 0000", formatted_number); + + test_number.set_national_number(9002530000ULL); + phone_util_.Format(test_number, PhoneNumberUtil::NATIONAL, &formatted_number); + EXPECT_EQ("900 253 0000", formatted_number); + phone_util_.Format(test_number, PhoneNumberUtil::INTERNATIONAL, + &formatted_number); + EXPECT_EQ("+1 900 253 0000", formatted_number); +} + +TEST_F(PhoneNumberUtilTest, FormatGBNumber) { + PhoneNumber test_number; + string formatted_number; + test_number.set_country_code(44); + test_number.set_national_number(2087389353ULL); + phone_util_.Format(test_number, PhoneNumberUtil::NATIONAL, &formatted_number); + EXPECT_EQ("(020) 8738 9353", formatted_number); + phone_util_.Format(test_number, PhoneNumberUtil::INTERNATIONAL, + &formatted_number); + EXPECT_EQ("+44 20 8738 9353", formatted_number); + + test_number.set_national_number(7912345678ULL); + phone_util_.Format(test_number, PhoneNumberUtil::NATIONAL, &formatted_number); + EXPECT_EQ("(07912) 345 678", formatted_number); + phone_util_.Format(test_number, PhoneNumberUtil::INTERNATIONAL, + &formatted_number); + EXPECT_EQ("+44 7912 345 678", formatted_number); +} + +TEST_F(PhoneNumberUtilTest, FormatDENumber) { + PhoneNumber test_number; + string formatted_number; + test_number.set_country_code(49); + test_number.set_national_number(301234ULL); + phone_util_.Format(test_number, PhoneNumberUtil::NATIONAL, &formatted_number); + EXPECT_EQ("030/1234", formatted_number); + phone_util_.Format(test_number, PhoneNumberUtil::INTERNATIONAL, + &formatted_number); + EXPECT_EQ("+49 30/1234", formatted_number); + phone_util_.Format(test_number, PhoneNumberUtil::RFC3966, &formatted_number); + EXPECT_EQ("+49-30-1234", formatted_number); + + test_number.set_national_number(291123ULL); + phone_util_.Format(test_number, PhoneNumberUtil::NATIONAL, &formatted_number); + EXPECT_EQ("0291 123", formatted_number); + phone_util_.Format(test_number, PhoneNumberUtil::INTERNATIONAL, + &formatted_number); + EXPECT_EQ("+49 291 123", formatted_number); + + test_number.set_national_number(29112345678ULL); + phone_util_.Format(test_number, PhoneNumberUtil::NATIONAL, &formatted_number); + EXPECT_EQ("0291 12345678", formatted_number); + phone_util_.Format(test_number, PhoneNumberUtil::INTERNATIONAL, + &formatted_number); + EXPECT_EQ("+49 291 12345678", formatted_number); + + test_number.set_national_number(9123123ULL); + phone_util_.Format(test_number, PhoneNumberUtil::NATIONAL, &formatted_number); + EXPECT_EQ("09123 123", formatted_number); + phone_util_.Format(test_number, PhoneNumberUtil::INTERNATIONAL, + &formatted_number); + EXPECT_EQ("+49 9123 123", formatted_number); + + test_number.set_national_number(80212345ULL); + phone_util_.Format(test_number, PhoneNumberUtil::NATIONAL, &formatted_number); + EXPECT_EQ("08021 2345", formatted_number); + phone_util_.Format(test_number, PhoneNumberUtil::INTERNATIONAL, + &formatted_number); + EXPECT_EQ("+49 8021 2345", formatted_number); + + test_number.set_national_number(1234ULL); + // Note this number is correctly formatted without national prefix. Most of + // the numbers that are treated as invalid numbers by the library are short + // numbers, and they are usually not dialed with national prefix. + phone_util_.Format(test_number, PhoneNumberUtil::NATIONAL, &formatted_number); + EXPECT_EQ("1234", formatted_number); + phone_util_.Format(test_number, PhoneNumberUtil::INTERNATIONAL, + &formatted_number); + EXPECT_EQ("+49 1234", formatted_number); +} + +TEST_F(PhoneNumberUtilTest, FormatITNumber) { + PhoneNumber test_number; + string formatted_number; + test_number.set_country_code(39); + test_number.set_national_number(236618300ULL); + test_number.set_italian_leading_zero(true); + phone_util_.Format(test_number, PhoneNumberUtil::NATIONAL, &formatted_number); + EXPECT_EQ("02 3661 8300", formatted_number); + phone_util_.Format(test_number, PhoneNumberUtil::INTERNATIONAL, + &formatted_number); + EXPECT_EQ("+39 02 3661 8300", formatted_number); + phone_util_.Format(test_number, PhoneNumberUtil::E164, + &formatted_number); + EXPECT_EQ("+390236618300", formatted_number); + + test_number.set_national_number(345678901ULL); + test_number.set_italian_leading_zero(false); + phone_util_.Format(test_number, PhoneNumberUtil::NATIONAL, &formatted_number); + EXPECT_EQ("345 678 901", formatted_number); + phone_util_.Format(test_number, PhoneNumberUtil::INTERNATIONAL, + &formatted_number); + EXPECT_EQ("+39 345 678 901", formatted_number); + phone_util_.Format(test_number, PhoneNumberUtil::E164, + &formatted_number); + EXPECT_EQ("+39345678901", formatted_number); +} + +TEST_F(PhoneNumberUtilTest, FormatAUNumber) { + PhoneNumber test_number; + string formatted_number; + test_number.set_country_code(61); + test_number.set_national_number(236618300ULL); + phone_util_.Format(test_number, PhoneNumberUtil::NATIONAL, &formatted_number); + EXPECT_EQ("02 3661 8300", formatted_number); + phone_util_.Format(test_number, PhoneNumberUtil::INTERNATIONAL, + &formatted_number); + EXPECT_EQ("+61 2 3661 8300", formatted_number); + phone_util_.Format(test_number, PhoneNumberUtil::E164, + &formatted_number); + EXPECT_EQ("+61236618300", formatted_number); + + test_number.set_national_number(1800123456ULL); + phone_util_.Format(test_number, PhoneNumberUtil::NATIONAL, &formatted_number); + EXPECT_EQ("1800 123 456", formatted_number); + phone_util_.Format(test_number, PhoneNumberUtil::INTERNATIONAL, + &formatted_number); + EXPECT_EQ("+61 1800 123 456", formatted_number); + phone_util_.Format(test_number, PhoneNumberUtil::E164, + &formatted_number); + EXPECT_EQ("+611800123456", formatted_number); +} + +TEST_F(PhoneNumberUtilTest, FormatARNumber) { + PhoneNumber test_number; + string formatted_number; + test_number.set_country_code(54); + test_number.set_national_number(1187654321ULL); + phone_util_.Format(test_number, PhoneNumberUtil::NATIONAL, &formatted_number); + EXPECT_EQ("011 8765-4321", formatted_number); + phone_util_.Format(test_number, PhoneNumberUtil::INTERNATIONAL, + &formatted_number); + EXPECT_EQ("+54 11 8765-4321", formatted_number); + phone_util_.Format(test_number, PhoneNumberUtil::E164, + &formatted_number); + EXPECT_EQ("+541187654321", formatted_number); + + test_number.set_national_number(91187654321ULL); + phone_util_.Format(test_number, PhoneNumberUtil::NATIONAL, &formatted_number); + EXPECT_EQ("011 15 8765-4321", formatted_number); + phone_util_.Format(test_number, PhoneNumberUtil::INTERNATIONAL, + &formatted_number); + EXPECT_EQ("+54 9 11 8765 4321", formatted_number); + phone_util_.Format(test_number, PhoneNumberUtil::E164, + &formatted_number); + EXPECT_EQ("+5491187654321", formatted_number); +} + +TEST_F(PhoneNumberUtilTest, FormatOutOfCountryCallingNumber) { + PhoneNumber test_number; + string formatted_number; + test_number.set_country_code(1); + test_number.set_national_number(9002530000ULL); + phone_util_.FormatOutOfCountryCallingNumber(test_number, RegionCode::DE(), + &formatted_number); + EXPECT_EQ("00 1 900 253 0000", formatted_number); + + test_number.set_national_number(6502530000ULL); + phone_util_.FormatOutOfCountryCallingNumber(test_number, RegionCode::BS(), + &formatted_number); + EXPECT_EQ("1 650 253 0000", formatted_number); + phone_util_.FormatOutOfCountryCallingNumber(test_number, RegionCode::PL(), + &formatted_number); + EXPECT_EQ("0~0 1 650 253 0000", formatted_number); + + test_number.set_country_code(44); + test_number.set_national_number(7912345678ULL); + phone_util_.FormatOutOfCountryCallingNumber(test_number, RegionCode::US(), + &formatted_number); + EXPECT_EQ("011 44 7912 345 678", formatted_number); + + test_number.set_country_code(49); + test_number.set_national_number(1234ULL); + phone_util_.FormatOutOfCountryCallingNumber(test_number, RegionCode::GB(), + &formatted_number); + EXPECT_EQ("00 49 1234", formatted_number); + // Note this number is correctly formatted without national prefix. Most of + // the numbers that are treated as invalid numbers by the library are short + // numbers, and they are usually not dialed with national prefix. + phone_util_.FormatOutOfCountryCallingNumber(test_number, RegionCode::DE(), + &formatted_number); + EXPECT_EQ("1234", formatted_number); + + test_number.set_country_code(39); + test_number.set_national_number(236618300ULL); + test_number.set_italian_leading_zero(true); + phone_util_.FormatOutOfCountryCallingNumber(test_number, RegionCode::US(), + &formatted_number); + EXPECT_EQ("011 39 02 3661 8300", formatted_number); + phone_util_.FormatOutOfCountryCallingNumber(test_number, RegionCode::IT(), + &formatted_number); + EXPECT_EQ("02 3661 8300", formatted_number); + phone_util_.FormatOutOfCountryCallingNumber(test_number, RegionCode::SG(), + &formatted_number); + EXPECT_EQ("+39 02 3661 8300", formatted_number); + + test_number.set_country_code(65); + test_number.set_national_number(94777892ULL); + test_number.set_italian_leading_zero(false); + phone_util_.FormatOutOfCountryCallingNumber(test_number, RegionCode::SG(), + &formatted_number); + EXPECT_EQ("9477 7892", formatted_number); + + test_number.set_country_code(54); + test_number.set_national_number(91187654321ULL); + phone_util_.FormatOutOfCountryCallingNumber(test_number, RegionCode::US(), + &formatted_number); + EXPECT_EQ("011 54 9 11 8765 4321", formatted_number); + + test_number.set_extension("1234"); + phone_util_.FormatOutOfCountryCallingNumber(test_number, RegionCode::US(), + &formatted_number); + EXPECT_EQ("011 54 9 11 8765 4321 ext. 1234", formatted_number); + phone_util_.FormatOutOfCountryCallingNumber(test_number, RegionCode::AU(), + &formatted_number); + EXPECT_EQ("0011 54 9 11 8765 4321 ext. 1234", formatted_number); + phone_util_.FormatOutOfCountryCallingNumber(test_number, RegionCode::AR(), + &formatted_number); + EXPECT_EQ("011 15 8765-4321 ext. 1234", formatted_number); +} + +TEST_F(PhoneNumberUtilTest, FormatOutOfCountryWithPreferredIntlPrefix) { + PhoneNumber test_number; + string formatted_number; + test_number.set_country_code(39); + test_number.set_national_number(236618300ULL); + test_number.set_italian_leading_zero(true); + // This should use 0011, since that is the preferred international prefix + // (both 0011 and 0012 are accepted as possible international prefixes in our + // test metadta.) + phone_util_.FormatOutOfCountryCallingNumber(test_number, RegionCode::AU(), + &formatted_number); + EXPECT_EQ("0011 39 02 3661 8300", formatted_number); +} + +TEST_F(PhoneNumberUtilTest, FormatOutOfCountryKeepingAlphaChars) { + PhoneNumber alpha_numeric_number; + string formatted_number; + alpha_numeric_number.set_country_code(1); + alpha_numeric_number.set_national_number(8007493524ULL); + alpha_numeric_number.set_raw_input("1800 six-flag"); + phone_util_.FormatOutOfCountryKeepingAlphaChars(alpha_numeric_number, + RegionCode::AU(), + &formatted_number); + EXPECT_EQ("0011 1 800 SIX-FLAG", formatted_number); + + formatted_number.clear(); + alpha_numeric_number.set_raw_input("1-800-SIX-flag"); + phone_util_.FormatOutOfCountryKeepingAlphaChars(alpha_numeric_number, + RegionCode::AU(), + &formatted_number); + EXPECT_EQ("0011 1 800-SIX-FLAG", formatted_number); + + formatted_number.clear(); + alpha_numeric_number.set_raw_input("Call us from UK: 00 1 800 SIX-flag"); + phone_util_.FormatOutOfCountryKeepingAlphaChars(alpha_numeric_number, + RegionCode::AU(), + &formatted_number); + EXPECT_EQ("0011 1 800 SIX-FLAG", formatted_number); + + formatted_number.clear(); + alpha_numeric_number.set_raw_input("800 SIX-flag"); + phone_util_.FormatOutOfCountryKeepingAlphaChars(alpha_numeric_number, + RegionCode::AU(), + &formatted_number); + EXPECT_EQ("0011 1 800 SIX-FLAG", formatted_number); + + // Formatting from within the NANPA region. + formatted_number.clear(); + phone_util_.FormatOutOfCountryKeepingAlphaChars(alpha_numeric_number, + RegionCode::US(), + &formatted_number); + EXPECT_EQ("1 800 SIX-FLAG", formatted_number); + formatted_number.clear(); + phone_util_.FormatOutOfCountryKeepingAlphaChars(alpha_numeric_number, + RegionCode::BS(), + &formatted_number); + EXPECT_EQ("1 800 SIX-FLAG", formatted_number); + + // Testing that if the raw input doesn't exist, it is formatted using + // FormatOutOfCountryCallingNumber. + alpha_numeric_number.clear_raw_input(); + formatted_number.clear(); + phone_util_.FormatOutOfCountryKeepingAlphaChars(alpha_numeric_number, + RegionCode::DE(), + &formatted_number); + EXPECT_EQ("00 1 800 749 3524", formatted_number); + + // Testing AU alpha number formatted from Australia. + alpha_numeric_number.set_country_code(61); + alpha_numeric_number.set_national_number(827493524ULL); + alpha_numeric_number.set_raw_input("+61 82749-FLAG"); + formatted_number.clear(); + phone_util_.FormatOutOfCountryKeepingAlphaChars(alpha_numeric_number, + RegionCode::AU(), + &formatted_number); + // This number should have the national prefix prefixed. + EXPECT_EQ("082749-FLAG", formatted_number); + + alpha_numeric_number.set_raw_input("082749-FLAG"); + formatted_number.clear(); + phone_util_.FormatOutOfCountryKeepingAlphaChars(alpha_numeric_number, + RegionCode::AU(), + &formatted_number); + EXPECT_EQ("082749-FLAG", formatted_number); + + alpha_numeric_number.set_national_number(18007493524ULL); + alpha_numeric_number.set_raw_input("1-800-SIX-flag"); + formatted_number.clear(); + phone_util_.FormatOutOfCountryKeepingAlphaChars(alpha_numeric_number, + RegionCode::AU(), + &formatted_number); + // This number should not have the national prefix prefixed, in accordance + // with the override for this specific formatting rule. + EXPECT_EQ("1-800-SIX-FLAG", formatted_number); + // The metadata should not be permanently changed, since we copied it before + // modifying patterns. Here we check this. + formatted_number.clear(); + alpha_numeric_number.set_national_number(1800749352ULL); + phone_util_.FormatOutOfCountryCallingNumber(alpha_numeric_number, + RegionCode::AU(), + &formatted_number); + EXPECT_EQ("1800 749 352", formatted_number); + + // Testing a country with multiple international prefixes. + formatted_number.clear(); + phone_util_.FormatOutOfCountryKeepingAlphaChars(alpha_numeric_number, + RegionCode::SG(), + &formatted_number); + EXPECT_EQ("+61 1-800-SIX-FLAG", formatted_number); + + // Testing the case with an invalid country code. + formatted_number.clear(); + alpha_numeric_number.set_country_code(0); + alpha_numeric_number.set_national_number(18007493524ULL); + alpha_numeric_number.set_raw_input("1-800-SIX-flag"); + phone_util_.FormatOutOfCountryKeepingAlphaChars(alpha_numeric_number, + RegionCode::DE(), + &formatted_number); + // Uses the raw input only. + EXPECT_EQ("1-800-SIX-flag", formatted_number); + + // Testing the case of an invalid alpha number. + formatted_number.clear(); + alpha_numeric_number.set_country_code(1); + alpha_numeric_number.set_national_number(80749ULL); + alpha_numeric_number.set_raw_input("180-SIX"); + phone_util_.FormatOutOfCountryKeepingAlphaChars(alpha_numeric_number, + RegionCode::DE(), + &formatted_number); + // No country-code stripping can be done. + EXPECT_EQ("00 1 180-SIX", formatted_number); +} + +TEST_F(PhoneNumberUtilTest, FormatWithCarrierCode) { + // We only support this for AR in our test metadata. + PhoneNumber ar_number; + string formatted_number; + ar_number.set_country_code(54); + ar_number.set_national_number(91234125678ULL); + phone_util_.Format(ar_number, PhoneNumberUtil::NATIONAL, &formatted_number); + EXPECT_EQ("01234 12-5678", formatted_number); + // Test formatting with a carrier code. + phone_util_.FormatNationalNumberWithCarrierCode(ar_number, "15", + &formatted_number); + EXPECT_EQ("01234 15 12-5678", formatted_number); + phone_util_.FormatNationalNumberWithCarrierCode(ar_number, "", + &formatted_number); + EXPECT_EQ("01234 12-5678", formatted_number); + // Here the international rule is used, so no carrier code should be present. + phone_util_.Format(ar_number, PhoneNumberUtil::E164, &formatted_number); + EXPECT_EQ("+5491234125678", formatted_number); + // We don't support this for the US so there should be no change. + PhoneNumber us_number; + us_number.set_country_code(1); + us_number.set_national_number(4241231234ULL); + phone_util_.Format(us_number, PhoneNumberUtil::NATIONAL, &formatted_number); + EXPECT_EQ("424 123 1234", formatted_number); + phone_util_.FormatNationalNumberWithCarrierCode(us_number, "15", + &formatted_number); + EXPECT_EQ("424 123 1234", formatted_number); +} + +TEST_F(PhoneNumberUtilTest, FormatWithPreferredCarrierCode) { + // We only support this for AR in our test metadata. + PhoneNumber ar_number; + string formatted_number; + ar_number.set_country_code(54); + ar_number.set_national_number(91234125678ULL); + // Test formatting with no preferred carrier code stored in the number itself. + phone_util_.FormatNationalNumberWithPreferredCarrierCode(ar_number, "15", + &formatted_number); + EXPECT_EQ("01234 15 12-5678", formatted_number); + phone_util_.FormatNationalNumberWithPreferredCarrierCode(ar_number, "", + &formatted_number); + EXPECT_EQ("01234 12-5678", formatted_number); + // Test formatting with preferred carrier code present. + ar_number.set_preferred_domestic_carrier_code("19"); + phone_util_.Format(ar_number, PhoneNumberUtil::NATIONAL, &formatted_number); + EXPECT_EQ("01234 12-5678", formatted_number); + phone_util_.FormatNationalNumberWithPreferredCarrierCode(ar_number, "15", + &formatted_number); + EXPECT_EQ("01234 19 12-5678", formatted_number); + phone_util_.FormatNationalNumberWithPreferredCarrierCode(ar_number, "", + &formatted_number); + EXPECT_EQ("01234 19 12-5678", formatted_number); + // When the preferred_domestic_carrier_code is present (even when it contains + // an empty string), use it instead of the default carrier code passed in. + ar_number.set_preferred_domestic_carrier_code(""); + phone_util_.FormatNationalNumberWithPreferredCarrierCode(ar_number, "15", + &formatted_number); + EXPECT_EQ("01234 12-5678", formatted_number); + // We don't support this for the US so there should be no change. + PhoneNumber us_number; + us_number.set_country_code(1); + us_number.set_national_number(4241231234ULL); + us_number.set_preferred_domestic_carrier_code("99"); + phone_util_.Format(us_number, PhoneNumberUtil::NATIONAL, &formatted_number); + EXPECT_EQ("424 123 1234", formatted_number); + phone_util_.FormatNationalNumberWithPreferredCarrierCode(us_number, "15", + &formatted_number); + EXPECT_EQ("424 123 1234", formatted_number); +} + +TEST_F(PhoneNumberUtilTest, FormatByPattern) { + PhoneNumber test_number; + string formatted_number; + test_number.set_country_code(1); + test_number.set_national_number(6502530000ULL); + + RepeatedPtrField number_formats; + NumberFormat* number_format = number_formats.Add(); + number_format->set_pattern("(\\d{3})(\\d{3})(\\d{4})"); + number_format->set_format("($1) $2-$3"); + phone_util_.FormatByPattern(test_number, PhoneNumberUtil::NATIONAL, + number_formats, + &formatted_number); + EXPECT_EQ("(650) 253-0000", formatted_number); + phone_util_.FormatByPattern(test_number, PhoneNumberUtil::INTERNATIONAL, + number_formats, + &formatted_number); + EXPECT_EQ("+1 (650) 253-0000", formatted_number); + + // $NP is set to '1' for the US. Here we check that for other NANPA countries + // the US rules are followed. + number_format->set_national_prefix_formatting_rule("$NP ($FG)"); + number_format->set_format("$1 $2-$3"); + test_number.set_country_code(1); + test_number.set_national_number(4168819999ULL); + phone_util_.FormatByPattern(test_number, PhoneNumberUtil::NATIONAL, + number_formats, + &formatted_number); + EXPECT_EQ("1 (416) 881-9999", formatted_number); + phone_util_.FormatByPattern(test_number, PhoneNumberUtil::INTERNATIONAL, + number_formats, + &formatted_number); + EXPECT_EQ("+1 416 881-9999", formatted_number); + + test_number.set_country_code(39); + test_number.set_national_number(236618300ULL); + test_number.set_italian_leading_zero(true); + number_format->set_pattern("(\\d{2})(\\d{5})(\\d{3})"); + number_format->set_format("$1-$2 $3"); + phone_util_.FormatByPattern(test_number, PhoneNumberUtil::NATIONAL, + number_formats, + &formatted_number); + EXPECT_EQ("02-36618 300", formatted_number); + phone_util_.FormatByPattern(test_number, PhoneNumberUtil::INTERNATIONAL, + number_formats, + &formatted_number); + EXPECT_EQ("+39 02-36618 300", formatted_number); + + test_number.set_country_code(44); + test_number.set_national_number(2012345678ULL); + test_number.set_italian_leading_zero(false); + number_format->set_national_prefix_formatting_rule("$NP$FG"); + number_format->set_pattern("(\\d{2})(\\d{4})(\\d{4})"); + number_format->set_format("$1 $2 $3"); + phone_util_.FormatByPattern(test_number, PhoneNumberUtil::NATIONAL, + number_formats, + &formatted_number); + EXPECT_EQ("020 1234 5678", formatted_number); + + number_format->set_national_prefix_formatting_rule("($NP$FG)"); + phone_util_.FormatByPattern(test_number, PhoneNumberUtil::NATIONAL, + number_formats, + &formatted_number); + EXPECT_EQ("(020) 1234 5678", formatted_number); + number_format->set_national_prefix_formatting_rule(""); + phone_util_.FormatByPattern(test_number, PhoneNumberUtil::NATIONAL, + number_formats, + &formatted_number); + EXPECT_EQ("20 1234 5678", formatted_number); + number_format->set_national_prefix_formatting_rule(""); + phone_util_.FormatByPattern(test_number, PhoneNumberUtil::INTERNATIONAL, + number_formats, + &formatted_number); + EXPECT_EQ("+44 20 1234 5678", formatted_number); +} + +TEST_F(PhoneNumberUtilTest, FormatE164Number) { + PhoneNumber test_number; + string formatted_number; + test_number.set_country_code(1); + test_number.set_national_number(6502530000ULL); + phone_util_.Format(test_number, PhoneNumberUtil::E164, &formatted_number); + EXPECT_EQ("+16502530000", formatted_number); + + test_number.set_country_code(49); + test_number.set_national_number(301234ULL); + phone_util_.Format(test_number, PhoneNumberUtil::E164, &formatted_number); + EXPECT_EQ("+49301234", formatted_number); +} + +TEST_F(PhoneNumberUtilTest, FormatNumberWithExtension) { + PhoneNumber nz_number; + nz_number.set_country_code(64); + nz_number.set_national_number(33316005ULL); + nz_number.set_extension("1234"); + string formatted_number; + // Uses default extension prefix: + phone_util_.Format(nz_number, PhoneNumberUtil::NATIONAL, &formatted_number); + EXPECT_EQ("03-331 6005 ext. 1234", formatted_number); + // Uses RFC 3966 syntax. + phone_util_.Format(nz_number, PhoneNumberUtil::RFC3966, &formatted_number); + EXPECT_EQ("+64-3-331-6005;ext=1234", formatted_number); + // Extension prefix overridden in the territory information for the US: + PhoneNumber us_number_with_extension; + us_number_with_extension.set_country_code(1); + us_number_with_extension.set_national_number(6502530000ULL); + us_number_with_extension.set_extension("4567"); + phone_util_.Format(us_number_with_extension, + PhoneNumberUtil::NATIONAL, &formatted_number); + EXPECT_EQ("650 253 0000 extn. 4567", formatted_number); +} + +TEST_F(PhoneNumberUtilTest, GetLengthOfGeographicalAreaCode) { + PhoneNumber number; + // Google MTV, which has area code "650". + number.set_country_code(1); + number.set_national_number(6502530000ULL); + EXPECT_EQ(3, phone_util_.GetLengthOfGeographicalAreaCode(number)); + + // A North America toll-free number, which has no area code. + number.set_country_code(1); + number.set_national_number(8002530000ULL); + EXPECT_EQ(0, phone_util_.GetLengthOfGeographicalAreaCode(number)); + + // An invalid US number (1 digit shorter), which has no area code. + number.set_country_code(1); + number.set_national_number(650253000ULL); + EXPECT_EQ(0, phone_util_.GetLengthOfGeographicalAreaCode(number)); + + // Google London, which has area code "20". + number.set_country_code(44); + number.set_national_number(2070313000ULL); + EXPECT_EQ(2, phone_util_.GetLengthOfGeographicalAreaCode(number)); + + // A UK mobile phone, which has no area code. + number.set_country_code(44); + number.set_national_number(7123456789ULL); + EXPECT_EQ(0, phone_util_.GetLengthOfGeographicalAreaCode(number)); + + // Google Buenos Aires, which has area code "11". + number.set_country_code(54); + number.set_national_number(1155303000ULL); + EXPECT_EQ(2, phone_util_.GetLengthOfGeographicalAreaCode(number)); + + // Google Sydney, which has area code "2". + number.set_country_code(61); + number.set_national_number(293744000ULL); + EXPECT_EQ(1, phone_util_.GetLengthOfGeographicalAreaCode(number)); + + // Google Singapore. Singapore has no area code and no national prefix. + number.set_country_code(65); + number.set_national_number(65218000ULL); + EXPECT_EQ(0, phone_util_.GetLengthOfGeographicalAreaCode(number)); +} + +TEST_F(PhoneNumberUtilTest, GetLengthOfNationalDestinationCode) { + PhoneNumber number; + // Google MTV, which has national destination code (NDC) "650". + number.set_country_code(1); + number.set_national_number(6502530000ULL); + EXPECT_EQ(3, phone_util_.GetLengthOfNationalDestinationCode(number)); + + // A North America toll-free number, which has NDC "800". + number.set_country_code(1); + number.set_national_number(8002530000ULL); + EXPECT_EQ(3, phone_util_.GetLengthOfNationalDestinationCode(number)); + + // Google London, which has NDC "20". + number.set_country_code(44); + number.set_national_number(2070313000ULL); + EXPECT_EQ(2, phone_util_.GetLengthOfNationalDestinationCode(number)); + + // A UK mobile phone, which has NDC "7123" + number.set_country_code(44); + number.set_national_number(7123456789ULL); + EXPECT_EQ(4, phone_util_.GetLengthOfNationalDestinationCode(number)); + + // Google Buenos Aires, which has NDC "11". + number.set_country_code(54); + number.set_national_number(1155303000ULL); + EXPECT_EQ(2, phone_util_.GetLengthOfNationalDestinationCode(number)); + + // Google Sydney, which has NDC "2". + number.set_country_code(61); + number.set_national_number(293744000ULL); + EXPECT_EQ(1, phone_util_.GetLengthOfNationalDestinationCode(number)); + + // Google Singapore. Singapore has NDC "6521". + number.set_country_code(65); + number.set_national_number(65218000ULL); + EXPECT_EQ(4, phone_util_.GetLengthOfNationalDestinationCode(number)); + + // An invalid US number (1 digit shorter), which has no NDC. + number.set_country_code(1); + number.set_national_number(650253000ULL); + EXPECT_EQ(0, phone_util_.GetLengthOfNationalDestinationCode(number)); + + // A number containing an invalid country code, which shouldn't have any NDC. + number.set_country_code(123); + number.set_national_number(650253000ULL); + EXPECT_EQ(0, phone_util_.GetLengthOfNationalDestinationCode(number)); + + // A number that has only one group of digits after country code when + // formatted in the international format. + number.set_country_code(376); + number.set_national_number(12345ULL); + EXPECT_EQ(0, phone_util_.GetLengthOfNationalDestinationCode(number)); + + // The same number above, but with an extension. + number.set_country_code(376); + number.set_national_number(12345ULL); + number.set_extension("321"); + EXPECT_EQ(0, phone_util_.GetLengthOfNationalDestinationCode(number)); +} + +TEST_F(PhoneNumberUtilTest, ExtractPossibleNumber) { + // Removes preceding funky punctuation and letters but leaves the rest + // untouched. + string extracted_number; + ExtractPossibleNumber("Tel:0800-345-600", &extracted_number); + EXPECT_EQ("0800-345-600", extracted_number); + ExtractPossibleNumber("Tel:0800 FOR PIZZA", &extracted_number); + EXPECT_EQ("0800 FOR PIZZA", extracted_number); + + // Should not remove plus sign. + ExtractPossibleNumber("Tel:+800-345-600", &extracted_number); + EXPECT_EQ("+800-345-600", extracted_number); + // Should recognise wide digits as possible start values. + ExtractPossibleNumber("023", &extracted_number); + EXPECT_EQ("023", extracted_number); + // Dashes are not possible start values and should be removed. + ExtractPossibleNumber("Num-123", &extracted_number); + EXPECT_EQ("123", extracted_number); + // If not possible number present, return empty string. + ExtractPossibleNumber("Num-....", &extracted_number); + EXPECT_EQ("", extracted_number); + // Leading brackets are stripped - these are not used when parsing. + ExtractPossibleNumber("(650) 253-0000", &extracted_number); + EXPECT_EQ("650) 253-0000", extracted_number); + + // Trailing non-alpha-numeric characters should be removed. + ExtractPossibleNumber("(650) 253-0000..- ..", &extracted_number); + EXPECT_EQ("650) 253-0000", extracted_number); + ExtractPossibleNumber("(650) 253-0000.", &extracted_number); + EXPECT_EQ("650) 253-0000", extracted_number); + // This case has a trailing RTL char. + ExtractPossibleNumber("(650) 253-0000‏", &extracted_number); + EXPECT_EQ("650) 253-0000", extracted_number); +} + +TEST_F(PhoneNumberUtilTest, IsNANPACountry) { + EXPECT_TRUE(phone_util_.IsNANPACountry(RegionCode::US())); + EXPECT_TRUE(phone_util_.IsNANPACountry(RegionCode::BS())); +} + +TEST_F(PhoneNumberUtilTest, IsValidNumber) { + PhoneNumber us_number; + us_number.set_country_code(1); + us_number.set_national_number(6502530000ULL); + EXPECT_TRUE(phone_util_.IsValidNumber(us_number)); + + PhoneNumber it_number; + it_number.set_country_code(39); + it_number.set_national_number(236618300ULL); + it_number.set_italian_leading_zero(true); + EXPECT_TRUE(phone_util_.IsValidNumber(it_number)); + + PhoneNumber gb_number; + gb_number.set_country_code(44); + gb_number.set_national_number(7912345678ULL); + EXPECT_TRUE(phone_util_.IsValidNumber(gb_number)); + + PhoneNumber nz_number; + nz_number.set_country_code(64); + nz_number.set_national_number(21387835ULL); + EXPECT_TRUE(phone_util_.IsValidNumber(nz_number)); +} + +TEST_F(PhoneNumberUtilTest, IsValidForRegion) { + // This number is valid for the Bahamas, but is not a valid US number. + PhoneNumber bs_number; + bs_number.set_country_code(1); + bs_number.set_national_number(2423232345ULL); + EXPECT_TRUE(phone_util_.IsValidNumber(bs_number)); + EXPECT_TRUE(phone_util_.IsValidNumberForRegion(bs_number, RegionCode::BS())); + EXPECT_FALSE(phone_util_.IsValidNumberForRegion(bs_number, RegionCode::US())); + bs_number.set_national_number(2421232345ULL); + // This number is no longer valid. + EXPECT_FALSE(phone_util_.IsValidNumber(bs_number)); + + // La Mayotte and Réunion use 'leadingDigits' to differentiate them. + PhoneNumber re_number; + re_number.set_country_code(262); + re_number.set_national_number(262123456ULL); + EXPECT_TRUE(phone_util_.IsValidNumber(re_number)); + EXPECT_TRUE(phone_util_.IsValidNumberForRegion(re_number, RegionCode::RE())); + EXPECT_FALSE(phone_util_.IsValidNumberForRegion(re_number, RegionCode::YT())); + // Now change the number to be a number for La Mayotte. + re_number.set_national_number(269601234ULL); + EXPECT_TRUE(phone_util_.IsValidNumberForRegion(re_number, RegionCode::YT())); + EXPECT_FALSE(phone_util_.IsValidNumberForRegion(re_number, RegionCode::RE())); + // This number is no longer valid. + re_number.set_national_number(269123456ULL); + EXPECT_FALSE(phone_util_.IsValidNumberForRegion(re_number, RegionCode::YT())); + EXPECT_FALSE(phone_util_.IsValidNumberForRegion(re_number, RegionCode::RE())); + EXPECT_FALSE(phone_util_.IsValidNumber(re_number)); + // However, it should be recognised as from La Mayotte. + string region_code; + phone_util_.GetRegionCodeForNumber(re_number, ®ion_code); + EXPECT_EQ("YT", region_code); + // This number is valid in both places. + re_number.set_national_number(800123456ULL); + EXPECT_TRUE(phone_util_.IsValidNumberForRegion(re_number, RegionCode::YT())); + EXPECT_TRUE(phone_util_.IsValidNumberForRegion(re_number, RegionCode::RE())); +} + +TEST_F(PhoneNumberUtilTest, IsNotValidNumber) { + PhoneNumber us_number; + us_number.set_country_code(1); + us_number.set_national_number(2530000ULL); + EXPECT_FALSE(phone_util_.IsValidNumber(us_number)); + + PhoneNumber it_number; + it_number.set_country_code(39); + it_number.set_national_number(23661830000ULL); + it_number.set_italian_leading_zero(true); + EXPECT_FALSE(phone_util_.IsValidNumber(it_number)); + + PhoneNumber gb_number; + gb_number.set_country_code(44); + gb_number.set_national_number(791234567ULL); + EXPECT_FALSE(phone_util_.IsValidNumber(gb_number)); + + PhoneNumber de_number; + de_number.set_country_code(49); + de_number.set_national_number(1234ULL); + EXPECT_FALSE(phone_util_.IsValidNumber(de_number)); + + PhoneNumber nz_number; + nz_number.set_country_code(64); + nz_number.set_national_number(3316005ULL); + EXPECT_FALSE(phone_util_.IsValidNumber(nz_number)); +} + +TEST_F(PhoneNumberUtilTest, IsPossibleNumber) { + PhoneNumber number; + number.set_country_code(1); + number.set_national_number(6502530000ULL); + EXPECT_TRUE(phone_util_.IsPossibleNumber(number)); + + number.set_country_code(1); + number.set_national_number(2530000ULL); + EXPECT_TRUE(phone_util_.IsPossibleNumber(number)); + + number.set_country_code(44); + number.set_national_number(2070313000ULL); + EXPECT_TRUE(phone_util_.IsPossibleNumber(number)); + + EXPECT_TRUE(phone_util_.IsPossibleNumberForString("+1 650 253 0000", + RegionCode::US())); + EXPECT_TRUE(phone_util_.IsPossibleNumberForString("+1 650 GOO OGLE", + RegionCode::US())); + EXPECT_TRUE(phone_util_.IsPossibleNumberForString("(650) 253-0000", + RegionCode::US())); + EXPECT_TRUE(phone_util_.IsPossibleNumberForString("253-0000", + RegionCode::US())); + EXPECT_TRUE(phone_util_.IsPossibleNumberForString("+1 650 253 0000", + RegionCode::GB())); + EXPECT_TRUE(phone_util_.IsPossibleNumberForString("+44 20 7031 3000", + RegionCode::GB())); + EXPECT_TRUE(phone_util_.IsPossibleNumberForString("(020) 7031 3000", + RegionCode::GB())); + EXPECT_TRUE(phone_util_.IsPossibleNumberForString("7031 3000", + RegionCode::GB())); + EXPECT_TRUE(phone_util_.IsPossibleNumberForString("3331 6005", + RegionCode::NZ())); +} + +TEST_F(PhoneNumberUtilTest, IsPossibleNumberWithReason) { + // FYI, national numbers for country code +1 that are within 7 to 10 digits + // are possible. + PhoneNumber number; + number.set_country_code(1); + number.set_national_number(6502530000ULL); + EXPECT_EQ(PhoneNumberUtil::IS_POSSIBLE, + phone_util_.IsPossibleNumberWithReason(number)); + + number.set_country_code(1); + number.set_national_number(2530000ULL); + EXPECT_EQ(PhoneNumberUtil::IS_POSSIBLE, + phone_util_.IsPossibleNumberWithReason(number)); + + number.set_country_code(0); + number.set_national_number(2530000ULL); + EXPECT_EQ(PhoneNumberUtil::INVALID_COUNTRY_CODE, + phone_util_.IsPossibleNumberWithReason(number)); + + number.set_country_code(1); + number.set_national_number(253000ULL); + EXPECT_EQ(PhoneNumberUtil::TOO_SHORT, + phone_util_.IsPossibleNumberWithReason(number)); + + number.set_country_code(1); + number.set_national_number(65025300000ULL); + EXPECT_EQ(PhoneNumberUtil::TOO_LONG, + phone_util_.IsPossibleNumberWithReason(number)); + + number.set_country_code(44); + number.set_national_number(2070310000ULL); + EXPECT_EQ(PhoneNumberUtil::IS_POSSIBLE, + phone_util_.IsPossibleNumberWithReason(number)); + + number.set_country_code(49); + number.set_national_number(30123456ULL); + EXPECT_EQ(PhoneNumberUtil::IS_POSSIBLE, + phone_util_.IsPossibleNumberWithReason(number)); + + number.set_country_code(65); + number.set_national_number(1234567890ULL); + EXPECT_EQ(PhoneNumberUtil::IS_POSSIBLE, + phone_util_.IsPossibleNumberWithReason(number)); + + // Try with number that we don't have metadata for. + PhoneNumber ad_number; + ad_number.set_country_code(376); + ad_number.set_national_number(12345ULL); + EXPECT_EQ(PhoneNumberUtil::IS_POSSIBLE, + phone_util_.IsPossibleNumberWithReason(ad_number)); + ad_number.set_country_code(376); + ad_number.set_national_number(13ULL); + EXPECT_EQ(PhoneNumberUtil::TOO_SHORT, + phone_util_.IsPossibleNumberWithReason(ad_number)); + ad_number.set_country_code(376); + ad_number.set_national_number(1234567890123456ULL); + EXPECT_EQ(PhoneNumberUtil::TOO_LONG, + phone_util_.IsPossibleNumberWithReason(ad_number)); +} + +TEST_F(PhoneNumberUtilTest, IsNotPossibleNumber) { + PhoneNumber number; + number.set_country_code(1); + number.set_national_number(65025300000ULL); + EXPECT_FALSE(phone_util_.IsPossibleNumber(number)); + + number.set_country_code(1); + number.set_national_number(253000ULL); + EXPECT_FALSE(phone_util_.IsPossibleNumber(number)); + + number.set_country_code(44); + number.set_national_number(300ULL); + EXPECT_FALSE(phone_util_.IsPossibleNumber(number)); + + EXPECT_FALSE(phone_util_.IsPossibleNumberForString("+1 650 253 00000", + RegionCode::US())); + EXPECT_FALSE(phone_util_.IsPossibleNumberForString("(650) 253-00000", + RegionCode::US())); + EXPECT_FALSE(phone_util_.IsPossibleNumberForString("I want a Pizza", + RegionCode::US())); + EXPECT_FALSE(phone_util_.IsPossibleNumberForString("253-000", + RegionCode::US())); + EXPECT_FALSE(phone_util_.IsPossibleNumberForString("1 3000", + RegionCode::GB())); + EXPECT_FALSE(phone_util_.IsPossibleNumberForString("+44 300", + RegionCode::GB())); +} + +TEST_F(PhoneNumberUtilTest, TruncateTooLongNumber) { + // US number 650-253-0000, but entered with one additional digit at the end. + PhoneNumber too_long_number; + too_long_number.set_country_code(1); + too_long_number.set_national_number(65025300001ULL); + PhoneNumber valid_number; + valid_number.set_country_code(1); + valid_number.set_national_number(6502530000ULL); + EXPECT_TRUE(phone_util_.TruncateTooLongNumber(&too_long_number)); + EXPECT_EQ(valid_number, too_long_number); + + // GB number 080 1234 5678, but entered with 4 extra digits at the end. + too_long_number.set_country_code(44); + too_long_number.set_national_number(80123456780123ULL); + valid_number.set_country_code(44); + valid_number.set_national_number(8012345678ULL); + EXPECT_TRUE(phone_util_.TruncateTooLongNumber(&too_long_number)); + EXPECT_EQ(valid_number, too_long_number); + + // IT number 022 3456 7890, but entered with 3 extra digits at the end. + too_long_number.set_country_code(39); + too_long_number.set_national_number(2234567890123ULL); + too_long_number.set_italian_leading_zero(true); + valid_number.set_country_code(39); + valid_number.set_national_number(2234567890ULL); + valid_number.set_italian_leading_zero(true); + EXPECT_TRUE(phone_util_.TruncateTooLongNumber(&too_long_number)); + EXPECT_EQ(valid_number, too_long_number); + + // Tests what happens when a valid number is passed in. + PhoneNumber valid_number_copy(valid_number); + EXPECT_TRUE(phone_util_.TruncateTooLongNumber(&valid_number)); + // Tests the number is not modified. + EXPECT_EQ(valid_number_copy, valid_number); + + // Tests what happens when a number with invalid prefix is passed in. + PhoneNumber number_with_invalid_prefix; + number_with_invalid_prefix.set_country_code(1); + // The test metadata says US numbers cannot have prefix 240. + number_with_invalid_prefix.set_national_number(2401234567ULL); + PhoneNumber invalid_number_copy(number_with_invalid_prefix); + EXPECT_FALSE(phone_util_.TruncateTooLongNumber(&number_with_invalid_prefix)); + // Tests the number is not modified. + EXPECT_EQ(invalid_number_copy, number_with_invalid_prefix); + + // Tests what happens when a too short number is passed in. + PhoneNumber too_short_number; + too_short_number.set_country_code(1); + too_short_number.set_national_number(1234ULL); + PhoneNumber too_short_number_copy(too_short_number); + EXPECT_FALSE(phone_util_.TruncateTooLongNumber(&too_short_number)); + // Tests the number is not modified. + EXPECT_EQ(too_short_number_copy, too_short_number); +} + +TEST_F(PhoneNumberUtilTest, IsLeadingZeroPossible) { + EXPECT_TRUE(IsLeadingZeroPossible(39)); // Italy + EXPECT_FALSE(IsLeadingZeroPossible(1)); // USA + EXPECT_FALSE(IsLeadingZeroPossible(800)); // Not in metadata file, should + // return default value of false. +} + +TEST_F(PhoneNumberUtilTest, FormatUsingOriginalNumberFormat) { + PhoneNumber phone_number; + string formatted_number; + + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.ParseAndKeepRawInput("+442087654321", RegionCode::GB(), + &phone_number)); + phone_util_.FormatInOriginalFormat(phone_number, RegionCode::GB(), + &formatted_number); + EXPECT_EQ("+44 20 8765 4321", formatted_number); + + phone_number.Clear(); + formatted_number.clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.ParseAndKeepRawInput("02087654321", RegionCode::GB(), + &phone_number)); + phone_util_.FormatInOriginalFormat(phone_number, RegionCode::GB(), + &formatted_number); + EXPECT_EQ("(020) 8765 4321", formatted_number); + + phone_number.Clear(); + formatted_number.clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.ParseAndKeepRawInput("011442087654321", + RegionCode::US(), &phone_number)); + phone_util_.FormatInOriginalFormat(phone_number, RegionCode::US(), + &formatted_number); + EXPECT_EQ("011 44 20 8765 4321", formatted_number); + + phone_number.Clear(); + formatted_number.clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.ParseAndKeepRawInput("442087654321", RegionCode::GB(), + &phone_number)); + phone_util_.FormatInOriginalFormat(phone_number, RegionCode::GB(), + &formatted_number); + EXPECT_EQ("44 20 8765 4321", formatted_number); + + phone_number.Clear(); + formatted_number.clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("+442087654321", RegionCode::GB(), + &phone_number)); + phone_util_.FormatInOriginalFormat(phone_number, RegionCode::GB(), + &formatted_number); + EXPECT_EQ("(020) 8765 4321", formatted_number); +} + +TEST_F(PhoneNumberUtilTest, IsPremiumRate) { + PhoneNumber number; + number.set_country_code(1); + number.set_national_number(9004433030ULL); + EXPECT_EQ(PhoneNumberUtil::PREMIUM_RATE, phone_util_.GetNumberType(number)); + + number.set_country_code(39); + number.set_national_number(892123ULL); + EXPECT_EQ(PhoneNumberUtil::PREMIUM_RATE, phone_util_.GetNumberType(number)); + + number.set_country_code(44); + number.set_national_number(9187654321ULL); + EXPECT_EQ(PhoneNumberUtil::PREMIUM_RATE, phone_util_.GetNumberType(number)); + + number.set_country_code(49); + number.set_national_number(9001654321ULL); + EXPECT_EQ(PhoneNumberUtil::PREMIUM_RATE, phone_util_.GetNumberType(number)); + + number.set_country_code(49); + number.set_national_number(90091234567ULL); + EXPECT_EQ(PhoneNumberUtil::PREMIUM_RATE, phone_util_.GetNumberType(number)); +} + +TEST_F(PhoneNumberUtilTest, IsTollFree) { + PhoneNumber number; + number.set_country_code(1); + number.set_national_number(8881234567ULL); + EXPECT_EQ(PhoneNumberUtil::TOLL_FREE, phone_util_.GetNumberType(number)); + + number.set_country_code(39); + number.set_national_number(803123ULL); + EXPECT_EQ(PhoneNumberUtil::TOLL_FREE, phone_util_.GetNumberType(number)); + + number.set_country_code(44); + number.set_national_number(8012345678ULL); + EXPECT_EQ(PhoneNumberUtil::TOLL_FREE, phone_util_.GetNumberType(number)); + + number.set_country_code(49); + number.set_national_number(8001234567ULL); + EXPECT_EQ(PhoneNumberUtil::TOLL_FREE, phone_util_.GetNumberType(number)); +} + +TEST_F(PhoneNumberUtilTest, IsMobile) { + PhoneNumber number; + // A Bahama mobile number + number.set_country_code(1); + number.set_national_number(2423570000ULL); + EXPECT_EQ(PhoneNumberUtil::MOBILE, phone_util_.GetNumberType(number)); + + number.set_country_code(39); + number.set_national_number(312345678ULL); + EXPECT_EQ(PhoneNumberUtil::MOBILE, phone_util_.GetNumberType(number)); + + number.set_country_code(44); + number.set_national_number(7912345678ULL); + EXPECT_EQ(PhoneNumberUtil::MOBILE, phone_util_.GetNumberType(number)); + + number.set_country_code(49); + number.set_national_number(15123456789ULL); + EXPECT_EQ(PhoneNumberUtil::MOBILE, phone_util_.GetNumberType(number)); + + number.set_country_code(54); + number.set_national_number(91187654321ULL); + EXPECT_EQ(PhoneNumberUtil::MOBILE, phone_util_.GetNumberType(number)); +} + +TEST_F(PhoneNumberUtilTest, IsFixedLine) { + PhoneNumber number; + // A Bahama fixed-line number + number.set_country_code(1); + number.set_national_number(2423651234ULL); + EXPECT_EQ(PhoneNumberUtil::FIXED_LINE, phone_util_.GetNumberType(number)); + + // An Italian fixed-line number + number.Clear(); + number.set_country_code(39); + number.set_national_number(236618300ULL); + number.set_italian_leading_zero(true); + EXPECT_EQ(PhoneNumberUtil::FIXED_LINE, phone_util_.GetNumberType(number)); + + number.Clear(); + number.set_country_code(44); + number.set_national_number(2012345678ULL); + EXPECT_EQ(PhoneNumberUtil::FIXED_LINE, phone_util_.GetNumberType(number)); + + number.set_country_code(49); + number.set_national_number(301234ULL); + EXPECT_EQ(PhoneNumberUtil::FIXED_LINE, phone_util_.GetNumberType(number)); +} + +TEST_F(PhoneNumberUtilTest, IsFixedLineAndMobile) { + PhoneNumber number; + number.set_country_code(1); + number.set_national_number(6502531111ULL); + EXPECT_EQ(PhoneNumberUtil::FIXED_LINE_OR_MOBILE, + phone_util_.GetNumberType(number)); + + number.set_country_code(54); + number.set_national_number(1987654321ULL); + EXPECT_EQ(PhoneNumberUtil::FIXED_LINE_OR_MOBILE, + phone_util_.GetNumberType(number)); +} + +TEST_F(PhoneNumberUtilTest, IsSharedCost) { + PhoneNumber number; + number.set_country_code(44); + number.set_national_number(8431231234ULL); + EXPECT_EQ(PhoneNumberUtil::SHARED_COST, phone_util_.GetNumberType(number)); +} + +TEST_F(PhoneNumberUtilTest, IsVoip) { + PhoneNumber number; + number.set_country_code(44); + number.set_national_number(5631231234ULL); + EXPECT_EQ(PhoneNumberUtil::VOIP, phone_util_.GetNumberType(number)); +} + +TEST_F(PhoneNumberUtilTest, IsPersonalNumber) { + PhoneNumber number; + number.set_country_code(44); + number.set_national_number(7031231234ULL); + EXPECT_EQ(PhoneNumberUtil::PERSONAL_NUMBER, + phone_util_.GetNumberType(number)); +} + +TEST_F(PhoneNumberUtilTest, IsUnknown) { + PhoneNumber number; + number.set_country_code(1); + number.set_national_number(65025311111ULL); + EXPECT_EQ(PhoneNumberUtil::UNKNOWN, phone_util_.GetNumberType(number)); +} + +TEST_F(PhoneNumberUtilTest, GetCountryCodeForRegion) { + EXPECT_EQ(1, phone_util_.GetCountryCodeForRegion(RegionCode::US())); + EXPECT_EQ(64, phone_util_.GetCountryCodeForRegion(RegionCode::NZ())); + EXPECT_EQ(0, phone_util_.GetCountryCodeForRegion(RegionCode::ZZ())); + // CS is already deprecated so the library doesn't support it. + EXPECT_EQ(0, phone_util_.GetCountryCodeForRegion(RegionCode::CS())); +} + +TEST_F(PhoneNumberUtilTest, GetNationalDiallingPrefixForRegion) { + string ndd_prefix; + GetNddPrefixForRegion(RegionCode::US(), false, &ndd_prefix); + EXPECT_EQ("1", ndd_prefix); + + // Test non-main country to see it gets the national dialling prefix for the + // main country with that country calling code. + GetNddPrefixForRegion(RegionCode::BS(), false, &ndd_prefix); + EXPECT_EQ("1", ndd_prefix); + + GetNddPrefixForRegion(RegionCode::NZ(), false, &ndd_prefix); + EXPECT_EQ("0", ndd_prefix); + + // Test case with non digit in the national prefix. + GetNddPrefixForRegion(RegionCode::AO(), false, &ndd_prefix); + EXPECT_EQ("0~0", ndd_prefix); + + GetNddPrefixForRegion(RegionCode::AO(), true, &ndd_prefix); + EXPECT_EQ("00", ndd_prefix); + + // Test cases with invalid regions. + GetNddPrefixForRegion(RegionCode::ZZ(), false, &ndd_prefix); + EXPECT_EQ("", ndd_prefix); + + // CS is already deprecated so the library doesn't support it. + GetNddPrefixForRegion(RegionCode::CS(), false, &ndd_prefix); + EXPECT_EQ("", ndd_prefix); +} + +TEST_F(PhoneNumberUtilTest, IsViablePhoneNumber) { + // Only one or two digits before strange non-possible punctuation. + EXPECT_FALSE(IsViablePhoneNumber("12. March")); + EXPECT_FALSE(IsViablePhoneNumber("1+1+1")); + EXPECT_FALSE(IsViablePhoneNumber("80+0")); + EXPECT_FALSE(IsViablePhoneNumber("00")); + // Three digits is viable. + EXPECT_TRUE(IsViablePhoneNumber("111")); + // Alpha numbers. + EXPECT_TRUE(IsViablePhoneNumber("0800-4-pizza")); + EXPECT_TRUE(IsViablePhoneNumber("0800-4-PIZZA")); + // Only one or two digits before possible punctuation followed by more digits. + // The punctuation used here is the unicode character u+3000. + EXPECT_TRUE(IsViablePhoneNumber("1 34")); + EXPECT_FALSE(IsViablePhoneNumber("1 3+4")); + // Unicode variants of possible starting character and other allowed + // punctuation/digits. + EXPECT_TRUE(IsViablePhoneNumber("(1) 3456789")); + // Testing a leading + is okay. + EXPECT_TRUE(IsViablePhoneNumber("+1) 3456789")); +} + +TEST_F(PhoneNumberUtilTest, NormaliseRemovePunctuation) { + string input_number("034-56&+#234"); + Normalize(&input_number); + static const string kExpectedOutput("03456234"); + EXPECT_EQ(kExpectedOutput, input_number) + << "Conversion did not correctly remove punctuation"; +} + +TEST_F(PhoneNumberUtilTest, NormaliseReplaceAlphaCharacters) { + string input_number("034-I-am-HUNGRY"); + Normalize(&input_number); + static const string kExpectedOutput("034426486479"); + EXPECT_EQ(kExpectedOutput, input_number) + << "Conversion did not correctly replace alpha characters"; +} + +TEST_F(PhoneNumberUtilTest, NormaliseOtherDigits) { + // The first digit is a full-width 2, the last digit is an Arabic-indic digit + // 5. + string input_number("25٥"); + Normalize(&input_number); + static const string kExpectedOutput("255"); + EXPECT_EQ(kExpectedOutput, input_number) + << "Conversion did not correctly replace non-latin digits"; + // The first digit is an Eastern-Arabic 5, the latter an Eastern-Arabic 0. + string eastern_arabic_input_number("۵2۰"); + Normalize(&eastern_arabic_input_number); + static const string kExpectedOutput2("520"); + EXPECT_EQ(kExpectedOutput2, eastern_arabic_input_number) + << "Conversion did not correctly replace non-latin digits"; +} + +TEST_F(PhoneNumberUtilTest, NormaliseStripAlphaCharacters) { + string input_number("034-56&+a#234"); + phone_util_.NormalizeDigitsOnly(&input_number); + static const string kExpectedOutput("03456234"); + EXPECT_EQ(kExpectedOutput, input_number) + << "Conversion did not correctly remove alpha characters"; +} + +TEST_F(PhoneNumberUtilTest, MaybeStripInternationalPrefix) { + string international_prefix("00[39]"); + string number_to_strip("0034567700-3898003"); + // Note the dash is removed as part of the normalization. + string stripped_number("45677003898003"); + EXPECT_EQ(PhoneNumber::FROM_NUMBER_WITH_IDD, + MaybeStripInternationalPrefixAndNormalize(international_prefix, + &number_to_strip)); + EXPECT_EQ(stripped_number, number_to_strip) + << "The number was not stripped of its international prefix."; + + // Now the number no longer starts with an IDD prefix, so it should now report + // FROM_DEFAULT_COUNTRY. + EXPECT_EQ(PhoneNumber::FROM_DEFAULT_COUNTRY, + MaybeStripInternationalPrefixAndNormalize(international_prefix, + &number_to_strip)); + + number_to_strip.assign("00945677003898003"); + EXPECT_EQ(PhoneNumber::FROM_NUMBER_WITH_IDD, + MaybeStripInternationalPrefixAndNormalize(international_prefix, + &number_to_strip)); + EXPECT_EQ(stripped_number, number_to_strip) + << "The number was not stripped of its international prefix."; + + // Test it works when the international prefix is broken up by spaces. + number_to_strip.assign("00 9 45677003898003"); + EXPECT_EQ(PhoneNumber::FROM_NUMBER_WITH_IDD, + MaybeStripInternationalPrefixAndNormalize(international_prefix, + &number_to_strip)); + EXPECT_EQ(stripped_number, number_to_strip) + << "The number was not stripped of its international prefix."; + // Now the number no longer starts with an IDD prefix, so it should now report + // FROM_DEFAULT_COUNTRY. + EXPECT_EQ(PhoneNumber::FROM_DEFAULT_COUNTRY, + MaybeStripInternationalPrefixAndNormalize(international_prefix, + &number_to_strip)); + + // Test the + symbol is also recognised and stripped. + number_to_strip.assign("+45677003898003"); + stripped_number.assign("45677003898003"); + EXPECT_EQ(PhoneNumber::FROM_NUMBER_WITH_PLUS_SIGN, + MaybeStripInternationalPrefixAndNormalize(international_prefix, + &number_to_strip)); + EXPECT_EQ(stripped_number, number_to_strip) + << "The number supplied was not stripped of the plus symbol."; + + // If the number afterwards is a zero, we should not strip this - no country + // code begins with 0. + number_to_strip.assign("0090112-3123"); + stripped_number.assign("00901123123"); + EXPECT_EQ(PhoneNumber::FROM_DEFAULT_COUNTRY, + MaybeStripInternationalPrefixAndNormalize(international_prefix, + &number_to_strip)); + EXPECT_EQ(stripped_number, number_to_strip) + << "The number had a 0 after the match so shouldn't be stripped."; + // Here the 0 is separated by a space from the IDD. + number_to_strip.assign("009 0-112-3123"); + EXPECT_EQ(PhoneNumber::FROM_DEFAULT_COUNTRY, + MaybeStripInternationalPrefixAndNormalize(international_prefix, + &number_to_strip)); +} + +TEST_F(PhoneNumberUtilTest, MaybeStripNationalPrefixAndCarrierCode) { + PhoneMetadata metadata; + metadata.set_national_prefix_for_parsing("34"); + metadata.mutable_general_desc()->set_national_number_pattern("\\d{4,8}"); + string number_to_strip("34356778"); + string stripped_number("356778"); + string carrier_code; + MaybeStripNationalPrefixAndCarrierCode(metadata, &number_to_strip, + &carrier_code); + EXPECT_EQ(stripped_number, number_to_strip) + << "Should have had national prefix stripped."; + EXPECT_EQ("", carrier_code) << "Should have had no carrier code stripped."; + // Retry stripping - now the number should not start with the national prefix, + // so no more stripping should occur. + MaybeStripNationalPrefixAndCarrierCode(metadata, &number_to_strip, + &carrier_code); + EXPECT_EQ(stripped_number, number_to_strip) + << "Should have had no change - no national prefix present."; + // Some countries have no national prefix. Repeat test with none specified. + metadata.clear_national_prefix_for_parsing(); + MaybeStripNationalPrefixAndCarrierCode(metadata, &number_to_strip, + &carrier_code); + EXPECT_EQ(stripped_number, number_to_strip) + << "Should have had no change - empty national prefix."; + // If the resultant number doesn't match the national rule, it shouldn't be + // stripped. + metadata.set_national_prefix_for_parsing("3"); + number_to_strip.assign("3123"); + stripped_number.assign("3123"); + MaybeStripNationalPrefixAndCarrierCode(metadata, &number_to_strip, + &carrier_code); + EXPECT_EQ(stripped_number, number_to_strip) + << "Should have had no change - after stripping, it wouldn't have " + << "matched the national rule."; + // Test extracting carrier selection code. + metadata.set_national_prefix_for_parsing("0(81)?"); + number_to_strip.assign("08122123456"); + stripped_number.assign("22123456"); + MaybeStripNationalPrefixAndCarrierCode(metadata, &number_to_strip, + &carrier_code); + EXPECT_EQ("81", carrier_code) << "Should have had carrier code stripped."; + EXPECT_EQ(stripped_number, number_to_strip) + << "Should have had national prefix and carrier code stripped."; + // If there was a transform rule, check it was applied. + metadata.set_national_prefix_transform_rule("5$15"); + // Note that a capturing group is present here. + metadata.set_national_prefix_for_parsing("0(\\d{2})"); + number_to_strip.assign("031123"); + string transformed_number("5315123"); + MaybeStripNationalPrefixAndCarrierCode(metadata, &number_to_strip, + &carrier_code); + EXPECT_EQ(transformed_number, number_to_strip) + << "Was not successfully transformed."; +} + +TEST_F(PhoneNumberUtilTest, MaybeStripExtension) { + // One with extension. + string number("1234576 ext. 1234"); + string extension; + string expected_extension("1234"); + string stripped_number("1234576"); + EXPECT_TRUE(MaybeStripExtension(&number, &extension)); + EXPECT_EQ(stripped_number, number); + EXPECT_EQ(expected_extension, extension); + + // One without extension. + number.assign("1234-576"); + extension.clear(); + stripped_number.assign("1234-576"); + EXPECT_FALSE(MaybeStripExtension(&number, &extension)); + EXPECT_EQ(stripped_number, number); + EXPECT_TRUE(extension.empty()); + + // One with an extension caught by the second capturing group in + // kKnownExtnPatterns. + number.assign("1234576-123#"); + extension.clear(); + expected_extension.assign("123"); + stripped_number.assign("1234576"); + EXPECT_TRUE(MaybeStripExtension(&number, &extension)); + EXPECT_EQ(stripped_number, number); + EXPECT_EQ(expected_extension, extension); + + number.assign("1234576 ext.123#"); + extension.clear(); + EXPECT_TRUE(MaybeStripExtension(&number, &extension)); + EXPECT_EQ(stripped_number, number); + EXPECT_EQ(expected_extension, extension); +} + +TEST_F(PhoneNumberUtilTest, MaybeExtractCountryCode) { + PhoneNumber number; + const PhoneMetadata* metadata = GetPhoneMetadata(RegionCode::US()); + // Note that for the US, the IDD is 011. + string phone_number("011112-3456789"); + string stripped_number("123456789"); + int expected_country_code = 1; + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + MaybeExtractCountryCode(metadata, true, &phone_number, &number)); + EXPECT_EQ(expected_country_code, number.country_code()); + EXPECT_EQ(PhoneNumber::FROM_NUMBER_WITH_IDD, number.country_code_source()); + EXPECT_EQ(stripped_number, phone_number); + + number.Clear(); + phone_number.assign("+6423456789"); + stripped_number.assign("23456789"); + expected_country_code = 64; + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + MaybeExtractCountryCode(metadata, true, &phone_number, &number)); + EXPECT_EQ(expected_country_code, number.country_code()); + EXPECT_EQ(PhoneNumber::FROM_NUMBER_WITH_PLUS_SIGN, + number.country_code_source()); + EXPECT_EQ(stripped_number, phone_number); + + // Should not have extracted a country code - no international prefix present. + number.Clear(); + expected_country_code = 0; + phone_number.assign("2345-6789"); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + MaybeExtractCountryCode(metadata, true, &phone_number, &number)); + EXPECT_EQ(expected_country_code, number.country_code()); + EXPECT_EQ(PhoneNumber::FROM_DEFAULT_COUNTRY, number.country_code_source()); + EXPECT_EQ(stripped_number, phone_number); + + expected_country_code = 0; + phone_number.assign("0119991123456789"); + stripped_number.assign(phone_number); + EXPECT_EQ(PhoneNumberUtil::INVALID_COUNTRY_CODE_ERROR, + MaybeExtractCountryCode(metadata, true, &phone_number, &number)); + + number.Clear(); + phone_number.assign("(1 610) 619 4466"); + stripped_number.assign("6106194466"); + expected_country_code = 1; + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + MaybeExtractCountryCode(metadata, true, &phone_number, &number)); + EXPECT_EQ(expected_country_code, number.country_code()); + EXPECT_EQ(PhoneNumber::FROM_NUMBER_WITHOUT_PLUS_SIGN, + number.country_code_source()); + EXPECT_EQ(stripped_number, phone_number); + + number.Clear(); + phone_number.assign("(1 610) 619 4466"); + stripped_number.assign("6106194466"); + expected_country_code = 1; + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + MaybeExtractCountryCode(metadata, false, &phone_number, &number)); + EXPECT_EQ(expected_country_code, number.country_code()); + EXPECT_FALSE(number.has_country_code_source()); + EXPECT_EQ(stripped_number, phone_number); + + // Should not have extracted a country code - invalid number after extraction + // of uncertain country code. + number.Clear(); + phone_number.assign("(1 610) 619 446"); + stripped_number.assign("1610619446"); + expected_country_code = 0; + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + MaybeExtractCountryCode(metadata, false, &phone_number, &number)); + EXPECT_EQ(expected_country_code, number.country_code()); + EXPECT_FALSE(number.has_country_code_source()); + EXPECT_EQ(stripped_number, phone_number); + + number.Clear(); + phone_number.assign("(1 610) 619"); + stripped_number.assign("1610619"); + expected_country_code = 0; + // Should not have extracted a country code - invalid number both before and + // after extraction of uncertain country code. + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + MaybeExtractCountryCode(metadata, true, &phone_number, &number)); + EXPECT_EQ(expected_country_code, number.country_code()); + EXPECT_EQ(PhoneNumber::FROM_DEFAULT_COUNTRY, number.country_code_source()); + EXPECT_EQ(stripped_number, phone_number); +} + +TEST_F(PhoneNumberUtilTest, CountryWithNoNumberDesc) { + string formatted_number; + // Andorra is a country where we don't have PhoneNumberDesc info in the + // metadata. + PhoneNumber ad_number; + ad_number.set_country_code(376); + ad_number.set_national_number(12345ULL); + phone_util_.Format(ad_number, PhoneNumberUtil::INTERNATIONAL, + &formatted_number); + EXPECT_EQ("+376 12345", formatted_number); + phone_util_.Format(ad_number, PhoneNumberUtil::E164, &formatted_number); + EXPECT_EQ("+37612345", formatted_number); + phone_util_.Format(ad_number, PhoneNumberUtil::NATIONAL, &formatted_number); + EXPECT_EQ("12345", formatted_number); + EXPECT_EQ(PhoneNumberUtil::UNKNOWN, phone_util_.GetNumberType(ad_number)); + EXPECT_TRUE(phone_util_.IsValidNumber(ad_number)); + + // Test dialing a US number from within Andorra. + PhoneNumber us_number; + us_number.set_country_code(1); + us_number.set_national_number(6502530000ULL); + phone_util_.FormatOutOfCountryCallingNumber(us_number, RegionCode::AD(), + &formatted_number); + EXPECT_EQ("00 1 650 253 0000", formatted_number); +} + +TEST_F(PhoneNumberUtilTest, UnknownCountryCallingCodeForValidation) { + PhoneNumber invalid_number; + invalid_number.set_country_code(0); + invalid_number.set_national_number(1234ULL); + EXPECT_FALSE(phone_util_.IsValidNumber(invalid_number)); +} + +TEST_F(PhoneNumberUtilTest, IsNumberMatchMatches) { + // Test simple matches where formatting is different, or leading zeroes, or + // country code has been specified. + EXPECT_EQ(PhoneNumberUtil::EXACT_MATCH, + phone_util_.IsNumberMatchWithTwoStrings("+64 3 331 6005", + "+64 03 331 6005")); + EXPECT_EQ(PhoneNumberUtil::EXACT_MATCH, + phone_util_.IsNumberMatchWithTwoStrings("+64 03 331-6005", + "+64 03331 6005")); + EXPECT_EQ(PhoneNumberUtil::EXACT_MATCH, + phone_util_.IsNumberMatchWithTwoStrings("+643 331-6005", + "+64033316005")); + EXPECT_EQ(PhoneNumberUtil::EXACT_MATCH, + phone_util_.IsNumberMatchWithTwoStrings("+643 331-6005", + "+6433316005")); + EXPECT_EQ(PhoneNumberUtil::EXACT_MATCH, + phone_util_.IsNumberMatchWithTwoStrings("+64 3 331-6005", + "+6433316005")); + // Test alpha numbers. + EXPECT_EQ(PhoneNumberUtil::EXACT_MATCH, + phone_util_.IsNumberMatchWithTwoStrings("+1800 siX-Flags", + "+1 800 7493 5247")); + // Test numbers with extensions. + EXPECT_EQ(PhoneNumberUtil::EXACT_MATCH, + phone_util_.IsNumberMatchWithTwoStrings("+64 3 331-6005 extn 1234", + "+6433316005#1234")); + // Test proto buffers. + PhoneNumber nz_number; + nz_number.set_country_code(64); + nz_number.set_national_number(33316005ULL); + nz_number.set_extension("3456"); + EXPECT_EQ(PhoneNumberUtil::EXACT_MATCH, + phone_util_.IsNumberMatchWithOneString(nz_number, + "+643 331 6005 ext 3456")); + nz_number.clear_extension(); + EXPECT_EQ(PhoneNumberUtil::EXACT_MATCH, + phone_util_.IsNumberMatchWithOneString(nz_number, + "+643 331 6005")); + // Check empty extensions are ignored. + nz_number.set_extension(""); + EXPECT_EQ(PhoneNumberUtil::EXACT_MATCH, + phone_util_.IsNumberMatchWithOneString(nz_number, + "+643 331 6005")); + // Check variant with two proto buffers. + PhoneNumber nz_number_2; + nz_number_2.set_country_code(64); + nz_number_2.set_national_number(33316005ULL); + EXPECT_EQ(PhoneNumberUtil::EXACT_MATCH, + phone_util_.IsNumberMatch(nz_number, nz_number_2)); + + // Check raw_input, country_code_source and preferred_domestic_carrier_code + // are ignored. + PhoneNumber br_number_1; + PhoneNumber br_number_2; + br_number_1.set_country_code(55); + br_number_1.set_national_number(3121286979ULL); + br_number_1.set_country_code_source(PhoneNumber::FROM_NUMBER_WITH_PLUS_SIGN); + br_number_1.set_preferred_domestic_carrier_code("12"); + br_number_1.set_raw_input("012 3121286979"); + br_number_2.set_country_code(55); + br_number_2.set_national_number(3121286979ULL); + br_number_2.set_country_code_source(PhoneNumber::FROM_DEFAULT_COUNTRY); + br_number_2.set_preferred_domestic_carrier_code("14"); + br_number_2.set_raw_input("143121286979"); + EXPECT_EQ(PhoneNumberUtil::EXACT_MATCH, + phone_util_.IsNumberMatch(br_number_1, br_number_2)); +} + +TEST_F(PhoneNumberUtilTest, IsNumberMatchNonMetches) { + // NSN matches. + EXPECT_EQ(PhoneNumberUtil::NO_MATCH, + phone_util_.IsNumberMatchWithTwoStrings("03 331 6005", + "03 331 6006")); + // Different country code, partial number match. + EXPECT_EQ(PhoneNumberUtil::NO_MATCH, + phone_util_.IsNumberMatchWithTwoStrings("+64 3 331-6005", + "+16433316005")); + // Different country code, same number. + EXPECT_EQ(PhoneNumberUtil::NO_MATCH, + phone_util_.IsNumberMatchWithTwoStrings("+64 3 331-6005", + "+6133316005")); + // Extension different, all else the same. + EXPECT_EQ(PhoneNumberUtil::NO_MATCH, + phone_util_.IsNumberMatchWithTwoStrings("+64 3 331-6005 extn 1234", + "+0116433316005#1235")); + // NSN matches, but extension is different - not the same number. + EXPECT_EQ(PhoneNumberUtil::NO_MATCH, + phone_util_.IsNumberMatchWithTwoStrings("+64 3 331-6005 ext.1235", + "3 331 6005#1234")); + // Invalid numbers that can't be parsed. + EXPECT_EQ(PhoneNumberUtil::INVALID_NUMBER, + phone_util_.IsNumberMatchWithTwoStrings("43", "3 331 6043")); + // Invalid numbers that can't be parsed. + EXPECT_EQ(PhoneNumberUtil::INVALID_NUMBER, + phone_util_.IsNumberMatchWithTwoStrings("+43", "+64 3 331 6005")); + EXPECT_EQ(PhoneNumberUtil::INVALID_NUMBER, + phone_util_.IsNumberMatchWithTwoStrings("+43", "64 3 331 6005")); + EXPECT_EQ(PhoneNumberUtil::INVALID_NUMBER, + phone_util_.IsNumberMatchWithTwoStrings("Dog", "64 3 331 6005")); +} + +TEST_F(PhoneNumberUtilTest, IsNumberMatchNsnMatches) { + // NSN matches. + EXPECT_EQ(PhoneNumberUtil::NSN_MATCH, + phone_util_.IsNumberMatchWithTwoStrings("+64 3 331-6005", + "03 331 6005")); + + EXPECT_EQ(PhoneNumberUtil::NSN_MATCH, + phone_util_.IsNumberMatchWithTwoStrings("3 331-6005", + "03 331 6005")); + + PhoneNumber nz_number; + nz_number.set_country_code(64); + nz_number.set_national_number(33316005ULL); + nz_number.set_extension(""); + EXPECT_EQ(PhoneNumberUtil::NSN_MATCH, + phone_util_.IsNumberMatchWithOneString(nz_number, "03 331 6005")); + // Here the second number possibly starts with the country code for New + // Zealand, although we are unsure. + EXPECT_EQ(PhoneNumberUtil::NSN_MATCH, + phone_util_.IsNumberMatchWithOneString(nz_number, + "(64-3) 331 6005")); + + // Here, the 1 might be a national prefix, if we compare it to the US number, + // so the resultant match is an NSN match. + PhoneNumber us_number; + us_number.set_country_code(1); + us_number.set_national_number(2345678901ULL); + EXPECT_EQ(PhoneNumberUtil::NSN_MATCH, + phone_util_.IsNumberMatchWithOneString(us_number, + "1-234-567-8901")); + EXPECT_EQ(PhoneNumberUtil::NSN_MATCH, + phone_util_.IsNumberMatchWithOneString(us_number, "2345678901")); + EXPECT_EQ(PhoneNumberUtil::NSN_MATCH, + phone_util_.IsNumberMatchWithTwoStrings("+1 234-567 8901", + "1 234 567 8901")); + EXPECT_EQ(PhoneNumberUtil::NSN_MATCH, + phone_util_.IsNumberMatchWithTwoStrings("1 234-567 8901", + "1 234 567 8901")); + EXPECT_EQ(PhoneNumberUtil::NSN_MATCH, + phone_util_.IsNumberMatchWithTwoStrings("1 234-567 8901", + "+1 234 567 8901")); + // For this case, the match will be a short NSN match, because we cannot + // assume that the 1 might be a national prefix, so don't remove it when + // parsing. + PhoneNumber random_number; + random_number.set_country_code(41); + random_number.set_national_number(2345678901ULL); + EXPECT_EQ(PhoneNumberUtil::SHORT_NSN_MATCH, + phone_util_.IsNumberMatchWithOneString(random_number, + "1-234-567-8901")); +} + +TEST_F(PhoneNumberUtilTest, IsNumberMatchShortNsnMatches) { + // Short NSN matches with the country not specified for either one or both + // numbers. + EXPECT_EQ(PhoneNumberUtil::SHORT_NSN_MATCH, + phone_util_.IsNumberMatchWithTwoStrings("+64 3 331-6005", + "331 6005")); + + EXPECT_EQ(PhoneNumberUtil::SHORT_NSN_MATCH, + phone_util_.IsNumberMatchWithTwoStrings("3 331-6005", + "331 6005")); + + EXPECT_EQ(PhoneNumberUtil::SHORT_NSN_MATCH, + phone_util_.IsNumberMatchWithTwoStrings("3 331-6005", + "+64 331 6005")); + + // Short NSN match with the country specified. + EXPECT_EQ(PhoneNumberUtil::SHORT_NSN_MATCH, + phone_util_.IsNumberMatchWithTwoStrings("03 331-6005", + "331 6005")); + + EXPECT_EQ(PhoneNumberUtil::SHORT_NSN_MATCH, + phone_util_.IsNumberMatchWithTwoStrings("1 234 345 6789", + "345 6789")); + + EXPECT_EQ(PhoneNumberUtil::SHORT_NSN_MATCH, + phone_util_.IsNumberMatchWithTwoStrings("+1 (234) 345 6789", + "345 6789")); + + // NSN matches, country code omitted for one number, extension missing for + // one. + EXPECT_EQ(PhoneNumberUtil::SHORT_NSN_MATCH, + phone_util_.IsNumberMatchWithTwoStrings("+64 3 331-6005", + "3 331 6005#1234")); + + // One has Italian leading zero, one does not. + PhoneNumber it_number_1, it_number_2; + it_number_1.set_country_code(39); + it_number_1.set_national_number(1234ULL); + it_number_1.set_italian_leading_zero(true); + it_number_2.set_country_code(39); + it_number_2.set_national_number(1234ULL); + EXPECT_EQ(PhoneNumberUtil::SHORT_NSN_MATCH, + phone_util_.IsNumberMatch(it_number_1, it_number_2)); + + // One has an extension, the other has an extension of "". + it_number_1.set_extension("1234"); + it_number_1.clear_italian_leading_zero(); + it_number_2.set_extension(""); + EXPECT_EQ(PhoneNumberUtil::SHORT_NSN_MATCH, + phone_util_.IsNumberMatch(it_number_1, it_number_2)); +} + +TEST_F(PhoneNumberUtilTest, ParseNationalNumber) { + PhoneNumber nz_number; + nz_number.set_country_code(64); + nz_number.set_national_number(33316005ULL); + PhoneNumber test_number; + // National prefix attached. + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("033316005", RegionCode::NZ(), &test_number)); + EXPECT_EQ(nz_number, test_number); + // National prefix missing. + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("33316005", RegionCode::NZ(), &test_number)); + EXPECT_EQ(nz_number, test_number); + // National prefix attached and some formatting present. + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("03-331 6005", RegionCode::NZ(), &test_number)); + EXPECT_EQ(nz_number, test_number); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("03 331 6005", RegionCode::NZ(), &test_number)); + EXPECT_EQ(nz_number, test_number); + + // Testing international prefixes. + // Should strip country code. + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("0064 3 331 6005", + RegionCode::NZ(), &test_number)); + EXPECT_EQ(nz_number, test_number); + // Try again, but this time we have an international number with Region Code + // US. It should recognise the country code and parse accordingly. + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("01164 3 331 6005", + RegionCode::US(), &test_number)); + EXPECT_EQ(nz_number, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("+64 3 331 6005", + RegionCode::US(), &test_number)); + EXPECT_EQ(nz_number, test_number); + + // Test for http://b/issue?id=2247493 + nz_number.Clear(); + nz_number.set_country_code(64); + nz_number.set_national_number(64123456ULL); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("+64(0)64123456", + RegionCode::US(), &test_number)); + EXPECT_EQ(nz_number, test_number); + + // Check that using a "/" is fine in a phone number. + PhoneNumber de_number; + de_number.set_country_code(49); + de_number.set_national_number(12345678ULL); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("123/45678", RegionCode::DE(), &test_number)); + EXPECT_EQ(de_number, test_number); + + PhoneNumber us_number; + us_number.set_country_code(1); + // Check it doesn't use the '1' as a country code when parsing if the phone + // number was already possible. + us_number.set_national_number(1234567890ULL); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("123-456-7890", RegionCode::US(), &test_number)); + EXPECT_EQ(us_number, test_number); +} + +TEST_F(PhoneNumberUtilTest, ParseNumberWithAlphaCharacters) { + // Test case with alpha characters. + PhoneNumber test_number; + PhoneNumber tollfree_number; + tollfree_number.set_country_code(64); + tollfree_number.set_national_number(800332005ULL); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("0800 DDA 005", RegionCode::NZ(), &test_number)); + EXPECT_EQ(tollfree_number, test_number); + + test_number.Clear(); + PhoneNumber premium_number; + premium_number.set_country_code(64); + premium_number.set_national_number(9003326005ULL); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("0900 DDA 6005", RegionCode::NZ(), &test_number)); + EXPECT_EQ(premium_number, test_number); + + // Not enough alpha characters for them to be considered intentional, so they + // are stripped. + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("0900 332 6005a", + RegionCode::NZ(), &test_number)); + EXPECT_EQ(premium_number, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("0900 332 600a5", + RegionCode::NZ(), &test_number)); + EXPECT_EQ(premium_number, test_number); + + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("0900 332 600A5", + RegionCode::NZ(), &test_number)); + EXPECT_EQ(premium_number, test_number); + + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("0900 a332 600A5", + RegionCode::NZ(), &test_number)); + EXPECT_EQ(premium_number, test_number); +} + +TEST_F(PhoneNumberUtilTest, ParseWithInternationalPrefixes) { + PhoneNumber us_number; + us_number.set_country_code(1); + us_number.set_national_number(6503336000ULL); + PhoneNumber test_number; + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("+1 (650) 333-6000", + RegionCode::US(), &test_number)); + EXPECT_EQ(us_number, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("+1-650-333-6000", + RegionCode::US(), &test_number)); + EXPECT_EQ(us_number, test_number); + + // Calling the US number from Singapore by using different service providers + // 1st test: calling using SingTel IDD service (IDD is 001) + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("0011-650-333-6000", + RegionCode::SG(), &test_number)); + EXPECT_EQ(us_number, test_number); + // 2nd test: calling using StarHub IDD service (IDD is 008) + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("0081-650-333-6000", + RegionCode::SG(), &test_number)); + EXPECT_EQ(us_number, test_number); + // 3rd test: calling using SingTel V019 service (IDD is 019) + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("0191-650-333-6000", + RegionCode::SG(), &test_number)); + EXPECT_EQ(us_number, test_number); + // Calling the US number from Poland + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("0~01-650-333-6000", + RegionCode::PL(), &test_number)); + EXPECT_EQ(us_number, test_number); + + // Using "++" at the start. + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("++1 (650) 333-6000", + RegionCode::PL(), &test_number)); + EXPECT_EQ(us_number, test_number); + // Using a full-width plus sign. + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("+1 (650) 333-6000", + RegionCode::SG(), &test_number)); + EXPECT_EQ(us_number, test_number); + // The whole number, including punctuation, is here represented in full-width + // form. + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("+1 (650) 333-6000", + RegionCode::SG(), &test_number)); + EXPECT_EQ(us_number, test_number); + + // Using the U+30FC dash. + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("+1 (650) 333ー6000", + RegionCode::SG(), &test_number)); + EXPECT_EQ(us_number, test_number); +} + +TEST_F(PhoneNumberUtilTest, ParseWithLeadingZero) { + PhoneNumber it_number; + it_number.set_country_code(39); + it_number.set_national_number(236618300ULL); + it_number.set_italian_leading_zero(true); + PhoneNumber test_number; + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("+39 02-36618 300", + RegionCode::NZ(), &test_number)); + EXPECT_EQ(it_number, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("02-36618 300", RegionCode::IT(), &test_number)); + EXPECT_EQ(it_number, test_number); + + it_number.Clear(); + it_number.set_country_code(39); + it_number.set_national_number(312345678ULL); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("312 345 678", RegionCode::IT(), &test_number)); + EXPECT_EQ(it_number, test_number); +} + +TEST_F(PhoneNumberUtilTest, ParseNationalNumberArgentina) { + // Test parsing mobile numbers of Argentina. + PhoneNumber ar_number; + ar_number.set_country_code(54); + ar_number.set_national_number(93435551212ULL); + PhoneNumber test_number; + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("+54 9 343 555 1212", RegionCode::AR(), + &test_number)); + EXPECT_EQ(ar_number, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("0343 15 555 1212", RegionCode::AR(), + &test_number)); + EXPECT_EQ(ar_number, test_number); + + ar_number.set_national_number(93715654320ULL); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("+54 9 3715 65 4320", RegionCode::AR(), + &test_number)); + EXPECT_EQ(ar_number, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("03715 15 65 4320", RegionCode::AR(), + &test_number)); + EXPECT_EQ(ar_number, test_number); + + // Test parsing fixed-line numbers of Argentina. + ar_number.set_national_number(1137970000ULL); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("+54 11 3797 0000", RegionCode::AR(), + &test_number)); + EXPECT_EQ(ar_number, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("011 3797 0000", RegionCode::AR(), &test_number)); + EXPECT_EQ(ar_number, test_number); + + ar_number.set_national_number(3715654321ULL); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("+54 3715 65 4321", RegionCode::AR(), + &test_number)); + EXPECT_EQ(ar_number, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("03715 65 4321", RegionCode::AR(), &test_number)); + EXPECT_EQ(ar_number, test_number); + + ar_number.set_national_number(2312340000ULL); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("+54 23 1234 0000", RegionCode::AR(), + &test_number)); + EXPECT_EQ(ar_number, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("023 1234 0000", RegionCode::AR(), &test_number)); + EXPECT_EQ(ar_number, test_number); +} + +TEST_F(PhoneNumberUtilTest, ParseWithXInNumber) { + // Test that having an 'x' in the phone number at the start is ok and that it + // just gets removed. + PhoneNumber ar_number; + ar_number.set_country_code(54); + ar_number.set_national_number(123456789ULL); + PhoneNumber test_number; + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("0123456789", RegionCode::AR(), &test_number)); + EXPECT_EQ(ar_number, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("(0) 123456789", RegionCode::AR(), &test_number)); + EXPECT_EQ(ar_number, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("0 123456789", RegionCode::AR(), &test_number)); + EXPECT_EQ(ar_number, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("(0xx) 123456789", RegionCode::AR(), + &test_number)); + EXPECT_EQ(ar_number, test_number); + + PhoneNumber ar_from_us; + ar_from_us.set_country_code(54); + ar_from_us.set_national_number(81429712ULL); + // This test is intentionally constructed such that the number of digit after + // xx is larger than 7, so that the number won't be mistakenly treated as an + // extension, as we allow extensions up to 7 digits. This assumption is okay + // for now as all the countries where a carrier selection code is written in + // the form of xx have a national significant number of length larger than 7. + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("011xx5481429712", RegionCode::US(), + &test_number)); + EXPECT_EQ(ar_from_us, test_number); +} + +TEST_F(PhoneNumberUtilTest, ParseNumbersMexico) { + // Test parsing fixed-line numbers of Mexico. + PhoneNumber mx_number; + + mx_number.set_country_code(52); + mx_number.set_national_number(4499780001ULL); + PhoneNumber test_number; + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("+52 (449)978-0001", RegionCode::MX(), + &test_number)); + EXPECT_EQ(mx_number, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("01 (449)978-0001", RegionCode::MX(), + &test_number)); + EXPECT_EQ(mx_number, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("(449)978-0001", RegionCode::MX(), + &test_number)); + EXPECT_EQ(mx_number, test_number); + + // Test parsing mobile numbers of Mexico. + mx_number.Clear(); + mx_number.set_country_code(52); + mx_number.set_national_number(13312345678ULL); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("+52 1 33 1234-5678", RegionCode::MX(), + &test_number)); + EXPECT_EQ(mx_number, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("044 (33) 1234-5678", RegionCode::MX(), + &test_number)); + EXPECT_EQ(mx_number, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("045 33 1234-5678", RegionCode::MX(), + &test_number)); + EXPECT_EQ(mx_number, test_number); +} + +TEST_F(PhoneNumberUtilTest, FailedParseOnInvalidNumbers) { + PhoneNumber test_number; + EXPECT_EQ(PhoneNumberUtil::NOT_A_NUMBER, + phone_util_.Parse("This is not a phone number", RegionCode::NZ(), + &test_number)); + EXPECT_EQ(PhoneNumber::default_instance(), test_number); + + EXPECT_EQ(PhoneNumberUtil::TOO_LONG_NSN, + phone_util_.Parse("01495 72553301873 810104", RegionCode::GB(), + &test_number)); + EXPECT_EQ(PhoneNumber::default_instance(), test_number); + + EXPECT_EQ(PhoneNumberUtil::TOO_SHORT_NSN, + phone_util_.Parse("+49 0", RegionCode::DE(), + &test_number)); + EXPECT_EQ(PhoneNumber::default_instance(), test_number); + + EXPECT_EQ(PhoneNumberUtil::INVALID_COUNTRY_CODE_ERROR, + phone_util_.Parse("+210 3456 56789", RegionCode::NZ(), + &test_number)); + EXPECT_EQ(PhoneNumber::default_instance(), test_number); + + EXPECT_EQ(PhoneNumberUtil::INVALID_COUNTRY_CODE_ERROR, + phone_util_.Parse("123 456 7890", RegionCode::ZZ(), + &test_number)); + EXPECT_EQ(PhoneNumber::default_instance(), test_number); + + EXPECT_EQ(PhoneNumberUtil::INVALID_COUNTRY_CODE_ERROR, + phone_util_.Parse("123 456 7890", RegionCode::CS(), + &test_number)); + EXPECT_EQ(PhoneNumber::default_instance(), test_number); + + EXPECT_EQ(PhoneNumberUtil::TOO_SHORT_AFTER_IDD, + phone_util_.Parse("0044-----", RegionCode::GB(), + &test_number)); + EXPECT_EQ(PhoneNumber::default_instance(), test_number); + EXPECT_EQ(PhoneNumberUtil::TOO_SHORT_AFTER_IDD, + phone_util_.Parse("0044", RegionCode::GB(), + &test_number)); + EXPECT_EQ(PhoneNumber::default_instance(), test_number); + + EXPECT_EQ(PhoneNumberUtil::TOO_SHORT_AFTER_IDD, + phone_util_.Parse("011", RegionCode::US(), + &test_number)); + EXPECT_EQ(PhoneNumber::default_instance(), test_number); + EXPECT_EQ(PhoneNumberUtil::TOO_SHORT_AFTER_IDD, + phone_util_.Parse("0119", RegionCode::US(), + &test_number)); + EXPECT_EQ(PhoneNumber::default_instance(), test_number); +} + +TEST_F(PhoneNumberUtilTest, ParseNumbersWithPlusWithNoRegion) { + PhoneNumber nz_number; + nz_number.set_country_code(64); + nz_number.set_national_number(33316005ULL); + // "ZZ" is allowed only if the number starts with a '+' - then + // the country code can be calculated. + PhoneNumber result_proto; + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("+64 3 331 6005", RegionCode::ZZ(), + &result_proto)); + EXPECT_EQ(nz_number, result_proto); + + // Test with full-width plus. + result_proto.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("+64 3 331 6005", RegionCode::ZZ(), + &result_proto)); + EXPECT_EQ(nz_number, result_proto); + // Test with normal plus but leading characters that need to be stripped. + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse(" +64 3 331 6005", RegionCode::ZZ(), + &result_proto)); + EXPECT_EQ(nz_number, result_proto); + + nz_number.set_raw_input("+64 3 331 6005"); + nz_number.set_country_code_source(PhoneNumber::FROM_NUMBER_WITH_PLUS_SIGN); + // It is important that we set this to an empty string, since we used + // ParseAndKeepRawInput and no carrrier code was found. + nz_number.set_preferred_domestic_carrier_code(""); + result_proto.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.ParseAndKeepRawInput("+64 3 331 6005", RegionCode::ZZ(), + &result_proto)); + EXPECT_EQ(nz_number, result_proto); +} + +TEST_F(PhoneNumberUtilTest, ParseExtensions) { + PhoneNumber nz_number; + nz_number.set_country_code(64); + nz_number.set_national_number(33316005ULL); + nz_number.set_extension("3456"); + PhoneNumber test_number; + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("03 331 6005 ext 3456", RegionCode::NZ(), + &test_number)); + EXPECT_EQ(nz_number, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("03 331 6005x3456", RegionCode::NZ(), + &test_number)); + EXPECT_EQ(nz_number, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("03-331 6005 int.3456", RegionCode::NZ(), + &test_number)); + EXPECT_EQ(nz_number, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("03 331 6005 #3456", RegionCode::NZ(), + &test_number)); + EXPECT_EQ(nz_number, test_number); + + // Test the following do not extract extensions: + PhoneNumber non_extn_number; + non_extn_number.set_country_code(1); + non_extn_number.set_national_number(80074935247ULL); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("1800 six-flags", RegionCode::US(), + &test_number)); + EXPECT_EQ(non_extn_number, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("1800 SIX-FLAGS", RegionCode::US(), + &test_number)); + EXPECT_EQ(non_extn_number, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("0~0 1800 7493 5247", RegionCode::PL(), + &test_number)); + EXPECT_EQ(non_extn_number, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("(1800) 7493.5247", RegionCode::US(), + &test_number)); + EXPECT_EQ(non_extn_number, test_number); + + // Check that the last instance of an extension token is matched. + PhoneNumber extn_number; + extn_number.set_country_code(1); + extn_number.set_national_number(80074935247ULL); + extn_number.set_extension("1234"); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("0~0 1800 7493 5247 ~1234", RegionCode::PL(), + &test_number)); + EXPECT_EQ(extn_number, test_number); + + // Verifying bug-fix where the last digit of a number was previously omitted + // if it was a 0 when extracting the extension. Also verifying a few different + // cases of extensions. + PhoneNumber uk_number; + uk_number.set_country_code(44); + uk_number.set_national_number(2034567890ULL); + uk_number.set_extension("456"); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("+44 2034567890x456", RegionCode::NZ(), + &test_number)); + EXPECT_EQ(uk_number, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("+44 2034567890x456", RegionCode::GB(), + &test_number)); + EXPECT_EQ(uk_number, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("+44 2034567890 x456", RegionCode::GB(), + &test_number)); + EXPECT_EQ(uk_number, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("+44 2034567890 X456", RegionCode::GB(), + &test_number)); + EXPECT_EQ(uk_number, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("+44 2034567890 X 456", RegionCode::GB(), + &test_number)); + EXPECT_EQ(uk_number, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("+44 2034567890 X 456", RegionCode::GB(), + &test_number)); + EXPECT_EQ(uk_number, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("+44 2034567890 x 456 ", RegionCode::GB(), + &test_number)); + EXPECT_EQ(uk_number, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("+44 2034567890 X 456", RegionCode::GB(), + &test_number)); + EXPECT_EQ(uk_number, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("+44-2034567890;ext=456", RegionCode::GB(), + &test_number)); + EXPECT_EQ(uk_number, test_number); + + PhoneNumber us_with_extension; + us_with_extension.set_country_code(1); + us_with_extension.set_national_number(8009013355ULL); + us_with_extension.set_extension("7246433"); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("(800) 901-3355 x 7246433", RegionCode::US(), + &test_number)); + EXPECT_EQ(us_with_extension, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("(800) 901-3355 , ext 7246433", RegionCode::US(), + &test_number)); + EXPECT_EQ(us_with_extension, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("(800) 901-3355 ,extension 7246433", + RegionCode::US(), + &test_number)); + EXPECT_EQ(us_with_extension, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("(800) 901-3355 ,extensión 7246433", + RegionCode::US(), + &test_number)); + EXPECT_EQ(us_with_extension, test_number); + test_number.Clear(); + // Repeat with the small letter o with acute accent created by combining + // characters. + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("(800) 901-3355 ,extensión 7246433", + RegionCode::US(), + &test_number)); + EXPECT_EQ(us_with_extension, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("(800) 901-3355 , 7246433", RegionCode::US(), + &test_number)); + EXPECT_EQ(us_with_extension, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("(800) 901-3355 ext: 7246433", RegionCode::US(), + &test_number)); + EXPECT_EQ(us_with_extension, test_number); + + // Test that if a number has two extensions specified, we ignore the second. + PhoneNumber us_with_two_extensions_number; + us_with_two_extensions_number.set_country_code(1); + us_with_two_extensions_number.set_national_number(2121231234ULL); + us_with_two_extensions_number.set_extension("508"); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("(212)123-1234 x508/x1234", RegionCode::US(), + &test_number)); + EXPECT_EQ(us_with_two_extensions_number, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("(212)123-1234 x508/ x1234", RegionCode::US(), + &test_number)); + EXPECT_EQ(us_with_two_extensions_number, test_number); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("(212)123-1234 x508\\x1234", RegionCode::US(), + &test_number)); + EXPECT_EQ(us_with_two_extensions_number, test_number); + + // Test parsing numbers in the form (645) 123-1234-910# works, where the last + // 3 digits before the # are an extension. + us_with_extension.Clear(); + us_with_extension.set_country_code(1); + us_with_extension.set_national_number(6451231234ULL); + us_with_extension.set_extension("910"); + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.Parse("+1 (645) 123 1234-910#", RegionCode::US(), + &test_number)); + EXPECT_EQ(us_with_extension, test_number); +} + +TEST_F(PhoneNumberUtilTest, ParseAndKeepRaw) { + PhoneNumber alpha_numeric_number; + alpha_numeric_number.set_country_code(1); + alpha_numeric_number.set_national_number(80074935247ULL); + alpha_numeric_number.set_raw_input("800 six-flags"); + alpha_numeric_number.set_country_code_source( + PhoneNumber::FROM_DEFAULT_COUNTRY); + alpha_numeric_number.set_preferred_domestic_carrier_code(""); + + PhoneNumber test_number; + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.ParseAndKeepRawInput("800 six-flags", RegionCode::US(), + &test_number)); + EXPECT_EQ(alpha_numeric_number, test_number); + + alpha_numeric_number.set_national_number(8007493524ULL); + alpha_numeric_number.set_raw_input("1800 six-flag"); + alpha_numeric_number.set_country_code_source( + PhoneNumber::FROM_NUMBER_WITHOUT_PLUS_SIGN); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.ParseAndKeepRawInput("1800 six-flag", RegionCode::US(), + &test_number)); + EXPECT_EQ(alpha_numeric_number, test_number); + + alpha_numeric_number.set_raw_input("+1800 six-flag"); + alpha_numeric_number.set_country_code_source( + PhoneNumber::FROM_NUMBER_WITH_PLUS_SIGN); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.ParseAndKeepRawInput("+1800 six-flag", RegionCode::CN(), + &test_number)); + EXPECT_EQ(alpha_numeric_number, test_number); + + alpha_numeric_number.set_raw_input("001800 six-flag"); + alpha_numeric_number.set_country_code_source( + PhoneNumber::FROM_NUMBER_WITH_IDD); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.ParseAndKeepRawInput("001800 six-flag", + RegionCode::NZ(), + &test_number)); + EXPECT_EQ(alpha_numeric_number, test_number); + + // Try with invalid region - expect failure. + test_number.Clear(); + EXPECT_EQ(PhoneNumberUtil::INVALID_COUNTRY_CODE_ERROR, + phone_util_.Parse("123 456 7890", RegionCode::CS(), &test_number)); + EXPECT_EQ(PhoneNumber::default_instance(), test_number); + + PhoneNumber korean_number; + korean_number.set_country_code(82); + korean_number.set_national_number(22123456); + korean_number.set_raw_input("08122123456"); + korean_number.set_country_code_source(PhoneNumber::FROM_DEFAULT_COUNTRY); + korean_number.set_preferred_domestic_carrier_code("81"); + EXPECT_EQ(PhoneNumberUtil::NO_PARSING_ERROR, + phone_util_.ParseAndKeepRawInput("08122123456", + RegionCode::KR(), + &test_number)); + EXPECT_EQ(korean_number, test_number); +} + +TEST_F(PhoneNumberUtilTest, IsAlphaNumber) { + static const string kAlphaNumber("1800 six-flags"); + EXPECT_TRUE(phone_util_.IsAlphaNumber(kAlphaNumber)); + static const string kAlphaNumberWithExtension = "1800 six-flags ext. 1234"; + EXPECT_TRUE(phone_util_.IsAlphaNumber(kAlphaNumberWithExtension)); + static const string kNonAlphaNumber("1800 123-1234"); + EXPECT_FALSE(phone_util_.IsAlphaNumber(kNonAlphaNumber)); + static const string kNonAlphaNumberWithExtension( + "1800 123-1234 extension: 1234"); + EXPECT_FALSE(phone_util_.IsAlphaNumber(kNonAlphaNumberWithExtension)); +} + +} // namespace phonenumbers +} // namespace i18n diff --git a/third_party/libphonenumber/cpp/src/re2_cache.cc b/third_party/libphonenumber/cpp/src/re2_cache.cc new file mode 100644 index 0000000..1abf95e --- /dev/null +++ b/third_party/libphonenumber/cpp/src/re2_cache.cc @@ -0,0 +1,75 @@ +// Copyright (C) 2011 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Author: Fredrik Roubert + +#include "re2_cache.h" + +#include +#include +#include + +#include + +#include "base/logging.h" +#include "base/synchronization/lock.h" + +using std::string; + +// A basic text book string hash function implementation, this one taken from +// The Practice of Programming (Kernighan and Pike 1999). It could be a good +// idea in the future to evaluate how well it actually performs and possibly +// switch to another hash function better suited to this particular use case. +namespace __gnu_cxx { +template<> struct hash { + enum { MULTIPLIER = 31 }; + size_t operator()(const string& key) const { + size_t h = 0; + for (const char* p = key.c_str(); *p != '\0'; ++p) { + h *= MULTIPLIER; + h += *p; + } + return h; + } +}; +} // namespace __gnu_cxx + +namespace i18n { +namespace phonenumbers { + +RE2Cache::RE2Cache(size_t min_items) : cache_impl_(new CacheImpl(min_items)) {} +RE2Cache::~RE2Cache() { + base::AutoLock l(lock_); + LOG(2) << "Cache entries upon destruction: " << cache_impl_->size(); + for (CacheImpl::const_iterator + it = cache_impl_->begin(); it != cache_impl_->end(); ++it) { + delete it->second; + } +} + +RE2Cache::ScopedAccess::ScopedAccess(RE2Cache* cache, const string& pattern) { + DCHECK(cache); + base::AutoLock l(cache->lock_); + CacheImpl* const cache_impl = cache->cache_impl_.get(); + CacheImpl::const_iterator it = cache_impl->find(pattern); + if (it != cache_impl->end()) { + regexp_ = it->second; + } else { + regexp_ = new RE2(pattern); + cache_impl->insert(make_pair(pattern, regexp_)); + } +} + +} // namespace phonenumbers +} // namespace i18n diff --git a/third_party/libphonenumber/cpp/src/re2_cache.h b/third_party/libphonenumber/cpp/src/re2_cache.h new file mode 100644 index 0000000..ab2e9bb --- /dev/null +++ b/third_party/libphonenumber/cpp/src/re2_cache.h @@ -0,0 +1,83 @@ +// Copyright (C) 2011 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Author: Fredrik Roubert + +// RE2Cache is a simple wrapper around hash_map<> to store RE2 objects. +// +// To get a cached RE2 object for a regexp pattern string, create a ScopedAccess +// object with a pointer to the cache object and the pattern string itself as +// constructor parameters. If an RE2 object corresponding to the pattern string +// doesn't already exist, it will be created by the access object constructor. +// The access object implements operator const RE& and can therefore be passed +// as an argument to any function that expects an RE2 object. +// +// RE2Cache cache; +// RE2Cache::ScopedAccess foo(&cache, "foo"); +// bool match = RE2::FullMatch("foobar", foo); + +#ifndef I18N_PHONENUMBERS_RE2_CACHE_H_ +#define I18N_PHONENUMBERS_RE2_CACHE_H_ + +#ifdef __DEPRECATED +#undef __DEPRECATED // Don't warn for using . +#endif + +#include +#include +#include + +#include "base/scoped_ptr.h" +#include "base/synchronization/lock.h" + +namespace re2 { +class RE2; +} // namespace re2 + +namespace i18n { +namespace phonenumbers { + +using re2::RE2; +using std::string; +using __gnu_cxx::hash_map; + +class RE2Cache { + private: + typedef hash_map CacheImpl; + + public: + explicit RE2Cache(size_t min_items); + ~RE2Cache(); + + class ScopedAccess { + public: + ScopedAccess(RE2Cache* cache, const string& pattern); + operator const RE2&() const { return *regexp_; } + + private: + const RE2* regexp_; + friend class RE2CacheTest_AccessConstructor_Test; + }; + + private: + base::Lock lock_; // protects cache_impl_ + scoped_ptr cache_impl_; // protected by lock_ + friend class RE2CacheTest_CacheConstructor_Test; + friend class RE2CacheTest_AccessConstructor_Test; +}; + +} // namespace phonenumbers +} // namespace i18n + +#endif // I18N_PHONENUMBERS_RE2_CACHE_H_ diff --git a/third_party/libphonenumber/cpp/src/re2_cache_test.cc b/third_party/libphonenumber/cpp/src/re2_cache_test.cc new file mode 100644 index 0000000..70f6c44 --- /dev/null +++ b/third_party/libphonenumber/cpp/src/re2_cache_test.cc @@ -0,0 +1,63 @@ +// Copyright (C) 2011 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Author: Fredrik Roubert + +#include +#include + +#include +#include + +#include "re2_cache.h" + +namespace i18n { +namespace phonenumbers { + +using std::string; + +class RE2CacheTest : public testing::Test { + protected: + static const size_t min_items_ = 2; + + RE2CacheTest() : cache_(min_items_) {} + virtual ~RE2CacheTest() {} + + RE2Cache cache_; +}; + +TEST_F(RE2CacheTest, CacheConstructor) { + ASSERT_TRUE(cache_.cache_impl_ != NULL); + EXPECT_TRUE(cache_.cache_impl_->empty()); +} + +TEST_F(RE2CacheTest, AccessConstructor) { + static const string foo("foo"); + RE2Cache::ScopedAccess access(&cache_, foo); + + EXPECT_TRUE(access.regexp_ != NULL); + ASSERT_TRUE(cache_.cache_impl_ != NULL); + EXPECT_EQ(1, cache_.cache_impl_->size()); +} + +TEST_F(RE2CacheTest, OperatorRE2) { + static const string foo("foo"); + RE2Cache::ScopedAccess access(&cache_, foo); + + const RE2& regexp = access; + EXPECT_EQ(foo, regexp.pattern()); +} + +} // namespace phonenumbers +} // namespace i18n diff --git a/third_party/libphonenumber/cpp/src/regexp_adapter.h b/third_party/libphonenumber/cpp/src/regexp_adapter.h new file mode 100644 index 0000000..233adbe --- /dev/null +++ b/third_party/libphonenumber/cpp/src/regexp_adapter.h @@ -0,0 +1,96 @@ +// Copyright (C) 2011 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Author: George Yakovlev + +#ifndef I18N_PHONENUMBERS_REGEXP_ADAPTER_H_ +#define I18N_PHONENUMBERS_REGEXP_ADAPTER_H_ + +#include + +// Regexp adapter to allow pluggable regexp engine, as it is external to +// libphonenumber. + +namespace reg_exp { + +// The reg exp input class. +// It supports only functions used in phonelibrary. +class RegularExpressionInput { + public: + virtual ~RegularExpressionInput() {}; + + // Matches string to regular expression, returns true if expression was + // matched, false otherwise, advances position in the match. + // |reg_exp| - expression to be matched. + // |beginning_only| - if true match would be successfull only if appears at + // the beginning of the tested region of the string. + // |matched_string1| - successfully matched first string. Can be NULL. + // |matched_string2| - successfully matched second string. Can be NULL. + virtual bool ConsumeRegExp(std::string const& reg_exp, + bool beginning_only, + std::string* matched_string1, + std::string* matched_string2) = 0; + // Convert unmatched input to a string. + virtual std::string ToString() const = 0; +}; + +// The regular expression class. +// It supports only functions used in phonelibrary. +class RegularExpression { + public: + RegularExpression() {} + virtual ~RegularExpression() {} + + // Matches string to regular expression, returns true if expression was + // matched, false otherwise, advances position in the match. + // |input_string| - string to be searched. + // |beginning_only| - if true match would be successfull only if appears at + // the beginning of the tested region of the string. + // |matched_string1| - successfully matched first string. Can be NULL. + // |matched_string2| - successfully matched second string. Can be NULL. + // |matched_string3| - successfully matched third string. Can be NULL. + virtual bool Consume(RegularExpressionInput* input_string, + bool beginning_only, + std::string* matched_string1 = NULL, + std::string* matched_string2 = NULL, + std::string* matched_string3 = NULL) const = 0; + + + // Matches string to regular expression, returns true if expression was + // matched, false otherwise. + // |input_string| - string to be searched. + // |full_match| - if true match would be successfull only if it matches the + // complete string. + // |matched_string| - successfully matched string. Can be NULL. + virtual bool Match(const char* input_string, + bool full_match, + std::string* matched_string) const = 0; + + // Replaces match(es) in the |string_to_process|. if |global| is true, + // replaces all the matches, only the first match otherwise. + // |replacement_string| - text the matches are replaced with. + // Returns true if expression successfully processed through the string, + // even if no actual replacements were made. Returns false in case of an + // error. + virtual bool Replace(std::string* string_to_process, + bool global, + const char* replacement_string) const = 0; +}; + +RegularExpressionInput* CreateRegularExpressionInput(const char* utf8_input); +RegularExpression* CreateRegularExpression(const char* utf8_regexp); + +} // namespace reg_exp + +#endif // I18N_PHONENUMBERS_REGEXP_ADAPTER_H_ diff --git a/third_party/libphonenumber/cpp/src/regexp_adapter_re2.cc b/third_party/libphonenumber/cpp/src/regexp_adapter_re2.cc new file mode 100644 index 0000000..f7a230c --- /dev/null +++ b/third_party/libphonenumber/cpp/src/regexp_adapter_re2.cc @@ -0,0 +1,192 @@ +// Copyright (C) 2011 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Author: George Yakovlev +#include "regexp_adapter.h" + +#include +#include +#include + +namespace { +scoped_ptr re2_cache; +} // namespace + +class RE2RegularExpressionInput : public RegularExpressionInput { + public: + RE2RegularExpressionInput(const char* utf8_input); + + virtual bool ConsumeRegExp(std::string const& reg_exp, + bool beginning_only, + std::string* matched_string1, + std::string* matched_string2); + virtual std::string ToString() const; + private: + StringPiece utf8_input_; +}; + + +class RE2RegularExpression : public reg_exp::RegularExpression { + public: + RE2RegularExpression(const char* utf8_regexp); + + virtual bool Consume(reg_exp::RegularExpressionInput* input_string, + bool beginning_only, + std::string* matched_string1, + std::string* matched_string2, + std::string* matched_string3) const; + + virtual bool Match(const char* input_string, + bool full_match, + std::string* matched_string) const; + + virtual bool Replace(std::string* string_to_process, + bool global, + const char* replacement_string) const; + private: + RE2 utf8_regexp_; +}; + +RE2RegularExpressionInput::RE2RegularExpressionInput(const char* utf8_input) + : utf8_input_(utf8_input) { + DCHECK(utf8_input); +} + +bool RE2RegularExpressionInput::ConsumeRegExp(std::string const& reg_exp, + bool beginning_only, + std::string* matched_string1, + std::string* matched_string2) { + if (beginning_only) { + if (matched_string2) + return RE2::Consume(&utf8_input_, + RE2Cache::ScopedAccess(re2_cache.get(), reg_exp), + matched_string1, matched_string2); + else if (matched_string1) + return RE2::Consume(&utf8_input_, + RE2Cache::ScopedAccess(re2_cache.get(), reg_exp), + matched_string1); + else + return RE2::Consume(&utf8_input_, + RE2Cache::ScopedAccess(re2_cache.get(), reg_exp)); + } else { + if (matched_string2) + return RE2::FindAndConsume(&utf8_input_, + RE2Cache::ScopedAccess(re2_cache.get(), + reg_exp), + matched_string1, matched_string2); + else if (matched_string1) + return RE2::FindAndConsume(&utf8_input_, + RE2Cache::ScopedAccess(re2_cache.get(), + reg_exp), + matched_string1); + else + return RE2::FindAndConsume(&utf8_input_, + RE2Cache::ScopedAccess(re2_cache.get(), + reg_exp)); + } +} + +std::string RE2RegularExpressionInput::ToString() const { + utf8_input_.ToString(); +} + +RE2RegularExpression::RE2RegularExpression(const char* utf8_regexp) + : utf8_regexp_(utf8_regexp) { + DCHECK(utf8_regexp); +} + +bool RE2RegularExpression::Consume(RegularExpressionInput* input_string, + bool beginning_only, + std::string* matched_string1, + std::string* matched_string2, + std::string* matched_string3) const { + DCHECK(input_string); + // matched_string1 may be NULL + // matched_string2 may be NULL + if (beginning_only) { + if (matched_string3) { + return RE2::Consume(input_string, utf8_regexp_, + matched_string1, matched_string2, matched_string3); + } else if (matched_string2) { + return RE2::Consume(input_string, utf8_regexp_, + matched_string1, matched_string2); + } else if (matched_string1) { + return RE2::Consume(input_string, utf8_regexp_, matched_string1); + } else { + return RE2::Consume(input_string, utf8_regexp_); + } + } else { + if (matched_string3) { + return RE2::FindAndConsume(input_string, utf8_regexp_, + matched_string1, matched_string2, + matched_string3); + } else if (matched_string2) { + return RE2::FindAndConsume(input_string, utf8_regexp_, + matched_string1, matched_string2); + } else if (matched_string1) { + return RE2::FindAndConsume(input_string, utf8_regexp_, matched_string1); + } else { + return RE2::FindAndConsume(input_string, utf8_regexp_); + } + } +} + +bool RE2RegularExpression::Match(const char* input_string, + bool full_match, + std::string* matched_string) const { + DCHECK(input_string); + // matched_string may be NULL + if (full_match) { + if (matched_string) + return RE2::FullMatch(input_string, matched_string); + else + return RE2::FullMatch(input_string); + } else { + if (matched_string) + return RE2::PartialMatch(input_string, matched_string); + else + return RE2::PartialMatch(input_string); + } +} + +bool RE2RegularExpression::Replace(std::string* string_to_process, + bool global, + const char* replacement_string) const { + DCHECK(string_to_process); + DCHECK(replacement_string); + if (global) { + StringPiece str(replacement_string); + return RE2::GlobalReplace(string_to_process, str); + } else { + return RE2::Replace(string_to_process, replacement_string); + } +} + + +namespace reg_exp { + +RegularExpressionInput* CreateRegularExpressionInput(const char* utf8_input) { + if (!re2_cache.get()) + re2_cache.reset(new RE2Cache(64)); + return new RE2RegularExpressionInput(utf8_input); +} + +RegularExpression* CreateRegularExpression(const char* utf8_regexp) { + if (!re2_cache.get()) + re2_cache.reset(new RE2Cache(64)); + return new RE2RegularExpression(utf8_regexp); +} + +} // namespace reg_exp + diff --git a/third_party/libphonenumber/cpp/src/regexp_adapter_unittest.cc b/third_party/libphonenumber/cpp/src/regexp_adapter_unittest.cc new file mode 100644 index 0000000..446f83c --- /dev/null +++ b/third_party/libphonenumber/cpp/src/regexp_adapter_unittest.cc @@ -0,0 +1,142 @@ +// Copyright (C) 2011 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Author: George Yakovlev +#include + +#include "base/scoped_ptr.h" +#include "regexp_adapter.h" + +namespace reg_exp { + +TEST(RegExpAdapter, TestConsumeRegExp) { + scoped_ptr reg_exp1( + reg_exp::CreateRegularExpression("[0-9a-z]+")); + scoped_ptr reg_exp2( + reg_exp::CreateRegularExpression(" \\(([0-9a-z]+)\\)")); + scoped_ptr reg_exp3( + reg_exp::CreateRegularExpression("([0-9a-z]+)-([0-9a-z]+)")); + + scoped_ptr reg_input1( + reg_exp::CreateRegularExpressionInput("+1-123-456-789")); + scoped_ptr reg_input2( + reg_exp::CreateRegularExpressionInput("1 (123)456-789")); + + EXPECT_FALSE(reg_exp1->Consume(reg_input1.get(), true, NULL, NULL)); + EXPECT_EQ(reg_input1->ToString(), "+1-123-456-789"); + EXPECT_TRUE(reg_exp1->Consume(reg_input1.get(), false, NULL, NULL)); + EXPECT_EQ(reg_input1->ToString(), "-123-456-789"); + std::string res1, res2; + EXPECT_FALSE(reg_exp2->Consume(reg_input1.get(), true, &res1, NULL)); + EXPECT_FALSE(reg_exp3->Consume(reg_input1.get(), true, &res1, &res2)); + EXPECT_TRUE(reg_exp3->Consume(reg_input1.get(), false, &res1, &res2)); + EXPECT_EQ(reg_input1->ToString(), "-789"); + EXPECT_EQ(res1, "123"); + EXPECT_EQ(res2, "456"); + + EXPECT_EQ(reg_input2->ToString(), "1 (123)456-789"); + EXPECT_TRUE(reg_exp1->Consume(reg_input2.get(), true, NULL, NULL)); + EXPECT_EQ(reg_input2->ToString(), " (123)456-789"); + EXPECT_TRUE(reg_exp2->Consume(reg_input2.get(), true, &res1, NULL)); + EXPECT_EQ(reg_input2->ToString(), "456-789"); + EXPECT_EQ(res1, "123"); + EXPECT_TRUE(reg_exp3->Consume(reg_input2.get(), true, &res1, &res2)); + EXPECT_EQ(reg_input2->ToString(), ""); + EXPECT_EQ(res1, "456"); + EXPECT_EQ(res2, "789"); +} + +TEST(RegExpAdapter, TestConsumeInput) { + scoped_ptr reg_input( + reg_exp::CreateRegularExpressionInput("1 (123)456-789")); + std::string res1, res2; + EXPECT_EQ(reg_input->ToString(), "1 (123)456-789"); + EXPECT_FALSE(reg_input->ConsumeRegExp(std::string("\\[1\\]"), + true, + &res1, + &res2)); + EXPECT_EQ(reg_input->ToString(), "1 (123)456-789"); + EXPECT_FALSE(reg_input->ConsumeRegExp(std::string("([0-9]+) \\([0-9]+\\)"), + true, + &res1, + &res2)); + EXPECT_EQ(reg_input->ToString(), "1 (123)456-789"); + EXPECT_TRUE(reg_input->ConsumeRegExp(std::string("([0-9]+) \\(([0-9]+)\\)"), + true, + &res1, + &res2)); + EXPECT_EQ(reg_input->ToString(), "456-789"); + EXPECT_EQ(res1, "1"); + EXPECT_EQ(res2, "123"); +} + +TEST(RegExpAdapter, TestMatch) { + scoped_ptr reg_exp( + reg_exp::CreateRegularExpression("([0-9a-z]+)")); + std::string matched; + EXPECT_TRUE(reg_exp->Match("12345af", true, &matched)); + EXPECT_EQ(matched, "12345af"); + EXPECT_TRUE(reg_exp->Match("12345af", false, &matched)); + EXPECT_EQ(matched, "12345af"); + EXPECT_TRUE(reg_exp->Match("12345af", false, NULL)); + EXPECT_TRUE(reg_exp->Match("12345af", true, NULL)); + + EXPECT_FALSE(reg_exp->Match("[12]", true, &matched)); + EXPECT_TRUE(reg_exp->Match("[12]", false, &matched)); + EXPECT_EQ(matched, "12"); + + EXPECT_FALSE(reg_exp->Match("[]", true, &matched)); + EXPECT_FALSE(reg_exp->Match("[]", false, &matched)); +} + +TEST(RegExpAdapter, TestReplace) { + scoped_ptr reg_exp( + reg_exp::CreateRegularExpression("[0-9]")); + + std::string s("123-4567 "); + EXPECT_TRUE(reg_exp->Replace(&s, false, "+")); + EXPECT_EQ(s, "+23-4567 "); + EXPECT_TRUE(reg_exp->Replace(&s, false, "+")); + EXPECT_EQ(s, "++3-4567 "); + EXPECT_TRUE(reg_exp->Replace(&s, true, "*")); + EXPECT_EQ(s, "++*-**** "); + EXPECT_TRUE(reg_exp->Replace(&s, true, "*")); + EXPECT_EQ(s, "++*-**** "); + + scoped_ptr full_number_expr( + reg_exp::CreateRegularExpression("(\\d{3})(\\d{3})(\\d{4})")); + s = "1234567890:0987654321"; + EXPECT_TRUE(full_number_expr->Replace(&s, true, "(\\1) \\2-\\3$1")); + EXPECT_EQ(s, "(123) 456-7890$1:(098) 765-4321$1"); +} + +TEST(RegExpAdapter, TestUtf8) { + // Expression: [-]* + // + scoped_ptr reg_exp( + reg_exp::CreateRegularExpression( + "\xe2\x84\xa1\xe2\x8a\x8f([\xce\xb1-\xcf\x89]*)\xe2\x8a\x90")); + std::string matched; + // The string is split to avoid problem with MSVC compiler when it thinks + // 123 is a part of character code. + EXPECT_FALSE(reg_exp->Match("\xe2\x84\xa1\xe2\x8a\x8f" "123\xe2\x8a\x90", + true, &matched)); + EXPECT_TRUE(reg_exp->Match( + "\xe2\x84\xa1\xe2\x8a\x8f\xce\xb1\xce\xb2\xe2\x8a\x90", true, &matched)); + // + EXPECT_EQ(matched, "\xce\xb1\xce\xb2"); +} + +} // namespace reg_exp + diff --git a/third_party/libphonenumber/cpp/src/run_tests.cc b/third_party/libphonenumber/cpp/src/run_tests.cc new file mode 100644 index 0000000..b38e7bc --- /dev/null +++ b/third_party/libphonenumber/cpp/src/run_tests.cc @@ -0,0 +1,7 @@ +#include + +int main(int argc, char** argv) { + ::testing::InitGoogleTest(&argc, argv); + + return RUN_ALL_TESTS(); +} diff --git a/third_party/libphonenumber/cpp/src/stringutil.cc b/third_party/libphonenumber/cpp/src/stringutil.cc new file mode 100644 index 0000000..70ec010 --- /dev/null +++ b/third_party/libphonenumber/cpp/src/stringutil.cc @@ -0,0 +1,273 @@ +// Copyright (C) 2011 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Author: Philippe Liard + +#include +#include +#include + +#include "stringutil.h" + +namespace i18n { +namespace phonenumbers { + +using std::stringstream; + +string operator+(const string& s, int n) { + stringstream stream; + + stream << s << n; + string result; + stream >> result; + + return result; +} + +template +string GenericSimpleItoa(const T& n) { + stringstream stream; + + stream << n; + string result; + stream >> result; + + return result; +} + +string SimpleItoa(int n) { + return GenericSimpleItoa(n); +} + +string SimpleItoa(uint64 n) { + return GenericSimpleItoa(n); +} + +void StripString(string* s, const char* remove, char replacewith) { + const char* str_start = s->c_str(); + const char* str = str_start; + for (str = strpbrk(str, remove); + str != NULL; + str = strpbrk(str + 1, remove)) { + (*s)[str - str_start] = replacewith; + } +} + +bool TryStripPrefixString(const string& in, const string& prefix, string* out) { + assert(out); + const bool has_prefix = in.compare(0, prefix.length(), prefix) == 0; + out->assign(has_prefix ? in.substr(prefix.length()) : in); + + return has_prefix; +} + +bool HasSuffixString(const string& s, const string& suffix) { + if (s.length() < suffix.length()) { + return false; + } + return s.compare(s.length() - suffix.length(), suffix.length(), suffix) == 0; +} + +template +void GenericAtoi(const string& s, T* out) { + stringstream stream; + stream << s; + stream >> *out; +} + +void safe_strto32(const string& s, int32 *n) { + GenericAtoi(s, n); +} + +void safe_strtou64(const string& s, uint64 *n) { + GenericAtoi(s, n); +} + +void strrmm(string* s, const string& chars) { + for (string::iterator it = s->begin(); it != s->end(); ) { + const char current_char = *it; + if (chars.find(current_char) != string::npos) { + it = s->erase(it); + } else { + ++it; + } + } +} + +// StringHolder class + +StringHolder::StringHolder(const string& s) : + string_(&s), + cstring_(NULL), + len_(s.size()) +{} + +StringHolder::StringHolder(const char* s) : + string_(NULL), + cstring_(s), + len_(std::strlen(s)) +{} + +StringHolder::StringHolder(uint64 n) : + converted_string_(SimpleItoa(n)), + string_(&converted_string_), + cstring_(NULL), + len_(converted_string_.length()) +{} + +StringHolder::~StringHolder() {} + +// StrCat + +// Implements s += sh; (s: string, sh: StringHolder) +string& operator+=(string& lhs, const StringHolder& rhs) { + const string* const s = rhs.GetString(); + if (s) { + lhs += *s; + } else { + const char* const cs = rhs.GetCString(); + if (cs) + lhs.append(cs, rhs.Length()); + } + return lhs; +} + +string StrCat(const StringHolder& s1, const StringHolder& s2) { + string result; + result.reserve(s1.Length() + s2.Length() + 1); + + result += s1; + result += s2; + + return result; +} + +string StrCat(const StringHolder& s1, const StringHolder& s2, + const StringHolder& s3) { + string result; + result.reserve(s1.Length() + s2.Length() + s3.Length() + 1); + + result += s1; + result += s2; + result += s3; + + return result; +} + +string StrCat(const StringHolder& s1, const StringHolder& s2, + const StringHolder& s3, const StringHolder& s4) { + string result; + result.reserve(s1.Length() + s2.Length() + s3.Length() + s4.Length() + 1); + + result += s1; + result += s2; + result += s3; + result += s4; + + return result; +} + +string StrCat(const StringHolder& s1, const StringHolder& s2, + const StringHolder& s3, const StringHolder& s4, + const StringHolder& s5) { + string result; + result.reserve(s1.Length() + s2.Length() + s3.Length() + s4.Length() + + s5.Length() + 1); + result += s1; + result += s2; + result += s3; + result += s4; + result += s5; + + return result; +} + +string StrCat(const StringHolder& s1, const StringHolder& s2, + const StringHolder& s3, const StringHolder& s4, + const StringHolder& s5, const StringHolder& s6) { + string result; + result.reserve(s1.Length() + s2.Length() + s3.Length() + s4.Length() + + s5.Length() + s6.Length() + 1); + result += s1; + result += s2; + result += s3; + result += s4; + result += s5; + result += s6; + + return result; +} + +string StrCat(const StringHolder& s1, const StringHolder& s2, + const StringHolder& s3, const StringHolder& s4, + const StringHolder& s5, const StringHolder& s6, + const StringHolder& s7) { + string result; + result.reserve(s1.Length() + s2.Length() + s3.Length() + s4.Length() + + s5.Length() + s6.Length() + s7.Length() + 1); + result += s1; + result += s2; + result += s3; + result += s4; + result += s5; + result += s6; + result += s7; + + return result; +} + +string StrCat(const StringHolder& s1, const StringHolder& s2, + const StringHolder& s3, const StringHolder& s4, + const StringHolder& s5, const StringHolder& s6, + const StringHolder& s7, const StringHolder& s8, + const StringHolder& s9, const StringHolder& s10, + const StringHolder& s11) { + string result; + result.reserve(s1.Length() + s2.Length() + s3.Length() + s4.Length() + + s5.Length() + s6.Length() + s7.Length() + s8.Length() + + s9.Length() + s10.Length() + s11.Length()); + result += s1; + result += s2; + result += s3; + result += s4; + result += s5; + result += s6; + result += s7; + result += s8; + result += s9; + result += s10; + result += s11; + + return result; +} + +// StrAppend + +void StrAppend(string* dest, const StringHolder& s1) { + assert(dest); + + dest->reserve(dest->length() + s1.Length() + 1); + *dest += s1; +} + +void StrAppend(string* dest, const StringHolder& s1, const StringHolder& s2) { + assert(dest); + + dest->reserve(dest->length() + s1.Length() + s2.Length() + 1); + *dest += s1; + *dest += s2; +} + +} // namespace phonenumbers +} // namespace i18n diff --git a/third_party/libphonenumber/cpp/src/stringutil.h b/third_party/libphonenumber/cpp/src/stringutil.h new file mode 100644 index 0000000..a9ba6fc --- /dev/null +++ b/third_party/libphonenumber/cpp/src/stringutil.h @@ -0,0 +1,125 @@ +// Copyright (C) 2011 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Author: Philippe Liard + +#ifndef I18N_PHONENUMBERS_STRINGUTIL_H_ +#define I18N_PHONENUMBERS_STRINGUTIL_H_ + +#include +#include + +#include "base/basictypes.h" + +namespace i18n { +namespace phonenumbers { + +using std::string; + +// Supports string("hello") + 10. +string operator+(const string& s, int n); + +// Converts integer to string. +string SimpleItoa(uint64 n); +string SimpleItoa(int n); + +// Replaces any occurrence of the character 'remove' (or the characters +// in 'remove') with the character 'replacewith'. +void StripString(string* s, const char* remove, char replacewith); + +// Returns true if 'in' starts with 'prefix' and writes 'in' minus 'prefix' into +// 'out'. +bool TryStripPrefixString(const string& in, const string& prefix, string* out); + +// Returns true if 's' ends with 'suffix'. +bool HasSuffixString(const string& s, const string& suffix); + +// Converts string to int32. +void safe_strto32(const string& s, int32 *n); + +// Converts string to uint64. +void safe_strtou64(const string& s, uint64 *n); + +// Remove all occurrences of a given set of characters from a string. +void strrmm(string* s, const string& chars); + +// Holds a reference to a std::string or C string. It can also be constructed +// from an integer which is converted to a string. +class StringHolder { +public: + // Don't make the constructors explicit to make the StrCat usage convenient. + StringHolder(const string& s); + StringHolder(const char* s); + StringHolder(uint64 n); + ~StringHolder(); + + const string* GetString() const { + return string_; + } + + const char* GetCString() const { + return cstring_; + } + + size_t Length() const { + return len_; + } + +private: + const string converted_string_; // Stores the string converted from integer. + const string* const string_; + const char* const cstring_; + const size_t len_; +}; + +string& operator+=(string& lhs, const StringHolder& rhs); + +// Efficient string concatenation. + +string StrCat(const StringHolder& s1, const StringHolder& s2); + +string StrCat(const StringHolder& s1, const StringHolder& s2, + const StringHolder& s3); + +string StrCat(const StringHolder& s1, const StringHolder& s2, + const StringHolder& s3, const StringHolder& s4); + +string StrCat(const StringHolder& s1, const StringHolder& s2, + const StringHolder& s3, const StringHolder& s4, + const StringHolder& s5); + +string StrCat(const StringHolder& s1, const StringHolder& s2, + const StringHolder& s3, const StringHolder& s4, + const StringHolder& s5, const StringHolder& s6); + +string StrCat(const StringHolder& s1, const StringHolder& s2, + const StringHolder& s3, const StringHolder& s4, + const StringHolder& s5, const StringHolder& s6, + const StringHolder& s7); + +string StrCat(const StringHolder& s1, const StringHolder& s2, + const StringHolder& s3, const StringHolder& s4, + const StringHolder& s5, const StringHolder& s6, + const StringHolder& s7, const StringHolder& s8, + const StringHolder& s9, const StringHolder& s10, + const StringHolder& s11); + +void StrAppend(string* dest, const StringHolder& s1); + +void StrAppend(string* dest, const StringHolder& s1, const StringHolder& s2); + +} // namespace phonenumbers +} // namespace i18n + +#endif // I18N_PHONENUMBERS_STRINGUTIL_H_ diff --git a/third_party/libphonenumber/cpp/src/stringutil_test.cc b/third_party/libphonenumber/cpp/src/stringutil_test.cc new file mode 100644 index 0000000..3d665e2 --- /dev/null +++ b/third_party/libphonenumber/cpp/src/stringutil_test.cc @@ -0,0 +1,208 @@ +// Copyright (C) 2011 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Author: Philippe Liard + +#include + +#include "stringutil.h" + +namespace i18n { +namespace phonenumbers { + +// Test operator+(const string&, int). +TEST(StringUtilTest, OperatorPlus) { + EXPECT_EQ("hello10", string("hello") + 10); +} + +// Test SimpleItoa implementation. +TEST(StringUtilTest, SimpleItoa) { + EXPECT_EQ("10", SimpleItoa(10)); +} + +// Test TryStripPrefixString. +TEST(StringUtilTest, TryStripPrefixString) { + string s; + + EXPECT_TRUE(TryStripPrefixString("hello world", "hello", &s)); + EXPECT_EQ(" world", s); + s.clear(); + + EXPECT_FALSE(TryStripPrefixString("hello world", "helloa", &s)); + s.clear(); + + EXPECT_TRUE(TryStripPrefixString("hello world", "", &s)); + EXPECT_EQ("hello world", s); + s.clear(); + + EXPECT_FALSE(TryStripPrefixString("", "hello", &s)); + s.clear(); +} + +// Test HasSuffixString. +TEST(StringUtilTest, HasSuffixString) { + EXPECT_TRUE(HasSuffixString("hello world", "hello world")); + EXPECT_TRUE(HasSuffixString("hello world", "world")); + EXPECT_FALSE(HasSuffixString("hello world", "world!")); + EXPECT_TRUE(HasSuffixString("hello world", "")); + EXPECT_FALSE(HasSuffixString("", "hello")); +} + +// Test safe_strto32. +TEST(StringUtilTest, safe_strto32) { + int32 n; + + safe_strto32("0", &n); + EXPECT_EQ(0, n); + + safe_strto32("16", &n); + EXPECT_EQ(16, n); + + safe_strto32("2147483647", &n); + EXPECT_EQ(2147483647, n); + + safe_strto32("-2147483648", &n); + EXPECT_EQ(-2147483648, n); +} + +// Test safe_strtou64. +TEST(StringUtilTest, safe_strtou64) { + uint64 n; + + safe_strtou64("0", &n); + EXPECT_EQ(0, n); + + safe_strtou64("16", &n); + EXPECT_EQ(16, n); + + safe_strtou64("18446744073709551615UL", &n); + EXPECT_EQ(18446744073709551615ULL, n); +} + +// Test strrmm. +TEST(StringUtilTest, strrmm) { + string input("hello"); + + strrmm(&input, ""); + EXPECT_EQ(input, input); + + string empty; + strrmm(&empty, ""); + EXPECT_EQ("", empty); + + strrmm(&empty, "aa"); + EXPECT_EQ("", empty); + + strrmm(&input, "h"); + EXPECT_EQ("ello", input); + + strrmm(&input, "el"); + EXPECT_EQ("o", input); +} + +// Test the StringHolder class. +TEST(StringUtilTest, StringHolder) { + // Test with C string. + static const char cstring[] = "aaa"; + StringHolder sh1(cstring); + EXPECT_EQ(cstring, sh1.GetCString()); + EXPECT_EQ(NULL, sh1.GetString()); + + // Test with std::string. + string s = "bbb"; + StringHolder sh2(s); + EXPECT_EQ(NULL, sh2.GetCString()); + EXPECT_EQ(&s, sh2.GetString()); + + // Test GetLength(). + string s2 = "hello"; + StringHolder sh3(s2); + EXPECT_EQ(5, sh3.Length()); + + // Test with uint64. + StringHolder sh4(42); + EXPECT_TRUE(sh4.GetCString() == NULL); + EXPECT_EQ(2, sh4.Length()); + EXPECT_EQ("42", *sh4.GetString()); +} + +// Test the operator+=(string& lhs, const StringHolder& rhs) implementation. +TEST(StringUtilTest, OperatorPlusEquals) { + // Test with a const char* string to append. + string s = "h"; + static const char append1[] = "ello"; + s += StringHolder(append1); // force StringHolder usage + + EXPECT_EQ("hello", s); + + // Test with a std::string to append. + s = "h"; + string append2 = "ello"; + s += StringHolder(append2); // force StringHolder usage + + EXPECT_EQ("hello", s); +} + +// Test the StrCat implementations +TEST(StringUtilTest, StrCat) { + string s; + + // Test with 2 arguments. + s = StrCat("a", "b"); + EXPECT_EQ("ab", s); + + // Test with 3 arguments. + s = StrCat("a", "b", "c"); + EXPECT_EQ("abc", s); + + // Test with 4 arguments. + s = StrCat("a", "b", "c", "d"); + EXPECT_EQ("abcd", s); + + // Test with 5 arguments. + s = StrCat("a", "b", "c", "d", "e"); + EXPECT_EQ("abcde", s); + + // Test with 6 arguments. + s = StrCat("a", "b", "c", "d", "e", "f"); + EXPECT_EQ("abcdef", s); + + // Test with 7 arguments. + s = StrCat("a", "b", "c", "d", "e", "f", "g"); + EXPECT_EQ("abcdefg", s); + + // Test with 11 arguments. + s = StrCat("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k"); + EXPECT_EQ("abcdefghijk", s); +} + +// Test the StrAppend implementations. +TEST(StringUtilTest, StrAppend) { + string s; + + // Test with 1 argument. + StrAppend(&s, "a"); + EXPECT_EQ("a", s); + + // Test with 2 arguments. + StrAppend(&s, "b", "c"); + EXPECT_EQ("abc", s); + + // Test with int argument. + StrAppend(&s, 42); + EXPECT_EQ("abc42", s); +} + +} // namespace phonenumbers +} // namespace i18n diff --git a/third_party/libphonenumber/cpp/src/test_metadata.cc b/third_party/libphonenumber/cpp/src/test_metadata.cc new file mode 100644 index 0000000..6c1d409 --- /dev/null +++ b/third_party/libphonenumber/cpp/src/test_metadata.cc @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2011 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#include "test_metadata.h" + +static const unsigned char test_metadata_data[] = { 0x0A, 0x67, 0x0A, 0x00, 0x12, 0x00, 0x1A, 0x00, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x41, 0x44, 0x50, 0xF8, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x90, 0x01, 0x01, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xF8, 0x01, 0x0A, 0x12, 0x12, 0x09, 0x5B, 0x32, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x12, 0x31, 0x12, 0x1D, 0x32, 0x5C, 0x64, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x36, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x5C, 0x64, 0x5B, 0x32, 0x36, 0x2D, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x32, 0x32, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x1F, 0x12, 0x0B, 0x39, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x39, 0x32, 0x33, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x41, 0x4F, 0x50, 0xF4, 0x01, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x03, 0x30, 0x7E, 0x30, 0x7A, 0x03, 0x30, 0x7E, 0x30, 0x9A, 0x01, 0x25, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xF4, 0x05, 0x0A, 0x1C, 0x12, 0x10, 0x5B, 0x31, 0x2D, 0x33, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x2C, 0x31, 0x30, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x31, 0x7D, 0x12, 0x16, 0x12, 0x0A, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x30, 0x7D, 0x1A, 0x1F, 0x12, 0x12, 0x39, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x7C, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x09, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x2C, 0x31, 0x31, 0x7D, 0x22, 0x11, 0x12, 0x07, 0x38, 0x30, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x2A, 0x18, 0x12, 0x0E, 0x36, 0x28, 0x30, 0x5C, 0x64, 0x7C, 0x31, 0x30, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x41, 0x52, 0x50, 0x36, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x15, 0x30, 0x28, 0x3F, 0x3A, 0x28, 0x31, 0x31, 0x7C, 0x33, 0x34, 0x33, 0x7C, 0x33, 0x37, 0x31, 0x35, 0x29, 0x31, 0x35, 0x29, 0x3F, 0x82, 0x01, 0x03, 0x39, 0x24, 0x31, 0x9A, 0x01, 0x2C, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x02, 0x31, 0x31, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x36, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x0C, 0x31, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x32, 0x33, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2E, 0x0A, 0x13, 0x39, 0x28, 0x31, 0x31, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x31, 0x35, 0x20, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x03, 0x39, 0x31, 0x31, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x43, 0x0A, 0x16, 0x39, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x11, 0x39, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x32, 0x33, 0x5D, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x07, 0x30, 0x24, 0x31, 0x20, 0x24, 0x43, 0x43, 0x9A, 0x01, 0x2E, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x04, 0x5B, 0x36, 0x38, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xA2, 0x01, 0x27, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x02, 0x31, 0x31, 0x2A, 0x00, 0xA2, 0x01, 0x31, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x0C, 0x31, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x32, 0x33, 0x5D, 0x2A, 0x00, 0xA2, 0x01, 0x2B, 0x0A, 0x15, 0x28, 0x39, 0x29, 0x28, 0x31, 0x31, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x03, 0x39, 0x31, 0x31, 0x2A, 0x00, 0xA2, 0x01, 0x3C, 0x0A, 0x18, 0x28, 0x39, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x11, 0x39, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x32, 0x33, 0x5D, 0x29, 0x2A, 0x00, 0xA2, 0x01, 0x29, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x04, 0x5B, 0x36, 0x38, 0x5D, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xAF, 0x02, 0x0A, 0x1B, 0x12, 0x0F, 0x5B, 0x31, 0x2D, 0x35, 0x37, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x31, 0x34, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x31, 0x35, 0x7D, 0x12, 0x14, 0x12, 0x0B, 0x5B, 0x32, 0x33, 0x37, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x0F, 0x12, 0x06, 0x34, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x22, 0x13, 0x12, 0x09, 0x31, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x2A, 0x18, 0x12, 0x0E, 0x31, 0x39, 0x30, 0x5B, 0x30, 0x31, 0x32, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x41, 0x55, 0x50, 0x3D, 0x5A, 0x07, 0x30, 0x30, 0x31, 0x5B, 0x31, 0x32, 0x5D, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x8A, 0x01, 0x04, 0x30, 0x30, 0x31, 0x31, 0x9A, 0x01, 0x2A, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x31, 0x22, 0x02, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x31, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x31, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x07, 0x5B, 0x32, 0x2D, 0x34, 0x37, 0x38, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xC1, 0x02, 0x0A, 0x29, 0x12, 0x1D, 0x28, 0x32, 0x34, 0x32, 0x7C, 0x38, 0x28, 0x30, 0x30, 0x7C, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x38, 0x29, 0x7C, 0x39, 0x30, 0x30, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0x6C, 0x12, 0x60, 0x32, 0x34, 0x32, 0x28, 0x3F, 0x3A, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x32, 0x7C, 0x5B, 0x32, 0x33, 0x36, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x34, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x36, 0x38, 0x5D, 0x7C, 0x37, 0x5B, 0x33, 0x2D, 0x35, 0x37, 0x5D, 0x7C, 0x39, 0x5B, 0x32, 0x2D, 0x35, 0x5D, 0x29, 0x7C, 0x34, 0x28, 0x3F, 0x3A, 0x32, 0x5B, 0x32, 0x33, 0x37, 0x5D, 0x7C, 0x35, 0x31, 0x7C, 0x36, 0x34, 0x7C, 0x37, 0x37, 0x29, 0x7C, 0x35, 0x30, 0x32, 0x7C, 0x36, 0x33, 0x36, 0x7C, 0x37, 0x30, 0x32, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x30, 0x7D, 0x1A, 0x23, 0x12, 0x19, 0x32, 0x34, 0x32, 0x28, 0x33, 0x35, 0x37, 0x7C, 0x33, 0x35, 0x39, 0x7C, 0x34, 0x35, 0x37, 0x7C, 0x35, 0x35, 0x37, 0x29, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x22, 0x1D, 0x12, 0x13, 0x38, 0x28, 0x30, 0x30, 0x7C, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x38, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x2A, 0x12, 0x12, 0x08, 0x39, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x42, 0x53, 0x50, 0x01, 0x5A, 0x03, 0x30, 0x31, 0x31, 0x62, 0x01, 0x31, 0x7A, 0x01, 0x31, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x88, 0x05, 0x0A, 0x14, 0x12, 0x08, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x31, 0x34, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x31, 0x34, 0x7D, 0x12, 0x4E, 0x12, 0x38, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x34, 0x2D, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x7C, 0x33, 0x5B, 0x30, 0x33, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x5B, 0x37, 0x38, 0x39, 0x5D, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7C, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x29, 0x29, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x38, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x31, 0x34, 0x7D, 0x32, 0x08, 0x33, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x30, 0x12, 0x23, 0x31, 0x28, 0x35, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x7C, 0x37, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x7C, 0x36, 0x5B, 0x30, 0x32, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x7C, 0x36, 0x33, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x29, 0x1A, 0x09, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x2C, 0x31, 0x31, 0x7D, 0x22, 0x12, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x2A, 0x23, 0x12, 0x16, 0x39, 0x30, 0x30, 0x28, 0x5B, 0x31, 0x33, 0x35, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x39, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x29, 0x1A, 0x09, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x2C, 0x31, 0x31, 0x7D, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x44, 0x45, 0x50, 0x31, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x3A, 0x0A, 0x10, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x38, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x18, 0x32, 0x7C, 0x33, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x30, 0x36, 0x7C, 0x5B, 0x34, 0x2D, 0x39, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x31, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2D, 0x0A, 0x10, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x39, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x2F, 0x24, 0x32, 0x1A, 0x0B, 0x5B, 0x33, 0x34, 0x5D, 0x30, 0x7C, 0x5B, 0x36, 0x38, 0x5D, 0x39, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x47, 0x0A, 0x10, 0x28, 0x5B, 0x34, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x05, 0x5B, 0x34, 0x2D, 0x39, 0x5D, 0x1A, 0x1E, 0x5B, 0x34, 0x2D, 0x36, 0x5D, 0x7C, 0x5B, 0x37, 0x2D, 0x39, 0x5D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x4C, 0x0A, 0x15, 0x28, 0x5B, 0x34, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x37, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x05, 0x5B, 0x34, 0x2D, 0x39, 0x5D, 0x1A, 0x1E, 0x5B, 0x34, 0x2D, 0x36, 0x5D, 0x7C, 0x5B, 0x37, 0x2D, 0x39, 0x5D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2D, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x31, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x03, 0x38, 0x30, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2F, 0x0A, 0x17, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x03, 0x39, 0x30, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xC8, 0x03, 0x0A, 0x12, 0x12, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0x16, 0x12, 0x0A, 0x5B, 0x31, 0x2D, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x30, 0x7D, 0x1A, 0x18, 0x12, 0x0E, 0x37, 0x5B, 0x31, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x22, 0x11, 0x12, 0x07, 0x38, 0x30, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x2A, 0x15, 0x12, 0x0B, 0x39, 0x5B, 0x30, 0x31, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x21, 0x12, 0x17, 0x38, 0x28, 0x3F, 0x3A, 0x34, 0x5B, 0x33, 0x2D, 0x35, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x2D, 0x32, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x3A, 0x11, 0x12, 0x07, 0x37, 0x30, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x42, 0x11, 0x12, 0x07, 0x35, 0x36, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x4A, 0x02, 0x47, 0x42, 0x50, 0x2C, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x38, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x0C, 0x5B, 0x31, 0x2D, 0x35, 0x39, 0x5D, 0x7C, 0x5B, 0x37, 0x38, 0x5D, 0x30, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x34, 0x0A, 0x19, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x01, 0x36, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x35, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x09, 0x37, 0x5B, 0x31, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0x9A, 0x01, 0x31, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x05, 0x38, 0x5B, 0x34, 0x37, 0x5D, 0x22, 0x05, 0x28, 0x30, 0x24, 0x31, 0x29, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0x8B, 0x03, 0x0A, 0x1A, 0x12, 0x0E, 0x5B, 0x30, 0x33, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x31, 0x30, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x31, 0x31, 0x7D, 0x12, 0x16, 0x12, 0x09, 0x30, 0x5C, 0x64, 0x7B, 0x39, 0x2C, 0x31, 0x30, 0x7D, 0x1A, 0x09, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x2C, 0x31, 0x31, 0x7D, 0x1A, 0x14, 0x12, 0x08, 0x33, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x39, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x39, 0x2C, 0x31, 0x30, 0x7D, 0x22, 0x1E, 0x12, 0x13, 0x38, 0x30, 0x28, 0x3F, 0x3A, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x33, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x2A, 0x1E, 0x12, 0x13, 0x38, 0x39, 0x28, 0x3F, 0x3A, 0x32, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x7C, 0x39, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x29, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x39, 0x7D, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x49, 0x54, 0x50, 0x27, 0x5A, 0x02, 0x30, 0x30, 0x9A, 0x01, 0x2C, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x05, 0x30, 0x5B, 0x32, 0x36, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x33, 0x0A, 0x17, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x0A, 0x30, 0x5B, 0x31, 0x33, 0x2D, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x2A, 0x0A, 0x17, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x01, 0x33, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x20, 0x0A, 0x10, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x36, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x01, 0x38, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xD0, 0x01, 0x01, 0x0A, 0x96, 0x03, 0x0A, 0x00, 0x12, 0x00, 0x1A, 0x00, 0x22, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4A, 0x50, 0x50, 0x51, 0x5A, 0x03, 0x30, 0x31, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x90, 0x01, 0x01, 0x9A, 0x01, 0x31, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x07, 0x5B, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x4E, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x07, 0x32, 0x32, 0x32, 0x7C, 0x33, 0x33, 0x33, 0x1A, 0x0C, 0x28, 0x3F, 0x3A, 0x32, 0x32, 0x32, 0x7C, 0x33, 0x33, 0x33, 0x29, 0x31, 0x1A, 0x0D, 0x28, 0x3F, 0x3A, 0x32, 0x32, 0x32, 0x7C, 0x33, 0x33, 0x33, 0x29, 0x31, 0x31, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x52, 0x0A, 0x12, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x07, 0x32, 0x32, 0x32, 0x7C, 0x33, 0x33, 0x33, 0x1A, 0x09, 0x32, 0x32, 0x32, 0x31, 0x7C, 0x33, 0x33, 0x33, 0x32, 0x1A, 0x0A, 0x32, 0x32, 0x32, 0x31, 0x32, 0x7C, 0x33, 0x33, 0x33, 0x32, 0x1A, 0x0B, 0x32, 0x32, 0x32, 0x31, 0x32, 0x30, 0x7C, 0x33, 0x33, 0x33, 0x32, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2E, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x04, 0x5B, 0x32, 0x33, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x1B, 0x0A, 0x07, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x03, 0x2A, 0x24, 0x31, 0x1A, 0x04, 0x5B, 0x32, 0x33, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xBD, 0x0B, 0x0A, 0x20, 0x12, 0x14, 0x5B, 0x31, 0x2D, 0x37, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x39, 0x7D, 0x7C, 0x38, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0x4C, 0x12, 0x36, 0x28, 0x3F, 0x3A, 0x32, 0x7C, 0x5B, 0x33, 0x34, 0x5D, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x35, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x29, 0x28, 0x3F, 0x3A, 0x31, 0x5C, 0x64, 0x7B, 0x32, 0x2C, 0x33, 0x7D, 0x7C, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x29, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x34, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x08, 0x32, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x1A, 0x28, 0x12, 0x10, 0x31, 0x5B, 0x30, 0x2D, 0x32, 0x35, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x39, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x22, 0x1B, 0x12, 0x07, 0x38, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x20, 0x12, 0x0C, 0x36, 0x30, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x36, 0x30, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x1D, 0x12, 0x07, 0x35, 0x30, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x35, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x42, 0x1D, 0x12, 0x07, 0x37, 0x30, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x37, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x4A, 0x02, 0x4B, 0x52, 0x50, 0x52, 0x5A, 0x18, 0x30, 0x30, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x32, 0x34, 0x2D, 0x36, 0x38, 0x5D, 0x7C, 0x5B, 0x33, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x62, 0x01, 0x30, 0x7A, 0x15, 0x30, 0x28, 0x38, 0x5B, 0x31, 0x2D, 0x34, 0x36, 0x2D, 0x38, 0x5D, 0x7C, 0x38, 0x35, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x3F, 0x9A, 0x01, 0x70, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x1F, 0x31, 0x28, 0x3F, 0x3A, 0x30, 0x7C, 0x31, 0x5B, 0x31, 0x39, 0x5D, 0x7C, 0x5B, 0x36, 0x39, 0x5D, 0x39, 0x7C, 0x35, 0x5B, 0x34, 0x35, 0x38, 0x5D, 0x29, 0x7C, 0x5B, 0x35, 0x37, 0x5D, 0x30, 0x1A, 0x25, 0x31, 0x28, 0x3F, 0x3A, 0x30, 0x7C, 0x31, 0x5B, 0x31, 0x39, 0x5D, 0x7C, 0x5B, 0x36, 0x39, 0x5D, 0x39, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x34, 0x34, 0x7C, 0x35, 0x39, 0x7C, 0x38, 0x29, 0x29, 0x7C, 0x5B, 0x35, 0x37, 0x5D, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x98, 0x01, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x31, 0x31, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x36, 0x39, 0x5D, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x5B, 0x37, 0x38, 0x5D, 0x7C, 0x35, 0x5B, 0x31, 0x2D, 0x34, 0x5D, 0x29, 0x7C, 0x5B, 0x36, 0x38, 0x5D, 0x30, 0x7C, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x1A, 0x3B, 0x31, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x36, 0x39, 0x5D, 0x5B, 0x32, 0x2D, 0x38, 0x5D, 0x7C, 0x5B, 0x37, 0x38, 0x5D, 0x7C, 0x35, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x2D, 0x33, 0x5D, 0x7C, 0x34, 0x5B, 0x35, 0x36, 0x5D, 0x29, 0x29, 0x7C, 0x5B, 0x36, 0x38, 0x5D, 0x30, 0x7C, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x30, 0x0A, 0x12, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x03, 0x31, 0x33, 0x31, 0x1A, 0x04, 0x31, 0x33, 0x31, 0x32, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x38, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x03, 0x31, 0x33, 0x31, 0x1A, 0x09, 0x31, 0x33, 0x31, 0x5B, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x31, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x07, 0x31, 0x33, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x36, 0x0A, 0x1C, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x2D, 0x24, 0x34, 0x1A, 0x02, 0x33, 0x30, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x6C, 0x0A, 0x12, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x12, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x36, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x37, 0x5D, 0x29, 0x1A, 0x31, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x32, 0x36, 0x5D, 0x7C, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x31, 0x7C, 0x31, 0x5B, 0x34, 0x35, 0x5D, 0x7C, 0x32, 0x5B, 0x31, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x39, 0x7C, 0x34, 0x7C, 0x36, 0x5B, 0x36, 0x37, 0x5D, 0x7C, 0x37, 0x5B, 0x30, 0x37, 0x38, 0x5D, 0x29, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x88, 0x01, 0x0A, 0x12, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x2D, 0x24, 0x33, 0x1A, 0x16, 0x32, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x5B, 0x34, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x29, 0x1A, 0x49, 0x32, 0x28, 0x3F, 0x3A, 0x33, 0x28, 0x3F, 0x3A, 0x30, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x31, 0x5B, 0x30, 0x2D, 0x33, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x32, 0x2D, 0x36, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x38, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x2D, 0x35, 0x38, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x31, 0x2D, 0x36, 0x39, 0x5D, 0x7C, 0x5B, 0x35, 0x38, 0x39, 0x5D, 0x29, 0x7C, 0x5B, 0x34, 0x35, 0x37, 0x2D, 0x39, 0x5D, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x47, 0x0A, 0x0B, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x1A, 0x0A, 0x32, 0x31, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x1A, 0x1E, 0x32, 0x31, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x32, 0x34, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x32, 0x36, 0x39, 0x5D, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x3D, 0x0A, 0x0B, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x1A, 0x06, 0x32, 0x31, 0x5B, 0x33, 0x36, 0x5D, 0x1A, 0x18, 0x32, 0x31, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x30, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x33, 0x2D, 0x35, 0x37, 0x38, 0x5D, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x6D, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x1A, 0x0B, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x31, 0x1A, 0x17, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x31, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x29, 0x1A, 0x27, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x31, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x37, 0x2D, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x31, 0x32, 0x34, 0x5D, 0x7C, 0x36, 0x5B, 0x31, 0x32, 0x36, 0x39, 0x5D, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x5F, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x1A, 0x0B, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x31, 0x1A, 0x0F, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x31, 0x5B, 0x33, 0x36, 0x5D, 0x1A, 0x21, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x31, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x30, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x33, 0x2D, 0x35, 0x37, 0x38, 0x5D, 0x29, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xDC, 0x06, 0x0A, 0x19, 0x12, 0x0D, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x2C, 0x31, 0x30, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x31, 0x7D, 0x12, 0x16, 0x12, 0x0A, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x30, 0x7D, 0x1A, 0x11, 0x12, 0x07, 0x31, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x31, 0x7D, 0x22, 0x12, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x2A, 0x12, 0x12, 0x08, 0x39, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4D, 0x58, 0x50, 0x34, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x02, 0x30, 0x31, 0x7A, 0x11, 0x30, 0x31, 0x7C, 0x30, 0x34, 0x5B, 0x34, 0x35, 0x5D, 0x28, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x29, 0x82, 0x01, 0x03, 0x31, 0x24, 0x31, 0x9A, 0x01, 0x2D, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x06, 0x5B, 0x38, 0x39, 0x5D, 0x30, 0x30, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x2F, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x08, 0x33, 0x33, 0x7C, 0x35, 0x35, 0x7C, 0x38, 0x31, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x4F, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x28, 0x5B, 0x32, 0x34, 0x36, 0x37, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x39, 0x0A, 0x16, 0x31, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x0C, 0x30, 0x34, 0x35, 0x20, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x0D, 0x31, 0x28, 0x3F, 0x3A, 0x33, 0x33, 0x7C, 0x35, 0x35, 0x7C, 0x38, 0x31, 0x29, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x55, 0x0A, 0x16, 0x31, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x0C, 0x30, 0x34, 0x35, 0x20, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x29, 0x31, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x32, 0x34, 0x35, 0x37, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x29, 0x22, 0x00, 0x2A, 0x00, 0xA2, 0x01, 0x2B, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x06, 0x5B, 0x38, 0x39, 0x5D, 0x30, 0x30, 0x2A, 0x00, 0xA2, 0x01, 0x2D, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x08, 0x33, 0x33, 0x7C, 0x35, 0x35, 0x7C, 0x38, 0x31, 0x2A, 0x00, 0xA2, 0x01, 0x4D, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x28, 0x5B, 0x32, 0x34, 0x36, 0x37, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x32, 0x2D, 0x39, 0x5D, 0x7C, 0x39, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x2A, 0x00, 0xA2, 0x01, 0x38, 0x0A, 0x18, 0x28, 0x31, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x0D, 0x31, 0x28, 0x3F, 0x3A, 0x33, 0x33, 0x7C, 0x35, 0x35, 0x7C, 0x38, 0x31, 0x29, 0x2A, 0x00, 0xA2, 0x01, 0x54, 0x0A, 0x18, 0x28, 0x31, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x1A, 0x29, 0x31, 0x28, 0x3F, 0x3A, 0x5B, 0x31, 0x32, 0x34, 0x35, 0x37, 0x39, 0x5D, 0x7C, 0x33, 0x5B, 0x30, 0x2D, 0x32, 0x34, 0x2D, 0x39, 0x5D, 0x7C, 0x35, 0x5B, 0x30, 0x2D, 0x34, 0x36, 0x2D, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x30, 0x32, 0x2D, 0x39, 0x5D, 0x29, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xDB, 0x03, 0x0A, 0x23, 0x12, 0x17, 0x5B, 0x32, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x39, 0x7D, 0x7C, 0x5B, 0x33, 0x2D, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x30, 0x7D, 0x12, 0x3C, 0x12, 0x31, 0x32, 0x34, 0x30, 0x39, 0x39, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x7C, 0x28, 0x3F, 0x3A, 0x33, 0x5B, 0x32, 0x2D, 0x37, 0x39, 0x5D, 0x7C, 0x5B, 0x34, 0x37, 0x39, 0x5D, 0x5B, 0x32, 0x2D, 0x36, 0x38, 0x39, 0x5D, 0x7C, 0x36, 0x5B, 0x32, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x07, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x1A, 0x5E, 0x12, 0x52, 0x32, 0x28, 0x3F, 0x3A, 0x5B, 0x30, 0x32, 0x37, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x7C, 0x39, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x7C, 0x31, 0x28, 0x3F, 0x3A, 0x30, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x37, 0x7D, 0x7C, 0x5B, 0x31, 0x32, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x2C, 0x36, 0x7D, 0x7C, 0x5B, 0x33, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x35, 0x7D, 0x29, 0x7C, 0x34, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x7C, 0x38, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x38, 0x7D, 0x29, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x38, 0x2C, 0x31, 0x30, 0x7D, 0x22, 0x16, 0x12, 0x0A, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x39, 0x2C, 0x31, 0x30, 0x7D, 0x2A, 0x16, 0x12, 0x0A, 0x39, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x2C, 0x37, 0x7D, 0x1A, 0x08, 0x5C, 0x64, 0x7B, 0x39, 0x2C, 0x31, 0x30, 0x7D, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x4E, 0x5A, 0x50, 0x40, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x31, 0x0A, 0x12, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x0A, 0x32, 0x34, 0x7C, 0x5B, 0x33, 0x34, 0x36, 0x37, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x2F, 0x0A, 0x14, 0x28, 0x5C, 0x64, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x35, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x2D, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x06, 0x32, 0x5B, 0x31, 0x37, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0x9A, 0x01, 0x30, 0x0A, 0x17, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x2C, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x04, 0x5B, 0x38, 0x39, 0x5D, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xFE, 0x01, 0x0A, 0x13, 0x12, 0x0A, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x12, 0x13, 0x12, 0x0A, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x1A, 0x28, 0x12, 0x1F, 0x28, 0x3F, 0x3A, 0x35, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x36, 0x5B, 0x30, 0x36, 0x39, 0x5D, 0x7C, 0x37, 0x5B, 0x32, 0x38, 0x39, 0x5D, 0x7C, 0x38, 0x38, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x22, 0x11, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x2A, 0x10, 0x12, 0x07, 0x37, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x50, 0x4C, 0x50, 0x30, 0x5A, 0x03, 0x30, 0x7E, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x32, 0x0A, 0x1C, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xD2, 0x02, 0x0A, 0x13, 0x12, 0x0A, 0x5B, 0x32, 0x36, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x12, 0x1C, 0x12, 0x08, 0x32, 0x36, 0x32, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x32, 0x36, 0x32, 0x31, 0x36, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x26, 0x12, 0x12, 0x36, 0x28, 0x3F, 0x3A, 0x39, 0x5B, 0x32, 0x33, 0x5D, 0x7C, 0x34, 0x37, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x36, 0x39, 0x32, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x1B, 0x12, 0x07, 0x38, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x38, 0x12, 0x24, 0x38, 0x28, 0x3F, 0x3A, 0x31, 0x5B, 0x30, 0x31, 0x5D, 0x7C, 0x32, 0x5B, 0x30, 0x31, 0x35, 0x36, 0x5D, 0x7C, 0x38, 0x34, 0x7C, 0x39, 0x5B, 0x30, 0x2D, 0x33, 0x37, 0x2D, 0x39, 0x5D, 0x29, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x31, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x52, 0x45, 0x50, 0x86, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0x9A, 0x01, 0x37, 0x0A, 0x21, 0x28, 0x5B, 0x32, 0x36, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x32, 0x7D, 0x29, 0x12, 0x0B, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x20, 0x24, 0x34, 0x22, 0x03, 0x30, 0x24, 0x31, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xBA, 0x01, 0x13, 0x32, 0x36, 0x32, 0x7C, 0x36, 0x28, 0x3F, 0x3A, 0x39, 0x5B, 0x32, 0x33, 0x5D, 0x7C, 0x34, 0x37, 0x29, 0x7C, 0x38, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xD4, 0x02, 0x0A, 0x22, 0x12, 0x0F, 0x5B, 0x31, 0x33, 0x36, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x2C, 0x31, 0x30, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x7C, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x2C, 0x31, 0x31, 0x7D, 0x12, 0x12, 0x12, 0x09, 0x5B, 0x33, 0x36, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x12, 0x12, 0x09, 0x5B, 0x38, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x22, 0x17, 0x12, 0x0A, 0x31, 0x3F, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x09, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x2C, 0x31, 0x31, 0x7D, 0x2A, 0x13, 0x12, 0x09, 0x31, 0x39, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x31, 0x7D, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x53, 0x47, 0x50, 0x41, 0x5A, 0x0B, 0x30, 0x5B, 0x30, 0x2D, 0x33, 0x5D, 0x5B, 0x30, 0x2D, 0x39, 0x5D, 0x9A, 0x01, 0x29, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x1A, 0x0C, 0x5B, 0x33, 0x36, 0x39, 0x5D, 0x7C, 0x38, 0x5B, 0x31, 0x2D, 0x39, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x2C, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x05, 0x31, 0x5B, 0x38, 0x39, 0x5D, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x2A, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x1A, 0x03, 0x38, 0x30, 0x30, 0x22, 0x00, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xDF, 0x03, 0x0A, 0x39, 0x12, 0x1A, 0x5B, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x7C, 0x32, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x30, 0x12, 0x39, 0x12, 0x1A, 0x5B, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x7C, 0x32, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x30, 0x1A, 0x39, 0x12, 0x1A, 0x5B, 0x31, 0x33, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x7C, 0x32, 0x5B, 0x30, 0x2D, 0x33, 0x35, 0x2D, 0x39, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x0F, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x28, 0x3F, 0x3A, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x3F, 0x32, 0x0A, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x30, 0x22, 0x2B, 0x12, 0x15, 0x38, 0x28, 0x3F, 0x3A, 0x30, 0x30, 0x7C, 0x36, 0x36, 0x7C, 0x37, 0x37, 0x7C, 0x38, 0x38, 0x29, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x30, 0x2A, 0x1E, 0x12, 0x08, 0x39, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x30, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x55, 0x53, 0x50, 0x01, 0x5A, 0x03, 0x30, 0x31, 0x31, 0x62, 0x01, 0x31, 0x6A, 0x07, 0x20, 0x65, 0x78, 0x74, 0x6E, 0x2E, 0x20, 0x7A, 0x01, 0x31, 0x90, 0x01, 0x01, 0x9A, 0x01, 0x25, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x22, 0x00, 0x2A, 0x00, 0x9A, 0x01, 0x1B, 0x0A, 0x0E, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x05, 0x24, 0x31, 0x20, 0x24, 0x32, 0x22, 0x00, 0x2A, 0x00, 0xA2, 0x01, 0x23, 0x0A, 0x15, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x33, 0x7D, 0x29, 0x28, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x29, 0x12, 0x08, 0x24, 0x31, 0x20, 0x24, 0x32, 0x20, 0x24, 0x33, 0x2A, 0x00, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xB0, 0x01, 0x01, 0xC2, 0x01, 0x1E, 0x12, 0x08, 0x38, 0x30, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x06, 0x5C, 0x64, 0x7B, 0x31, 0x30, 0x7D, 0x32, 0x0A, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x30, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x0A, 0xD8, 0x01, 0x0A, 0x13, 0x12, 0x0A, 0x5B, 0x32, 0x36, 0x38, 0x5D, 0x5C, 0x64, 0x7B, 0x38, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x12, 0x22, 0x12, 0x0E, 0x32, 0x36, 0x39, 0x36, 0x5B, 0x30, 0x2D, 0x34, 0x5D, 0x5C, 0x64, 0x7B, 0x34, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x32, 0x36, 0x39, 0x36, 0x30, 0x31, 0x32, 0x33, 0x34, 0x1A, 0x1C, 0x12, 0x08, 0x36, 0x33, 0x39, 0x5C, 0x64, 0x7B, 0x36, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x36, 0x33, 0x39, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x22, 0x1B, 0x12, 0x07, 0x38, 0x30, 0x5C, 0x64, 0x7B, 0x37, 0x7D, 0x1A, 0x05, 0x5C, 0x64, 0x7B, 0x39, 0x7D, 0x32, 0x09, 0x38, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x2A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x32, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x3A, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x42, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0x4A, 0x02, 0x59, 0x54, 0x50, 0x86, 0x02, 0x5A, 0x02, 0x30, 0x30, 0x62, 0x01, 0x30, 0x7A, 0x01, 0x30, 0xAA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xBA, 0x01, 0x07, 0x32, 0x36, 0x39, 0x7C, 0x36, 0x33, 0x39, 0xC2, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, 0xCA, 0x01, 0x08, 0x12, 0x02, 0x4E, 0x41, 0x1A, 0x02, 0x4E, 0x41, }; + +int test_metadata_size() { + return sizeof(test_metadata_data) / sizeof(test_metadata_data[0]); +} + +const void* test_metadata_get() { + return test_metadata_data; +} diff --git a/third_party/libphonenumber/cpp/src/test_metadata.h b/third_party/libphonenumber/cpp/src/test_metadata.h new file mode 100644 index 0000000..4eaa5c7 --- /dev/null +++ b/third_party/libphonenumber/cpp/src/test_metadata.h @@ -0,0 +1,22 @@ +/* + * Copyright (C) 2011 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef EMBEDDED_DATA_TEST_METADATA_H_ +#define EMBEDDED_DATA_TEST_METADATA_H_ + +int test_metadata_size(); +const void* test_metadata_get(); + +#endif // EMBEDDED_DATA_TEST_METADATA_H_ diff --git a/third_party/libphonenumber/cpp/src/utf/README b/third_party/libphonenumber/cpp/src/utf/README new file mode 100644 index 0000000..986e9e3 --- /dev/null +++ b/third_party/libphonenumber/cpp/src/utf/README @@ -0,0 +1 @@ +These files come from lib9 (http://code.google.com/p/go/source/browse). diff --git a/third_party/libphonenumber/cpp/src/utf/rune.c b/third_party/libphonenumber/cpp/src/utf/rune.c new file mode 100644 index 0000000..5a37368 --- /dev/null +++ b/third_party/libphonenumber/cpp/src/utf/rune.c @@ -0,0 +1,350 @@ +/* + * The authors of this software are Rob Pike and Ken Thompson. + * Copyright (c) 2002 by Lucent Technologies. + * Permission to use, copy, modify, and distribute this software for any + * purpose without fee is hereby granted, provided that this entire notice + * is included in all copies of any software which is or includes a copy + * or modification of this software and in all copies of the supporting + * documentation for such software. + * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED + * WARRANTY. IN PARTICULAR, NEITHER THE AUTHORS NOR LUCENT TECHNOLOGIES MAKE ANY + * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY + * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. + */ +#include +#include +#include "utf.h" +#include "utfdef.h" + +enum +{ + Bit1 = 7, + Bitx = 6, + Bit2 = 5, + Bit3 = 4, + Bit4 = 3, + Bit5 = 2, + + T1 = ((1<<(Bit1+1))-1) ^ 0xFF, /* 0000 0000 */ + Tx = ((1<<(Bitx+1))-1) ^ 0xFF, /* 1000 0000 */ + T2 = ((1<<(Bit2+1))-1) ^ 0xFF, /* 1100 0000 */ + T3 = ((1<<(Bit3+1))-1) ^ 0xFF, /* 1110 0000 */ + T4 = ((1<<(Bit4+1))-1) ^ 0xFF, /* 1111 0000 */ + T5 = ((1<<(Bit5+1))-1) ^ 0xFF, /* 1111 1000 */ + + Rune1 = (1<<(Bit1+0*Bitx))-1, /* 0000 0000 0111 1111 */ + Rune2 = (1<<(Bit2+1*Bitx))-1, /* 0000 0111 1111 1111 */ + Rune3 = (1<<(Bit3+2*Bitx))-1, /* 1111 1111 1111 1111 */ + Rune4 = (1<<(Bit4+3*Bitx))-1, + /* 0001 1111 1111 1111 1111 1111 */ + + Maskx = (1< T1 + */ + c = *(uchar*)str; + if(c < Tx) { + *rune = c; + return 1; + } + + // If we can't read more than one character we must stop + if(length <= 1) { + goto badlen; + } + + /* + * two character sequence (11-bit value) + * 0080-07FF => T2 Tx + */ + c1 = *(uchar*)(str+1) ^ Tx; + if(c1 & Testx) + goto bad; + if(c < T3) { + if(c < T2) + goto bad; + l = ((c << Bitx) | c1) & Rune2; + if(l <= Rune1) + goto bad; + *rune = l; + return 2; + } + + // If we can't read more than two characters we must stop + if(length <= 2) { + goto badlen; + } + + /* + * three character sequence (16-bit value) + * 0800-FFFF => T3 Tx Tx + */ + c2 = *(uchar*)(str+2) ^ Tx; + if(c2 & Testx) + goto bad; + if(c < T4) { + l = ((((c << Bitx) | c1) << Bitx) | c2) & Rune3; + if(l <= Rune2) + goto bad; + *rune = l; + return 3; + } + + if (length <= 3) + goto badlen; + + /* + * four character sequence (21-bit value) + * 10000-1FFFFF => T4 Tx Tx Tx + */ + c3 = *(uchar*)(str+3) ^ Tx; + if (c3 & Testx) + goto bad; + if (c < T5) { + l = ((((((c << Bitx) | c1) << Bitx) | c2) << Bitx) | c3) & Rune4; + if (l <= Rune3) + goto bad; + *rune = l; + return 4; + } + + // Support for 5-byte or longer UTF-8 would go here, but + // since we don't have that, we'll just fall through to bad. + + /* + * bad decoding + */ +bad: + *rune = Bad; + return 1; +badlen: + *rune = Bad; + return 0; + +} + + +/* + * This is the older "unsafe" version, which works fine on + * null-terminated strings. + */ +int +chartorune(Rune *rune, const char *str) +{ + int c, c1, c2, c3; + long l; + + /* + * one character sequence + * 00000-0007F => T1 + */ + c = *(uchar*)str; + if(c < Tx) { + *rune = c; + return 1; + } + + /* + * two character sequence + * 0080-07FF => T2 Tx + */ + c1 = *(uchar*)(str+1) ^ Tx; + if(c1 & Testx) + goto bad; + if(c < T3) { + if(c < T2) + goto bad; + l = ((c << Bitx) | c1) & Rune2; + if(l <= Rune1) + goto bad; + *rune = l; + return 2; + } + + /* + * three character sequence + * 0800-FFFF => T3 Tx Tx + */ + c2 = *(uchar*)(str+2) ^ Tx; + if(c2 & Testx) + goto bad; + if(c < T4) { + l = ((((c << Bitx) | c1) << Bitx) | c2) & Rune3; + if(l <= Rune2) + goto bad; + *rune = l; + return 3; + } + + /* + * four character sequence (21-bit value) + * 10000-1FFFFF => T4 Tx Tx Tx + */ + c3 = *(uchar*)(str+3) ^ Tx; + if (c3 & Testx) + goto bad; + if (c < T5) { + l = ((((((c << Bitx) | c1) << Bitx) | c2) << Bitx) | c3) & Rune4; + if (l <= Rune3) + goto bad; + *rune = l; + return 4; + } + + /* + * Support for 5-byte or longer UTF-8 would go here, but + * since we don't have that, we'll just fall through to bad. + */ + + /* + * bad decoding + */ +bad: + *rune = Bad; + return 1; +} + +int +isvalidcharntorune(const char* str, int length, Rune* rune, int* consumed) { + *consumed = charntorune(rune, str, length); + return *rune != Runeerror || *consumed == 3; +} + +int +runetochar(char *str, const Rune *rune) +{ + /* Runes are signed, so convert to unsigned for range check. */ + unsigned long c; + + /* + * one character sequence + * 00000-0007F => 00-7F + */ + c = *rune; + if(c <= Rune1) { + str[0] = c; + return 1; + } + + /* + * two character sequence + * 0080-07FF => T2 Tx + */ + if(c <= Rune2) { + str[0] = T2 | (c >> 1*Bitx); + str[1] = Tx | (c & Maskx); + return 2; + } + + /* + * If the Rune is out of range, convert it to the error rune. + * Do this test here because the error rune encodes to three bytes. + * Doing it earlier would duplicate work, since an out of range + * Rune wouldn't have fit in one or two bytes. + */ + if (c > Runemax) + c = Runeerror; + + /* + * three character sequence + * 0800-FFFF => T3 Tx Tx + */ + if (c <= Rune3) { + str[0] = T3 | (c >> 2*Bitx); + str[1] = Tx | ((c >> 1*Bitx) & Maskx); + str[2] = Tx | (c & Maskx); + return 3; + } + + /* + * four character sequence (21-bit value) + * 10000-1FFFFF => T4 Tx Tx Tx + */ + str[0] = T4 | (c >> 3*Bitx); + str[1] = Tx | ((c >> 2*Bitx) & Maskx); + str[2] = Tx | ((c >> 1*Bitx) & Maskx); + str[3] = Tx | (c & Maskx); + return 4; +} + +int +runelen(Rune rune) +{ + char str[10]; + + return runetochar(str, &rune); +} + +int +runenlen(const Rune *r, int nrune) +{ + int nb, c; + + nb = 0; + while(nrune--) { + c = *r++; + if (c <= Rune1) + nb++; + else if (c <= Rune2) + nb += 2; + else if (c <= Rune3) + nb += 3; + else /* assert(c <= Rune4) */ + nb += 4; + } + return nb; +} + +int +fullrune(const char *str, int n) +{ + if (n > 0) { + int c = *(uchar*)str; + if (c < Tx) + return 1; + if (n > 1) { + if (c < T3) + return 1; + if (n > 2) { + if (c < T4 || n > 3) + return 1; + } + } + } + return 0; +} diff --git a/third_party/libphonenumber/cpp/src/utf/stringpiece.h b/third_party/libphonenumber/cpp/src/utf/stringpiece.h new file mode 100644 index 0000000..7b56772 --- /dev/null +++ b/third_party/libphonenumber/cpp/src/utf/stringpiece.h @@ -0,0 +1,24 @@ +/** + * Copyright 2010 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef STRINGS_STRINGPIECE_H_ +#define STRINGS_STRINGPIECE_H_ + +//#include "third_party/chromium/src/base/string_piece.h" +#include "base/string_piece.h" + +using base::StringPiece; + +#endif // STRINGS_STRINGPIECE_H_ diff --git a/third_party/libphonenumber/cpp/src/utf/stringprintf.h b/third_party/libphonenumber/cpp/src/utf/stringprintf.h new file mode 100644 index 0000000..208d338f --- /dev/null +++ b/third_party/libphonenumber/cpp/src/utf/stringprintf.h @@ -0,0 +1,22 @@ +/** + * Copyright 2010 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef STRINGS_STRINGPRINTF_H_ +#define STRINGS_STRINGPRINTF_H_ + +//#include "third_party/chromium/src/base/string_util.h" +#include "base/string_util.h" + +#endif // STRINGS_STRINGPRINTF_H_ diff --git a/third_party/libphonenumber/cpp/src/utf/unicodetext.cc b/third_party/libphonenumber/cpp/src/utf/unicodetext.cc new file mode 100644 index 0000000..82c1b42 --- /dev/null +++ b/third_party/libphonenumber/cpp/src/utf/unicodetext.cc @@ -0,0 +1,515 @@ +// Copyright (C) 2006 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Author: Jim Meehan + +#include +#include +#include + +#include "utf/unicodetext.h" +//#include "base/logging.h" +#include "utf/stringpiece.h" +//#include "utf/stringprintf.h" +#include "utf/utf.h" +#include "utf/unilib.h" + +using std::stringstream; +using std::max; +using std::hex; +using std::dec; +using std::cerr; +using std::endl; + +static int CodepointDistance(const char* start, const char* end) { + int n = 0; + // Increment n on every non-trail-byte. + for (const char* p = start; p < end; ++p) { + n += (*reinterpret_cast(p) >= -0x40); + } + return n; +} + +static int CodepointCount(const char* utf8, int len) { + return CodepointDistance(utf8, utf8 + len); +} + +UnicodeText::const_iterator::difference_type +distance(const UnicodeText::const_iterator& first, + const UnicodeText::const_iterator& last) { + return CodepointDistance(first.it_, last.it_); +} + +// ---------- Utility ---------- + +static int ConvertToInterchangeValid(char* start, int len) { + // This routine is called only when we've discovered that a UTF-8 buffer + // that was passed to CopyUTF8, TakeOwnershipOfUTF8, or PointToUTF8 + // was not interchange valid. This indicates a bug in the caller, and + // a LOG(WARNING) is done in that case. + // This is similar to CoerceToInterchangeValid, but it replaces each + // structurally valid byte with a space, and each non-interchange + // character with a space, even when that character requires more + // than one byte in UTF8. E.g., "\xEF\xB7\x90" (U+FDD0) is + // structurally valid UTF8, but U+FDD0 is not an interchange-valid + // code point. The result should contain one space, not three. + // + // Since the conversion never needs to write more data than it + // reads, it is safe to change the buffer in place. It returns the + // number of bytes written. + char* const in = start; + char* out = start; + char* const end = start + len; + while (start < end) { + int good = UniLib::SpanInterchangeValid(start, end - start); + if (good > 0) { + if (out != start) { + memmove(out, start, good); + } + out += good; + start += good; + if (start == end) { + break; + } + } + // Is the current string invalid UTF8 or just non-interchange UTF8? + char32 rune; + int n; + if (isvalidcharntorune(start, end - start, &rune, &n)) { + // structurally valid UTF8, but not interchange valid + start += n; // Skip over the whole character. + } else { // bad UTF8 + start += 1; // Skip over just one byte + } + *out++ = ' '; + } + return out - in; +} + + +// *************** Data representation ********** + +// Note: the copy constructor is undefined. + +// After reserve(), resize(), or clear(), we're an owner, not an alias. + +void UnicodeText::Repr::reserve(int new_capacity) { + // If there's already enough capacity, and we're an owner, do nothing. + if (capacity_ >= new_capacity && ours_) return; + + // Otherwise, allocate a new buffer. + capacity_ = max(new_capacity, (3 * capacity_) / 2 + 20); + char* new_data = new char[capacity_]; + + // If there is an old buffer, copy it into the new buffer. + if (data_) { + memcpy(new_data, data_, size_); + if (ours_) delete[] data_; // If we owned the old buffer, free it. + } + data_ = new_data; + ours_ = true; // We own the new buffer. + // size_ is unchanged. +} + +void UnicodeText::Repr::resize(int new_size) { + if (new_size == 0) { + clear(); + } else { + if (!ours_ || new_size > capacity_) reserve(new_size); + // Clear the memory in the expanded part. + if (size_ < new_size) memset(data_ + size_, 0, new_size - size_); + size_ = new_size; + ours_ = true; + } +} + +// This implementation of clear() deallocates the buffer if we're an owner. +// That's not strictly necessary; we could just set size_ to 0. +void UnicodeText::Repr::clear() { + if (ours_) delete[] data_; + data_ = NULL; + size_ = capacity_ = 0; + ours_ = true; +} + +void UnicodeText::Repr::Copy(const char* data, int size) { + resize(size); + memcpy(data_, data, size); +} + +void UnicodeText::Repr::TakeOwnershipOf(char* data, int size, int capacity) { + if (data == data_) return; // We already own this memory. (Weird case.) + if (ours_ && data_) delete[] data_; // If we owned the old buffer, free it. + data_ = data; + size_ = size; + capacity_ = capacity; + ours_ = true; +} + +void UnicodeText::Repr::PointTo(const char* data, int size) { + if (ours_ && data_) delete[] data_; // If we owned the old buffer, free it. + data_ = const_cast(data); + size_ = size; + capacity_ = size; + ours_ = false; +} + +void UnicodeText::Repr::append(const char* bytes, int byte_length) { + reserve(size_ + byte_length); + memcpy(data_ + size_, bytes, byte_length); + size_ += byte_length; +} + +string UnicodeText::Repr::DebugString() const { + stringstream ss; + + ss << "{Repr " << hex << this << " data=" << data_ << " size=" << dec + << size_ << " capacity=" << capacity_ << " " + << (ours_ ? "Owned" : "Alias") << "}"; + + string result; + ss >> result; + + return result; +} + + + +// *************** UnicodeText ****************** + +// ----- Constructors ----- + +// Default constructor +UnicodeText::UnicodeText() { +} + +// Copy constructor +UnicodeText::UnicodeText(const UnicodeText& src) { + Copy(src); +} + +// Substring constructor +UnicodeText::UnicodeText(const UnicodeText::const_iterator& first, + const UnicodeText::const_iterator& last) { + assert(first <= last && "Incompatible iterators"); + repr_.append(first.it_, last.it_ - first.it_); +} + +string UnicodeText::UTF8Substring(const const_iterator& first, + const const_iterator& last) { + assert(first <= last && "Incompatible iterators"); + return string(first.it_, last.it_ - first.it_); +} + + +// ----- Copy ----- + +UnicodeText& UnicodeText::operator=(const UnicodeText& src) { + if (this != &src) { + Copy(src); + } + return *this; +} + +UnicodeText& UnicodeText::Copy(const UnicodeText& src) { + repr_.Copy(src.repr_.data_, src.repr_.size_); + return *this; +} + +UnicodeText& UnicodeText::CopyUTF8(const char* buffer, int byte_length) { + repr_.Copy(buffer, byte_length); + if (!UniLib:: IsInterchangeValid(buffer, byte_length)) { + cerr << "UTF-8 buffer is not interchange-valid." << endl; + repr_.size_ = ConvertToInterchangeValid(repr_.data_, byte_length); + } + return *this; +} + +UnicodeText& UnicodeText::UnsafeCopyUTF8(const char* buffer, + int byte_length) { + repr_.Copy(buffer, byte_length); + return *this; +} + +// ----- TakeOwnershipOf ----- + +UnicodeText& UnicodeText::TakeOwnershipOfUTF8(char* buffer, + int byte_length, + int byte_capacity) { + repr_.TakeOwnershipOf(buffer, byte_length, byte_capacity); + if (!UniLib:: IsInterchangeValid(buffer, byte_length)) { + cerr << "UTF-8 buffer is not interchange-valid." << endl; + repr_.size_ = ConvertToInterchangeValid(repr_.data_, byte_length); + } + return *this; +} + +UnicodeText& UnicodeText::UnsafeTakeOwnershipOfUTF8(char* buffer, + int byte_length, + int byte_capacity) { + repr_.TakeOwnershipOf(buffer, byte_length, byte_capacity); + return *this; +} + +// ----- PointTo ----- + +UnicodeText& UnicodeText::PointToUTF8(const char* buffer, int byte_length) { + if (UniLib:: IsInterchangeValid(buffer, byte_length)) { + repr_.PointTo(buffer, byte_length); + } else { + cerr << "UTF-8 buffer is not interchange-valid." << endl; + repr_.Copy(buffer, byte_length); + repr_.size_ = ConvertToInterchangeValid(repr_.data_, byte_length); + } + return *this; +} + +UnicodeText& UnicodeText::UnsafePointToUTF8(const char* buffer, + int byte_length) { + repr_.PointTo(buffer, byte_length); + return *this; +} + +UnicodeText& UnicodeText::PointTo(const UnicodeText& src) { + repr_.PointTo(src.repr_.data_, src.repr_.size_); + return *this; +} + +UnicodeText& UnicodeText::PointTo(const const_iterator &first, + const const_iterator &last) { + assert(first <= last && " Incompatible iterators"); + repr_.PointTo(first.utf8_data(), last.utf8_data() - first.utf8_data()); + return *this; +} + +// ----- Append ----- + +UnicodeText& UnicodeText::append(const UnicodeText& u) { + repr_.append(u.repr_.data_, u.repr_.size_); + return *this; +} + +UnicodeText& UnicodeText::append(const const_iterator& first, + const const_iterator& last) { + assert(first <= last && "Incompatible iterators"); + repr_.append(first.it_, last.it_ - first.it_); + return *this; +} + +UnicodeText& UnicodeText::UnsafeAppendUTF8(const char* utf8, int len) { + repr_.append(utf8, len); + return *this; +} + +// ----- substring searching ----- + +UnicodeText::const_iterator UnicodeText::find(const UnicodeText& look, + const_iterator start_pos) const { + assert(start_pos.utf8_data() >= utf8_data()); + assert(start_pos.utf8_data() <= utf8_data() + utf8_length()); + return UnsafeFind(look, start_pos); +} + +UnicodeText::const_iterator UnicodeText::find(const UnicodeText& look) const { + return UnsafeFind(look, begin()); +} + +UnicodeText::const_iterator UnicodeText::UnsafeFind( + const UnicodeText& look, const_iterator start_pos) const { + // Due to the magic of the UTF8 encoding, searching for a sequence of + // letters is equivalent to substring search. + StringPiece searching(utf8_data(), utf8_length()); + StringPiece look_piece(look.utf8_data(), look.utf8_length()); + StringPiece::size_type found = + searching.find(look_piece, start_pos.utf8_data() - utf8_data()); + if (found == StringPiece::npos) return end(); + return const_iterator(utf8_data() + found); +} + +bool UnicodeText::HasReplacementChar() const { + // Equivalent to: + // UnicodeText replacement_char; + // replacement_char.push_back(0xFFFD); + // return find(replacement_char) != end(); + StringPiece searching(utf8_data(), utf8_length()); + StringPiece looking_for("\xEF\xBF\xBD", 3); + return searching.find(looking_for) != StringPiece::npos; +} + +// ----- other methods ----- + +// Clear operator +void UnicodeText::clear() { + repr_.clear(); +} + +// Destructor +UnicodeText::~UnicodeText() {} + + +void UnicodeText::push_back(char32 c) { + if (UniLib::IsValidCodepoint(c)) { + char buf[UTFmax]; + int len = runetochar(buf, &c); + if (UniLib::IsInterchangeValid(buf, len)) { + repr_.append(buf, len); + } else { + cerr << "Unicode value 0x" << hex << c + << " is not valid for interchange" << endl; + repr_.append(" ", 1); + } + } else { + cerr << "Illegal Unicode value: 0x" << hex << c << endl; + repr_.append(" ", 1); + } +} + +int UnicodeText::size() const { + return CodepointCount(repr_.data_, repr_.size_); +} + +bool operator==(const UnicodeText& lhs, const UnicodeText& rhs) { + if (&lhs == &rhs) return true; + if (lhs.repr_.size_ != rhs.repr_.size_) return false; + return memcmp(lhs.repr_.data_, rhs.repr_.data_, lhs.repr_.size_) == 0; +} + +string UnicodeText::DebugString() const { + stringstream ss; + + ss << "{UnicodeText " << hex << this << dec << " chars=" + << size() << " repr=" << repr_.DebugString() << "}"; +#if 0 + return StringPrintf("{UnicodeText %p chars=%d repr=%s}", + this, + size(), + repr_.DebugString().c_str()); +#endif + string result; + ss >> result; + + return result; +} + + +// ******************* UnicodeText::const_iterator ********************* + +// The implementation of const_iterator would be nicer if it +// inherited from boost::iterator_facade +// (http://boost.org/libs/iterator/doc/iterator_facade.html). + +UnicodeText::const_iterator::const_iterator() : it_(0) {} + +UnicodeText::const_iterator::const_iterator(const const_iterator& other) + : it_(other.it_) { +} + +UnicodeText::const_iterator& +UnicodeText::const_iterator::operator=(const const_iterator& other) { + if (&other != this) + it_ = other.it_; + return *this; +} + +UnicodeText::const_iterator UnicodeText::begin() const { + return const_iterator(repr_.data_); +} + +UnicodeText::const_iterator UnicodeText::end() const { + return const_iterator(repr_.data_ + repr_.size_); +} + +bool operator<(const UnicodeText::const_iterator& lhs, + const UnicodeText::const_iterator& rhs) { + return lhs.it_ < rhs.it_; +} + +char32 UnicodeText::const_iterator::operator*() const { + // (We could call chartorune here, but that does some + // error-checking, and we're guaranteed that our data is valid + // UTF-8. Also, we expect this routine to be called very often. So + // for speed, we do the calculation ourselves.) + + // Convert from UTF-8 + int byte1 = it_[0]; + if (byte1 < 0x80) + return byte1; + + int byte2 = it_[1]; + if (byte1 < 0xE0) + return ((byte1 & 0x1F) << 6) + | (byte2 & 0x3F); + + int byte3 = it_[2]; + if (byte1 < 0xF0) + return ((byte1 & 0x0F) << 12) + | ((byte2 & 0x3F) << 6) + | (byte3 & 0x3F); + + int byte4 = it_[3]; + return ((byte1 & 0x07) << 18) + | ((byte2 & 0x3F) << 12) + | ((byte3 & 0x3F) << 6) + | (byte4 & 0x3F); +} + +UnicodeText::const_iterator& UnicodeText::const_iterator::operator++() { + it_ += UniLib::OneCharLen(it_); + return *this; +} + +UnicodeText::const_iterator& UnicodeText::const_iterator::operator--() { + while (UniLib::IsTrailByte(*--it_)); + return *this; +} + +int UnicodeText::const_iterator::get_utf8(char* utf8_output) const { + utf8_output[0] = it_[0]; + if (static_cast(it_[0]) < 0x80) + return 1; + + utf8_output[1] = it_[1]; + if (static_cast(it_[0]) < 0xE0) + return 2; + + utf8_output[2] = it_[2]; + if (static_cast(it_[0]) < 0xF0) + return 3; + + utf8_output[3] = it_[3]; + return 4; +} + + +UnicodeText::const_iterator UnicodeText::MakeIterator(const char* p) const { + assert(p != NULL); + const char* start = utf8_data(); + int len = utf8_length(); + const char* end = start + len; + assert(p >= start); + assert(p <= end); + assert(p == end || !UniLib::IsTrailByte(*p)); + return const_iterator(p); +} + +string UnicodeText::const_iterator::DebugString() const { + stringstream ss; + + ss << "{iter " << hex << it_ << "}"; + string result; + ss >> result; + + return result; +} + diff --git a/third_party/libphonenumber/cpp/src/utf/unicodetext.h b/third_party/libphonenumber/cpp/src/utf/unicodetext.h new file mode 100644 index 0000000..fb37a33 --- /dev/null +++ b/third_party/libphonenumber/cpp/src/utf/unicodetext.h @@ -0,0 +1,456 @@ +// Copyright (C) 2006 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Author: Jim Meehan + +#ifndef UTIL_UTF8_UNICODETEXT_H__ +#define UTIL_UTF8_UNICODETEXT_H__ + +#include +#include +#include +#include "base/basictypes.h" +//#include "util/utf8/public/config.h" + +using std::string; +using std::bidirectional_iterator_tag; +using std::pair; + +// ***************************** UnicodeText ************************** +// +// A UnicodeText object is a container for a sequence of Unicode +// codepoint values. It has default, copy, and assignment constructors. +// Data can be appended to it from another UnicodeText, from +// iterators, or from a single codepoint. +// +// The internal representation of the text is UTF-8. Since UTF-8 is a +// variable-width format, UnicodeText does not provide random access +// to the text, and changes to the text are permitted only at the end. +// +// The UnicodeText class defines a const_iterator. The dereferencing +// operator (*) returns a codepoint (char32). The iterator is a +// bidirectional, read-only iterator. It becomes invalid if the text +// is changed. +// +// There are methods for appending and retrieving UTF-8 data directly. +// The 'utf8_data' method returns a const char* that contains the +// UTF-8-encoded version of the text; 'utf8_length' returns the number +// of bytes in the UTF-8 data. An iterator's 'get' method stores up to +// 4 bytes of UTF-8 data in a char array and returns the number of +// bytes that it stored. +// +// Codepoints are integers in the range [0, 0xD7FF] or [0xE000, +// 0x10FFFF], but UnicodeText has the additional restriction that it +// can contain only those characters that are valid for interchange on +// the Web. This excludes all of the control codes except for carriage +// return, line feed, and horizontal tab. It also excludes +// non-characters, but codepoints that are in the Private Use regions +// are allowed, as are codepoints that are unassigned. (See the +// Unicode reference for details.) The function UniLib::IsInterchangeValid +// can be used as a test for this property. +// +// UnicodeTexts are safe. Every method that constructs or modifies a +// UnicodeText tests for interchange-validity, and will substitute a +// space for the invalid data. Such cases are reported via +// LOG(WARNING). +// +// MEMORY MANAGEMENT: copy, take ownership, or point to +// +// A UnicodeText is either an "owner", meaning that it owns the memory +// for the data buffer and will free it when the UnicodeText is +// destroyed, or it is an "alias", meaning that it does not. +// +// There are three methods for storing UTF-8 data in a UnicodeText: +// +// CopyUTF8(buffer, len) copies buffer. +// +// TakeOwnershipOfUTF8(buffer, size, capacity) takes ownership of buffer. +// +// PointToUTF8(buffer, size) creates an alias pointing to buffer. +// +// All three methods perform a validity check on the buffer. There are +// private, "unsafe" versions of these functions that bypass the +// validity check. They are used internally and by friend-functions +// that are handling UTF-8 data that has already been validated. +// +// The purpose of an alias is to avoid making an unnecessary copy of a +// UTF-8 buffer while still providing access to the Unicode values +// within that text through iterators or the fast scanners that are +// based on UTF-8 state tables. The lifetime of an alias must not +// exceed the lifetime of the buffer from which it was constructed. +// +// The semantics of an alias might be described as "copy on write or +// repair." The source data is never modified. If push_back() or +// append() is called on an alias, a copy of the data will be created, +// and the UnicodeText will become an owner. If clear() is called on +// an alias, it becomes an (empty) owner. +// +// The copy constructor and the assignment operator produce an owner. +// That is, after direct initialization ("UnicodeText x(y);") or copy +// initialization ("UnicodeText x = y;") x will be an owner, even if y +// was an alias. The assignment operator ("x = y;") also produces an +// owner unless x and y are the same object and y is an alias. +// +// Aliases should be used with care. If the source from which an alias +// was created is freed, or if the contents are changed, while the +// alias is still in use, fatal errors could result. But it can be +// quite useful to have a UnicodeText "window" through which to see a +// UTF-8 buffer without having to pay the price of making a copy. +// +// UTILITIES +// +// The interfaces in util/utf8/public/textutils.h provide higher-level +// utilities for dealing with UnicodeTexts, including routines for +// creating UnicodeTexts (both owners and aliases) from UTF-8 buffers or +// strings, creating strings from UnicodeTexts, normalizing text for +// efficient matching or display, and others. + +class UnicodeText { + public: + class const_iterator; + + typedef char32 value_type; + + // Constructors. These always produce owners. + UnicodeText(); // Create an empty text. + UnicodeText(const UnicodeText& src); // copy constructor + // Construct a substring (copies the data). + UnicodeText(const const_iterator& first, const const_iterator& last); + + // Assignment operator. This copies the data and produces an owner + // unless this == &src, e.g., "x = x;", which is a no-op. + UnicodeText& operator=(const UnicodeText& src); + + // x.Copy(y) copies the data from y into x. + UnicodeText& Copy(const UnicodeText& src); + inline UnicodeText& assign(const UnicodeText& src) { return Copy(src); } + + // x.PointTo(y) changes x so that it points to y's data. + // It does not copy y or take ownership of y's data. + UnicodeText& PointTo(const UnicodeText& src); + UnicodeText& PointTo(const const_iterator& first, + const const_iterator& last); + + ~UnicodeText(); + + void clear(); // Clear text. + bool empty() { return repr_.size_ == 0; } // Test if text is empty. + + // Add a codepoint to the end of the text. + // If the codepoint is not interchange-valid, add a space instead + // and log a warning. + void push_back(char32 codepoint); + + // Generic appending operation. + // iterator_traits::value_type must be implicitly + // convertible to char32. Typical uses of this method might include: + // char32 chars[] = {0x1, 0x2, ...}; + // vector more_chars = ...; + // utext.append(chars, chars+arraysize(chars)); + // utext.append(more_chars.begin(), more_chars.end()); + template + UnicodeText& append(ForwardIterator first, const ForwardIterator last) { + while (first != last) { push_back(*first++); } + return *this; + } + + // A specialization of the generic append() method. + UnicodeText& append(const const_iterator& first, const const_iterator& last); + + // An optimization of append(source.begin(), source.end()). + UnicodeText& append(const UnicodeText& source); + + int size() const; // the number of Unicode characters (codepoints) + + friend bool operator==(const UnicodeText& lhs, const UnicodeText& rhs); + friend bool operator!=(const UnicodeText& lhs, const UnicodeText& rhs); + + class const_iterator { + typedef const_iterator CI; + public: + typedef bidirectional_iterator_tag iterator_category; + typedef char32 value_type; + typedef ptrdiff_t difference_type; + typedef void pointer; // (Not needed.) + typedef const char32 reference; // (Needed for const_reverse_iterator) + + // Iterators are default-constructible. + const_iterator(); + + // It's safe to make multiple passes over a UnicodeText. + const_iterator(const const_iterator& other); + const_iterator& operator=(const const_iterator& other); + + char32 operator*() const; // Dereference + + const_iterator& operator++(); // Advance (++iter) + const_iterator operator++(int) { // (iter++) + const_iterator result(*this); + ++*this; + return result; + } + + const_iterator& operator--(); // Retreat (--iter) + const_iterator operator--(int) { // (iter--) + const_iterator result(*this); + --*this; + return result; + } + + // We love relational operators. + friend bool operator==(const CI& lhs, const CI& rhs) { + return lhs.it_ == rhs.it_; } + friend bool operator!=(const CI& lhs, const CI& rhs) { + return !(lhs == rhs); } + friend bool operator<(const CI& lhs, const CI& rhs); + friend bool operator>(const CI& lhs, const CI& rhs) { + return rhs < lhs; } + friend bool operator<=(const CI& lhs, const CI& rhs) { + return !(rhs < lhs); } + friend bool operator>=(const CI& lhs, const CI& rhs) { + return !(lhs < rhs); } + + friend difference_type distance(const CI& first, const CI& last); + + // UTF-8-specific methods + // Store the UTF-8 encoding of the current codepoint into buf, + // which must be at least 4 bytes long. Return the number of + // bytes written. + int get_utf8(char* buf) const; + // Return the iterator's pointer into the UTF-8 data. + const char* utf8_data() const { return it_; } + + string DebugString() const; + + private: + friend class UnicodeText; + friend class UnicodeTextUtils; + friend class UTF8StateTableProperty; + explicit const_iterator(const char* it) : it_(it) {} + + const char* it_; + }; + + const_iterator begin() const; + const_iterator end() const; + + class const_reverse_iterator : public std::reverse_iterator { + public: + const_reverse_iterator(const_iterator it) : + std::reverse_iterator(it) {} + const char* utf8_data() const { + const_iterator tmp_it = base(); + return (--tmp_it).utf8_data(); + } + int get_utf8(char* buf) const { + const_iterator tmp_it = base(); + return (--tmp_it).get_utf8(buf); + } + }; + const_reverse_iterator rbegin() const { + return const_reverse_iterator(end()); + } + const_reverse_iterator rend() const { + return const_reverse_iterator(begin()); + } + + // Substring searching. Returns the beginning of the first + // occurrence of "look", or end() if not found. + const_iterator find(const UnicodeText& look, const_iterator start_pos) const; + // Equivalent to find(look, begin()) + const_iterator find(const UnicodeText& look) const; + + // Returns whether this contains the character U+FFFD. This can + // occur, for example, if the input to Encodings::Decode() had byte + // sequences that were invalid in the source encoding. + bool HasReplacementChar() const; + + // UTF-8-specific methods + // + // Return the data, length, and capacity of UTF-8-encoded version of + // the text. Length and capacity are measured in bytes. + const char* utf8_data() const { return repr_.data_; } + int utf8_length() const { return repr_.size_; } + int utf8_capacity() const { return repr_.capacity_; } + + // Return the UTF-8 data as a string. + static string UTF8Substring(const const_iterator& first, + const const_iterator& last); + + // There are three methods for initializing a UnicodeText from UTF-8 + // data. They vary in details of memory management. In all cases, + // the data is tested for interchange-validity. If it is not + // interchange-valid, a LOG(WARNING) is issued, and each + // structurally invalid byte and each interchange-invalid codepoint + // is replaced with a space. + + // x.CopyUTF8(buf, len) copies buf into x. + UnicodeText& CopyUTF8(const char* utf8_buffer, int byte_length); + + // x.TakeOwnershipOfUTF8(buf, len, capacity). x takes ownership of + // buf. buf is not copied. + UnicodeText& TakeOwnershipOfUTF8(char* utf8_buffer, + int byte_length, + int byte_capacity); + + // x.PointToUTF8(buf,len) changes x so that it points to buf + // ("becomes an alias"). It does not take ownership or copy buf. + // If the buffer is not valid, this has the same effect as + // CopyUTF8(utf8_buffer, byte_length). + UnicodeText& PointToUTF8(const char* utf8_buffer, int byte_length); + + // Occasionally it is necessary to use functions that operate on the + // pointer returned by utf8_data(). MakeIterator(p) provides a way + // to get back to the UnicodeText level. It uses CHECK to ensure + // that p is a pointer within this object's UTF-8 data, and that it + // points to the beginning of a character. + const_iterator MakeIterator(const char* p) const; + + string DebugString() const; + + private: + friend class const_iterator; + friend class UnicodeTextUtils; + + class Repr { // A byte-string. + public: + char* data_; + int size_; + int capacity_; + bool ours_; // Do we own data_? + + Repr() : data_(NULL), size_(0), capacity_(0), ours_(true) {} + ~Repr() { if (ours_) delete[] data_; } + + void clear(); + void reserve(int capacity); + void resize(int size); + + void append(const char* bytes, int byte_length); + void Copy(const char* data, int size); + void TakeOwnershipOf(char* data, int size, int capacity); + void PointTo(const char* data, int size); + + string DebugString() const; + + private: + Repr& operator=(const Repr&); + Repr(const Repr& other); + }; + + Repr repr_; + + // UTF-8-specific private methods. + // These routines do not perform a validity check when compiled + // in opt mode. + // It is an error to call these methods with UTF-8 data that + // is not interchange-valid. + // + UnicodeText& UnsafeCopyUTF8(const char* utf8_buffer, int byte_length); + UnicodeText& UnsafeTakeOwnershipOfUTF8( + char* utf8_buffer, int byte_length, int byte_capacity); + UnicodeText& UnsafePointToUTF8(const char* utf8_buffer, int byte_length); + UnicodeText& UnsafeAppendUTF8(const char* utf8_buffer, int byte_length); + const_iterator UnsafeFind(const UnicodeText& look, + const_iterator start_pos) const; +}; + +bool operator==(const UnicodeText& lhs, const UnicodeText& rhs); + +inline bool operator!=(const UnicodeText& lhs, const UnicodeText& rhs) { + return !(lhs == rhs); +} + +// UnicodeTextRange is a pair of iterators, useful for specifying text +// segments. If the iterators are ==, the segment is empty. +typedef pair UnicodeTextRange; + +inline bool UnicodeTextRangeIsEmpty(const UnicodeTextRange& r) { + return r.first == r.second; +} + + +// *************************** Utilities ************************* + +// A factory function for creating a UnicodeText from a buffer of +// UTF-8 data. The new UnicodeText takes ownership of the buffer. (It +// is an "owner.") +// +// Each byte that is structurally invalid will be replaced with a +// space. Each codepoint that is interchange-invalid will also be +// replaced with a space, even if the codepoint was represented with a +// multibyte sequence in the UTF-8 data. +// +inline UnicodeText MakeUnicodeTextAcceptingOwnership( + char* utf8_buffer, int byte_length, int byte_capacity) { + return UnicodeText().TakeOwnershipOfUTF8( + utf8_buffer, byte_length, byte_capacity); +} + +// A factory function for creating a UnicodeText from a buffer of +// UTF-8 data. The new UnicodeText does not take ownership of the +// buffer. (It is an "alias.") +// +inline UnicodeText MakeUnicodeTextWithoutAcceptingOwnership( + const char* utf8_buffer, int byte_length) { + return UnicodeText().PointToUTF8(utf8_buffer, byte_length); +} + +// Create a UnicodeText from a UTF-8 string or buffer. +// +// If do_copy is true, then a copy of the string is made. The copy is +// owned by the resulting UnicodeText object and will be freed when +// the object is destroyed. This UnicodeText object is referred to +// as an "owner." +// +// If do_copy is false, then no copy is made. The resulting +// UnicodeText object does NOT take ownership of the string; in this +// case, the lifetime of the UnicodeText object must not exceed the +// lifetime of the string. This Unicodetext object is referred to as +// an "alias." This is the same as MakeUnicodeTextWithoutAcceptingOwnership. +// +// If the input string does not contain valid UTF-8, then a copy is +// made (as if do_copy were true) and coerced to valid UTF-8 by +// replacing each invalid byte with a space. +// +inline UnicodeText UTF8ToUnicodeText(const char* utf8_buf, int len, + bool do_copy) { + UnicodeText t; + if (do_copy) { + t.CopyUTF8(utf8_buf, len); + } else { + t.PointToUTF8(utf8_buf, len); + } + return t; +} + +inline UnicodeText UTF8ToUnicodeText(const string& utf_string, bool do_copy) { + return UTF8ToUnicodeText(utf_string.data(), utf_string.size(), do_copy); +} + +inline UnicodeText UTF8ToUnicodeText(const char* utf8_buf, int len) { + return UTF8ToUnicodeText(utf8_buf, len, true); +} +inline UnicodeText UTF8ToUnicodeText(const string& utf8_string) { + return UTF8ToUnicodeText(utf8_string, true); +} + +// Return a string containing the UTF-8 encoded version of all the +// Unicode characters in t. +inline string UnicodeTextToUTF8(const UnicodeText& t) { + return string(t.utf8_data(), t.utf8_length()); +} + +#endif // UTIL_UTF8_UNICODETEXT_H__ diff --git a/third_party/libphonenumber/cpp/src/utf/unilib.cc b/third_party/libphonenumber/cpp/src/utf/unilib.cc new file mode 100644 index 0000000..6d90954 --- /dev/null +++ b/third_party/libphonenumber/cpp/src/utf/unilib.cc @@ -0,0 +1,64 @@ +/** + * Copyright 2010 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Author: Shawn Ligocki + +#include "utf/unilib.h" + +#include "base/basictypes.h" +#include "utf/utf.h" + +namespace UniLib { + +namespace { + +// MOE: start_strip +// MOE: end_strip +// Codepoints not allowed for interchange are: +// C0 (ASCII) controls: U+0000 to U+001F excluding Space (SP, U+0020), +// Horizontal Tab (HT, U+0009), Line-Feed (LF, U+000A), +// Form Feed (FF, U+000C) and Carriage-Return (CR, U+000D) +// C1 controls: U+007F to U+009F +// Surrogates: U+D800 to U+DFFF +// Non-characters: U+FDD0 to U+FDEF and U+xxFFFE to U+xxFFFF for all xx +inline bool IsInterchangeValidCodepoint(char32 c) { + return !((c >= 0x00 && c <= 0x08) || c == 0x0B || (c >= 0x0E && c <= 0x1F) || + (c >= 0x7F && c <= 0x9F) || + (c >= 0xD800 && c <= 0xDFFF) || + (c >= 0xFDD0 && c <= 0xFDEF) || (c&0xFFFE) == 0xFFFE); +} + +} // namespace + +int SpanInterchangeValid(const char* begin, int byte_length) { + char32 rune; + const char* p = begin; + const char* end = begin + byte_length; + while (p < end) { + int bytes_consumed = charntorune(&rune, p, end - p); + // We want to accept Runeerror == U+FFFD as a valid char, but it is used + // by chartorune to indicate error. Luckily, the real codepoint is size 3 + // while errors return bytes_consumed == 1. + if ((rune == Runeerror && bytes_consumed == 1) || + !IsInterchangeValidCodepoint(rune)) { + break; // Found + } + p += bytes_consumed; + } + return p - begin; +} + +} // namespace UniLib diff --git a/third_party/libphonenumber/cpp/src/utf/unilib.h b/third_party/libphonenumber/cpp/src/utf/unilib.h new file mode 100644 index 0000000..4cfc787 --- /dev/null +++ b/third_party/libphonenumber/cpp/src/utf/unilib.h @@ -0,0 +1,95 @@ +/** + * Copyright 2010 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Routines to do manipulation of Unicode characters or text +// +// The StructurallyValid routines accept buffers of arbitrary bytes. +// For CoerceToStructurallyValid(), the input buffer and output buffers may +// point to exactly the same memory. +// +// In all other cases, the UTF-8 string must be structurally valid and +// have all codepoints in the range U+0000 to U+D7FF or U+E000 to U+10FFFF. +// Debug builds take a fatal error for invalid UTF-8 input. +// The input and output buffers may not overlap at all. +// +// The char32 routines are here only for convenience; they convert to UTF-8 +// internally and use the UTF-8 routines. + +#ifndef UTIL_UTF8_UNILIB_H__ +#define UTIL_UTF8_UNILIB_H__ + +#include +#include "base/basictypes.h" + +namespace UniLib { + +// Returns true unless a surrogate code point +inline bool IsValidCodepoint(char32 c) { + // In the range [0, 0xD800) or [0xE000, 0x10FFFF] + return (static_cast(c) < 0xD800) + || (c >= 0xE000 && c <= 0x10FFFF); +} + +// Table of UTF-8 character lengths, based on first byte +static const unsigned char kUTF8LenTbl[256] = { + 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,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,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, + 2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2, + 3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3, 4,4,4,4,4,4,4,4, 4,4,4,4,4,4,4,4 +}; + +// Return length of a single UTF-8 source character +inline int OneCharLen(const char* src) { + return kUTF8LenTbl[*reinterpret_cast(src)]; +} + +// Return length of a single UTF-8 source character +inline int OneCharLen(const uint8* src) { + return kUTF8LenTbl[*src]; +} + +// Return true if this byte is a trailing UTF-8 byte (10xx xxxx) +inline bool IsTrailByte(char x) { + // return (x & 0xC0) == 0x80; + // Since trail bytes are always in [0x80, 0xBF], we can optimize: + return static_cast(x) < -0x40; +} + +// Returns the length in bytes of the prefix of src that is all +// interchange valid UTF-8 +int SpanInterchangeValid(const char* src, int byte_length); +inline int SpanInterchangeValid(const std::string& src) { + return SpanInterchangeValid(src.data(), src.size()); +} + +// Returns true if the source is all interchange valid UTF-8 +// "Interchange valid" is a stronger than structurally valid -- +// no C0 or C1 control codes (other than CR LF HT FF) and no non-characters. +inline bool IsInterchangeValid(const char* src, int byte_length) { + return (byte_length == SpanInterchangeValid(src, byte_length)); +} +inline bool IsInterchangeValid(const std::string& src) { + return IsInterchangeValid(src.data(), src.size()); +} + +} // namespace UniLib + +#endif // UTIL_UTF8_PUBLIC_UNILIB_H_ diff --git a/third_party/libphonenumber/cpp/src/utf/utf.h b/third_party/libphonenumber/cpp/src/utf/utf.h new file mode 100644 index 0000000..f4fd482 --- /dev/null +++ b/third_party/libphonenumber/cpp/src/utf/utf.h @@ -0,0 +1,251 @@ +/* + * The authors of this software are Rob Pike and Ken Thompson. + * Copyright (c) 1998-2002 by Lucent Technologies. + * Portions Copyright (c) 2009 The Go Authors. All rights reserved. + * Permission to use, copy, modify, and distribute this software for any + * purpose without fee is hereby granted, provided that this entire notice + * is included in all copies of any software which is or includes a copy + * or modification of this software and in all copies of the supporting + * documentation for such software. + * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED + * WARRANTY. IN PARTICULAR, NEITHER THE AUTHORS NOR LUCENT TECHNOLOGIES MAKE ANY + * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY + * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. + */ + +#ifndef _UTFH_ +#define _UTFH_ 1 + +// stdint.h content doesn't seem to be used in this file and doesn't exist on +// Windows, therefore we comment it out here so that the code could be compiled +// on Windows. +//#include + +typedef signed int Rune; /* Code-point values in Unicode 4.0 are 21 bits wide.*/ + +enum +{ + UTFmax = 4, /* maximum bytes per rune */ + Runesync = 0x80, /* cannot represent part of a UTF sequence (<) */ + Runeself = 0x80, /* rune and UTF sequences are the same (<) */ + Runeerror = 0xFFFD, /* decoding error in UTF */ + Runemax = 0x10FFFF, /* maximum rune value */ +}; + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * rune routines + */ + +/* + * These routines were written by Rob Pike and Ken Thompson + * and first appeared in Plan 9. + * SEE ALSO + * utf (7) + * tcs (1) +*/ + +// runetochar copies (encodes) one rune, pointed to by r, to at most +// UTFmax bytes starting at s and returns the number of bytes generated. + +int runetochar(char* s, const Rune* r); + + +// chartorune copies (decodes) at most UTFmax bytes starting at s to +// one rune, pointed to by r, and returns the number of bytes consumed. +// If the input is not exactly in UTF format, chartorune will set *r +// to Runeerror and return 1. +// +// Note: There is no special case for a "null-terminated" string. A +// string whose first byte has the value 0 is the UTF8 encoding of the +// Unicode value 0 (i.e., ASCII NULL). A byte value of 0 is illegal +// anywhere else in a UTF sequence. + +int chartorune(Rune* r, const char* s); + + +// charntorune is like chartorune, except that it will access at most +// n bytes of s. If the UTF sequence is incomplete within n bytes, +// charntorune will set *r to Runeerror and return 0. If it is complete +// but not in UTF format, it will set *r to Runeerror and return 1. +// +// Added 2004-09-24 by Wei-Hwa Huang + +int charntorune(Rune* r, const char* s, int n); + +// isvalidcharntorune(str, n, r, consumed) +// is a convenience function that calls "*consumed = charntorune(r, str, n)" +// and returns an int (logically boolean) indicating whether the first +// n bytes of str was a valid and complete UTF sequence. + +int isvalidcharntorune(const char* str, int n, Rune* r, int* consumed); + +// runelen returns the number of bytes required to convert r into UTF. + +int runelen(Rune r); + + +// runenlen returns the number of bytes required to convert the n +// runes pointed to by r into UTF. + +int runenlen(const Rune* r, int n); + + +// fullrune returns 1 if the string s of length n is long enough to be +// decoded by chartorune, and 0 otherwise. This does not guarantee +// that the string contains a legal UTF encoding. This routine is used +// by programs that obtain input one byte at a time and need to know +// when a full rune has arrived. + +int fullrune(const char* s, int n); + +// The following routines are analogous to the corresponding string +// routines with "utf" substituted for "str", and "rune" substituted +// for "chr". + +// utflen returns the number of runes that are represented by the UTF +// string s. (cf. strlen) + +int utflen(const char* s); + + +// utfnlen returns the number of complete runes that are represented +// by the first n bytes of the UTF string s. If the last few bytes of +// the string contain an incompletely coded rune, utfnlen will not +// count them; in this way, it differs from utflen, which includes +// every byte of the string. (cf. strnlen) + +int utfnlen(const char* s, long n); + + +// utfrune returns a pointer to the first occurrence of rune r in the +// UTF string s, or 0 if r does not occur in the string. The NULL +// byte terminating a string is considered to be part of the string s. +// (cf. strchr) + +const char* utfrune(const char* s, Rune r); + + +// utfrrune returns a pointer to the last occurrence of rune r in the +// UTF string s, or 0 if r does not occur in the string. The NULL +// byte terminating a string is considered to be part of the string s. +// (cf. strrchr) + +const char* utfrrune(const char* s, Rune r); + + +// utfutf returns a pointer to the first occurrence of the UTF string +// s2 as a UTF substring of s1, or 0 if there is none. If s2 is the +// null string, utfutf returns s1. (cf. strstr) + +const char* utfutf(const char* s1, const char* s2); + + +// utfecpy copies UTF sequences until a null sequence has been copied, +// but writes no sequences beyond es1. If any sequences are copied, +// s1 is terminated by a null sequence, and a pointer to that sequence +// is returned. Otherwise, the original s1 is returned. (cf. strecpy) + +char* utfecpy(char *s1, char *es1, const char *s2); + + + +// These functions are rune-string analogues of the corresponding +// functions in strcat (3). +// +// These routines first appeared in Plan 9. +// SEE ALSO +// memmove (3) +// rune (3) +// strcat (2) +// +// BUGS: The outcome of overlapping moves varies among implementations. + +Rune* runestrcat(Rune* s1, const Rune* s2); +Rune* runestrncat(Rune* s1, const Rune* s2, long n); + +const Rune* runestrchr(const Rune* s, Rune c); + +int runestrcmp(const Rune* s1, const Rune* s2); +int runestrncmp(const Rune* s1, const Rune* s2, long n); + +Rune* runestrcpy(Rune* s1, const Rune* s2); +Rune* runestrncpy(Rune* s1, const Rune* s2, long n); +Rune* runestrecpy(Rune* s1, Rune* es1, const Rune* s2); + +Rune* runestrdup(const Rune* s); + +const Rune* runestrrchr(const Rune* s, Rune c); +long runestrlen(const Rune* s); +const Rune* runestrstr(const Rune* s1, const Rune* s2); + + + +// The following routines test types and modify cases for Unicode +// characters. Unicode defines some characters as letters and +// specifies three cases: upper, lower, and title. Mappings among the +// cases are also defined, although they are not exhaustive: some +// upper case letters have no lower case mapping, and so on. Unicode +// also defines several character properties, a subset of which are +// checked by these routines. These routines are based on Unicode +// version 3.0.0. +// +// NOTE: The routines are implemented in C, so the boolean functions +// (e.g., isupperrune) return 0 for false and 1 for true. +// +// +// toupperrune, tolowerrune, and totitlerune are the Unicode case +// mappings. These routines return the character unchanged if it has +// no defined mapping. + +Rune toupperrune(Rune r); +Rune tolowerrune(Rune r); +Rune totitlerune(Rune r); + + +// isupperrune tests for upper case characters, including Unicode +// upper case letters and targets of the toupper mapping. islowerrune +// and istitlerune are defined analogously. + +int isupperrune(Rune r); +int islowerrune(Rune r); +int istitlerune(Rune r); + + +// isalpharune tests for Unicode letters; this includes ideographs in +// addition to alphabetic characters. + +int isalpharune(Rune r); + + +// isdigitrune tests for digits. Non-digit numbers, such as Roman +// numerals, are not included. + +int isdigitrune(Rune r); + + +// isideographicrune tests for ideographic characters and numbers, as +// defined by the Unicode standard. + +int isideographicrune(Rune r); + + +// isspacerune tests for whitespace characters, including "C" locale +// whitespace, Unicode defined whitespace, and the "zero-width +// non-break space" character. + +int isspacerune(Rune r); + + +// (The comments in this file were copied from the manpage files rune.3, +// isalpharune.3, and runestrcat.3. Some formatting changes were also made +// to conform to Google style. /JRM 11/11/05) + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/third_party/libphonenumber/cpp/src/utf/utfdef.h b/third_party/libphonenumber/cpp/src/utf/utfdef.h new file mode 100644 index 0000000..adc6d95 --- /dev/null +++ b/third_party/libphonenumber/cpp/src/utf/utfdef.h @@ -0,0 +1,28 @@ +/* + * The authors of this software are Rob Pike and Ken Thompson. + * Copyright (c) 1998-2002 by Lucent Technologies. + * Permission to use, copy, modify, and distribute this software for any + * purpose without fee is hereby granted, provided that this entire notice + * is included in all copies of any software which is or includes a copy + * or modification of this software and in all copies of the supporting + * documentation for such software. + * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED + * WARRANTY. IN PARTICULAR, NEITHER THE AUTHORS NOR LUCENT TECHNOLOGIES MAKE ANY + * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY + * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE. + */ + +#define uchar _utfuchar +#define ushort _utfushort +#define uint _utfuint +#define ulong _utfulong +#define vlong _utfvlong +#define uvlong _utfuvlong + +typedef unsigned char uchar; +typedef unsigned short ushort; +typedef unsigned int uint; +typedef unsigned long ulong; + +#define nelem(x) (sizeof(x)/sizeof((x)[0])) +#define nil ((void*)0) diff --git a/third_party/libphonenumber/libphonenumber.gyp b/third_party/libphonenumber/libphonenumber.gyp new file mode 100644 index 0000000..0fdfcc5 --- /dev/null +++ b/third_party/libphonenumber/libphonenumber.gyp @@ -0,0 +1,139 @@ +# Copyright (c) 2011 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +{ + 'variables': { + 'protoc_out_dir': '<(SHARED_INTERMEDIATE_DIR)/protoc_out', + }, + 'target_defaults': { + 'include_dirs': [ + '../..', # add it first, so src/base headers are used instead of the ones + # brought with the library as cc files would be taken from the + # main chrome tree as well. + 'cpp/src', + '<(protoc_out_dir)', + '../protobuf/src', + '../icu/public/common', + '../icu/public/i18n', + ], + 'defines': [ + 'U_USING_ICU_NAMESPACE=0', + ], + 'conditions': [ + ['OS!="win" or component=="static_library"', { + 'defines': [ + 'U_STATIC_IMPLEMENTATION', + ], + }], + ], + }, + 'targets': [{ + 'target_name': 'libphonenumber', + 'type': '<(library)', + 'dependencies': [ + '../icu/icu.gyp:icui18n', + '../icu/icu.gyp:icuuc', + '../protobuf/protobuf.gyp:protobuf_lite', + '../../base/base.gyp:base', + '../../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', + 'phonenumber_proto', + ], + 'sources': [ + 'chrome/regexp_adapter_icuregexp.cc', + 'cpp/src/default_logger.cc', + 'cpp/src/logger_adapter.cc', + 'cpp/src/metadata.cc', + 'cpp/src/phonenumber.cc', + 'cpp/src/phonenumberutil.cc', + 'cpp/src/stringutil.cc', + 'cpp/src/utf/rune.c', + 'cpp/src/utf/unicodetext.cc', + 'cpp/src/utf/unilib.cc', + # Generated by phonenumber_proto. + '<(protoc_out_dir)/phonemetadata.pb.cc', + '<(protoc_out_dir)/phonenumber.pb.cc', + ], + 'conditions': [ + ['OS=="win"', { + 'action': [ + '/wo4309', + ], + }], + ], + }, + { + # Protobuf compiler / generate rule for the phones + 'target_name': 'phonenumber_proto', + 'type': 'none', + 'sources': [ + 'resources/phonemetadata.proto', + 'resources/phonenumber.proto', + ], + 'rules': [{ + 'rule_name': 'genproto', + 'extension': 'proto', + 'inputs': [ + '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)protoc<(EXECUTABLE_SUFFIX)', + ], + 'variables': { + # The protoc compiler requires a proto_path argument with the + # directory containing the .proto file. + # There's no generator variable that corresponds to this, so fake it. + 'rule_input_relpath': 'resources', + }, + 'outputs': [ + '<(protoc_out_dir)/<(RULE_INPUT_ROOT).pb.h', + '<(protoc_out_dir)/<(RULE_INPUT_ROOT).pb.cc', + ], + 'action': [ + '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)protoc<(EXECUTABLE_SUFFIX)', + '--proto_path=<(rule_input_relpath)', + '<(rule_input_relpath)/<(RULE_INPUT_ROOT)<(RULE_INPUT_EXT)', + '--cpp_out=<(protoc_out_dir)', + ], + 'message': 'Generating C++ code from <(RULE_INPUT_PATH)', + }], + 'dependencies': [ + '../protobuf/protobuf.gyp:protobuf_lite', + '../protobuf/protobuf.gyp:protoc#host', + ], + 'direct_dependent_settings': { + 'include_dirs': [ + '<(protoc_out_dir)', + ] + }, + 'export_dependent_settings': [ + '../../third_party/protobuf/protobuf.gyp:protobuf_lite', + ], + }, + { + 'target_name': 'libphonenumber_unittests', + 'type': 'executable', + 'sources': [ + '../../base/test/run_all_unittests.cc', + 'cpp/src/phonenumberutil_test.cc', + 'cpp/src/regexp_adapter_unittest.cc', + 'cpp/src/stringutil_test.cc', + 'cpp/src/test_metadata.cc', + ], + 'dependencies': [ + '../icu/icu.gyp:icui18n', + '../icu/icu.gyp:icuuc', + '../protobuf/protobuf.gyp:protobuf_lite', + '../../base/base.gyp:base', + '../../base/base.gyp:test_support_base', + '../../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', + '../../testing/gmock.gyp:gmock', + '../../testing/gtest.gyp:gtest', + 'libphonenumber', + ], + 'conditions': [ + ['OS=="win"', { + 'action': [ + '/wo4309', + ], + }], + ], + }] +} diff --git a/third_party/libphonenumber/patches/version186.patch b/third_party/libphonenumber/patches/version186.patch new file mode 100644 index 0000000..63afbfaa --- /dev/null +++ b/third_party/libphonenumber/patches/version186.patch @@ -0,0 +1,1177 @@ +Index: regexp_adapter.h +=================================================================== +--- regexp_adapter.h (revision 0) ++++ regexp_adapter.h (revision 0) +@@ -0,0 +1,96 @@ ++// Copyright (C) 2011 Google Inc. ++// ++// Licensed under the Apache License, Version 2.0 (the "License"); ++// you may not use this file except in compliance with the License. ++// You may obtain a copy of the License at ++// ++// http://www.apache.org/licenses/LICENSE-2.0 ++// ++// Unless required by applicable law or agreed to in writing, software ++// distributed under the License is distributed on an "AS IS" BASIS, ++// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++// See the License for the specific language governing permissions and ++// limitations under the License. ++ ++// Author: George Yakovlev ++ ++#ifndef I18N_PHONENUMBERS_REGEXP_ADAPTER_H_ ++#define I18N_PHONENUMBERS_REGEXP_ADAPTER_H_ ++ ++#include ++ ++// Regexp adapter to allow pluggable regexp engine, as it is external to ++// libphonenumber. ++ ++namespace reg_exp { ++ ++// The reg exp input class. ++// It supports only functions used in phonelibrary. ++class RegularExpressionInput { ++ public: ++ virtual ~RegularExpressionInput() {}; ++ ++ // Matches string to regular expression, returns true if expression was ++ // matched, false otherwise, advances position in the match. ++ // |reg_exp| - expression to be matched. ++ // |beginning_only| - if true match would be successfull only if appears at ++ // the beginning of the tested region of the string. ++ // |matched_string1| - successfully matched first string. Can be NULL. ++ // |matched_string2| - successfully matched second string. Can be NULL. ++ virtual bool ConsumeRegExp(std::string const& reg_exp, ++ bool beginning_only, ++ std::string* matched_string1, ++ std::string* matched_string2) = 0; ++ // Convert unmatched input to a string. ++ virtual std::string ToString() const = 0; ++}; ++ ++// The regular expression class. ++// It supports only functions used in phonelibrary. ++class RegularExpression { ++ public: ++ RegularExpression() {} ++ virtual ~RegularExpression() {} ++ ++ // Matches string to regular expression, returns true if expression was ++ // matched, false otherwise, advances position in the match. ++ // |input_string| - string to be searched. ++ // |beginning_only| - if true match would be successfull only if appears at ++ // the beginning of the tested region of the string. ++ // |matched_string1| - successfully matched first string. Can be NULL. ++ // |matched_string2| - successfully matched second string. Can be NULL. ++ // |matched_string3| - successfully matched third string. Can be NULL. ++ virtual bool Consume(RegularExpressionInput* input_string, ++ bool beginning_only, ++ std::string* matched_string1 = NULL, ++ std::string* matched_string2 = NULL, ++ std::string* matched_string3 = NULL) const = 0; ++ ++ ++ // Matches string to regular expression, returns true if expression was ++ // matched, false otherwise. ++ // |input_string| - string to be searched. ++ // |full_match| - if true match would be successfull only if it matches the ++ // complete string. ++ // |matched_string| - successfully matched string. Can be NULL. ++ virtual bool Match(const char* input_string, ++ bool full_match, ++ std::string* matched_string) const = 0; ++ ++ // Replaces match(es) in the |string_to_process|. if |global| is true, ++ // replaces all the matches, only the first match otherwise. ++ // |replacement_string| - text the matches are replaced with. ++ // Returns true if expression successfully processed through the string, ++ // even if no actual replacements were made. Returns false in case of an ++ // error. ++ virtual bool Replace(std::string* string_to_process, ++ bool global, ++ const char* replacement_string) const = 0; ++}; ++ ++RegularExpressionInput* CreateRegularExpressionInput(const char* utf8_input); ++RegularExpression* CreateRegularExpression(const char* utf8_regexp); ++ ++} // namespace reg_exp ++ ++#endif // I18N_PHONENUMBERS_REGEXP_ADAPTER_H_ + +Property changes on: regexp_adapter.h +___________________________________________________________________ +Added: svn:eol-style + + LF + +Index: regexp_adapter_re2.cc +=================================================================== +--- regexp_adapter_re2.cc (revision 0) ++++ regexp_adapter_re2.cc (revision 0) +@@ -0,0 +1,192 @@ ++// Copyright (C) 2011 Google Inc. ++// ++// Licensed under the Apache License, Version 2.0 (the "License"); ++// you may not use this file except in compliance with the License. ++// You may obtain a copy of the License at ++// ++// http://www.apache.org/licenses/LICENSE-2.0 ++// ++// Unless required by applicable law or agreed to in writing, software ++// distributed under the License is distributed on an "AS IS" BASIS, ++// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++// See the License for the specific language governing permissions and ++// limitations under the License. ++ ++// Author: George Yakovlev ++#include "regexp_adapter.h" ++ ++#include ++#include ++#include ++ ++namespace { ++scoped_ptr re2_cache; ++} // namespace ++ ++class RE2RegularExpressionInput : public RegularExpressionInput { ++ public: ++ RE2RegularExpressionInput(const char* utf8_input); ++ ++ virtual bool ConsumeRegExp(std::string const& reg_exp, ++ bool beginning_only, ++ std::string* matched_string1, ++ std::string* matched_string2); ++ virtual std::string ToString() const; ++ private: ++ StringPiece utf8_input_; ++}; ++ ++ ++class RE2RegularExpression : public reg_exp::RegularExpression { ++ public: ++ RE2RegularExpression(const char* utf8_regexp); ++ ++ virtual bool Consume(reg_exp::RegularExpressionInput* input_string, ++ bool beginning_only, ++ std::string* matched_string1, ++ std::string* matched_string2, ++ std::string* matched_string3) const; ++ ++ virtual bool Match(const char* input_string, ++ bool full_match, ++ std::string* matched_string) const; ++ ++ virtual bool Replace(std::string* string_to_process, ++ bool global, ++ const char* replacement_string) const; ++ private: ++ RE2 utf8_regexp_; ++}; ++ ++RE2RegularExpressionInput::RE2RegularExpressionInput(const char* utf8_input) ++ : utf8_input_(utf8_input) { ++ DCHECK(utf8_input); ++} ++ ++bool RE2RegularExpressionInput::ConsumeRegExp(std::string const& reg_exp, ++ bool beginning_only, ++ std::string* matched_string1, ++ std::string* matched_string2) { ++ if (beginning_only) { ++ if (matched_string2) ++ return RE2::Consume(&utf8_input_, ++ RE2Cache::ScopedAccess(re2_cache.get(), reg_exp), ++ matched_string1, matched_string2); ++ else if (matched_string1) ++ return RE2::Consume(&utf8_input_, ++ RE2Cache::ScopedAccess(re2_cache.get(), reg_exp), ++ matched_string1); ++ else ++ return RE2::Consume(&utf8_input_, ++ RE2Cache::ScopedAccess(re2_cache.get(), reg_exp)); ++ } else { ++ if (matched_string2) ++ return RE2::FindAndConsume(&utf8_input_, ++ RE2Cache::ScopedAccess(re2_cache.get(), ++ reg_exp), ++ matched_string1, matched_string2); ++ else if (matched_string1) ++ return RE2::FindAndConsume(&utf8_input_, ++ RE2Cache::ScopedAccess(re2_cache.get(), ++ reg_exp), ++ matched_string1); ++ else ++ return RE2::FindAndConsume(&utf8_input_, ++ RE2Cache::ScopedAccess(re2_cache.get(), ++ reg_exp)); ++ } ++} ++ ++std::string RE2RegularExpressionInput::ToString() const { ++ utf8_input_.ToString(); ++} ++ ++RE2RegularExpression::RE2RegularExpression(const char* utf8_regexp) ++ : utf8_regexp_(utf8_regexp) { ++ DCHECK(utf8_regexp); ++} ++ ++bool RE2RegularExpression::Consume(RegularExpressionInput* input_string, ++ bool beginning_only, ++ std::string* matched_string1, ++ std::string* matched_string2, ++ std::string* matched_string3) const { ++ DCHECK(input_string); ++ // matched_string1 may be NULL ++ // matched_string2 may be NULL ++ if (beginning_only) { ++ if (matched_string3) { ++ return RE2::Consume(input_string, utf8_regexp_, ++ matched_string1, matched_string2, matched_string3); ++ } else if (matched_string2) { ++ return RE2::Consume(input_string, utf8_regexp_, ++ matched_string1, matched_string2); ++ } else if (matched_string1) { ++ return RE2::Consume(input_string, utf8_regexp_, matched_string1); ++ } else { ++ return RE2::Consume(input_string, utf8_regexp_); ++ } ++ } else { ++ if (matched_string3) { ++ return RE2::FindAndConsume(input_string, utf8_regexp_, ++ matched_string1, matched_string2, ++ matched_string3); ++ } else if (matched_string2) { ++ return RE2::FindAndConsume(input_string, utf8_regexp_, ++ matched_string1, matched_string2); ++ } else if (matched_string1) { ++ return RE2::FindAndConsume(input_string, utf8_regexp_, matched_string1); ++ } else { ++ return RE2::FindAndConsume(input_string, utf8_regexp_); ++ } ++ } ++} ++ ++bool RE2RegularExpression::Match(const char* input_string, ++ bool full_match, ++ std::string* matched_string) const { ++ DCHECK(input_string); ++ // matched_string may be NULL ++ if (full_match) { ++ if (matched_string) ++ return RE2::FullMatch(input_string, matched_string); ++ else ++ return RE2::FullMatch(input_string); ++ } else { ++ if (matched_string) ++ return RE2::PartialMatch(input_string, matched_string); ++ else ++ return RE2::PartialMatch(input_string); ++ } ++} ++ ++bool RE2RegularExpression::Replace(std::string* string_to_process, ++ bool global, ++ const char* replacement_string) const { ++ DCHECK(string_to_process); ++ DCHECK(replacement_string); ++ if (global) { ++ StringPiece str(replacement_string); ++ return RE2::GlobalReplace(string_to_process, str); ++ } else { ++ return RE2::Replace(string_to_process, replacement_string); ++ } ++} ++ ++ ++namespace reg_exp { ++ ++RegularExpressionInput* CreateRegularExpressionInput(const char* utf8_input) { ++ if (!re2_cache.get()) ++ re2_cache.reset(new RE2Cache(64)); ++ return new RE2RegularExpressionInput(utf8_input); ++} ++ ++RegularExpression* CreateRegularExpression(const char* utf8_regexp) { ++ if (!re2_cache.get()) ++ re2_cache.reset(new RE2Cache(64)); ++ return new RE2RegularExpression(utf8_regexp); ++} ++ ++} // namespace reg_exp ++ + +Property changes on: regexp_adapter_re2.cc +___________________________________________________________________ +Added: svn:eol-style + + LF + +Index: phonenumberutil_test.cc +=================================================================== +--- phonenumberutil_test.cc (revision 186) ++++ phonenumberutil_test.cc (working copy) +@@ -21,12 +21,12 @@ + #include + + #include +-#include + + #include "phonemetadata.pb.h" + #include "phonenumber.h" + #include "phonenumber.pb.h" + #include "phonenumberutil.h" ++#include "regexp_adapter.h" + #include "test_metadata.h" + + namespace i18n { +Index: phonenumberutil.cc +=================================================================== +--- phonenumberutil.cc (revision 186) ++++ phonenumberutil.cc (working copy) +@@ -25,8 +25,6 @@ + #include + + #include +-#include +-#include + #include + #include + +@@ -38,7 +36,7 @@ + #include "phonemetadata.pb.h" + #include "phonenumber.h" + #include "phonenumber.pb.h" +-#include "re2_cache.h" ++#include "regexp_adapter.h" + #include "stringutil.h" + #include "utf/unicodetext.h" + #include "utf/utf.h" +@@ -54,14 +52,11 @@ + using std::stringstream; + + using google::protobuf::RepeatedPtrField; +-using re2::StringPiece; + + namespace { + + scoped_ptr logger; + +-scoped_ptr re2_cache; +- + // These objects are created in the function InitializeStaticMapsAndSets. + + // These mappings map a character (key) to a specific digit that should replace +@@ -78,7 +73,7 @@ + const char kPlusSign[] = "+"; + + const char kPlusChars[] = "++"; +-scoped_ptr plus_chars_pattern; ++scoped_ptr plus_chars_pattern; + + const char kRfc3966ExtnPrefix[] = ";ext="; + +@@ -89,7 +84,7 @@ + // prefixes in a region, they will be represented as a regex string that always + // contains character(s) other than ASCII digits. + // Note this regex also includes tilde, which signals waiting for the tone. +-scoped_ptr unique_international_prefix; ++scoped_ptr unique_international_prefix; + + // Digits accepted in phone numbers. + // Both Arabic-Indic and Eastern Arabic-Indic are supported. +@@ -97,8 +92,8 @@ + // We accept alpha characters in phone numbers, ASCII only. We store lower-case + // here only since our regular expressions are case-insensitive. + const char kValidAlpha[] = "a-z"; +-scoped_ptr capturing_digit_pattern; +-scoped_ptr capturing_ascii_digits_pattern; ++scoped_ptr capturing_digit_pattern; ++scoped_ptr capturing_ascii_digits_pattern; + + // Regular expression of acceptable characters that may start a phone number + // for the purposes of parsing. This allows us to strip away meaningless +@@ -110,7 +105,7 @@ + // a number. The string starting with this valid character is captured. + // This corresponds to VALID_START_CHAR in the java version. + scoped_ptr valid_start_char; +-scoped_ptr valid_start_char_pattern; ++scoped_ptr valid_start_char_pattern; + + // Regular expression of characters typically used to start a second phone + // number for the purposes of parsing. This allows us to strip off parts of +@@ -121,7 +116,8 @@ + // preceding this is captured. + // This corresponds to SECOND_NUMBER_START in the java version. + const char kCaptureUpToSecondNumberStart[] = "(.*)[\\\\/] *x"; +-scoped_ptr capture_up_to_second_number_start_pattern; ++scoped_ptr ++ capture_up_to_second_number_start_pattern; + + // Regular expression of trailing characters that we want to remove. We remove + // all characters that are not alpha or numerical characters. The hash +@@ -130,7 +126,7 @@ + // number if this was a match. + // This corresponds to UNWANTED_END_CHARS in the java version. + const char kUnwantedEndChar[] = "[^\\p{N}\\p{L}#]"; +-scoped_ptr unwanted_end_char_pattern; ++scoped_ptr unwanted_end_char_pattern; + + // Regular expression of acceptable punctuation found in phone numbers. This + // excludes punctuation found as a leading character only. This consists of +@@ -177,20 +173,20 @@ + scoped_ptr known_extn_patterns; + // Regexp of all known extension prefixes used by different regions followed + // by 1 or more valid digits, for use when parsing. +-scoped_ptr extn_pattern; ++scoped_ptr extn_pattern; + + // We append optionally the extension pattern to the end here, as a valid phone + // number may have an extension prefix appended, followed by 1 or more digits. +-scoped_ptr valid_phone_number_pattern; ++scoped_ptr valid_phone_number_pattern; + + // We use this pattern to check if the phone number has at least three letters + // in it - if so, then we treat it as a number where some phone-number digits + // are represented by letters. +-scoped_ptr valid_alpha_phone_pattern; ++scoped_ptr valid_alpha_phone_pattern; + +-scoped_ptr first_group_capturing_pattern; ++scoped_ptr first_group_capturing_pattern; + +-scoped_ptr carrier_code_pattern; ++scoped_ptr carrier_code_pattern; + + void TransformRegularExpressionToRE2Syntax(string* regex) { + DCHECK(regex); +@@ -280,18 +276,19 @@ + it = available_formats.begin(); it != available_formats.end(); ++it) { + int size = it->leading_digits_pattern_size(); + if (size > 0) { +- StringPiece number_copy(number_for_leading_digits_match); ++ scoped_ptr ++ number_copy(reg_exp::CreateRegularExpressionInput( ++ number_for_leading_digits_match.c_str())); + // We always use the last leading_digits_pattern, as it is the most + // detailed. +- if (!RE2::Consume(&number_copy, +- RE2Cache::ScopedAccess( +- re2_cache.get(), +- it->leading_digits_pattern(size - 1)))) { ++ if (!number_copy->ConsumeRegExp(it->leading_digits_pattern(size - 1), ++ true, NULL, NULL)) { + continue; + } + } +- RE2Cache::ScopedAccess pattern_to_match(re2_cache.get(), it->pattern()); +- if (RE2::FullMatch(national_number, pattern_to_match)) { ++ scoped_ptr pattern_to_match( ++ reg_exp::CreateRegularExpression(it->pattern().c_str())); ++ if (pattern_to_match->Match(national_number.c_str(), true, NULL)) { + string formatting_pattern(it->format()); + if (number_format == PhoneNumberUtil::NATIONAL && + carrier_code.length() > 0 && +@@ -299,11 +296,12 @@ + // Replace the $CC in the formatting rule with the desired carrier code. + string carrier_code_formatting_rule = + it->domestic_carrier_code_formatting_rule(); +- RE2::Replace(&carrier_code_formatting_rule, *carrier_code_pattern, +- carrier_code); ++ carrier_code_pattern->Replace(&carrier_code_formatting_rule, ++ false, carrier_code.c_str()); + TransformRegularExpressionToRE2Syntax(&carrier_code_formatting_rule); +- RE2::Replace(&formatting_pattern, *first_group_capturing_pattern, +- carrier_code_formatting_rule); ++ first_group_capturing_pattern->Replace(&formatting_pattern, ++ false, ++ carrier_code_formatting_rule.c_str()); + } else { + // Use the national prefix formatting rule instead. + string national_prefix_formatting_rule = +@@ -315,14 +313,15 @@ + // should be formatted at this point. + TransformRegularExpressionToRE2Syntax( + &national_prefix_formatting_rule); +- RE2::Replace(&formatting_pattern, *first_group_capturing_pattern, +- national_prefix_formatting_rule); ++ first_group_capturing_pattern->Replace(&formatting_pattern, ++ false, ++ national_prefix_formatting_rule.c_str()); + } + } + TransformRegularExpressionToRE2Syntax(&formatting_pattern); + formatted_number->assign(national_number); +- RE2::GlobalReplace(formatted_number, pattern_to_match, +- formatting_pattern); ++ pattern_to_match->Replace(formatted_number, true, ++ formatting_pattern.c_str()); + return; + } + } +@@ -361,12 +360,14 @@ + + bool IsNumberMatchingDesc(const string& national_number, + const PhoneNumberDesc& number_desc) { +- return (RE2::FullMatch(national_number, +- RE2Cache::ScopedAccess(re2_cache.get(), +- number_desc.possible_number_pattern())) && +- RE2::FullMatch(national_number, +- RE2Cache::ScopedAccess(re2_cache.get(), +- number_desc.national_number_pattern()))); ++ scoped_ptr ++ possible_pattern(reg_exp::CreateRegularExpression( ++ number_desc.possible_number_pattern().c_str())); ++ scoped_ptr ++ national_pattern(reg_exp::CreateRegularExpression( ++ number_desc.national_number_pattern().c_str())); ++ return (possible_pattern->Match(national_number.c_str(), true, NULL) && ++ national_pattern->Match(national_number.c_str(), true, NULL)); + } + + PhoneNumberUtil::PhoneNumberType GetNumberTypeHelper( +@@ -452,18 +453,25 @@ + // Initialisation helper function used to populate the regular expressions in a + // defined order. + void CreateRegularExpressions() { +- unique_international_prefix.reset(new RE2("[\\d]+(?:[~⁓∼~][\\d]+)?")); +- first_group_capturing_pattern.reset(new RE2("(\\$1)")); +- carrier_code_pattern.reset(new RE2("\\$CC")); +- capturing_digit_pattern.reset(new RE2(StrCat("([", kValidDigits, "])"))); +- capturing_ascii_digits_pattern.reset(new RE2("(\\d+)")); ++ unique_international_prefix.reset( ++ reg_exp::CreateRegularExpression("[\\d]+(?:[~⁓∼~][\\d]+)?")); ++ first_group_capturing_pattern.reset( ++ reg_exp::CreateRegularExpression("(\\$1)")); ++ carrier_code_pattern.reset( ++ reg_exp::CreateRegularExpression("\\$CC")); ++ capturing_digit_pattern.reset( ++ reg_exp::CreateRegularExpression( ++ StrCat("([", kValidDigits, "])").c_str())); ++ capturing_ascii_digits_pattern.reset( ++ reg_exp::CreateRegularExpression("(\\d+)")); + valid_start_char.reset(new string(StrCat( + "[", kPlusChars, kValidDigits, "]"))); +- valid_start_char_pattern.reset(new RE2(*valid_start_char)); +- capture_up_to_second_number_start_pattern.reset(new RE2( +- kCaptureUpToSecondNumberStart)); +- unwanted_end_char_pattern.reset(new RE2( +- kUnwantedEndChar)); ++ valid_start_char_pattern.reset( ++ reg_exp::CreateRegularExpression(valid_start_char->c_str())); ++ capture_up_to_second_number_start_pattern.reset( ++ reg_exp::CreateRegularExpression(kCaptureUpToSecondNumberStart)); ++ unwanted_end_char_pattern.reset( ++ reg_exp::CreateRegularExpression(kUnwantedEndChar)); + valid_phone_number.reset(new string( + StrCat("[", kPlusChars, "]*(?:[", kValidPunctuation, "]*[", kValidDigits, + "]){3,}[", kValidAlpha, kValidPunctuation, kValidDigits, "]*"))); +@@ -479,17 +487,19 @@ + "int|int|anexo)" + "[:\\..]?[  \\t,-]*", capturing_extn_digits, "#?|" + "[- ]+([", kValidDigits, "]{1,5})#"))); +- extn_pattern.reset(new RE2(StrCat("(?i)(?:", *known_extn_patterns, ")$"))); +- valid_phone_number_pattern.reset(new RE2( +- StrCat("(?i)", *valid_phone_number, "(?:", *known_extn_patterns, ")?"))); +- valid_alpha_phone_pattern.reset(new RE2( +- StrCat("(?i)(?:.*?[", kValidAlpha, "]){3}"))); +- plus_chars_pattern.reset(new RE2(StrCat("[", kPlusChars, "]+"))); ++ extn_pattern.reset(reg_exp::CreateRegularExpression( ++ StrCat("(?i)(?:", *known_extn_patterns, ")$").c_str())); ++ valid_phone_number_pattern.reset(reg_exp::CreateRegularExpression( ++ StrCat("(?i)", *valid_phone_number, "(?:", *known_extn_patterns, ++ ")?").c_str())); ++ valid_alpha_phone_pattern.reset(reg_exp::CreateRegularExpression( ++ StrCat("(?i)(?:.*?[", kValidAlpha, "]){3}").c_str())); ++ plus_chars_pattern.reset(reg_exp::CreateRegularExpression( ++ StrCat("[", kPlusChars, "]+").c_str())); + } + + void InitializeStaticMapsAndSets() { + // Create global objects. +- re2_cache.reset(new RE2Cache(64)); + all_plus_number_grouping_symbols.reset(new map); + alpha_mappings.reset(new map); + all_normalization_mappings.reset(new map); +@@ -625,36 +635,37 @@ + + // Strips the IDD from the start of the number if present. Helper function used + // by MaybeStripInternationalPrefixAndNormalize. +-bool ParsePrefixAsIdd(const RE2& idd_pattern, string* number) { ++bool ParsePrefixAsIdd(const reg_exp::RegularExpression* idd_pattern, ++ string* number) { + DCHECK(number); +- StringPiece number_copy(*number); ++ scoped_ptr number_copy( ++ reg_exp::CreateRegularExpressionInput(number->c_str())); + // First attempt to strip the idd_pattern at the start, if present. We make a + // copy so that we can revert to the original string if necessary. +- if (RE2::Consume(&number_copy, idd_pattern)) { ++ if (idd_pattern->Consume(number_copy.get(), true, NULL, NULL)) { + // Only strip this if the first digit after the match is not a 0, since + // country calling codes cannot begin with 0. + string extracted_digit; +- if (RE2::PartialMatch(number_copy, +- *capturing_digit_pattern, +- &extracted_digit)) { ++ if (capturing_digit_pattern->Match(number_copy->ToString().c_str(), false, ++ &extracted_digit)) { + PhoneNumberUtil::NormalizeDigitsOnly(&extracted_digit); + if (extracted_digit == "0") { + return false; + } + } +- number->assign(number_copy.ToString()); ++ number->assign(number_copy->ToString()); + return true; + } + return false; + } + + PhoneNumberUtil::ValidationResult TestNumberLengthAgainstPattern( +- const RE2& number_pattern, const string& number) { ++ const reg_exp::RegularExpression* number_pattern, const string& number) { + string extracted_number; +- if (RE2::FullMatch(number, number_pattern, &extracted_number)) { ++ if (number_pattern->Match(number.c_str(), true, &extracted_number)) { + return PhoneNumberUtil::IS_POSSIBLE; + } +- if (RE2::PartialMatch(number, number_pattern, &extracted_number)) { ++ if (number_pattern->Match(number.c_str(), false, &extracted_number)) { + return PhoneNumberUtil::TOO_LONG; + } else { + return PhoneNumberUtil::TOO_SHORT; +@@ -862,8 +873,10 @@ + PhoneNumberFormat number_format, + const RepeatedPtrField& user_defined_formats, + string* formatted_number) const { +- static const RE2 national_prefix_pattern("\\$NP"); +- static const RE2 first_group_pattern("\\$FG"); ++ static scoped_ptr ++ national_prefix_pattern(reg_exp::CreateRegularExpression("\\$NP")); ++ static scoped_ptr ++ first_group_pattern(reg_exp::CreateRegularExpression("\\$FG")); + DCHECK(formatted_number); + int country_calling_code = number.country_code(); + // Note GetRegionCodeForCountryCode() is used because formatting information +@@ -893,10 +906,12 @@ + num_format_copy->MergeFrom(*it); + if (!national_prefix.empty()) { + // Replace $NP with national prefix and $FG with the first group ($1). +- RE2::Replace(&national_prefix_formatting_rule, national_prefix_pattern, +- national_prefix); +- RE2::Replace(&national_prefix_formatting_rule, first_group_pattern, +- "$1"); ++ national_prefix_pattern->Replace(&national_prefix_formatting_rule, ++ false, ++ national_prefix.c_str()); ++ first_group_pattern->Replace(&national_prefix_formatting_rule, ++ false, ++ "$1"); + num_format_copy->set_national_prefix_formatting_rule( + national_prefix_formatting_rule); + } else { +@@ -1021,7 +1036,8 @@ + // format of the number is returned, unless there is a preferred international + // prefix. + string international_prefix_for_formatting( +- RE2::FullMatch(international_prefix, *unique_international_prefix) ++ unique_international_prefix->Match(international_prefix.c_str(), ++ true, NULL) + ? international_prefix + : metadata->preferred_international_prefix()); + if (!international_prefix_for_formatting.empty()) { +@@ -1133,7 +1149,8 @@ + // format of the number is returned, unless there is a preferred international + // prefix. + string international_prefix_for_formatting( +- RE2::FullMatch(international_prefix, *unique_international_prefix) ++ unique_international_prefix->Match(international_prefix.c_str(), ++ true, NULL) + ? international_prefix + : metadata->preferred_international_prefix()); + if (!international_prefix_for_formatting.empty()) { +@@ -1179,8 +1196,10 @@ + number, carrier_code, formatted_number); + if (number_format == RFC3966) { + // Replace all separators with a "-". +- static const RE2 separator_pattern(StrCat("[", kValidPunctuation, "]+")); +- RE2::GlobalReplace(formatted_number, separator_pattern, "-"); ++ scoped_ptr separator_pattern( ++ reg_exp::CreateRegularExpression( ++ StrCat("[", kValidPunctuation, "]+").c_str())); ++ separator_pattern->Replace(formatted_number, true, "-"); + } + } + +@@ -1288,10 +1307,9 @@ + it != region_codes.end(); ++it) { + const PhoneMetadata* metadata = GetMetadataForRegion(*it); + if (metadata->has_leading_digits()) { +- StringPiece number(national_number); +- if (RE2::Consume(&number, +- RE2Cache::ScopedAccess(re2_cache.get(), +- metadata->leading_digits()))) { ++ scoped_ptr number( ++ reg_exp::CreateRegularExpressionInput(national_number.c_str())); ++ if (number->ConsumeRegExp(metadata->leading_digits(), true, NULL, NULL)) { + *region_code = *it; + return; + } +@@ -1367,8 +1385,10 @@ + const string& number_to_parse, + const string& default_region) const { + if (!IsValidRegionCode(default_region) && !number_to_parse.empty()) { +- StringPiece number_as_string_piece(number_to_parse); +- if (!RE2::Consume(&number_as_string_piece, *plus_chars_pattern)) { ++ scoped_ptr number_as_string_piece( ++ reg_exp::CreateRegularExpressionInput(number_to_parse.c_str())); ++ if (!plus_chars_pattern->Consume(number_as_string_piece.get(), ++ true, NULL, NULL)) { + return false; + } + } +@@ -1435,8 +1455,6 @@ + return TOO_SHORT_NSN; + } + if (country_metadata) { +- RE2Cache::ScopedAccess valid_number_pattern(re2_cache.get(), +- country_metadata->general_desc().national_number_pattern()); + string* carrier_code = keep_raw_input ? + temp_number.mutable_preferred_domestic_carrier_code() : NULL; + MaybeStripNationalPrefixAndCarrierCode(*country_metadata, +@@ -1489,7 +1507,7 @@ + for (it = number_as_unicode.begin(); it != number_as_unicode.end(); ++it) { + len = it.get_utf8(current_char); + current_char[len] = '\0'; +- if (RE2::FullMatch(current_char, *valid_start_char_pattern)) { ++ if (valid_start_char_pattern->Match(current_char, true, NULL)) { + break; + } + } +@@ -1505,7 +1523,7 @@ + for (; reverse_it.base() != it; ++reverse_it) { + len = reverse_it.get_utf8(current_char); + current_char[len] = '\0'; +- if (!RE2::FullMatch(current_char, *unwanted_end_char_pattern)) { ++ if (!unwanted_end_char_pattern->Match(current_char, true, NULL)) { + break; + } + } +@@ -1521,9 +1539,9 @@ + " left with: " + *extracted_number); + + // Now remove any extra numbers at the end. +- RE2::PartialMatch(*extracted_number, +- *capture_up_to_second_number_start_pattern, +- extracted_number); ++ capture_up_to_second_number_start_pattern->Match(extracted_number->c_str(), ++ false, ++ extracted_number); + } + + bool PhoneNumberUtil::IsPossibleNumber(const PhoneNumber& number) const { +@@ -1569,9 +1587,10 @@ + return IS_POSSIBLE; + } + } +- RE2Cache::ScopedAccess possible_number_pattern(re2_cache.get(), +- StrCat("(", general_num_desc.possible_number_pattern(), ")")); +- return TestNumberLengthAgainstPattern(possible_number_pattern, ++ scoped_ptr possible_number_pattern( ++ reg_exp::CreateRegularExpression( ++ StrCat("(", general_num_desc.possible_number_pattern(), ")").c_str())); ++ return TestNumberLengthAgainstPattern(possible_number_pattern.get(), + national_number); + } + +@@ -1701,13 +1720,16 @@ + + string formatted_number; + Format(copied_proto, INTERNATIONAL, &formatted_number); +- StringPiece i18n_number(formatted_number); ++ scoped_ptr i18n_number( ++ reg_exp::CreateRegularExpressionInput(formatted_number.c_str())); + string digit_group; + string ndc; + string third_group; + for (int i = 0; i < 3; ++i) { +- if (!RE2::FindAndConsume(&i18n_number, *capturing_ascii_digits_pattern, +- &digit_group)) { ++ if (!capturing_ascii_digits_pattern->Consume(i18n_number.get(), ++ false, ++ &digit_group, ++ NULL)) { + // We should find at least three groups. + return 0; + } +@@ -1734,9 +1756,11 @@ + void PhoneNumberUtil::NormalizeDigitsOnly(string* number) { + DCHECK(number); + // Delete everything that isn't valid digits. +- static const RE2 invalid_digits_pattern(StrCat("[^", kValidDigits, "]")); +- static const StringPiece empty; +- RE2::GlobalReplace(number, invalid_digits_pattern, empty); ++ static scoped_ptr invalid_digits_pattern( ++ reg_exp::CreateRegularExpression(StrCat("[^", kValidDigits, ++ "]").c_str())); ++ static const char *empty = ""; ++ invalid_digits_pattern->Replace(number, true, empty); + // Normalize all decimal digits to ASCII digits. + UParseError error; + icu::ErrorCode status; +@@ -1778,7 +1802,7 @@ + string number_copy(number); + string extension; + MaybeStripExtension(&number_copy, &extension); +- return RE2::FullMatch(number_copy, *valid_alpha_phone_pattern); ++ return valid_alpha_phone_pattern->Match(number_copy.c_str(), true, NULL); + } + + void PhoneNumberUtil::ConvertAlphaCharactersInNumber(string* number) const { +@@ -1798,7 +1822,7 @@ + // - Arabic-Indic numerals are converted to European numerals. + void PhoneNumberUtil::Normalize(string* number) const { + DCHECK(number); +- if (RE2::PartialMatch(*number, *valid_alpha_phone_pattern)) { ++ if (valid_alpha_phone_pattern->Match(number->c_str(), false, NULL)) { + NormalizeHelper(*all_normalization_mappings, true, number); + } + NormalizeDigitsOnly(number); +@@ -1816,7 +1840,7 @@ + logger->Debug("Number too short to be viable:" + number); + return false; + } +- return RE2::FullMatch(number, *valid_phone_number_pattern); ++ return valid_phone_number_pattern->Match(number.c_str(), true, NULL); + } + + // Strips any international prefix (such as +, 00, 011) present in the number +@@ -1836,17 +1860,20 @@ + if (number->empty()) { + return PhoneNumber::FROM_DEFAULT_COUNTRY; + } +- StringPiece number_string_piece(*number); +- if (RE2::Consume(&number_string_piece, *plus_chars_pattern)) { +- number->assign(number_string_piece.ToString()); ++ scoped_ptr number_string_piece( ++ reg_exp::CreateRegularExpressionInput(number->c_str())); ++ if (plus_chars_pattern->Consume(number_string_piece.get(), true, ++ NULL, NULL)) { ++ number->assign(number_string_piece->ToString()); + // Can now normalize the rest of the number since we've consumed the "+" + // sign at the start. + Normalize(number); + return PhoneNumber::FROM_NUMBER_WITH_PLUS_SIGN; + } + // Attempt to parse the first digits as an international prefix. +- RE2Cache::ScopedAccess idd_pattern(re2_cache.get(), possible_idd_prefix); +- if (ParsePrefixAsIdd(idd_pattern, number)) { ++ scoped_ptr idd_pattern( ++ reg_exp::CreateRegularExpression(possible_idd_prefix.c_str())); ++ if (ParsePrefixAsIdd(idd_pattern.get(), number)) { + Normalize(number); + return PhoneNumber::FROM_NUMBER_WITH_IDD; + } +@@ -1854,7 +1881,7 @@ + // This shouldn't be done before, since non-numeric characters (+ and ~) may + // legally be in the international prefix. + Normalize(number); +- return ParsePrefixAsIdd(idd_pattern, number) ++ return ParsePrefixAsIdd(idd_pattern.get(), number) + ? PhoneNumber::FROM_NUMBER_WITH_IDD + : PhoneNumber::FROM_DEFAULT_COUNTRY; + } +@@ -1879,25 +1906,25 @@ + } + // We use two copies here since Consume modifies the phone number, and if the + // first if-clause fails the number will already be changed. +- StringPiece number_copy(*number); +- StringPiece number_copy_without_transform(*number); ++ scoped_ptr number_copy( ++ reg_exp::CreateRegularExpressionInput(number->c_str())); ++ scoped_ptr number_copy_without_transform( ++ reg_exp::CreateRegularExpressionInput(number->c_str())); ++ + string number_string_copy(*number); + string captured_part_of_prefix; +- RE2Cache::ScopedAccess national_number_rule( +- re2_cache.get(), +- metadata.general_desc().national_number_pattern()); ++ scoped_ptr national_number_rule( ++ reg_exp::CreateRegularExpression( ++ metadata.general_desc().national_number_pattern().c_str())); + // Attempt to parse the first digits as a national prefix. We make a + // copy so that we can revert to the original string if necessary. + const string& transform_rule = metadata.national_prefix_transform_rule(); + if (!transform_rule.empty() && +- (RE2::Consume(&number_copy, +- RE2Cache::ScopedAccess(re2_cache.get(), +- possible_national_prefix), +- &carrier_code_temp, &captured_part_of_prefix) || +- RE2::Consume(&number_copy, +- RE2Cache::ScopedAccess(re2_cache.get(), +- possible_national_prefix), +- &captured_part_of_prefix)) && ++ (number_copy->ConsumeRegExp(possible_national_prefix, true, ++ &carrier_code_temp, ++ &captured_part_of_prefix) || ++ number_copy->ConsumeRegExp(possible_national_prefix, true, ++ &captured_part_of_prefix, NULL)) && + !captured_part_of_prefix.empty()) { + string re2_transform_rule(transform_rule); + TransformRegularExpressionToRE2Syntax(&re2_transform_rule); +@@ -1905,29 +1932,27 @@ + // have been some part of the prefix that we captured. + // We make the transformation and check that the resultant number is viable. + // If so, replace the number and return. +- RE2::Replace(&number_string_copy, +- RE2Cache::ScopedAccess(re2_cache.get(), +- possible_national_prefix), +- re2_transform_rule); +- if (RE2::FullMatch(number_string_copy, national_number_rule)) { ++ scoped_ptr possible_national_prefix_rule( ++ reg_exp::CreateRegularExpression(possible_national_prefix.c_str())); ++ possible_national_prefix_rule->Replace(&number_string_copy, false, ++ re2_transform_rule.c_str()); ++ if (national_number_rule->Match(number_string_copy.c_str(), true, NULL)) { + number->assign(number_string_copy); + if (carrier_code) { + carrier_code->assign(carrier_code_temp); + } + } +- } else if (RE2::Consume(&number_copy_without_transform, +- RE2Cache::ScopedAccess(re2_cache.get(), +- possible_national_prefix), +- &carrier_code_temp) || +- RE2::Consume(&number_copy_without_transform, +- RE2Cache::ScopedAccess(re2_cache.get(), +- possible_national_prefix))) { ++ } else if (number_copy_without_transform->ConsumeRegExp( ++ possible_national_prefix, true, &carrier_code_temp, NULL) || ++ number_copy_without_transform->ConsumeRegExp( ++ possible_national_prefix, true, NULL, NULL)) { + logger->Debug("Parsed the first digits as a national prefix."); ++ string unconsumed_part(number_copy_without_transform->ToString()); + // If captured_part_of_prefix is empty, this implies nothing was captured by + // the capturing groups in possible_national_prefix; therefore, no + // transformation is necessary, and we just remove the national prefix. +- if (RE2::FullMatch(number_copy_without_transform, national_number_rule)) { +- number->assign(number_copy_without_transform.ToString()); ++ if (national_number_rule->Match(unconsumed_part.c_str(), true, NULL)) { ++ number->assign(unconsumed_part); + if (carrier_code) { + carrier_code->assign(carrier_code_temp); + } +@@ -1949,11 +1974,13 @@ + string possible_extension_two; + string possible_extension_three; + string number_copy(*number); +- if (RE2::PartialMatch(number_copy, *extn_pattern, +- &possible_extension_one, &possible_extension_two, +- &possible_extension_three)) { ++ scoped_ptr number_copy_regex_input( ++ reg_exp::CreateRegularExpressionInput(number_copy.c_str())); ++ if (extn_pattern->Consume(number_copy_regex_input.get(), false, ++ &possible_extension_one, &possible_extension_two, ++ &possible_extension_three)) { + // Replace the extensions in the original string here. +- RE2::Replace(&number_copy, *extn_pattern, ""); ++ extn_pattern->Replace(&number_copy, false, ""); + logger->Debug("Found an extension. Possible extension one: " + + possible_extension_one + + ". Possible extension two: " + possible_extension_two +@@ -2061,25 +2088,29 @@ + &potential_national_number)) { + const PhoneNumberDesc& general_num_desc = + default_region_metadata->general_desc(); +- RE2Cache::ScopedAccess valid_number_pattern( +- re2_cache.get(), +- general_num_desc.national_number_pattern()); ++ scoped_ptr valid_number_pattern( ++ reg_exp::CreateRegularExpression( ++ general_num_desc.national_number_pattern().c_str())); ++ + MaybeStripNationalPrefixAndCarrierCode(*default_region_metadata, + &potential_national_number, + NULL); + logger->Debug("Number without country code prefix: " + + potential_national_number); + string extracted_number; +- RE2Cache::ScopedAccess possible_number_pattern( +- re2_cache.get(), +- StrCat("(", general_num_desc.possible_number_pattern(), ")")); ++ scoped_ptr possible_number_pattern( ++ reg_exp::CreateRegularExpression( ++ StrCat("(", general_num_desc.possible_number_pattern(), ++ ")").c_str())); + // If the number was not valid before but is valid now, or if it was too + // long before, we consider the number with the country code stripped to + // be a better result and keep that instead. +- if ((!RE2::FullMatch(*national_number, valid_number_pattern) && +- RE2::FullMatch(potential_national_number, valid_number_pattern)) || +- TestNumberLengthAgainstPattern(possible_number_pattern, +- *national_number) ++ if ((!valid_number_pattern->Match(national_number->c_str(), ++ true, NULL) && ++ valid_number_pattern->Match(potential_national_number.c_str(), ++ true, NULL)) || ++ TestNumberLengthAgainstPattern(possible_number_pattern.get(), ++ *national_number) + == TOO_LONG) { + national_number->assign(potential_national_number); + if (keep_raw_input) { +Index: regexp_adapter_unittest.cc +=================================================================== +--- regexp_adapter_unittest.cc (revision 0) ++++ regexp_adapter_unittest.cc (revision 0) +@@ -0,0 +1,142 @@ ++// Copyright (C) 2011 Google Inc. ++// ++// Licensed under the Apache License, Version 2.0 (the "License"); ++// you may not use this file except in compliance with the License. ++// You may obtain a copy of the License at ++// ++// http://www.apache.org/licenses/LICENSE-2.0 ++// ++// Unless required by applicable law or agreed to in writing, software ++// distributed under the License is distributed on an "AS IS" BASIS, ++// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++// See the License for the specific language governing permissions and ++// limitations under the License. ++ ++// Author: George Yakovlev ++#include ++ ++#include "base/scoped_ptr.h" ++#include "regexp_adapter.h" ++ ++namespace reg_exp { ++ ++TEST(RegExpAdapter, TestConsumeRegExp) { ++ scoped_ptr reg_exp1( ++ reg_exp::CreateRegularExpression("[0-9a-z]+")); ++ scoped_ptr reg_exp2( ++ reg_exp::CreateRegularExpression(" \\(([0-9a-z]+)\\)")); ++ scoped_ptr reg_exp3( ++ reg_exp::CreateRegularExpression("([0-9a-z]+)-([0-9a-z]+)")); ++ ++ scoped_ptr reg_input1( ++ reg_exp::CreateRegularExpressionInput("+1-123-456-789")); ++ scoped_ptr reg_input2( ++ reg_exp::CreateRegularExpressionInput("1 (123)456-789")); ++ ++ EXPECT_FALSE(reg_exp1->Consume(reg_input1.get(), true, NULL, NULL)); ++ EXPECT_EQ(reg_input1->ToString(), "+1-123-456-789"); ++ EXPECT_TRUE(reg_exp1->Consume(reg_input1.get(), false, NULL, NULL)); ++ EXPECT_EQ(reg_input1->ToString(), "-123-456-789"); ++ std::string res1, res2; ++ EXPECT_FALSE(reg_exp2->Consume(reg_input1.get(), true, &res1, NULL)); ++ EXPECT_FALSE(reg_exp3->Consume(reg_input1.get(), true, &res1, &res2)); ++ EXPECT_TRUE(reg_exp3->Consume(reg_input1.get(), false, &res1, &res2)); ++ EXPECT_EQ(reg_input1->ToString(), "-789"); ++ EXPECT_EQ(res1, "123"); ++ EXPECT_EQ(res2, "456"); ++ ++ EXPECT_EQ(reg_input2->ToString(), "1 (123)456-789"); ++ EXPECT_TRUE(reg_exp1->Consume(reg_input2.get(), true, NULL, NULL)); ++ EXPECT_EQ(reg_input2->ToString(), " (123)456-789"); ++ EXPECT_TRUE(reg_exp2->Consume(reg_input2.get(), true, &res1, NULL)); ++ EXPECT_EQ(reg_input2->ToString(), "456-789"); ++ EXPECT_EQ(res1, "123"); ++ EXPECT_TRUE(reg_exp3->Consume(reg_input2.get(), true, &res1, &res2)); ++ EXPECT_EQ(reg_input2->ToString(), ""); ++ EXPECT_EQ(res1, "456"); ++ EXPECT_EQ(res2, "789"); ++} ++ ++TEST(RegExpAdapter, TestConsumeInput) { ++ scoped_ptr reg_input( ++ reg_exp::CreateRegularExpressionInput("1 (123)456-789")); ++ std::string res1, res2; ++ EXPECT_EQ(reg_input->ToString(), "1 (123)456-789"); ++ EXPECT_FALSE(reg_input->ConsumeRegExp(std::string("\\[1\\]"), ++ true, ++ &res1, ++ &res2)); ++ EXPECT_EQ(reg_input->ToString(), "1 (123)456-789"); ++ EXPECT_FALSE(reg_input->ConsumeRegExp(std::string("([0-9]+) \\([0-9]+\\)"), ++ true, ++ &res1, ++ &res2)); ++ EXPECT_EQ(reg_input->ToString(), "1 (123)456-789"); ++ EXPECT_TRUE(reg_input->ConsumeRegExp(std::string("([0-9]+) \\(([0-9]+)\\)"), ++ true, ++ &res1, ++ &res2)); ++ EXPECT_EQ(reg_input->ToString(), "456-789"); ++ EXPECT_EQ(res1, "1"); ++ EXPECT_EQ(res2, "123"); ++} ++ ++TEST(RegExpAdapter, TestMatch) { ++ scoped_ptr reg_exp( ++ reg_exp::CreateRegularExpression("([0-9a-z]+)")); ++ std::string matched; ++ EXPECT_TRUE(reg_exp->Match("12345af", true, &matched)); ++ EXPECT_EQ(matched, "12345af"); ++ EXPECT_TRUE(reg_exp->Match("12345af", false, &matched)); ++ EXPECT_EQ(matched, "12345af"); ++ EXPECT_TRUE(reg_exp->Match("12345af", false, NULL)); ++ EXPECT_TRUE(reg_exp->Match("12345af", true, NULL)); ++ ++ EXPECT_FALSE(reg_exp->Match("[12]", true, &matched)); ++ EXPECT_TRUE(reg_exp->Match("[12]", false, &matched)); ++ EXPECT_EQ(matched, "12"); ++ ++ EXPECT_FALSE(reg_exp->Match("[]", true, &matched)); ++ EXPECT_FALSE(reg_exp->Match("[]", false, &matched)); ++} ++ ++TEST(RegExpAdapter, TestReplace) { ++ scoped_ptr reg_exp( ++ reg_exp::CreateRegularExpression("[0-9]")); ++ ++ std::string s("123-4567 "); ++ EXPECT_TRUE(reg_exp->Replace(&s, false, "+")); ++ EXPECT_EQ(s, "+23-4567 "); ++ EXPECT_TRUE(reg_exp->Replace(&s, false, "+")); ++ EXPECT_EQ(s, "++3-4567 "); ++ EXPECT_TRUE(reg_exp->Replace(&s, true, "*")); ++ EXPECT_EQ(s, "++*-**** "); ++ EXPECT_TRUE(reg_exp->Replace(&s, true, "*")); ++ EXPECT_EQ(s, "++*-**** "); ++ ++ scoped_ptr full_number_expr( ++ reg_exp::CreateRegularExpression("(\\d{3})(\\d{3})(\\d{4})")); ++ s = "1234567890:0987654321"; ++ EXPECT_TRUE(full_number_expr->Replace(&s, true, "(\\1) \\2-\\3$1")); ++ EXPECT_EQ(s, "(123) 456-7890$1:(098) 765-4321$1"); ++} ++ ++TEST(RegExpAdapter, TestUtf8) { ++ // Expression: [-]* ++ // ++ scoped_ptr reg_exp( ++ reg_exp::CreateRegularExpression( ++ "\xe2\x84\xa1\xe2\x8a\x8f([\xce\xb1-\xcf\x89]*)\xe2\x8a\x90")); ++ std::string matched; ++ // The string is split to avoid problem with MSVC compiler when it thinks ++ // 123 is a part of character code. ++ EXPECT_FALSE(reg_exp->Match("\xe2\x84\xa1\xe2\x8a\x8f" "123\xe2\x8a\x90", ++ true, &matched)); ++ EXPECT_TRUE(reg_exp->Match( ++ "\xe2\x84\xa1\xe2\x8a\x8f\xce\xb1\xce\xb2\xe2\x8a\x90", true, &matched)); ++ // ++ EXPECT_EQ(matched, "\xce\xb1\xce\xb2"); ++} ++ ++} // namespace reg_exp ++ + +Property changes on: regexp_adapter_unittest.cc +___________________________________________________________________ +Added: svn:eol-style + + LF + diff --git a/third_party/libphonenumber/resources/PhoneNumberMetaData.xml b/third_party/libphonenumber/resources/PhoneNumberMetaData.xml new file mode 100644 index 0000000..748ce21 --- /dev/null +++ b/third_party/libphonenumber/resources/PhoneNumberMetaData.xml @@ -0,0 +1,19202 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]> + + + + + + + + + [2-46]\d{3} + \d{4} + + + + (?: + 3[0-5]| + 4[4-6]| + [26]\d + )\d{2} + + \d{4} + 6889 + + + NA + NA + + + + + + + + + + + + + [2-4679][2-8] + $1 $2 $3 + + + 5 + $1 $2 $3 + + + [4679]0 + $1 $2 $3 + + + 8 + $1 $2 + + + + + [2-79]\d{7,8}| + 800\d{2,9} + + \d{5,12} + + + + (?: + [2-4679][2-8]\d| + 600[25] + )\d{5} + + \d{7,9} + 22345678 + + + 5[056]\d{7} + \d{9} + 501234567 + + + + 400\d{6}| + 800\d{2,9} + + \d{5,12} + 800123456 + + + 900[02]\d{5} + \d{9} + 900234567 + + + 700[05]\d{5} + \d{9} + 700012345 + + + + + + + + + $1 $2 $3 + + + + [2-7]\d{8} + \d{7,9} + + + + (?: + [25][0-8]| + [34][0-4]| + 6[0-5] + )[2-9]\d{6} + + 234567890 + + + 7[057-9]\d{7} + \d{9} + 701234567 + + + + + + + + + [2589]\d{9} + \d{7}(?:\d{3})? + + + + + 268(?: + 4(?: + 6[0-38]| + 84 + )| + 56[0-2] + )\d{4} + + 2684601234 + + + + + 268(?: + 464| + 7(?: + 2[0-9]| + 64| + 7[0-689]| + 8[02-68] + ) + )\d{4} + + \d{10} + 2684641234 + + + 26840[69]\d{4} + \d{10} + 2684061234 + + + + 8(?: + 00| + 55| + 66| + 77| + 88 + )[2-9]\d{6} + + \d{10} + 8002123456 + + + 900[2-9]\d{6} + \d{10} + 9002123456 + + + + + 5(?: + 00| + 33| + 44 + )[2-9]\d{6} + + \d{10} + 5002345678 + + + + 26848[01]\d{4} + \d{10} + 2684801234 + + + + + + + + + [2589]\d{9} + \d{7}(?:\d{3})? + + + + 2644(?: + 6[12]| + 9[78] + )\d{4} + + 2644612345 + + + + 264(?: + 235| + 476| + 5(?: + 3[6-9]| + 8[1-4] + )| + 7(?: + 29| + 72 + ) + )\d{4} + + \d{10} + 2642351234 + + + + 8(?: + 00| + 55| + 66| + 77| + 88 + )[2-9]\d{6} + + \d{10} + 8002123456 + + + 900[2-9]\d{6} + \d{10} + 9002123456 + + + + + 5(?: + 00| + 33| + 44 + )[2-9]\d{6} + + \d{10} + 5002345678 + + + + + + + + + + 4[0-6] + $1 $2 $3 + + + 6 + $1 $2 $3 + + + + [2358][2-5]| + 4[7-9] + + $1 $2 $3 + + + + [235][16-9]| + 8[016-9]| + [79] + + $1 $2 + + + + + [2-57]\d{7}| + 6\d{8}| + 8\d{5,7}| + 9\d{5} + + \d{5,9} + + + + (?: + 2(?: + [168][1-9]| + [247]\d| + 9[1-7] + )| + 3(?: + 1[1-3]| + [2-6]\d| + [79][1-8]| + 8[1-9] + )| + 4\d{2}| + 5(?: + 1[1-4]| + [2-578]\d| + 6[1-5]| + 9[1-7] + )| + 8(?: + [19][1-5]| + [2-6]\d| + [78][1-7] + ) + )\d{5} + + \d{5,8} + 22345678 + + + 6[6-9]\d{7} + \d{9} + 661234567 + + + 800\d{4} + \d{7} + 8001234 + + + + 900\d{3} + \d{6} + 900123 + + + 808\d{3} + \d{6} + 808123 + + + 700\d{5} + \d{8} + 70012345 + + + + + + + + + + + [17]| + 9[1-9] + + $1 $2 + + + 6 + $1 $2 + + + [23] + $1 $2 + + + + 8| + 90 + + $1 $2 $3 + + + + [1-36-9]\d{7} + \d{5,8} + + + + (?: + 10\d| + 2(?: + 2[2-46]| + 3[1-8]| + 4[2-69]| + 5[2-7]| + 6[1-9]| + 8[1-7] + )| + 3[12]2 + )\d{5} + + 10123456 + + + + (?: + 77| + 9[1-46-9] + )\d{6} + + \d{8} + 77123456 + + + 800\d{5} + \d{8} + 80012345 + + + 90[016]\d{5} + \d{8} + 90012345 + + + 80[1-4]\d{5} + \d{8} + 80112345 + + + + 6027\d{4} + \d{8} + 60271234 + + + + 8[1-7]\d{2}| + 1\d{2} + + \d{3,4} + 8711 + + + + + + + + + [13-7] + $1 $2 + + + 9 + $1 $2 $3 + + + + [13-79]\d{6,7} + \d{7,8} + + + + (?: + 318| + 5(?: + 25| + 4\d| + 8[239] + )| + 7(?: + 1[578]| + 50 + )| + 9(?: + [48]\d{2}| + 50\d| + 7(?: + 2[0-2]| + [34]\d| + 6[35-7]| + 77 + ) + ) + )\d{4}| + 416[0239]\d{3} + + 7151234 + + + + (?: + 318| + 5(?: + 1[01]| + 2[0-7]| + 5\d| + 8[016-8] + )| + 7(?: + 0[01]| + [89]\d + )| + 9(?: + 5(?: + [1246]\d| + 3[01] + )| + 6(?: + [1679]\d| + 3[01] + ) + ) + )\d{4}| + 416[15-8]\d{3} + + 3181234 + + + + + (?: + 10| + 69 + )\d{5} + + 1011234 + + + + + + + + + $1 $2 $3 + + + + [29]\d{8} + \d{9} + + + + 2\d(?: + [26-9]\d| + \d[26-9] + )\d{5} + + 222123456 + + + + 9[1-3]\d{7} + 923123456 + + + + + + + + + + [68] + $1-$2-$3 + + + [68] + $1-$2-$3 + + + 91 + $1 15-$2-$3 + + + 91 + 9 $1 $2-$3 + + + + 9(?: + 2[2369]| + 3[458] + ) + + + 9(?: + 2(?: + 2[013]| + 37| + 6[14]| + 9[179] + )| + 3(?: + 4[1235]| + 5[138]| + 8[1578] + ) + ) + + $1 15-$2-$3 + + + + 9(?: + 2[2369]| + 3[458] + ) + + + 9(?: + 2(?: + 2[013]| + 37| + 6[14]| + 9[179] + )| + 3(?: + 4[1235]| + 5[138]| + 8[1578] + ) + ) + + 9 $1 $2-$3 + + + + 9(?: + 2[2-469]| + 3[3-578] + ) + + + 9(?: + 2(?: + 2[24-9]| + 3[0-69]| + 47| + 6[25]| + 9[02-68] + )| + 3(?: + 3[28]| + 4[046-9]| + 5[2467]| + 7[1-578]| + 8[23469] + ) + ) + + $1 15-$2-$3 + + + + 9(?: + 2[2-469]| + 3[3-578] + ) + + + 9(?: + 2(?: + 2[24-9]| + 3[0-69]| + 47| + 6[25]| + 9[02-68] + )| + 3(?: + 3[28]| + 4[046-9]| + 5[2467]| + 7[1-578]| + 8[23469] + ) + ) + + 9 $1 $2-$3 + + + 1 + $1 $2-$3 + + + 1 + $1 $2-$3 + + + + + 2(?: + 2[013]| + 37| + 6[14]| + 9[179] + )| + 3(?: + 4[1235]| + 5[138]| + 8[1578] + ) + + $1 $2-$3 + + + + 2(?: + 2[013]| + 37| + 6[14]| + 9[179] + )| + 3(?: + 4[1235]| + 5[138]| + 8[1578] + ) + + $1 $2-$3 + + + [23] + $1 $2-$3 + + + [23] + $1 $2-$3 + + + + [1-9]\d{9,11} + \d{6,12} + + + [1-9]\d{9} + \d{6,10} + 1123456789 + + + + 9(?: + 11[2-9]\d{7}| + (?: + 2(?: + 2[013]| + 37| + 6[14]| + 9[179] + )| + 3(?: + 4[1235]| + 5[138]| + 8[1578] + ) + )[2-9]\d{6}| + \d{4}[2-9]\d{5} + ) + + \d{6,12} + 91123456789 + + + 80\d{8} + \d{10} + 8012345678 + + + + 6(?: + 0\d| + 10 + )\d{7} + + \d{10} + 6001234567 + + + + + + + + + [5689]\d{9} + \d{7}(?:\d{3})? + + + + 6846(?: + 22| + 33| + 44| + 55| + 77| + 88| + 9[19] + )\d{4} + + 6846221234 + + + + 684(?: + 733| + 258 + )\d{4} + + \d{10} + 6847331234 + + + + 8(?: + 00| + 55| + 66| + 77| + 88 + )[2-9]\d{6} + + \d{10} + 8002123456 + + + 900[2-9]\d{6} + \d{10} + 9002123456 + + + + + 5(?: + 00| + 33| + 44 + )[2-9]\d{6} + + \d{10} + 5002345678 + + + + + + + + + + 1| + 5[079] + + $1 $2 + + + + 316| + 46| + 51| + 732| + 6(?: + 44| + 5[0-3579]| + [6-9] + )| + 7(?: + 1| + [28]0 + )| + [89] + + $1 $2 + + + + 2| + 3(?: + 1[1-578]| + [3-8] + )| + 4[2378]| + 5[2-6]| + 6(?: + [12]| + 4[1-35-9]| + 5[468] + )| + 7(?: + 2[1-8]| + 35| + 4[1-8]| + [57-9] + ) + + $1 $2 + + + + \d{4,13} + \d{3,13} + + + + + 1\d{3,12}| + (?: + 2(?: + 1[467]| + 2[134-8]| + 5[2357]| + 6[1-46-8]| + 7[1-8]| + 8[124-7]| + 8[1458] + )| + 3(?: + 1[1-8]| + 3[23568]| + 4[5-7]| + 5[1378]| + 6[1-38]| + 8[3-68] + )| + 4(?: + 2[1-8]| + 35| + 63| + 7[1368]| + 8[2457] + )| + 5(?: + 1[27]| + 2[1-8]| + 3[357]| + 4[147]| + 5[12578]| + 6[37] + )| + 6(?: + 13| + 2[1-47]| + 4[1-35-8]| + 5[468]| + 62 + )| + 7(?: + 2[1-8]| + 3[25]| + 4[13478]| + 5[68]| + 6[16-8]| + 7[1-6]| + 9[45] + ) + )\d{3,10}| + 5(?: + 0[1-9]| + [79]\d + )\d{2,10}| + 720\d{6,10} + + 1234567890 + + + + 6(?: + 44| + 5[0-3579]| + 6[013-9]| + [7-9]\d + )\d{4,10} + + \d{7,13} + 644123456 + + + 80[02]\d{6,10} + \d{9,13} + 800123456 + + + + (?: + 711| + 9(?: + 0[01]| + 3[019] + ) + )\d{6,10} + + \d{9,13} + 900123456 + + + + 8(?: + 10| + 2[018] + )\d{6,10} + + \d{9,13} + 810123456 + + + 780\d{6,10} + \d{9,13} + 780123456 + + + + + + + + + + [2378] + $1 $2 $3 + + + 4 + $1 $2 $3 + + + 5 + $1 $2 $3 + + + + 1(?: + [38]0| + 9 + ) + + + 1(?: + [38]00| + 9 + ) + + $1 $2 $3 + + + + 180 + 180[1-9] + $1 $2 + + + 13[1-9] + $1 $2 $3 + + + + [1-578]\d{5,9} + \d{6,10} + + + [2378]\d{8} + \d{8,9} + 212345678 + + + + 4(?: + [0-2]\d| + 3[0-57-9]| + 4[47-9]| + 5[0-37-9]| + 6[6-9]| + 7[07-9]| + 8[7-9] + )\d{6} + + \d{9} + 412345678 + + + + + 1(?: + 80(?: + 0\d{2} + )? | + 3(?: + 00\d{2} + )? + )\d{4} + + \d{6,10} + 1800123456 + + + 190[0126]\d{6} + \d{10} + 1900123456 + + + + 500\d{6} + \d{9} + 500123456 + + + 550\d{6} + \d{9} + 550123456 + + + + + + + + + $1 $2 + + + + [5-9]\d{6} + \d{7} + + + + 5(?: + 2\d{2}| + 8(?: + [2-7]\d| + 8[0-79]| + 9[48] + ) + )\d{3} + + 5212345 + + + + + (?: + 5[69]\d| + 660| + 9(?: + 6\d| + 9[02-9] + )| + 7[34]\d + )\d{4} + + 5601234 + + + 800\d{4} + 8001234 + + + 900\d{4} + 9001234 + + + + + + + + + 1[28] + $1 $2 $3 $4 + + + 22 + $1 $2 $3 $4 + + + 3 + $1 $2 $3 $4 + + + + 1[013-79]| + 2[013-9] + + $1 $2 $3 $4 + + + [4-8] + $1 $2 $3 $4 + + + 9 + $1 $2 $3 $4 + + + + [1-9]\d{7,8} + \d{5,9} + + + + + (?: + 1(?: + (?: + [28]\d| + 9 + )\d| + 02| + 1[0-589]| + 3[358]| + 4[013-79]| + 5[0-479]| + 6[02346-9]| + 7[0-24-8] + )| + 2(?: + 16| + 2\d| + 3[0-24]| + 4[1468]| + 55| + 6[56]| + 79 + )| + 365?\d| + 44\d{2} + )\d{5} + + 123123456 + + + + (?: + [46]0| + 5[015]| + 7[07] + )\d{7} + + \d{9} + 401234567 + + + + 88\d{7} + \d{9} + 881234567 + + + + 900200\d{3} + \d{9} + 900200123 + + + + + + + + + + $1 $2-$3 + + + + [3-689]\d{7} + \d{6,8} + + + + (?: + [35]\d| + 49 + )\d{6} + + 30123456 + + + 6[1-356]\d{6} + \d{8} + 61123456 + + + 8[08]\d{6} + \d{8} + 80123456 + + + 9[0246]\d{6} + \d{8} + 90123456 + + + + 82\d{6} + \d{8} + 82123456 + + + 81\d{6} + \d{8} + 81123456 + + + + + + + + + [2589]\d{9} + \d{7}(?:\d{3})? + + + 246[2-9]\d{6} + 2462345678 + + + + 246(?: + (?: + 2[346]| + 45| + 82 + )\d| + 25[0-4] + )\d{4} + + \d{10} + 2462501234 + + + + 8(?: + 00| + 55| + 66| + 77| + 88 + )[2-9]\d{6} + + \d{10} + 8002123456 + + + 900[2-9]\d{6} + \d{10} + 9002123456 + + + + + 5(?: + 00| + 33| + 44 + )[2-9]\d{6} + + \d{10} + 5002345678 + + + + + + + + + + + 2 + $1 $2 + + + [3-79]1 + $1 $2 + + + + [3-79][2-9]| + 8 + + $1 $2 + + + 1 + $1 $2 + + + + + + [2-79]\d{5,9}| + 1\d{9}| + 8[0-7]\d{4,8} + + \d{6,10} + + + + + 2(?: + 7\d1| + 8(?: + [026]1| + [1379][1-5]| + 8[1-8] + )| + 9(?: + 0[0-2]| + 1[1-4]| + 3[3-5]| + 5[56]| + 6[67]| + 71| + 8[078] + ) + )\d{4}| + 3(?: + [6-8]1| + (?: + 0[23]| + [25][12]| + 82| + 416 + )\d| + (?: + 31| + 12?[5-7] + )\d{2} + )\d{3}| + 4(?: + (?: + 02| + [49]6| + [68]1 + )| + (?: + 0[13]| + 21\d? | + [23]2| + [457][12]| + 6[28] + )\d| + (?: + 23| + [39]1 + )\d{2}| + 1\d{3} + )\d{3}| + 5(?: + (?: + [457-9]1| + 62 + )| + (?: + 1\d? | + 2[12]| + 3[1-3]| + 52 + )\d| + 61{2} + )| + 6(?: + [45]1| + (?: + 11| + 2[15]| + [39]1 + )\d| + (?: + [06-8]1| + 62 + )\d{2} + )| + 7(?: + (?: + 32| + 91 + )| + (?: + 02| + 31| + [67][12] + )\d| + [458]1\d{2}| + 21\d{3} + )\d{3}| + 8(?: + (?: + 4[12]| + [5-7]2| + 1\d? + )| + (?: + 0| + 3[12]| + [5-7]1| + 217 + )\d + )\d{4}| + 9(?: + [35]1| + (?: + [024]2| + 81 + )\d| + (?: + 1| + [24]1 + )\d{2} + )\d{3} + + \d{6,9} + 27111234 + + + + + (?: + 1[13-9]\d| + (?: + 3[78]| + 44 + )[02-9]| + 6(?: + 44| + 6[02-9] + ) + )\d{7} + + \d{10} + 1812345678 + + + + 80[03]\d{7} + \d{10} + 8001234567 + + + + + + + + + + + 4[7-9] + $1 $2 $3 $4 + + + + [23]| + [49][23] + + $1 $2 $3 $4 + + + + [156]| + 7[0178]| + 8(?: + 0[1-9]| + [1-79] + ) + + $1 $2 $3 $4 + + + + (?: + 80| + 9 + )0 + + $1 $2 $3 + + + + [1-9]\d{7,8} + \d{8,9} + + + + + (?: + 1[0-69]| + [23][2-8]| + [49][23]| + 5\d| + 6[013-57-9]| + 7[18] + )\d{6}| + 8(?: + 0[1-9]| + [1-69]\d + )\d{5} + + \d{8} + 12345678 + + + + 4(?: + 7\d| + 8[4-9]| + 9[1-9] + )\d{6} + + \d{9} + 470123456 + + + 800\d{5} + \d{8} + 80012345 + + + + (?: + 90| + 7[07] + )\d{6} + + \d{8} + 90123456 + + + 87\d{6} + \d{8} + 87123456 + + + + + + + + + + $1 $2 $3 $4 + + + + [2457]\d{7} + \d{8} + + + + + (?: + 20(?: + 49| + 5[23]| + 9[016-9] + )| + 40(?: + 4[569]| + 55| + 7[0179] + )| + 50[34]\d + )\d{4} + + 20491234 + + + + + 7(?: + [024-6]\d| + 1[0-4689]| + 3[0-6]| + 7[01]| + 8[013-9]| + 9[0-4] + )\d{5} + + 70123456 + + + + + + + + + 2 + $1/$2 $3 + + + + 43[124-7]| + 70[1-9] + + $1/$2 + + + + 43[124-7]| + 70[1-9] + + $1/$2 $3 + + + [78]00 + $1 $2 $3 + + + + [356]| + 7[1-9]| + 8[1-6]| + 9[1-7] + + $1/$2 $3 + + + + 48| + 8[7-9]| + 9[08] + + $1 $2 $3 + + + + [2-9]\d{6,8} + \d{7,9} + + + + (?: + 2\d| + [36]\d| + 5[1-9]| + 8[1-6]| + 9[1-7] + )\d{5,6}| + (?: + 4(?: + [124-7]\d| + 3[1-6] + )| + 7(?: + 0[1-9]| + [1-9]\d + ) + )\d{4,5} + + \d{7,8} + 2123456 + + + + (?: + 8[7-9]| + 98 + )\d{7}| + 4(?: + 3[0789]| + 8\d + )\d{5} + + \d{8,9} + 48123456 + + + 800\d{5} + \d{8} + 80012345 + + + 90\d{6} + \d{8} + 90123456 + + + 700\d{5} + 70012345 + + + + + + + + + + $1 $2 + + + + [136-9]\d{7} + \d{8} + + + + + (?: + 1(?: + 3[3-6]| + 6[0156]| + 7\d + )| + 6(?: + 1[16]| + 6[03469]| + 9[69] + )| + 77\d + )\d{5} + + 17001234 + + + + (?: + 3(?: + [369]\d| + 77| + 8[38] + )| + 6(?: + 1[16]| + 6[03469]| + 9[69] + )| + 77\d + )\d{5} + + 36001234 + + + 80\d{6} + 80123456 + + + + + (?: + 87| + 9[014578] + )\d{6} + + 90123456 + + + 84\d{6} + 84123456 + + + + + + + + + $1 $2 $3 $4 + + + + [27]\d{7} + \d{8} + + + + 22(?: + 2[0-7]| + [3-5]0 + )\d{4} + + 22201234 + + + + + (?: + 29\d| + 7(?: + 1[1-3]| + [4-9]\d + ) + )\d{5} + + 79561234 + + + + + + + + + $1 $2 $3 $4 + + + + + + [2689]\d{7}| + 7\d{3} + + \d{4,8} + + + + + 2(?: + 02| + 1[037]| + 2[45]| + 3[68] + )\d{5} + + \d{8} + 20211234 + + + + + 66\d{6}| + 9(?: + 0[069]| + [35][0-2457-9]| + [6-8]\d + )\d{5} + + \d{8} + 90011234 + + + 7[3-5]\d{2} + \d{4} + 7312 + + + + 857[58]\d{4} + \d{8} + 85751234 + + + + + + + + + + [56]\d{8} + \d{9} + + + + 590(?: + 2[7-9]| + 5[12]| + 87 + )\d{4} + + 590271234 + + + + 690(?: + 10| + 2[27]| + 66| + 77| + 8[78] + )\d{4} + + 690221234 + + + + + + + + + [4589]\d{9} + \d{7}(?:\d{3})? + + + + 441(?: + 2(?: + 02| + 23| + 61| + [3479]\d + )| + [46]\d{2}| + 5(?: + 4\d| + 60| + 89 + )| + 824 + )\d{4} + + 4412345678 + + + + 441(?: + [37]\d| + 5[0-39] + )\d{5} + + \d{10} + 4413701234 + + + + 8(?: + 00| + 55| + 66| + 77| + 88 + )[2-9]\d{6} + + \d{10} + 8002123456 + + + 900[2-9]\d{6} + \d{10} + 9002123456 + + + + + 5(?: + 00| + 33| + 44 + )[2-9]\d{6} + + \d{10} + 5002345678 + + + + + + + + + + $1 $2 + + + + [2-578]\d{6} + \d{7} + + + [2-5]\d{6} + 2345678 + + + [78]\d{6} + 7123456 + + + + + + + + + + + [234] + $1 $2 + + + [67] + $1 + + + + [23467]\d{7} + \d{7,8} + + + + (?: + 2(?: + 2\d{2}| + 5(?:11|[258]\d|9[67])| + 6(?:12|2\d|9[34])| + 8(?:2[34]|39|62) + )| + 3(?: + 3\d{2}| + 4(?:6\d|8[24])| + 8(?:25|42|5[257]|86|9[25])| + 9(?:2\d|3[234]|4[248]|5[24]|6[2-6]|7\d) + )| + 4(?: + 4\d{2}| + 6(?:11|[24689]\d|72) + ) + )\d{4} + + \d{7,8} + 22123456 + + + [67]\d{7} + \d{8} + 71234567 + + + + + + + + + + [1-9][1-9] + $1 $2-$3 + + + [34]00 + + 400| + 3003 + + $1-$2 + + + [3589]00 + $1 $2 $3 + + + + [1-9]\d{7,9} + \d{8,10} + + + + (?: + [14689][1-9]| + 2[12478]| + 3[1-578]| + 5[13-5]| + 7[13-579] + )[2-5]\d{7} + + 1123456789 + + + + (?: + [14689][1-9]| + 2[12478]| + 3[1-578]| + 5[13-5]| + 7[13-579] + )[6-9]\d{7} + + \d{10} + 1161234567 + + + 800\d{6,7} + 800123456 + + + [359]00\d{6,7} + 300123456 + + + + (?: + 400\d| + 3003 + )\d{4} + + 40041234 + + + + + + + + + [2589]\d{9} + \d{7}(?:\d{3})? + + + + 242(?: + 3(?: + 02| + [236][1-9]| + 4[0-24-9]| + 5[0-68]| + 7[3467]| + 8[0-4]| + 9[2-467] + )| + 461| + 502| + 6(?: + 12| + 7[67]| + 8[78]| + 9[89] + )| + 702 + )\d{4} + + 2423456789 + + + + 242(?: + 3(?: + 5[79]| + [79]5 + )| + 4(?: + [2-4][1-9]| + 5[1-8]| + 6[2-8]| + 7\d| + 81 + )| + 5(?: + 2[34]| + 3[35]| + 44| + 5[1-9]| + 65| + 77 + )| + 6[34]6| + 727 + )\d{4} + + \d{10} + 2423591234 + + + + + 242300\d{4}| + 8(?: + 00| + 55| + 66| + 77| + 88 + )[2-9]\d{6} + + \d{10} + 8002123456 + + + 900[2-9]\d{6} + \d{10} + 9002123456 + + + + + 5(?: + 00| + 33| + 44 + )[2-9]\d{6} + + \d{10} + 5002345678 + + + + + + + + + + 1 + $1 $2 $3 $4 + + + [2-8] + $1 $2 $3 + + + + + (?: + 17| + [2-8] + )\d{6} + + \d{6,8} + + + + (?: + 2[3-6]| + [34][5-7]| + 5[236]| + 6[2-46]| + 7[246]| + 8[2-4] + )\d{5} + + \d{6,7} + 2345678 + + + 17\d{6} + \d{8} + 17123456 + + + + + + + + + + [2-6] + $1 $2 + + + 7 + $1 $2 $3 + + + 9 + $1 $2 + + + + [2-79]\d{6,7} + \d{7,8} + + + + (?: + 2(?: + 4[0-48]| + 6[0-24]| + 9[0578] + )| + 3(?: + 1[0235-9]| + 55| + 6\d| + 7[01]| + 9[0-57] + )| + 4(?: + 6[03]| + 7[1267]| + 9[0-5] + )| + 5(?: + 3[0389]| + 4[0489]| + 7[1-47]| + 88| + 9[0-49] + )| + 6(?: + 2[1-35]| + 5[149]| + 8[067] + ) + )\d{4} + + \d{7} + 2401234 + + + + 7(?: + [1-35]\d{6}| + [46][0-7]\d{5} + ) + + \d{8} + 71123456 + + + + 90\d{5} + \d{7} + 9012345 + + + 79[12][01]\d{4} + \d{8} + 79101234 + + + + + + + + + + [1-4] + $1 $2 $3 + + + [89] + $1 $2 $3 + + + + + [12-4]\d{8}| + [89]\d{9} + + + \d{7,10} + + + + (?: + 1(?: + 5(?: + 1[1-5]| + 2\d| + 6[1-4]| + 9[1-7] + )| + 6(?: + [235]\d| + 4[1-7] + )| + 7\d{2} + )| + 2(?: + 1(?: + [246]\d| + 3[0-35-9]| + 5[1-9] + )| + 2(?: + [235]\d| + 4[0-8] + )| + 3(?: + 2\d| + 3[02-79]| + 4[024-7]| + 5[0-7] + ) + ) + )\d{5} + + \d{7,9} + + 152450911 + + + + (?: + 2(?: + 5[679]| + 9[1-9] + )| + 33\d| + 44\d + )\d{6} + + \d{9} + + 294911911 + + + + 80[13]\d{7} + \d{10} + 8011234567 + + + 902\d{7} + \d{10} + 9021234567 + + + + + + + + + + [2-8] + + $1-$2 + + + 0 + $1-$2-$3-$4 + + + + + [2-8]\d{6}| + 0\d{10} + + \d{7}(?:\d{4})? + + + [234578][02]\d{5} + \d{7} + 2221234 + + + + + 6(?: + [0-2]\d| + [67][01] + )\d{4} + + \d{7} + 6221234 + + + + 0800\d{7} + \d{11} + 08001234123 + + + + + + + + + + [2-9]\d{9}| + 3\d{6} + + \d{7}(?:\d{3})? + + + + (?: + 2(?: + 04| + 26| + [48]9| + 50 + )| + 3(?: + 06| + 43 + )| + 4(?: + 03| + 1[68]| + 38| + 5[06] + )| + 5(?: + 0[06]| + 1[49]| + 79| + 8[17] + )| + 6(?: + 0[04]| + 13| + 47 + )| + 7(?: + 0[059]| + [18]0| + 78 + )| + 8(?: + [06]7| + 19| + )| + 90[25] + )[2-9]\d{6}| + 310\d{4} + + 2042345678 + + + + (?: + 2(?: + 04| + 26| + [48]9| + 50 + )| + 3(?: + 06| + 43 + )| + 4(?: + 03| + 1[68]| + 38| + 5[06] + )| + 5(?: + 0[06]| + 1[49]| + 79| + 8[17] + )| + 6(?: + 0[04]| + 13| + 47 + )| + 7(?: + 0[059]| + [18]0| + 78 + )| + 8(?: + [06]7| + 19| + )| + 90[25] + )[2-9]\d{6} + + 2042345678 + + + + 8(?: + 00| + 55| + 66| + 77| + 88 + )[2-9]\d{6}| + 310\d{4} + + 8002123456 + + + 900[2-9]\d{6} + \d{10} + 9002123456 + + + + + 5(?: + 00| + 33| + 44 + )[2-9]\d{6} + + \d{10} + 5002345678 + + + + + + + + + [89] + $1 $2 $3 + + + [1-6] + $1 $2 + + + + + [89]\d{8}| + [1-6]\d{6} + + \d{7,9} + + + [1-6]\d{6} + \d{7} + 1234567 + + + + (?: + 8[0-2489]| + 9[7-9] + )\d{7} + + \d{9} + 991234567 + + + + + + + + + $1 $2 $3 $4 + + + + [278]\d{7} + \d{8} + + + 2[12]\d{6} + 21612345 + + + 7[0257]\d{6} + 70012345 + + + 8776\d{4} + 87761234 + + + + + + + + + [02] + $1 $2 $3 + + + 8 + $1 $2 $3 + + + + [028]\d{8} + \d{9} + + + 222[1-589]\d{5} + 222123456 + + + 0[14-6]\d{7} + 061234567 + + + + 800\d{6} + 800123456 + + + + + + + + + + [2-7]| + [89]1 + + $1 $2 $3 $4 + + + + 8[047]| + 90 + + $1 $2 $3 + + + + [2-9]\d{8} + \d{9} + + + + (?: + 2[12467]| + 3[1-4]| + 4[134]| + 5[12568]| + 6[12]| + [7-9]1 + )\d{7} + + 212345678 + + + 7[46-9]\d{7} + 741234567 + + + 800\d{6} + 800123456 + + + 90[016]\d{6} + 900123456 + + + 84[0248]\d{6} + 840123456 + + + 878\d{6} + 878123456 + + + + + + + + + + $1 $2 $3 $4 + + + + [02-5]\d{7} + \d{8} + + + + (?: + 2(?: + 0[023]| + 1[02357]| + [23][045]| + 4[03-5] + )| + 3(?: + 0[06]| + 1[069]| + [2-4][07]| + 5[09]| + 6[08] + ) + )\d{5} + + 21234567 + + + + + (?: + 0[1-9]| + 4[04-9]| + 5[07]| + 6[067] + )\d{6} + + 01234567 + + + + + + + + + $1 $2 + + + + [2-57]\d{4} + \d{5} + + + + (?: + 2\d| + 3[13-7]| + 4[1-5] + )\d{3} + + 21234 + + + + (?: + 5[0-68]| + 7\d + )\d{3} + + 71234 + + + + + + + + + + + + 2 + $1 $2 $3 + + + + [357]| + 4[1-35]| + 6[13-57] + + $1 $2 $3 + + + 9 + $1 $2 $3 + + + 44 + $1 $2 $3 + + + + 60| + 8 + + $1 $2 $3 + + + 60 + $1 $2 $3 $4 + + + 1 + $1 $2 $3 + + + + + (?: + [2-9]| + 600| + 123 + )\d{7,8} + + \d{6,11} + + + + (?: + 2| + 32| + 41 + )\d{7}| + (?: + 3[3-5]| + 4[235]| + 5[1-3578]| + 6[13-57]| + 7[1-35] + )\d{6,7} + + + \d{6,9} + 21234567 + + + 9[6-9]\d{7} + \d{8,9} + 961234567 + + + + + + 800\d{6}| + 1230\d{7} + + \d{9,11} + 800123456 + + + 600\d{7,8} + \d{10,11} + 6001234567 + + + 44\d{7} + \d{9} + 441234567 + + + + + + + + + + + [2379]| + 88 + + $1 $2 $3 $4 + + + 80 + $1 $2 $3 + + + + [237-9]\d{7} + \d{8} + + + + + (?: + 22| + 33 + )\d{6} + + 22123456 + + + [79]\d{7} + 71234567 + + + 800\d{5} + 80012345 + + + + 88\d{6} + 88012345 + + + + + + + + + 80[2678] + $1 $2 + + + [48]00 + $1 $2 $3 + + + + + [2-9] + $1 $2 + + + 21 + $1 $2 $3 + + + + 10[1-9]| + 2[02-9] + + + + 10[1-9]| + 2[02-9] + + + 10(?: + [1-79]| + 8(?: + [1-9]| + 0[1-9] + ) + )| + 2[02-9] + + $1 $2 $3 + + + + 3(?: + 11| + 7[159] + )| + 4[135]1| + 5(?: + 1| + 2[37]| + 3[12]| + 7[13-79]| + 9[15] + )| + 7(?: + 31| + 5[457]| + 6[09] + )| + 898 + + $1 $2 $3 + + + + 3(?: + 1[02-9]| + 35| + 49| + 5| + 7[02-68]| + 9[1-68] + )| + 4(?: + 1[02-9]| + 2[179]| + [35][2-9]| + 6[4789]| + 7[0-46-9]| + 8[23] + )| + 5(?: + 3[03-9]| + 4[36]| + 5| + 6[1-6]| + 7[028]| + 80| + 9[2-46-9] + )| + 6(?: + 3[1-5]| + 6[0238]| + 9[12] + )| + 7(?: + 01| + [1579]| + 2[248]| + 3[04-9]| + 4[3-6]| + 6[2368] + )| + 8(?: + 1[236-8]| + 2[5-7]| + [37]| + 5[1-9]| + 8[3678]| + 9[1-7] + )| + 9(?: + 0[1-3689]| + 1[1-79]| + [379]| + 4[13]| + 5[1-5] + ) + + $1 $2 $3 + + + 1[3-58] + $1 $2 $3 + + + 108 + 1080 + 10800 + $1 $2 $3 + + + 21 + $1 $2 $3 + + + + 10[1-9]| + 2[02-9] + + + + 10[1-9]| + 2[02-9] + + + 10(?: + [1-79]| + 8(?: + [1-9]| + 0[1-9] + ) + )| + 2[02-9] + + $1 $2 $3 + + + 80[2678] + $1 $2 + + + + 3(?: + 11| + 7[159] + )| + 4[135]1| + 5(?: + 1| + 2[37]| + 3[12]| + 7[13-79]| + 9[15] + )| + 7(?: + 31| + 5[457]| + 6[09] + )| + 898 + + $1 $2 $3 + + + + 3(?: + 1[02-9]| + 35| + 49| + 5| + 7[02-68]| + 9[1-68] + )| + 4(?: + 1[02-9]| + 2[179]| + [35][2-9]| + 6[4789]| + 7[0-46-9]| + 8[23] + )| + 5(?: + 3[03-9]| + 4[36]| + 5| + 6[1-6]| + 7[028]| + 80| + 9[2-46-9] + )| + 6(?: + 3[1-5]| + 6[0238]| + 9[12] + )| + 7(?: + 01| + [1579]| + 2[248]| + 3[04-9]| + 4[3-6]| + 6[2368] + )| + 8(?: + 1[236-8]| + 2[5-7]| + [37]| + 5[1-9]| + 8[3678]| + 9[1-7] + )| + 9(?: + 0[1-3689]| + 1[1-79]| + [379]| + 4[13]| + 5[1-5] + ) + + $1 $2 $3 + + + 1[3-58] + $1 $2 $3 + + + [48]00 + $1 $2 $3 + + + 108 + 1080 + 10800 + $1 $2 $3 + + + + + [1-79]\d{7,11}| + 8[0-357-9]\d{6,9} + + \d{4,12} + + + + 21\d{8,10}| + (?: + 10| + 2[02-57-9]| + 3(?: + 11| + 7[159] + )| + 4[135]1| + 5(?: + 1\d| + 2[37]| + 3[12]| + 7[13-79]| + 9[15] + )| + 7(?: + 31| + 5[457]| + 6[09] + )| + 898 + )\d{8}| + (?: + 3(?: + 1[02-9]| + 35| + 49| + 5\d| + 7[02-68]| + 9[1-68] + )| + 4(?: + 1[02-9]| + 2[179]| + [35][2-9]| + 6[4789]| + 7[0-46-9]| + 8[23] + )| + 5(?: + 3[03-9]| + 4[36]| + 5\d| + 6[1-6]| + 7[028]| + 80| + 9[2-46-9] + )| + 6(?: + 3[1-5]| + 6[0238]| + 9[12] + )| + 7(?: + 01| + [1579]\d| + 2[248]| + 3[04-9]| + 4[3-6]| + 6[2368] + )| + 8(?: + 1[236-8]| + 2[5-7]| + [37]\d| + 5[1-9]| + 8[3678]| + 9[1-7] + )| + 9(?: + 0[1-3689]| + 1[1-79]| + [379]\d| + 4[13]| + 5[1-5] + ) + )\d{7}| + 80(?: + 29| + 6[03578]| + 7[018]| + 81 + )\d{4} + + 1012345678 + + + + 1(?: + 3[0-9]| + 47| + 5[0135689]| + 8[05-9] + )\d{8} + + \d{11} + 13123456789 + + + + + + (?: + 10 + )?800\d{7} + + \d{10,12} + 8001234567 + + + 16[08]\d{5} + \d{8} + 16812345 + + + 400\d{7} + \d{10} + 4001234567 + + + + + + + + + + 1(?: + 8[2-9]| + 9[0-3]| + [2-7] + )| + [24-8] + + + 1(?: + 8[2-9]| + 9(?: + 09| + [1-3] + )| + [2-7] + )| + [24-8] + + $1 $2 + + + + 1(?: + 8[2-9]| + 9[0-3]| + [2-7] + )| + [24-8] + + + 1(?: + 8[2-9]| + 9(?: + 09| + [1-3] + )| + [2-7] + )| + [24-8] + + $1 $2 + + + 3 + $1 $2 + + + 3 + $1 $2 + + + + 1(?: + 80| + 9[04] + ) + + + 1(?: + 800| + 9(?: + 0[01]| + 4[78] + ) + ) + + $1-$2-$3 + + + + 1(?: + 80| + 9[04] + ) + + + 1(?: + 800| + 9(?: + 0[01]| + 4[78] + ) + ) + + $1 $2 $3 + + + + + (?: + [13]\d{0,3}| + [24-8] + )\d{7} + + \d{7,11} + + + [124-8][2-9]\d{6} + \d{8} + 12345678 + + + + 3(?: + 0[0-24]| + 1[0-8]| + 2[01] + )\d{7} + + \d{10} + 3211234567 + + + 1800\d{7} + \d{11} + 18001234567 + + + + 19(?: + 0[01]| + 4[78] + )\d{7} + + \d{11} + 19001234567 + + + + + + + + + + [24]| + 8[3-9] + + $1 $2 + + + [89]0 + $1-$2-$3 + + + + [2489]\d{7,9} + \d{8,10} + + + 2[24-7]\d{6} + \d{8} + 22123456 + + + + + 8(?: + [389]\d| + 7[0-3] + )\d{5} + + \d{8} + 83123456 + + + 800\d{7} + \d{10} + 8001234567 + + + + 90[059]\d{7} + \d{10} + 9001234567 + + + 4000\d{4} + \d{8} + 40001234 + + + + + 1(?: + 02[2-469]| + 1(?: + 1[0235-9]| + 2| + 37| + 46| + 75| + 8[79]| + 9[0-379] + )| + 212) + + \d{3,4} + 1022 + + + + + + + + + 7 + $1 $2 + + + [2-4] + $1 $2 + + + 5 + $1 $2 + + + + [2-57]\d{5,7} + \d{4,8} + + + + 2[1-4]\d{5,6}| + 3(?: + 1\d{6}| + [23]\d{4,6})| + 4(?: + [125]\d{5,6}| + [36]\d{6}| + [78]\d{4,6})| + 7\d{6,7} + + 71234567 + + + 5\d{7} + \d{8} + 51234567 + + + + + + + + + $1 $2 $3 + + + + [259]\d{6} + \d{7} + + + + 2(?: + 2[1-7]| + 3[0-8]| + 4[12]| + 5[1256]| + 6\d| + 7[1-3]| + 8[1-5] + )\d{4} + + 2211234 + + + + + (?: + 9\d| + 59 + )\d{5} + + 9911234 + + + + + + + + + + $1 $2 + + + + [27-9]\d{7} + \d{8} + + + 2[2-6]\d{6} + 22345678 + + + + + 7777\d{4}| + 9(?: + [69]\d| + 7[67] + )\d{5} + + 96123456 + + + 8000\d{4} + 80001234 + + + 9009\d{4} + 90091234 + + + 700\d{5} + 70012345 + + + + + + + + + + $1 $2 $3 + + + + [2-9]\d{8} + \d{9} + + + + 2\d{8}| + (?: + 3[1257-9]| + 4[16-9]| + 5[13-9] + )\d{7} + + 212345678 + + + + 60[1-8]\d{6}| + 7[2379]\d{7} + + 601123456 + + + 800\d{6} + 800123456 + + + 90[0689]\d{6} + 900123456 + + + 8[134]\d{7} + 811234567 + + + 70[01]\d{6} + 700123456 + + + + + + + + + + 3[02]| + 40| + [68]9 + + $1/$2 + + + + + + 2(?: + \d1| + 0[2389]| + 1[24]| + 28| + 34 + )| + 3(?: + [3-9][15]| + 40 + )| + [4-8][1-9]1| + 9(?: + 06| + [1-9]1 + ) + + $1/$2 + + + + + [24-6]| + [7-9](?: + \d[1-9]| + [1-9]\d + )| + 3(?: + [3569][02-46-9]| + 4[2-4679]| + 7[2-467]| + 8[2-46-8] + ) + + + [24-6]| + [7-9](?: + \d[1-9]| + [1-9]\d + )| + 3(?: + 3(?: + 0[1-467]| + 2[127-9]| + 3[124578]| + [46][1246]| + 7[1257-9]| + 8[1256]| + 9[145] + )| + 4(?: + 2[135]| + 3[1357]| + 4[13578]| + 6[1246]| + 7[1356]| + 9[1346] + )| + 5(?: + 0[14]| + 2[1-3589]| + 3[1357]| + 4[1246]| + 6[1-4]| + 7[1346]| + 8[13568]| + 9[1246] + )| + 6(?: + 0[356]| + 2[1-489]| + 3[124-6]| + 4[1347]| + 6[13]| + 7[12579]| + 8[1-356]| + 9[135] + )| + 7(?: + 2[1-7]| + 3[1357]| + 4[145]| + 6[1-5]| + 7[1-4] + )| + 8(?: + 21| + 3[1468]| + 4[1347]| + 6[0135-9]| + 7[1467]| + 8[136] + )| + 9(?: + 0[12479]| + 2[1358]| + 3[1357]| + 4[134679]| + 6[1-9]| + 7[136]| + 8[147]| + 9[1468] + ) + ) + + $1/$2 + + + + 3 + $1/$2 + + + + + 1[5-7]| + 800 + + $1 $2 + + + + (?: + 18| + 90 + )0 + + + 180| + 900[1359] + + $1 $2 $3 + + + 700 + $1 $2 $3 + + + + + + [1-35-9]\d{3,13}| + 4(?: + [0-8]\d{4,12}| + 9(?: + 4[1-8]| + [0-35-7]\d + )\d{2,7} + ) + + \d{2,14} + + + + + [246]\d{5,13}| + 3(?: + [03-9]\d{4,11}| + 2\d{9} + )| + 5(?: + 0[2-8]| + [38][0-8]| + [124-6]\d| + [79][0-7] + )\d{3,10}| + 7(?: + 0[2-8]| + [1-9]\d + )\d{3,10}| + 8(?: + 0[2-9]| + [1-9]\d + )\d{3,10}| + 9(?: + 0[6-9]| + [1-9]\d + )\d{3,10} + + 30123456 + + + + + 1(?: + 5\d{9}| + 7(?: + [0-57-9]| + 6\d + )\d{7}| + 6(?: + [02]\d{7,8}| + 3\d{7} + ) + ) + + \d{10,11} + 15123456789 + + + + 16(?: + 4\d{1,10}| + [89]\d{1,11} + ) + + \d{4,14} + 16412345 + + + 800\d{7,9} + \d{10,12} + 8001234567 + + + + 900(?: + [135]\d{6}| + 9\d{7} + ) + + \d{10,11} + 9001234567 + + + + 180\d{5,11} + \d{8,14} + 18012345 + + + 700\d{8} + \d{11} + 70012345678 + + + + + + + + + + $1 $2 $3 + + + + [1-8]\d{5} + \d{6} + + + + + (?: + 1[05]| + [2-5]\d + )\d{4} + + 251234 + + + [6-8]\d{5} + 601234 + + + + + + + + + $1 $2 $3 $4 + + + + [1-9]\d{7} + \d{8} + + + + (?: + 3[2-9]| + 4[3-9]| + 5[4-9]| + 6[2-9]| + 7[02-9]| + 8[26-9]| + 9[6-9] + )\d{6} + + 32123456 + + + + + (?: + 2[0-9]| + 3[0-2]| + 4[0-2]| + 5[0-3]| + 6[01]| + 7[12]| + 81| + 99 + )\d{6} + + 20123456 + + + 80\d{6} + 80123456 + + + 90\d{6} + 90123456 + + + + + + + + + [57-9]\d{9} + \d{7}(?:\d{3})? + + + + 767(?: + 2(?: + 55| + 66 + )| + 4(?: + 2[01]| + 4[0-25-9] + )| + 50[0-4] + )\d{4} + + 7674201234 + + + + 767(?: + 2(?: + [2346]5| + 7[5-7] + )| + 31[5-7]| + 61[4-6] + )\d{4} + + \d{10} + 7672251234 + + + + 8(?: + 00| + 55| + 66| + 77| + 88 + )[2-9]\d{6} + + \d{10} + 8002123456 + + + 900[2-9]\d{6} + \d{10} + 9002123456 + + + + + 5(?: + 00| + 33| + 44 + )[2-9]\d{6} + + \d{10} + 5002345678 + + + + + + + + + [589]\d{9} + \d{7}(?:\d{3})? + + + + 8[024]9[2-9]\d{6} + 8092345678 + + + 8[024]9[2-9]\d{6} + 8092345678 + + + + 8(?: + 00| + 55| + 66| + 77| + 88 + )[2-9]\d{6} + + \d{10} + 8002123456 + + + 900[2-9]\d{6} + \d{10} + 9002123456 + + + + + 5(?: + 00| + 33| + 44 + )[2-9]\d{6} + + \d{10} + 5002345678 + + + + + + + + + + + [1-4] + $1 $2 $3 $4 + + + [5-8] + $1 $2 $3 $4 + + + 9 + $1 $2 $3 $4 + + + + + (?: + [1-4]| + [5-9]\d + )\d{7} + + \d{8,9} + + + + + (?: + 1\d| + 2[014-79]| + 3[0-8]| + 4[0135689] + )\d{6}| + 9619\d{5} + + 12345678 + + + + (?: + 5[56]| + 6[69]| + 7[79] + )\d{7} + + \d{9} + 551234567 + + + 800\d{6} + \d{9} + 800123456 + + + 80[3-689]1\d{5} + \d{9} + 808123456 + + + + 80[12]1\d{5} + \d{9} + 801123456 + + + 98[23]\d{6} + \d{9} + 983123456 + + + + + + + + + + + + [2-7] + $1 $2-$3 + + + [2-7] + $1-$2-$3 + + + [89] + $1 $2 $3 + + + [89] + $1 $2 $3 + + + 1 + $1 $2 $3 + + + 1 + $1 $2 $3 + + + + [2-9]\d{7}|1\d{9,10} + \d{7,11} + + + [2-7][2-7]\d{6} + \d{7,8} + 22123456 + + + [89]\d{7} + \d{8} + 99123456 + + + 1800\d{6,7} + \d{10,11} + 18001234567 + + + + + + + + + + + [369]| + 4[3-8]| + 5(?: + [0-2]| + 5[0-478]| + 6[45] + )| + 7[1-9] + + + [369]| + 4[3-8]| + 5(?: + [02]| + 1(?: + [0-8]| + 95 + )| + 5[0-478]| + 6(?: + 4[0-4]| + 5[1-589] + ) + )| + 7[1-9] + + $1 $2 + + + 70 + $1 $2 $3 + + + 800 + 8000 + $1 $2 $3 + + + + 40| + 5| + 8(?: + 00| + [1-5] + ) + + + 40| + 5| + 8(?: + 00[1-9]| + [1-5] + ) + + $1 $2 + + + + + [3-9]\d{6,7}| + 800\d{6,7} + + \d{7,10} + + + 800[2-9]\d{3} + \d{7} + 8002123 + + + + + (?: + 3[23589]| + 4(?: + 0\d| + [3-8] + )| + 6\d| + 7[1-9]| + 88 + )\d{5} + + \d{7,8} + 3212345 + + + + + (?: + 5\d| + 8[1-5] + )\d{6}| + 5(?: + [02]\d{2}| + 1(?: + [0-8]\d| + 95 + )| + 5[0-478]\d| + 64[0-4]| + 65[1-589] + )\d{3} + + \d{7,8} + 51234567 + + + + 800(?: + 0\d{3}| + 1\d| + [2-9] + )\d{3} + + \d{7,10} + 80012345 + + + 900\d{4} + \d{7} + 9001234 + + + 70[0-2]\d{5} + \d{8} + 70012345 + + + 1[1-9]\d + \d{3} + 112 + + + + + + + + + + [23] + $1 $2 + + + + [14-6]| + [89][2-9] + + $1 $2 + + + [89]00 + $1 $2 $3 + + + + + 1\d{4,9}| + [2-689]\d{7,9} + + \d{5,10} + + + + + (?: + 1[35][23]| + 2[23]\d| + 3\d| + 4(?: + 0[2-4]| + [578][23]| + 64 + )| + 5(?: + 0[234]| + [57][23] + )| + 6[24-689]3| + 8(?: + [28][2-4]| + 42| + 6[23] + )| + 9(?: + [25]2| + 3[24]| + 6[23]| + 7[2-4] + ) + )\d{6}| + 1[69]\d{3} + + \d{5,9} + 234567890 + + + 1[0-246-9]\d{7} + \d{9} + 101234567 + + + 800\d{7} + \d{10} + 8001234567 + + + 900\d{7} + \d{10} + 9001234567 + + + + + + + + + $1 $2 $3 + + + + [178]\d{6} + \d{6,7} + + + + 1(?: + 1[12568]| + 20| + 40| + 55| + 6[146] + )\d{4}| + 8\d{6} + + 8370362 + + + + + 17[1-3]\d{4}| + 7\d{6} + + \d{7} + 7123456 + + + + + + + + + $1 $2 $3 $4 + + + + [5-9]\d{8} + \d{9} + + + [89][1-8]\d{7} + 812345678 + + + 6\d{8} + 612345678 + + + [89]00\d{6} + 800123456 + + + 80[367]\d{6} + 803123456 + + + 90[12]\d{6} + 901123456 + + + 70\d{7} + 701234567 + + + + 51\d{7} + 511234567 + + + + + + + + + $1 $2 $3 + + + + [1-59]\d{8} + \d{7,9} + + + + (?: + 11(?: + 1(?: + 1[124]| + 2[2-57]| + 3[1-5]| + 5[5-8]| + 8[6-8] + )| + 2(?: + 13| + 3[6-8]| + 5[89]| + 7[05-9]| + 8[2-6] + )| + 3(?: + 2[01]| + 3[0-289]| + 4[1289]| + 7[1-4]| + 87 + )| + 4(?: + 1[69]| + 3[2-49]| + 4[0-23]| + 6[5-8] + )| + 5(?: + 1[57]| + 44| + 5[0-4] + )| + 6(?: + 18| + 2[69]| + 4[5-7]| + 5[1-5]| + 6[0-59]| + 8[015-8] + ) + )| + 2(?: + 2(?: + 11[1-9]| + 22[0-7]| + 33\d| + 44[1467]| + 66[1-68] + )| + 5(?: + 11[124-6]| + 33[2-8]| + 44[1467]| + 55[14]| + 66[1-3679]| + 77[124-79]| + 880 + ) + )| + 3(?: + 3(?: + 11[0-46-8]| + 22[0-6]| + 33[0134689]| + 44[04]| + 55[0-6]| + 66[01467] + )| + 4(?: + 44[0-8]| + 55[0-69]| + 66[0-3]| + 77[1-5] + ) + )| + 4(?: + 6(?: + 22[0-24-7]| + 33[1-5]| + 44[13-69]| + 55[14-689]| + 660| + 88[1-4] + )| + 7(?: + 11[1-9]| + 22[1-9]| + 33[13-7]| + 44[13-6]| + 55[1-689] + ) + )| + 5(?: + 7(?: + 227| + 55[05]| + (?: + 66| + 77 + )[14-8] + )| + 8(?: + 11[149]| + 22[013-79]| + 33[0-68]| + 44[013-8]| + 550| + 66[1-5]| + 77\d + ) + ) + )\d{4} + + 111112345 + + + + 91[0-8]\d{6} + \d{9} + 911234567 + + + + + + + + + + 2[09]| + [14]| + 50| + 7[135] + + $1 $2 + + + + [25689][1-8]| + 3 + + $1 $2 + + + [6-8]0 + $1 $2 + + + + + 1\d{4,11}| + [2-9]\d{4,10} + + \d{5,12} + + + + + 1(?: + [35689][1-8]\d{3,9}| + [47]\d{5,10} + )| + 2[1-8]\d{3,9}| + 3(?: + [1-8]\d{3,9}| + 9\d{4,8} + )| + [5689][1-8]\d{3,9}| + + 1312345678 + + + + 4\d{5,10}| + 50\d{4,8} + + \d{6,11} + 412345678 + + + 800\d{4,7} + \d{7,10} + 8001234567 + + + [67]00\d{5,6} + \d{8,9} + 600123456 + + + + 10[1-9]\d{3,7}| + 2(?: + 0(?: + [16-8]\d{3,7}| + 2[14-9]\d{1,6}| + [3-5]\d{2,7}| + 9[0-7]\d{1,6} + )| + 9\d{4,8} + )| + 30[1-9]\d{3,7}| + 7(?: + 1\d{7}| + 3\d{8}| + 5[03-9]\d{2,7} + ) + + \d{6,10} + 10112345 + + + + + + + + + + [36-9] + $1 $2 + + + 0 + $1 $2 $3 + + + + + [36-9]\d{6}| + 0\d{10} + + \d{7}(?:\d{4})? + + + + + (?: + 3[0-5]| + 6[25-7]| + 8[58] + )\d{5} + + \d{7} + 3212345 + + + + (?: + 7[0-4]| + 9[29] + )\d{5} + + \d{7} + 7012345 + + + + 0800\d{7} + \d{11} + 08001234567 + + + + + 0(?: + 04| + 1[34]| + 8[1-4] + )| + 1(?: + 0[1-3]| + [25]9 + )| + 2[289]| + 30| + [45]4| + 75| + 91[137] + + \d{2,3} + 22 + + + + + + + + + [2-7]\d{4} + \d{5} + + + [2-47]\d{4} + 31234 + + + [56]\d{4} + 51234 + + + + + 1\d{2}| + 999 + + 123 + + + + + + + + + $1 $2 + + + + [39]\d{6} + \d{7} + + + + 3[2357]0[1-9]\d{3}| + 9[2-6]\d{5} + + 3201234 + + + + + 3[2357]0[1-9]\d{3}| + 9[2-7]\d{5} + + 3501234 + + + + + + + + + + $1 + + + + [2-9]\d{5} + \d{6} + + + + (?: + 20| + [3-4]\d| + 8[19] + )\d{4} + + 201234 + + + + (?: + 2[1-9]| + 5\d| + 7[1-79] + )\d{4} + + 211234 + + + 80[257-9]\d{3} + 802123 + + + + 90(?: + [1345][15-7]| + 2[125-7]| + 99 + )\d{2} + + 901123 + + + + (?: + 6[0-36]| + 88 + )\d{4} + + 601234 + + + + + 1(?: + 1[248]| + 4[124]\d| + 71\d| + 8[7-9]\d + ) + + \d{3,4} + 211234 + + + + + + + + + + + [1-79] + $1 $2 $3 $4 $5 + + + 8 + $1 $2 $3 $4 + + + + [1-9]\d{8} + \d{9} + + + [1-5]\d{8} + 123456789 + + + + 6\d{8}| + 7[5-9]\d{7} + + 612345678 + + + 80\d{7} + 801234567 + + + 89[1-37-9]\d{6} + 891123456 + + + + 8(?: + 1[019]| + 2[0156]| + 84| + 90 + )\d{6} + + 810123456 + + + 9\d{8} + 912345678 + + + + + + + + + [4-9] + $1 $2 $3 + + + 0 + $1 $2 $3 $4 + + + + + [4-9]\d{5}| + 0\d{7} + + \d{6,8} + + + + (?: + 4(?: + [04-8]\d| + 2[04] + )| + (?: + 5[04-689]| + 6[024-9]| + 7\d| + 8[236]| + 9[02368] + )\d + )\d{3} + + \d{6} + 441234 + + + + + + 0(?: + 5(?: + 0[89]| + 3[0-4]| + 8[0-26]| + 9[238] + )| + 6(?: + 0[3-7]| + 1[01]| + 2[0-7]| + 6[0-589]| + 71| + 83| + 9[57] + )| + 7(?: + 1[2-5]| + 2[89]| + 3[35-9]| + 4[01]| + 5[0-347-9]| + [67]\d| + 8[457-9]| + 9[0146] + ) + )\d{4} + + \d{8} + 06031234 + + + + + + + + + + + + + + 2| + 5[56]| + 7[06] + + $1 $2 $3 + + + + + 1(?: + 1| + \d1 + )| + 3| + 9[018] + + $1 $2 $3 + + + + + 1(?: + 38| + 5[23]| + 69| + 76| + 94 + ) + + + 1(?: + 387| + 5(?: + 24| + 39 + )| + 697| + 768| + 946 + ) + + + 1(?: + 3873| + 5(?: + 242| + 39[456] + )| + 697[347]| + 768[347]| + 9467 + ) + + $1 $2 + + + + 1 + $1 $2 + + + + 7[1-5789] + $1 $2 + + + + 800 + 8001 + 80011 + 800111 + 8001111 + $1 $2 + + + + 845 + 8454 + 84546 + 845464 + $1 $2 $3 + + + + + 8(?: + 4[2-5]| + 7[0-3] + ) + + $1 $2 $3 + + + + 80 + $1 $2 $3 + + + + [58]00 + $1 $2 + + + + \d{7,10} + \d{4,10} + + + + + 2\d[2-9]\d{7}| + 1(?: + 1\d| + \d1 + )[2-9]\d{6}| + 1(?: + [248][02-9]\d[2-9]\d{4,5}| + (?: + 3(?: + [02-79]\d| + 8[0-69] + )| + 5(?: + [04-9]\d| + 2[0-35-9]| + 3[0-8] + )| + 6(?: + [02-8]\d| + 9[0-689] + )| + 7(?: + [02-5789]\d| + 6[0-79] + )| + 9(?: + [0235-9]\d| + 4[0-5789] + ) + )[2-9]\d{4,5}| + (?: + 387(?: + 3[2-9]| + [24-9]\d + )| + 5(?: + 24(?: + 2[2-9]| + [3-9]\d + )| + 39(?: + [4-6][2-9]| + [237-9]\d + ) + )| + 697(?: + [347][2-9]| + [25689]\d + )| + 768(?: + [347][2-9]| + [25679]\d + )| + 946(?: + 7[2-9]| + [2-689]\d + ) + )\d{3,4} + ) + + \d{9,10} + 1332456789 + + + + + + 2(?: + 0[01378]| + 3[0189]| + 4[017]| + 8[0-46-9]| + 9[012] + )\d{7}| + 1(?: + (?:1 + (?:3[0-48]| + [46][0-4]| + 5[012789]| + 7[0-39]| + 8[01349] + )| + 21[0-7]| + 31[0-8]| + [459]1\d| + 61[0-46-9] + ) + )\d{6}| + 1(?: + 2(?: + 0[024-9]| + 2[3-9]| + 3[3-79]| + 4[1-689]| + [58][02-9]| + 6[0-4789]| + 7[013-9]| + 9\d + )| + 3(?: + 0\d| + [25][02-9]| + 3[02-579]| + [468][0-46-9]| + 7[1235679]| + 9[24578] + )| + 4(?: + 0[03-9]| + [28][02-5789]| + [37]\d| + 4[02-69]| + 5[0-8]| + [69][0-79] + )| + 5(?: + 0[1235-9]| + 2[024-9]| + 3[015689]| + 4[02-9]| + 5[03-9]| + 6\d| + 7[0-35-9]| + 8[0-468]| + 9[0-5789] + )| + 6(?: + 0[034689]| + 2[0-35689]| + [38][013-9]| + 4[1-467]| + 5[0-69]| + 6[13-9]| + 7[0-8]| + 9[0124578] + )| + 7(?: + 0[0246-9]| + 2\d| + 3[023678]| + 4[03-9]| + 5[0-46-9]| + 6[013-9]| + 7[0-35-9]| + 8[024-9]| + 9[02-9] + )| + 8(?: + 0[35-9]| + 2[1-5789]| + 3[02-578]| + 4[0-578]| + 5[124-9]| + 6[2-69]| + 7\d| + 8[02-9]| + 9[02569] + )| + 9(?: + 0[02-589]| + 2[02-689]| + 3[1-5789]| + 4[2-9]| + 5[0-579]| + 6[234789]| + 7[0124578]| + 8\d| + 9[2-57] + ) + )\d{6}| + 1(?: + 2(?: + 0(?: + 46[1-4]| + 87[2-9] + )| + 545[1-79]| + 76(?: + 2\d| + 3[1-8]| + 6[1-6] + )| + 9(?: + 7(?: + 2[0-4]| + 3[2-5] + )| + 8(?: + 2[2-8]| + 7[0-4789]| + 8[345] + ) + ) + )| + 3(?: + 638[2-5]| + 647[23]| + 8(?: + 47[04-9]| + 64[015789] + ) + )| + 4(?: + 044[1-7]| + 20(?: + 2[23]| + 8\d + )| + 6(?: + 0(?: + 30| + 5[2-57]| + 6[1-8]| + 7[2-8] + )| + 140 + )| + 8(?: + 052| + 87[123] + ) + )| + 5(?: + 24(?: + 3[2-79]| + 6\d + )| + 276\d| + 6(?: + 26[06-9]| + 686 + ) + )| + 6(?: + 06(?: + 4\d| + 7[4-79] + )| + 295[567]| + 35[34]\d| + 47(?: + 24| + 61 + )| + 59(?: + 5[08]| + 6[67]| + 74 + )| + 955[0-4] + )| + 7(?: + 26(?: + 6[13-9]| + 7[0-7] + )| + 442\d| + 50(?: + 2[0-3]| + [3-68]2| + 76 + ) + )| + 8(?: + 27[56]\d| + 37(?: + 5[2-5]| + 8[239] + )| + 84(?: + 3[2-58] + ) + )| + 9(?: + 0(?: + 0(?: + 6[1-8]| + 85 + )| + 52\d + )| + 3583| + 4(?: + 66[1-8]| + 9(?: + 2[01]| + 81 + ) + )| + 63(?: + 23| + 3[1-4] + )| + 9561 + ) + )\d{3}| + 176888[234678]\d{2}| + 16977[23]\d{3} + + 1212345678 + + + + + 7(?: + [1-4]\d\d| + 5(?: + 0[0-8]| + [13-9]\d| + 2[0-35-9] + )| + 7(?: + 0[1-9]| + [1-7]\d| + 8[02-9]| + 9[0-689] + )| + 8(?: + [014-9]\d| + [23][0-8] + )| + 9(?: + [04-9]\d| + 1[02-9]| + 2[0-35-9]| + 3[0-689] + ) + )\d{6} + + \d{10} + 7400123456 + + + + + 76(?: + 0[012]| + 2[356]| + 4[0134]| + 5[49]| + 6[0-369]| + 77| + 81| + 9[39] + )\d{6} + + \d{10} + 7640123456 + + + + + + 80(?: + 0(?: + 1111| + \d{6,7} + )| + 8\d{7} + )| + 500\d{6} + + \d{7}(?:\d{2,3})? + 8001234567 + + + + + (?: + 87[123]| + 9(?: + [01]\d| + 8[0-3] + ) + )\d{7} + + \d{10} + 9012345678 + + + + + 8(?: + 4(?: + 5464\d| + [2-5]\d{7} + )| + 70\d{7} + ) + + \d{7}(?:\d{3})? + 8431234567 + + + + 70\d{8} + \d{10} + 7012345678 + + + + 56\d{8} + \d{10} + 5612345678 + + + + + (?: + 3[0347]| + 55 + )\d{8} + + \d{10} + 5512345678 + + + + + 1(?: + 0[01]| + 1(?: + [12]| + [68]\d{3} + )| + 2[123]| + 33| + 4(?: + 1| + 7\d + )| + 5\d| + 70\d| + 800\d| + 9[15] + )| + 2(?: + 02| + 2(?: + 02| + 11| + 2 + )| + 3(?: + 02| + 45 + ) + 425 + )| + 3[13]3| + 4(?: + 0[02]| + 35[01]| + 44[45]| + 5\d + )| + 650| + 789| + 9(?: + 01| + 99 + ) + + \d{3,6} + 150 + + + + + + + + + [4589]\d{9} + \d{7}(?:\d{3})? + + + + 473(?: + 2(?: + 3[0-2]| + 69 + )| + 3(?: + 2[89]| + 86 + )| + 4(?: + [06]8| + 3[5-9]| + 4[0-49]| + 5[5-79]| + 73| + 90 + )| + 63[68]| + 7(?: + 58| + 84 + )| + 938 + )\d{4} + + 4732691234 + + + + 473(?: + 4(?: + 0[3-79]| + 1[04-9]| + 20| + 58 + )| + 53[3-8] + )\d{4} + + \d{10} + 4734031234 + + + + 8(?: + 00| + 55| + 66| + 77| + 88 + )[2-9]\d{6} + + \d{10} + 8002123456 + + + 900[2-9]\d{6} + \d{10} + 9002123456 + + + + + 5(?: + 00| + 33| + 44 + )[2-9]\d{6} + + \d{10} + 5002345678 + + + + + + + + + + [13-79] + $1 $2 $3 $4 + + + 8 + $1 $2 $3 $4 + + + + + [13-79]\d{7}| + 8\d{8} + + \d{5,9} + + + + (?: + 3(?: + [256]\d| + 4[124-9]| + 7[0-4] + )| + 4(?: + 1\d| + 2[2-7]| + 3[1-79]| + 4[2-8]| + 7[239]| + 9[1-7] + ) + )\d{5} + + \d{5,8} + 32123456 + + + + (?: + 14| + 5[01578]| + 6[28]| + 7[0147-9]| + 9[0-35-9] + )\d{6} + + \d{8} + 55123456 + + + + 800\d{6} + \d{9} + 800123456 + + + + + + + + + + + + + + [135789]\d{6,9} + \d{6,10} + + + 1481[2-9]\d{5} + \d{10} + 1481250123 + + + + + 1481\d{6} + 1481456789 + + + + + 7(?: + 781| + 839| + 911 + )\d{6} + + \d{10} + 7781123456 + + + + + 76(?: + 0[012]| + 2[356]| + 4[0134]| + 5[49]| + 6[0-369]| + 77| + 81| + 9[39] + )\d{6} + + \d{10} + 7640123456 + + + + 80(?: + 0(?: + 1111| + \d{6,7} + )| + 8\d{7} + )| + 500\d{6} + + \d{7}(?:\d{2,3})? + 8001234567 + + + + (?: + 87[123]| + 9(?: + [01]\d| + 8[0-3] + ) + )\d{7} + + \d{10} + 9012345678 + + + + 8(?: + 4(?: + 5464\d| + [2-5]\d{7} + )| + 70\d{7} + ) + + \d{7}(?:\d{3})? + 8431234567 + + + 70\d{8} + \d{10} + 7012345678 + + + 56\d{8} + \d{10} + 5612345678 + + + + (?: + 3[0347]| + 55 + )\d{8} + + \d{10} + 5512345678 + + + + 1\d{2}(?:\d{3})?| + 999 + + \d{3,6} + 150 + + + + + + + + + + $1 $2 $3 + + + + [235]\d{6,8} + \d{7,9} + + + + 3(?: + 0[237]\d| + [167](?: + 2[0-6]| + 7\d + )| + 2(?: + 2[0-5]| + 7\d + )| + 3(?: + 2[0-37]| + 7\d + )| + 4(?: + [27]\d| + 30 + )| + 5(?: + 2[0-7]| + 7\d + )| + 8(?: + 2[0-2]| + 7\d + )| + 9(?: + 20| + 7\d + ) + )\d{5} + + \d{7,9} + 302345678 + + + + 2(?: + (?: + [47]\d| + 08 + )\d{6}| + [368]\d{7} + )| + 54\d{7} + + \d{9} + 231234567 + + + + + + + + + [2568]\d{7} + \d{8} + + + + 2(?: + 00\d| + 16[0-7]| + 22[2457] + )\d{4} + + 20012345 + + + + (?: + 5[4-8]| + 60 + )\d{6} + + 57123456 + + + 80\d{6} + 80123456 + + + 8[1-689]\d{6} + 88123456 + + + 87\d{6} + 87123456 + + + + 1(?: + 00| + 1(?: + 2| + 6(?: + 00[06]| + 11[17] + )| + 8\d{2} + )| + 23| + 4(?: + 1| + 7[014] + )| + 5[015]| + 9[0349] + )| + 8(?: + 00| + 4[0-2]| + 8\d + ) + + \d{3,6} + 116123 + + + + + + + + + $1 $2 $3 + + + + [1-689]\d{5} + \d{6} + + + + + (?: + 19| + 3[1-6]| + 6[14689]| + 8[14-79]| + 9\d + )\d{4} + + 321000 + + + [245][2-9]\d{4} + 221234 + + + 80\d{4} + 801234 + + + 3[89]\d{4} + 381234 + + + + + + + + + $1 $2 + + + + [3-9]\d{6} + \d{7} + + + + (?: + 4(?: + [23]\d{2}| + 4(?: + 1[024679]| + [6-9]\d + ) + )| + 5(?: + 54[0-7]| + 6(?: + [67]\d + )| + 7(?: + 1[04]| + 2[035]| + 3[58]| + 48 + ) + )| + 8\d{3} + )\d{3} + + 5661234 + + + [3679]\d{6} + 3012345 + + + + + + + + + $1 $2 $3 $4 + + + + [3567]\d{7} + \d{8} + + + + 30(?: + 24| + 3[12]| + 4[1-35-7]| + 5[13]| + 6[189]| + [78]1| + 9[1478] + )\d{4} + + 30241234 + + + + + 55\d{6}| + 6(?: + 0(?: + 2\d| + 3[3467]| + 5[2457-9] + )| + [24578]\d{2}| + 3(?: + [14]0| + 35 + ) + )\d{4} + + 60201234 + + + + + + + + + $1 $2-$3 + + + + [56]\d{8} + \d{9} + + + + + 590(?: + 1[12]| + 2[0-68]| + 3[28]| + 4[126-8]| + 5[067]| + 6[018]| + [89]\d + )\d{4} + + 590201234 + + + + + 690(?: + 00| + 1[1-9]| + 2[013-5]| + [3-5]\d| + 6[0-57-9]| + 7[1-6]| + 8[0-6]| + 9[09] + )\d{4} + + 690301234 + + + + + + + + + [235] + $1 $2 $3 + + + [89] + $1 $2 + + + + [23589]\d{8} + + \d{6,9} + + + + 3(?: + 3(?: + 3\d[7-9]| + [0-24-9]\d[46] + )| + 5\d{2}[7-9] + )\d{4} + + 333091234 + + + + (?: + 222| + 551 + )\d{6} + + 222123456 + + + + 80\d[1-9]\d{5} + 800123456 + + + 90\d[1-9]\d{5} + 900123456 + + + + + + + + + + + 21| + 7 + + $1 $2 $3 + + + + 2[2-9]1| + [689] + + $1 $2 $3 + + + 2[2-9][02-9] + $1 $2 + + + + [26-9]\d{9} + \d{10} + + + + 2(?: + 1\d{2}| + 2(?: + 3[1-8]| + 4[1-7]| + 5[1-4]| + 6[1-8]| + 7[1-5]| + [289][1-9] + )| + 3(?: + 1\d| + 2[1-5]| + 3[1-4]| + [45][1-3]| + 7[1-7]| + 8[1-6]| + 9[1-79] + )| + 4(?: + 1\d| + 2[1-8]| + 3[1-4]| + 4[13-5]| + 6[1-578]| + 9[1-5] + )| + 5(?: + 1\d| + 2[1-3]| + 4[124]| + 5[1-6]| + [39][1-4] + )| + 6(?: + 1\d| + 3[24]| + 4[1-7]| + 5[13-9]| + [269][1-6]| + 7[14]| + 8[1-35] + )| + 7(?: + 1\d| + [23][1-5]| + 4[1-7]| + 5[1-57]| + 6[134]| + 9[15-7] + )| + 8(?: + 1\d| + 2[1-5]| + [34][1-4]| + 9[1-7] + ) + )\d{6} + + 2123456789 + + + 69\d{8} + 6912345678 + + + 800\d{7} + 8001234567 + + + 90[19]\d{7} + 9091234567 + + + + + 8(?: + 0[16]| + 12| + 25 + )\d{7} + + 8011234567 + + + 70\d{8} + 7012345678 + + + + + + + + + [2-7] + $1 $2 + + + 1 + $1 $2 $3 + + + + + [2-7]\d{7}| + 1[89]\d{9} + + \d{8}(?:\d{3})? + + + [267][2-9]\d{6} + \d{8} + 22456789 + + + + [345]\d{7} + \d{8} + 51234567 + + + 18[01]\d{8} + \d{11} + 18001112222 + + + 19\d{9} + \d{11} + 19001112222 + + + + 1(?: + 2| + [57]\d + )\d + + \d{3,4} + 123 + + + + + + + + + [5689]\d{9} + \d{7}(?:\d{3})? + + + + + 671(?: + 3(?: + 00| + 3[39]| + 4[349]| + 55| + 6[26] + )| + 4(?: + 56| + 7[1-9]| + 8[23678] + )| + 5(?: + 55| + 6[2-5]| + 88 + )| + 6(?: + 3[2-578]| + 4[24-9]| + 5[34]| + 78| + 8[5-9] + )| + 7(?: + [079]7| + 2[0167]| + 3[45]| + 8[789] + )| + 8(?: + [2-5789]8| + 6[48] + )| + 9(?: + 2[29]| + 6[79]| + 7[179]| + 8[789]| + 9[78] + ) + )\d{4} + + 6713001234 + + + + + 671(?: + 3(?: + 00| + 3[39]| + 4[349]| + 55| + 6[26] + )| + 4(?: + 56| + 7[1-9]| + 8[23678] + )| + 5(?: + 55| + 6[2-5]| + 88 + )| + 6(?: + 3[2-578]| + 4[24-9]| + 5[34]| + 78| + 8[5-9] + )| + 7(?: + [079]7| + 2[0167]| + 3[45]| + 8[789] + )| + 8(?: + [2-5789]8| + 6[48] + )| + 9(?: + 2[29]| + 6[79]| + 7[179]| + 8[789]| + 9[78] + ) + )\d{4} + + 6713001234 + + + + 8(?: + 00| + 55| + 66| + 77| + 88 + )[2-9]\d{6} + + \d{10} + 8002123456 + + + 900[2-9]\d{6} + \d{10} + 9002123456 + + + + + 5(?: + 00| + 33| + 44 + )[2-9]\d{6} + + \d{10} + 5002345678 + + + + + + + + + $1 $2 + + + + [3567]\d{6} + \d{7} + + + + 3(?: + 2[0125]| + 3[1245]| + 4[12]| + 5[1-4]| + 70| + 9[1-467] + )\d{4} + + 3201234 + + + [5-7]\d{6} + 5012345 + + + + + + + + + $1 $2 + + + + [2-4679]\d{6} + \d{7} + + + + (?: + 2(?: + 1[6-9]| + 2[0-35-9]| + 3[1-4]| + 5[3-9]| + 6\d| + 7[0-24-79] + )| + 3(?: + 2[25-9]| + 3\d + )| + 4(?: + 4[0-24]| + 5[56] + )| + 77[1-57] + )\d{4} + + 2201234 + + + + 6\d{6} + 6091234 + + + + (?: + 289| + 862 + )\d{4} + + 2891234 + + + 9008\d{3} + 9008123 + + + + 0(?: + 02| + 171| + 444| + 7[67]7| + 801| + 9(?: + 0[78]| + [2-47] + ) + ) + + \d{3,4} + 0801 + + + + + + + + + + [235-7]| + [89](?: + 0[1-9]| + [1-9] + ) + + $1 $2 + + + 800 + $1 $2 $3 + + + 900 + $1 $2 $3 $4 + + + + + + [235-7]\d{7}| + 8\d{7,8}| + 9\d{7,10} + + \d{8,11} + + + [23]\d{7} + \d{8} + 21234567 + + + [5-79]\d{7} + \d{8} + 51234567 + + + 800\d{6} + \d{9} + 800123456 + + + 900\d{8} + \d{11} + 90012345678 + + + 8[1-3]\d{6} + \d{8} + 81123456 + + + + + + + + + + $1-$2 + + + + [237-9]\d{7} + \d{8} + + + + 2(?: + 2(?: + 0[019]| + 1[1-36]| + [23]\d| + 4[056]| + 5[57]| + 9[01] + )| + 4(?: + 2|3-59]| + 3[13-689]| + 4[0-68]| + 5[1-35] + )| + 5(?: + 4[3-5]| + 5\d| + 6[56]| + 74 + )| + 6(?: + 4[0-378]| + [56]\d| + [78][0-8]| + 9[01] + )| + 7(?: + 6[46-9]| + 7[02-9]| + 8[34] + )| + 8(?: + 79| + 8[0-35789]| + 9[1-57-9] + ) + )\d{4} + + 22123456 + + + [37-9]\d{7} + 91234567 + + + + + + + + + + + 1 + $1 $2 $3 + + + 6[029] + $1 $2 $3 + + + [2-5] + $1 $2 $3 + + + 9 + $1 $2 $3 + + + 9 + $1 $2 $3 $4 + + + + 6[145]| + 7 + + $1 $2 $3 + + + + 6[145]| + 7 + + $1 $2 $3 + + + 8 + $1 $2 $3 + + + 8 + $1 $2 $3 + + + + + [1-7]\d{5,8}| + [89]\d{6,11} + + \d{6,12} + + + + + (?: + 1| + 6[029] + )\d{7}| + (?: + 2[0-3]| + 3[1-5]| + 4[02-47-9]| + 5[1-3] + )\d{6} + + \d{6,9} + 12345678 + + + 9[12589]\d{6,10} + \d{8,12} + 912345678 + + + 80[01]\d{4,7} + \d{7,10} + 8001234567 + + + + 6[145]\d{4,7} + \d{6,9} + 611234 + + + 7[45]\d{4,7} + \d{6,9} + 741234567 + + + + + + + + + + $1 $2 $3 + + + + [2-489]\d{7} + \d{8} + + + + + 2(?: + [24]\d| + 5[1-5]| + 94 + )\d{5} + + 22453300 + + + + (?: + 3[4-9]| + 4\d + )\d{6} + + 34101234 + + + + 8\d{7} + \d{8} + 80012345 + + + + 98[89]\d{5} + \d{8} + 98901234 + + + 1\d{2} + \d{3} + 114 + + + + + + + + + + 1 + $1 $2 $3 + + + [2-9] + $1 $2 $3 + + + + \d{8,9} + \d{6,9} + + + + + (?: + 1\d| + 2(?: + 1\d| + [2-9] + )| + 3[2-7]| + 4[24-9]| + 5[2-79]| + 6[23689]| + 7(?: + 1\d| + [2-9] + )| + 8[2-57-9]| + 9[2-69] + )\d{6} + + 12345678 + + + + (?: + [27]0| + 3[01] + )\d{7} + + \d{9} + 201234567 + + + 80\d{6} + \d{8} + 80123456 + + + 9[01]\d{6} + \d{8} + 90123456 + + + 40\d{6} + \d{8} + 40123456 + + + + + + + + + + + 2[124]| + [36]1 + + $1 $2 + + + + [4579]| + 2[035-9]| + [36][02-9] + + $1 $2 + + + 8[1-35-9] + $1-$2-$3 + + + 1 + $1 $2 + + + + 800 + $1 $2 + + + 809 + $1 $2 $3 $4 + + + + [1-9]\d{6,10} + \d{5,11} + + + + + 2[124]\d{7,8}| + (?: + 2(?: + [35][1-4]| + 6[0-8]| + 7[1-6]| + 8\d| + 9[1-8] + )| + 3(?: + 1| + 2[1-578]| + 3[1-68]| + 4[1-3]| + 5[1-8]| + 6[1-3568]| + 7[0-46]| + 8\d + )| + 4(?: + 0[1-589]| + 1[01347-9]| + 2[0-36-8]| + 3[0-24-68]| + 5[1-378]| + 6[1-5]| + 7[134]| + 8[1245] + )| + 5(?: + 1[1-35-9]| + 2[25-8]| + 3[1246-9]| + 4[1-3589]| + 5[1-46]| + 6[1-8] + )| + 6(?: + 19? | + [25]\d| + 3[1-469]| + 4[1-6] + )| + 7(?: + 1[1-46-9]| + 2[14-9]| + [36]\d| + 4[1-8]| + 5[1-9]| + 7[0-36-9] + )| + 9(?: + 0[12]| + 1[0134-8]| + 2[0-479]| + 5[125-8]| + 6[23679]| + 7[159]| + 8[01346] + ) + )\d{5,8} + + \d{5,10} + 612345678 + + + 8[1-35-9]\d{7,9} + \d{9,11} + 812345678 + + + + 177\d{6,8}| + 800\d{5,7} + + \d{8,11} + 8001234567 + + + + 809\d{7} + \d{10} + 8091234567 + + + + + + + + + + + 1 + $1 $2 $3 + + + + 2[2-9]| + 4[347]| + 5[2-58]| + 6[2-47-9]| + 9[3-9] + + $1 $2 + + + + 40[24]| + 50[45] + + $1 $2 + + + 48 + $1 $2 $3 + + + 81 + $1 $2 $3 + + + + [24-69]| + 7[14] + + $1 $2 $3 + + + + 76| + 8[35-9] + + $1 $2 $3 + + + 70 + $1 $2 $3 + + + + 1(?: + 8[059]| + 5 + ) + + + 1(?: + 8[059]0| + 5 + ) + + $1 $2 $3 + + + + [124-9]\d{6,9} + \d{5,10} + + + + + 1\d{7,8}| + 2(?: + 1\d{6,7}| + [24-9]\d{5}| + 3\d{5,7} + )| + 4(?: + 0[24]\d{5}| + [1269]\d{7}| + [34]\d{5,7}| + 5\d{6}| + 7\d{5}| + 8[0-46-9]\d{7} + )| + 5(?: + 0[45]\d{5}| + 1\d{6}| + 2\d{5,7}| + [3679]\d{7}| + 8\d{5} + )| + 6(?: + 1\d{6}| + 4\d{5,7}| + [237-9]\d{5}| + [56]\d{7} + )| + 7[14]\d{7}| + 9(?: + 1\d{6}| + [04]\d{7}| + [3-9]\d{5} + ) + + \d{5,10} + 2212345 + + + + 8(?: + 22\d{6}| + [35-9]\d{7,8} + ) + + \d{9,10} + 850123456 + + + 1800\d{6} + \d{10} + 1800123456 + + + + 15(?: + 1[2-9]| + [2-8]0| + 59| + 9[089] + )\d{6} + + \d{10} + 1520123456 + + + 18[59]0\d{6} + \d{10} + 1850123456 + + + 700\d{6} + \d{9} + 700123456 + + + 76\d{7} + \d{9} + 761234567 + + + 818\d{6} + \d{9} + 818123456 + + + + + + + + + + + + + [2-489] + $1-$2-$3 + + + [57] + $1-$2-$3 + + + 1[7-9] + $1-$2-$3-$4 + + + + 125 + $1-$2 + + + 120 + $1-$2-$3 + + + 121 + $1-$2-$3 + + + + [2-689] + *$1 + + + + + [17]\d{6,9}| + [2-589]\d{3}(?:\d{3,6})?| + 6\d{3} + + \d{4,10} + + + + 1700\d{6}| + [2-689]\d{3} + + \d{4,10} + 1700123456 + + + + (?: + [2-489]| + 7[2-46-8] + )\d{7} + + \d{7,9} + 21234567 + + + 5[024679]\d{7} + \d{9} + 501234567 + + + + 1(?: + 80[01]\d{3}| + 255 + )\d{3} + + \d{7,10} + 1800123456 + + + + + + 1(?: + 212| + (?: + 919| + 200 + )\d{2} + )\d{4} + + \d{8,10} + 1919123456 + + + + 1(?: + 700| + 809 + )\d{6} + + \d{10} + 1700123456 + + + 77\d{7} + \d{9} + 771234567 + + + + [2-689]\d{3} + \d{4} + 2250 + + + 1\d{3} + \d{4} + 1455 + + + + + + + + + [135789]\d{6,9} + \d{6,10} + + + 1624[2-9]\d{5} + \d{10} + 1624250123 + + + + + 1624\d{6} + 1624456789 + + + + 7[569]24\d{6} + \d{10} + 7924123456 + + + + 808162\d{4} + \d{10} + 8081624567 + + + + + (?: + 872299| + 90[0167]624 + )\d{4} + + \d{10} + 9016247890 + + + + + 8(?: + 4(?: + 40[49]06| + 5624\d + )| + 70624\d + )\d{3} + + \d{10} + 8456247890 + + + + 70\d{8} + \d{10} + 7012345678 + + + 56\d{8} + \d{10} + 5612345678 + + + + + 3(?: + 08162\d| + 3\d{5}| + 4(?: + 40[49]06| + 5624\d + )| + 7(?: + 0624\d| + 2299\d + ) + )\d{3}| + 55\d{8} + + \d{10} + 5512345678 + + + + 1\d{2}(?:\d{3})?| + 999 + + \d{3,6} + 150 + + + + + + + + + + + + + 7(?: + 2[0579]| + 39| + 4[0-389]| + 5[04-9]| + 6| + 7[02-9]| + 8[0-79] + )| + 8(?: + 0[01589]| + 1[024]| + 8[0479]| + 9[057-9] + )| + 9 + + + 7(?: + 2[0579]| + 39| + 4[0-389]| + 5(?: + 0[0-5]| + 49| + 50| + [6-9] + )| + 6| + 7[02-9]| + 8[0-79] + )| + 8(?: + 0[01589]| + 1[024]| + 8(?: + [079]| + 44 + )| + 9[057-9] + )| + 9 + + $1 $2 $3 + + + + + 11| + 2[02]| + 33| + 4[04]| + 79| + 80[2-6] + + $1 $2 $3 + + + + + 1(?: + 2[0-249]| + 3[0-25]| + 4[145]| + [569][14]| + 7[1257]| + 8[1346]| + [68][1-9] + ) + + $1 $2 $3 + + + + 2(?: + 1[257]| + 3[013]| + 4[01]| + 5[0137]| + 6[0158]| + 78| + 8[1568]| + 9[14] + ) + + $1 $2 $3 + + + + 3(?: + 26| + 4[1-3]| + 5[34]| + 6[01489]| + 7[02-46]| + 8[159] + ) + + $1 $2 $3 + + + + 4(?: + 1[36]| + 2[1-47]| + 3[15]| + 5[12]| + 6[126-9]| + 7[0-24-9]| + 8[013-57]| + 9[014-7] + ) + + $1 $2 $3 + + + + 5(?: + [136][25]| + 22| + 4[28]| + 5[12]| + [78]1| + 9[15] + ) + + $1 $2 $3 + + + + 6(?: + 12| + [2345]1| + 57| + 6[13]| + 7[14]| + 80 + ) + + $1 $2 $3 + + + + 7(?: + 12| + 2[14]| + 3[134]| + 4[47]| + 5[15]| + [67]1| + 88 + ) + + + 7(?: + 12| + 2[14]| + 3[134]| + 4[47]| + 5(?: + 1| + 5[1-9] + )| + [67]1| + 88 + ) + + $1 $2 $3 + + + + 8(?: + 16| + 2[014]| + 3[126]| + 6[136]| + 7[078]| + 8[34]| + 91 + ) + + $1 $2 $3 + + + + + + 1(?: + [2-579]| + [68][1-9] + )| + [2-8] + + $1 $2 $3 + + + 160 + 1600 + $1 $2 $3 + + + 180 + 1800 + $1 $2 + + + 18[06] + 18[06]0 + $1 $2 $3 + + + + + 1\d{7,11}| + [2-9]\d{9,10} + + \d{6,12} + + + + + (?: + 11| + 2[02]| + 33| + 4[04]| + 79| + 80 + )[2-6]\d{7}| + (?: + 1(?: + 2[0-249]| + 3[0-25]| + 4[145]| + [59][14]| + 6[014]| + 7[1257]| + 8[01346] + )| + 2(?: + 1[257]| + 3[013]| + 4[01]| + 5[0137]| + 6[0158]| + 78| + 8[1568]| + 9[14] + )| + 3(?: + 26| + 4[1-3]| + 5[34]| + 6[01489]| + 7[02-46]| + 8[159] + )| + 4(?: + 1[36]| + 2[1-47]| + 3[15]| + 5[12]| + 6[126-9]| + 7[0-24-9]| + 8[013-57]| + 9[014-7] + )| + 5(?: + [136][25]| + 22| + 4[28]| + 5[12]| + [78]1| + 9[15] + )| + 6(?: + 12| + [2345]1| + 57| + 6[13]| + 7[14]| + 80 + )| + 7(?: + 12| + 2[14]| + 3[134]| + 4[47]| + 5[15]| + [67]1| + 88 + )| + 8(?: + 16| + 2[014]| + 3[126]| + 6[136]| + 7[078]| + 8[34]| + 91 + ) + )[2-6]\d{6}| + (?: + (?: + 1(?: + 2[35-8]| + 3[346-9]| + 4[236-9]| + [59][0235-9]| + 6[235-9]| + 7[34689]| + 8[257-9] + )| + 2(?: + 1[134689]| + 3[24-8]| + 4[2-8]| + 5[25689]| + 6[2-4679]| + 7[13-79]| + 8[2-479]| + 9[235-9] + )| + 3(?: + 01| + 1[79]| + 2[1-5]| + 4[25-8]| + 5[125689]| + 6[235-7]| + 7[157-9]| + 8[2-467] + )| + 4(?: + 1[14578]| + 2[5689]| + 3[2-467]| + 5[4-7]| + 6[35]| + 73| + 8[2689]| + 9[2389] + )| + 5(?: + [16][146-9]| + 2[14-8]| + 3[1346]| + 4[14-69]| + 5[46]| + 7[2-4]| + 8[2-8]| + 9[246] + )| + 6(?: + 1[1358]| + 2[2457]| + 3[2-4]| + 4[235-7]| + 5[2-689]| + 6[24-58]| + 7[23-689]| + 8[1-6] + )| + 8(?: + 1[1357-9]| + 2[235-8]| + 3[03-57-9]| + 4[0-24-9]| + 5\d| + 6[2457-9]| + 7[1-6]| + 8[1256]| + 9[2-4] + ) + )\d| + 7(?: + (?: + 1[013-9]| + 2[0235-9]| + 3[2679]| + 4[1-35689]| + 5[2-46-9]| + [67][02-9]| + 9\d + )\d| + 8(?: + 2[0-6]| + [013-8]\d + ) + ) + )[2-6]\d{5} + + \d{6,10} + 1123456789 + + + + + + (?: + 7(?: + 2(?: + 0[04-9]| + 5[09]| + 7[568]| + 9[39] + )| + 3(?: + 07| + 7[3679]| + 9[689] + )| + 4(?: + 05| + 1[15-9]| + [29][89]| + 39| + 8[389] + )| + 5(?: + 0[0-5]| + [47]9| + 50| + 6[6-9]| + [89][7-9] + )| + 6(?: + 0[027]| + 12| + 20| + 3[19]| + 5[45]| + 6[5-9]| + 7[67]| + 9[6-9] + )| + 7(?: + 0[289]| + 3[5-9]| + 42| + 60| + 9[5-9] + )| + 8(?: + [03][07-9]| + 14| + 2[7-9]| + 4[25]| + 6[09]| + 7[015689]| + 9[0357-9] + ) + )\d| + 9\d{4}| + 8(?: + (?: + 0[01589]| + 1[24]| + 2[2369]| + 4[023458]| + 52| + 6[0589]| + 7[2569] + )\d| + 8(?: + [079]\d| + 44 + )| + 9[057-9]\d + )\d + )\d{5} + + \d{10} + 9123456789 + + + + + 1(?: + 600\d{6}| + 800\d{4,8} + ) + + \d{8,12} + 1800123456 + + + + + + 1860345\d{4} + \d{11} + 18603451234 + + + + + + + + + $1 $2 + + + + 3\d{6} + \d{7} + + + 37\d{5} + 3709100 + + + 38\d{5} + 3801234 + + + + + + + + + + 1 + $1 $2 $3 + + + [2-6] + $1 $2 $3 + + + 7 + $1 $2 $3 + + + + [1-7]\d{7,9} + \d{6,10} + + + + 1\d{7}| + (?: + 2[13-5]| + 3[02367]| + 4[023]| + 5[03]| + 6[026] + )\d{6,7} + + \d{6,9} + 12345678 + + + 7[5-9]\d{8} + \d{10} + 7912345678 + + + + + + + + + + + + 21 + $1 $2 $3 + + + + [13-89]| + 2[02-9] + + $1 $2 $3 + + + + [2-6]\d{4,9}|[1789]\d{9} + \d{5,10} + + + + + 2(?: + 1[2-9]\d{2,7}| + 51\d{3,7} + )| + (?: + 241| + 3(?: + 11| + 5[23] + )| + 441| + 5[14]1 + )\d{4,7}| + (?: + 3(?: + 34| + 41 + )| + 6(?: + 11| + 52 + )| + )\d{6,7}| + (?: + 1(?: + [134589][12]| + [27][1-4] + )| + 2(?: + 2[189]| + [3689][12]| + 42| + 5[256]| + 7[34] + )| + 3(?: + 12| + 2[1-4]| + 3[125]| + 4[24-9]| + 51| + [6-9][12] + )| + 4(?: + [135-9][12]| + 2[1-467]| + 4[2-4] + )| + 5(?: + 12| + 2[89]| + 3[1-5]| + 4[2-8]| + [5-7][12]| + 8[1245] + )| + 6(?: + 12| + [347-9][12]| + 51| + 6[1-6] + )| + 7(?: + [13589][12]| + 2[1289]| + 4[1-4]| + 6[1-6]| + 7[1-3] + )| + 8(?: + [145][12]| + 3[124578]| + 6[1256]| + 7[1245] + ) + )\d{7} + + 2123456789 + + + + 9(?: + 1\d| + 3[124-8] + )\d{7} + + \d{10} + 9123456789 + + + 943[24678]\d{6} + \d{10} + 9432123456 + + + + + 993[12]\d{6} + \d{10} + 9932123456 + + + + 9990\d{6} + \d{10} + 9990123456 + + + + + + + + + [4-9] + $1 $2 + + + 3 + $1 $2 $3 + + + + + [4-9]\d{6}| + 38\d{7} + + \d{7,9} + + + + + (?: + 4(?: + 1[0-245]| + 2[0-7]| + [37][0-8]| + 4[0245]| + 5[0-356]| + 6\d| + 8[0-46-8]| + 9[013-79] + )| + 5(?: + 05| + [156]\d| + 2[02578]| + 3[013-6]| + 4[03-6]| + 7[0-2578]| + 8[0-25-9]| + 9[013-689] + )| + 87[23] + )\d{4} + + \d{7} + 4101234 + + + + 38[59]\d{6}| + (?: + 6(?: + 1[014-8]| + 2[0-8]| + 3[0-27-9]| + 4[0-29]| + 5[029]| + [67][0-69]| + [89]\d + )| + 7(?: + 5[057]| + 7[0-7] + )| + 8(?: + 2[0-5]| + [469]\d| + 5[1-9] + ) + )\d{4} + + 6101234 + + + 800\d{4} + \d{7} + 8001234 + + + 90\d{5} + \d{7} + 9011234 + + + 49[013-79]\d{4} + \d{7} + 4931234 + + + + + + + + + + 0[26] + $1 $2 $3 + + + 0[26] + $1 $2 $3 + + + 0[26] + $1 $2 + + + 0[13-57-9][0159] + $1 $2 $3 + + + 0[13-57-9][0159] + $1 $2 + + + 0[13-57-9][2-46-8] + $1 $2 $3 + + + 0[13-57-9][2-46-8] + $1 $2 + + + + [13]| + 8(?: + 00| + 4[78] + ) + + $1 $2 $3 + + + + 8(?: + 03| + 9 + ) + + $1 $2 + + + + [01389]\d{5,10} + \d{6,11} + + + + 0(?: + [26]\d{4,9}| + [13-57-9](?: + [0159]\d{4,8}| + [2-46-8]\d{5,8} + ) + ) + + \d{6,11} + 0212345678 + + + 3\d{8,9} + \d{9,10} + 312345678 + + + + 80(?: + 0\d{6}| + 3\d{3} + ) + + \d{6,9} + 800123456 + + + + 89(?: + 2\d{3}| + 9\d{6} + ) + + \d{6,9} + 899123456 + + + 84[78]\d{6,7} + \d{9,10} + 8481234567 + + + + 178\d{6,7} + \d{9,10} + 1781234567 + + + + + + + + + + [135789]\d{6,9} + \d{6,10} + + + 1534[2-9]\d{5} + \d{10} + 1534250123 + + + + + 1534\d{6} + 1534456789 + + + + + 7(?: + 509| + 7(?: + 00| + 97 + )| + 829| + 937 + )\d{6} + + \d{10} + 7797123456 + + + + + 76(?: + 0[012]| + 2[356]| + 4[0134]| + 5[49]| + 6[0-369]| + 77| + 81| + 9[39] + )\d{6} + + \d{10} + 7640123456 + + + + + + 80(?: + 07(?: + 35| + 81 + )| + 8901 + )\d{4} + + \d{10} + 8007354567 + + + + + (?: + 871206| + 90(?: + 066[59]| + 1810| + 71(?: + 07| + 55 + ) + ) + )\d{4} + + \d{10} + 9018105678 + + + + + 8(?: + 4(?: + 4(?: + 4(?: + 05| + 42| + 69 + )| + 703 + )| + 5(?: + 041| + 800 + ) + )| + 70002 + )\d{4} + + \d{10} + 8447034567 + + + + 701511\d{4} + \d{10} + 7015115678 + + + + 56\d{8} + \d{10} + 5612345678 + + + + + 3(?: + 0(?: + 07(?: + 35| + 81 + )| + 8901 + )| + 3\d{4}| + 4(?: + 4(?: + 4(?: + 05| + 42| + 69 + )| + 703 + )| + 5(?: + 041| + 800 + ) + )| + 7(?: + 0002| + 1206 + ) + )\d{4}| + 55\d{8} + + \d{10} + 5512345678 + + + + + 1(?: + 00| + 1(?: + 2| + 8\d{3} + )| + 23| + 4(?: + [14]| + 28| + 7\d + )| + 5\d| + 7(?: + 0[12]| + [128]| + 35? + )| + 808| + 9[135] + )| + 23[234]| + 999 + + \d{3,6} + 150 + + + + + + + + + [589]\d{9} + \d{7}(?:\d{3})? + + + + 876(?: + (?: + 5[0-26]| + 6\d + )\d{5}| + (?: + 7(?: + 0[2-689]| + [1-6]\d| + 8[056]| + 9[45] + )| + 9(?: + 0[1-8]| + 1[02378]| + [2-8]\d| + 9[2-468] + ) + )\d{4} + ) + + 8765123456 + + + + + 876(?: + (?: + 2[178]| + [348]\d| + 5[78] + )\d| + 7(?: + 0[07]| + 7\d| + 8[1-47-9]| + 9[0-36-9] + )| + 9(?: + [01]9| + 9[0579] + ) + )\d{4} + + \d{10} + 8762101234 + + + + 8(?: + 00| + 55| + 66| + 77| + 88 + )[2-9]\d{6} + + \d{10} + 8002123456 + + + 900[2-9]\d{6} + \d{10} + 9002123456 + + + + + 5(?: + 00| + 33| + 44 + )[2-9]\d{6} + + \d{10} + 5002345678 + + + + + + + + + + + + [2356] + + $1 $2 $3 + + + 7[457-9] + $1 $2 $3 $4 $5 + + + + 70| + [89] + + $1 $2 + + + + [235-9]\d{7,8} + \d{7,9} + + + + [2356][2-8]\d{6} + \d{7,8} + 62001234 + + + + 7(?: + [1-8]\d| + 9[02-9] + )\d{6} + + \d{9} + 790123456 + + + 80\d{6} + \d{8} + 80012345 + + + 900\d{5} + \d{8} + 90012345 + + + 85\d{6} + \d{8} + 85012345 + + + 70\d{7} + \d{9} + 700123456 + + + + + 8(?: + 10| + [78]\d + )\d{5} + + \d{8} + 87101234 + + + + + + + + + + + + (?: + 12| + 99 + )0 + + $1-$2-$3 + + + + [57-9]0 + $1-$2-$3 + + + + + 1(?: + 26| + 3[79]| + 4[56]| + 5[4-68]| + 6[3-5] + )| + 5(?: + 76| + 97 + )| + 499| + 746| + 8(?: + 3[89]| + 63| + 47| + 51 + )| + 9(?: + 49| + 80| + 9[16] + ) + + + 1(?: + 267| + 3(?: + 7[247]| + 9[278] + )| + 4(?: + 5[67]| + 66 + )| + 5(?: + 47| + 58| + 64| + 8[67] + )| + 6(?: + 3[245]| + 48| + 5[4-68] + ) + )| + 5(?: + 76| + 97 + )9| + 499[2468]| + 7468| + 8(?: + 3(?: + 8[78]| + 96 + )| + 636| + 477| + 51[24] + )| + 9(?: + 496| + 802| + 9(?: + 1[23]| + 69 + ) + ) + + + 1(?: + 267| + 3(?: + 7[247]| + 9[278] + )| + 4(?: + 5[67]| + 66 + )| + 5(?: + 47| + 58| + 64| + 8[67] + )| + 6(?: + 3[245]| + 48| + 5[4-68] + ) + )| + 5(?: + 769| + 979[2-69] + )| + 499[2468]| + 7468| + 8(?: + 3(?: + 8[78]| + 96[2457-9] + )| + 636[2-57-9]| + 477| + 51[24] + )| + 9(?: + 496| + 802| + 9(?: + 1[23]| + 69 + ) + ) + + $1-$2-$3 + + + + 1(?: + 2[3-6]| + 3[3-9]| + 4[2-6]| + 5[2-8]| + [68][2-7]| + 7[2-689]| + 9[1-578] + )| + 2(?: + 2[034-9]| + 3[3-58]| + 4[0-468]| + 5[04-8]| + 6[013-8]| + 7[06-9]| + 8[02-57-9]| + 9[13] + )| + 4(?: + 2[28]| + 3[689]| + 6[035-7]| + 7[05689]| + 80| + 9[3-5] + )| + 5(?: + 3[1-36-9]| + 4[4578]| + 5[013-8]| + 6[1-9]| + 7[2-8]| + 8[14-7]| + 9[4-9] + )| + 7(?: + 2[15]| + 3[5-9]| + 4[02-9]| + 6[135-8]| + 7[0-4689]| + 9[014-9] + )| + 8(?: + 2[49]| + 3[3-8]| + 4[5-8]| + 5[2-9]| + 6[35-9]| + 7[579]| + 8[03-579]| + 9[2-8] + )| + 9(?: + [23]0| + 4[02-46-9]| + 5[0245-79]| + 6[4-9]| + 7[2-47-9]| + 8[02-7]| + 9[3-7] + ) + + + 1(?: + 2[3-6]| + 3[3-9]| + 4[2-6]| + 5(?: + [236-8]| + [45][2-69] + )| + [68][2-7]| + 7[2-689]| + 9[1-578] + )| + 2(?: + 2(?: + [04-9]| + 3[23] + )| + 3[3-58]| + 4[0-468]| + 5(?: + 5[78]| + 7[2-4]| + [0468][2-9] + )| + 6(?: + [0135-8]| + 4[2-5] + )| + 7(?: + [0679]| + 8[2-7] + )| + 8(?: + [024578]| + 3[25-9]| + 9[6-9] + )| + 9(?: + 11| + 3[2-4] + ) + )| + 4(?: + 2(?: + 2[2-9]| + 8[237-9] + )| + 3[689]| + 6[035-7]| + 7(?: + [059][2-8]| + [68] + )| + 80| + 9[3-5] + )| + 5(?: + 3[1-36-9]| + 4[4578]| + 5[013-8]| + 6[1-9]| + 7[2-8]| + 8[14-7]| + 9(?: + [89][2-8]| + [4-7] + ) + )| + 7(?: + 2[15]| + 3[5-9]| + 4[02-9]| + 6[135-8]| + 7[0-4689]| + 9(?: + [017-9]| + 4[6-8]| + 5[2-478]| + 6[2-589] + ) + )| + 8(?: + 2(?: + 4[4-8]| + 9[2-8] + )| + 3(?: + 7[2-56]| + [3-6][2-9]| + 8[2-5] + )| + 4[5-8]| + 5[2-9]| + 6(?: + [37]| + 5[4-7]| + 6[2-9]| + 8[2-8]| + 9[236-9] + )| + 7[579]| + 8[03-579]| + 9[2-8] + )| + 9(?: + [23]0| + 4[02-46-9]| + 5[0245-79]| + 6[4-9]| + 7[2-47-9]| + 8[02-7]| + 9(?: + 3[34]| + [4-7] + ) + ) + + + 1(?: + 2[3-6]| + 3[3-9]| + 4[2-6]| + 5(?: + [236-8]| + [45][2-69] + )| + [68][2-7]| + 7[2-689]| + 9[1-578] + )| + 2(?: + 2(?: + [04-9]| + 3[23] + )| + 3[3-58]| + 4[0-468]| + 5(?: + 5[78]| + 7[2-4]| + [0468][2-9] + )| + 6(?: + [0135-8]| + 4[2-5] + )| + 7(?: + [0679]| + 8[2-7] + )| + 8(?: + [024578]| + 3[25-9]| + 9[6-9] + )| + 9(?: + 11| + 3[2-4] + ) + )| + 4(?: + 2(?: + 2[2-9]| + 8[237-9] + )| + 3[689]| + 6[035-7]| + 7(?: + [059][2-8]| + [68] + )| + 80| + 9[3-5] + )| + 5(?: + 3[1-36-9]| + 4[4578]| + 5[013-8]| + 6[1-9]| + 7[2-8]| + 8[14-7]| + 9(?: + [89][2-8]| + [4-7] + ) + )| + 7(?: + 2[15]| + 3[5-9]| + 4[02-9]| + 6[135-8]| + 7[0-4689]| + 9(?: + [017-9]| + 4[6-8]| + 5[2-478]| + 6[2-589] + ) + )| + 8(?: + 2(?: + 4[4-8]| + 9(?: + [3578]| + 20| + 4[04-9]| + 6[56] + ) + )| + 3(?: + 7(?: + [2-5]| + 6[0-59] + )| + [3-6][2-9]| + 8[2-5] + )| + 4[5-8]| + 5[2-9]| + 6(?: + [37]| + 5(?: + [467]| + 5[014-9] + )| + 6(?: + [2-8]| + 9[02-69] + )| + 8[2-8]| + 9(?: + [236-8]| + 9[23] + ) + )| + 7[579]| + 8[03-579]| + 9[2-8] + )| + 9(?: + [23]0| + 4[02-46-9]| + 5[0245-79]| + 6[4-9]| + 7[2-47-9]| + 8[02-7]| + 9(?: + 3(?: + 3[02-9]| + 4[0-24689] + )| + 4[2-69]| + [5-7] + ) + ) + + + 1(?: + 2[3-6]| + 3[3-9]| + 4[2-6]| + 5(?: + [236-8]| + [45][2-69] + )| + [68][2-7]| + 7[2-689]| + 9[1-578] + )| + 2(?: + 2(?: + [04-9]| + 3[23] + )| + 3[3-58]| + 4[0-468]| + 5(?: + 5[78]| + 7[2-4]| + [0468][2-9] + )| + 6(?: + [0135-8]| + 4[2-5] + )| + 7(?: + [0679]| + 8[2-7] + )| + 8(?: + [024578]| + 3[25-9]| + 9[6-9] + )| + 9(?: + 11| + 3[2-4] + ) + )| + 4(?: + 2(?: + 2[2-9]| + 8[237-9] + )| + 3[689]| + 6[035-7]| + 7(?: + [059][2-8]| + [68] + )| + 80| + 9[3-5] + )| + 5(?: + 3[1-36-9]| + 4[4578]| + 5[013-8]| + 6[1-9]| + 7[2-8]| + 8[14-7]| + 9(?: + [89][2-8]| + [4-7] + ) + )| + 7(?: + 2[15]| + 3[5-9]| + 4[02-9]| + 6[135-8]| + 7[0-4689]| + 9(?: + [017-9]| + 4[6-8]| + 5[2-478]| + 6[2-589] + ) + )| + 8(?: + 2(?: + 4[4-8]| + 9(?: + [3578]| + 20| + 4[04-9]| + 6(?: + 5[25]| + 60 + ) + ) + )| + 3(?: + 7(?: + [2-5]| + 6[0-59] + )| + [3-6][2-9]| + 8[2-5] + )| + 4[5-8]| + 5[2-9]| + 6(?: + [37]| + 5(?: + [467]| + 5[014-9] + )| + 6(?: + [2-8]| + 9[02-69] + )| + 8[2-8]| + 9(?: + [236-8]| + 9[23] + ) + )| + 7[579]| + 8[03-579]| + 9[2-8] + )| + 9(?: + [23]0| + 4[02-46-9]| + 5[0245-79]| + 6[4-9]| + 7[2-47-9]| + 8[02-7]| + 9(?: + 3(?: + 3[02-9]| + 4[0-24689] + )| + 4[2-69]| + [5-7] + ) + ) + + $1-$2-$3 + + + + 1| + 2(?: + 23| + 5[5-89]| + 64| + 78| + 8[39]| + 91 + )| + 4(?: + 2[2689]| + 64| + 7[347] + )| + 5(?: + [2-589]| + 39 + )| + 60| + 8(?: + [46-9]| + 3[279]| + 2[124589] + )| + 9(?: + [235-8]| + 93 + ) + + + 1| + 2(?: + 23| + 5(?: + [57]| + [68]0| + 9[19] + )| + 64| + 78| + 8[39]| + 917 + )| + 4(?: + 2(?: + [68]| + 20| + 9[178] + )| + 64| + 7[347] + )| + 5(?: + [2-589]| + 39[67] + )| + 60| + 8(?: + [46-9]| + 3[279]| + 2[124589] + )| + 9(?: + [235-8]| + 93[34] + ) + + + 1| + 2(?: + 23| + 5(?: + [57]| + [68]0| + 9(?: + 17| + 99 + ) + )| + 64| + 78| + 8[39]| + 917 + )| + 4(?: + 2(?: + [68]| + 20| + 9[178] + )| + 64| + 7[347] + )| + 5(?: + [2-589]| + 39[67] + )| + 60| + 8(?: + [46-9]| + 3[279]| + 2[124589] + )| + 9(?: + [235-8]| + 93(?: + 31| + 4 + ) + ) + + $1-$2-$3 + + + + 2(?: + 9[14-79]| + 74| + [34]7| + [56]9 + )| + 82| + 993 + + $1-$2-$3 + + + + 3| + 4(?: + 2[09]| + 7[01] + )| + 6[1-9] + + $1-$2-$3 + + + [2479] + $1-$2-$3 + + + + \d{9,10} + \d{9,10} + + + + (?: + 1(?: + 1[236-8]| + 2[3-6]| + 3[3-9]| + 4[2-6]| + [58][2-8]| + 6[2-7]| + 7[2-9]| + 9[1-8] + )| + 2[2-9]\d| + [36][1-9]\d| + 4(?: + 6[0235-8]| + [2-578]\d| + 9[2-59] + )| + 5(?: + 6[1-9]| + 7[2-8]| + [2-589]\d + )| + 7(?: + 3[4-9]| + 4[02-9]| + [25-9]\d + )| + 8(?: + 3[2-9]| + 4[5-9]| + 5[1-9]| + 8[03-9]| + [2679]\d + )| + 9(?: + [679][1-9]| + [2-58]\d + ) + )\d{6} + + \d{9} + 312345678 + + + [7-9]0\d{8} + \d{10} + 7012345678 + + + + 120\d{6} + \d{9} + 120123456 + + + 990\d{6} + \d{9} + 990123456 + + + + 60\d{7} + \d{9} + 601234567 + + + 50\d{8} + \d{10} + 5012345678 + + + + + + + + + + [2-6]| + 91 + + $1 $2 + + + + [78]| + 90 + + $1 $2 + + + + \d{6,10} + \d{4,10} + + + + (?: + 20| + 4[0-6]| + 5\d| + 6[0-24-9] + )\d{4,7} + + \d{4,9} + 202012345 + + + + + 7(?: + 1[0-6]| + 2\d| + 3[2-8]| + 5[0-2]| + 7[023] + )\d{6} + + \d{9} + 712123456 + + + + + 8(?: + 00| + 88 + )\d{6,7} + + \d{9,10} + 800123456 + + + + 9(?: + 00| + 1 + )\d{6,7} + + \d{8,10} + 900123456 + + + + + + + + + + 31[25]| + [5-8] + + $1 $2 $3 + + + + 3(?: + 1[36]| + [2-9] + ) + + $1 $2 + + + + [356-8]\d{8} + \d{5,9} + + + + (?: + 3(?: + 1(?: + 2\d| + 3[1-9]| + 52| + 6[1-8] + )| + 2(?: + 22| + 3[0-479]| + 6[0-7] + )| + 4(?: + 22| + 5[6-9]| + 6[0-4] + )| + 5(?: + 22| + 3[4-7]| + 59| + 6[0-5] + )| + 6(?: + 22| + 5[35-7]| + 6[0-3] + )| + 7(?: + 22| + 3[468]| + 4[1-8]| + 59| + 6\d| + 7[5-7] + )| + 9(?: + 22| + 4[1-7]| + 6[0-8] + ) + )| + 6(?: + 09| + 12| + 2[2-4] + )\d + )\d{5} + + 312123456 + + + + + 5[124-7]\d{7}| + 7(?: + 0[05]| + 7\d + )\d{6} + + \d{9} + 700123456 + + + 800\d{6} + \d{9} + 800123456 + + + + + + + + + + + 1\d[1-9]| + [2-9] + + $1 $2 $3 + + + 1[89]0 + $1 $2 $3 + + + + [1-9]\d{7,9} + \d{6,10} + + + + (?: + 2[3-6]| + 3[2-6]| + 4[2-4]| + [5-7][2-5] + )[2-47-9]\d{5} + + \d{6,8} + 23456789 + + + + + (?: + (?: + 1[0-35-9]| + 9[1-49] + )[1-9]| + 8(?: + 0[89]| + 5[2-689] + ) + )\d{5} + + \d{8} + 91234567 + + + + 1800(?: + 1\d| + 2[09] + )\d{4} + + \d{10} + 1800123456 + + + + 1900(?: + 1\d| + 2[09] + )\d{4} + + \d{10} + 1900123456 + + + + + + + + + $1 + + + + [2-689]\d{4} + \d{5} + + + + (?: + [234]\d| + 50| + 8[1-5] + )\d{3} + + 31234 + + + [69]\d{4} + 61234 + + + + 10(?: + [0-8]| + 5[01259] + )| + 99[234] + + \d{3,4} + 992 + + + + + + + + + $1 $2 $3 + + + + [37]\d{6} + \d{7} + + + + + 7(?: + 6[0-37-9]| + 7[0-57-9] + )\d{4} + + 7712345 + + + 3[23]\d{5} + 3212345 + + + + + + + + + [589]\d{9} + \d{7}(?:\d{3})? + + + + 869(?: + 2(?: + 29| + 36 + )| + 4(?: + 6[5-9]| + 70 + ) + )\d{4} + + 8692361234 + + + + 869(?: + 5(?: + 5[6-8]| + 6[5-7] + )| + 66[2-9]| + 76[2-5] + )\d{4} + + \d{10} + 8695561234 + + + + 8(?: + 00| + 55| + 66| + 77| + 88 + )[2-9]\d{6} + + \d{10} + 8002123456 + + + 900[2-9]\d{6} + \d{10} + 9002123456 + + + + + 5(?: + 00| + 33| + 44 + )[2-9]\d{6} + + \d{10} + 5002345678 + + + + + + + + + + + + + + + + + + + 1(?: + 0| + 1[19]| + [69]9| + 5[458] + )| + [57]0 + + + 1(?: + 0| + 1[19]| + [69]9| + 5(?: + 44| + 59| + 8 + ) + )| + [57]0 + + $1-$2-$3 + + + + 1(?: + [169][2-8]| + [78]| + 5[1-4] + )| + [68]0| + [3-9][1-9][2-9] + + + 1(?: + [169][2-8]| + [78]| + 5(?: + [1-3]| + 4[56] + ) + )| + [68]0| + [3-9][1-9][2-9] + + $1-$2-$3 + + + 131 + 1312 + $1-$2-$3 + + + 131 + 131[13-9] + $1-$2-$3 + + + 13[2-9] + $1-$2-$3 + + + 30 + $1-$2-$3-$4 + + + + 2(?: + [26]| + 3[0-467] + ) + + + 2(?: + [26]| + 3(?: + 01| + 1[45]| + 2[17-9]| + 39| + 4| + 6[67]| + 7[078] + ) + ) + + $1-$2-$3 + + + + 2(?: + 3[0-35-9]| + [457-9] + ) + + + 2(?: + 3(?: + 0[02-9]| + 1[0-36-9]| + 2[02-6]| + 3[0-8]| + 6[0-589]| + 7[1-69]| + [589] + )| + [457-9] + ) + + $1-$2-$3 + + + 21[0-46-9] + $1-$2 + + + [3-9][1-9]1 + + [3-9][1-9]1(?: + [0-46-9] + ) + + $1-$2 + + + + + 1(?: + 5[46-9]| + 6[04678] + ) + + + 1(?: + 5(?: + 44| + 66| + 77| + 88| + 99 + )| + 6(?: + 00| + 44| + 6[16]| + 70| + 88 + ) + ) + + $1-$2 + + + + + [1-79]\d{3,9}| + 8\d{8} + + \d{4,10} + + + + (?: + 2| + [34][1-3]| + 5[1-5]| + 6[1-4] + )(?: + 1\d{2,3}| + [2-9]\d{6,7} + ) + + \d{4,10} + 22123456 + + + 1[0-25-9]\d{7,8} + \d{9,10} + 1023456789 + + + 80\d{7} + \d{9} + 801234567 + + + + 60[2-9]\d{6} + \d{9} + 602345678 + + + 50\d{8} + \d{10} + 5012345678 + + + 70\d{8} + \d{10} + 7012345678 + + + + 1(?: + 5(?: + 44| + 66| + 77| + 88| + 99 + )| + 6(?: + 00| + 44| + 6[16]| + 70| + 88 + ) + )\d{4} + + \d{8} + 15441234 + + + + + + + + + + [1269] + $1 $2 + + + 5 + $1 $2 + + + + [12569]\d{6,7} + \d{7,8} + + + + (?: + 18\d| + 2(?: + [23]\d{2}| + 4[1-35-9]\d| + 5(?: + 0[034]| + [2-46]\d| + 5[1-3]| + 7[1-7] + ) + ) + )\d{4} + + 22345678 + + + + (?: + 5(?: + 0[0-2]| + 5\d + )| + 6(?: + 0[034679]| + 5[015-9]| + 6\d| + 7[067]| + 99 + )| + 9(?: + 0[09]| + 4[049]| + 66| + [79]\d + ) + )\d{5} + + \d{8} + 50012345 + + + + 1\d{2} + \d{3} + 177 + + + + + + + + + [3589]\d{9} + \d{7}(?:\d{3})? + + + + 345(?: + 2(?: + 22| + 44 + )| + 444| + 6(?: + 23| + 38| + 40 + )| + 7(?: + 6[6-9]| + 77 + )| + 8(?: + 00| + 1[45]| + 25| + 4[89]| + 88 + )| + 9(?: + 14| + 4[035-9] + ) + )\d{4} + + 3452221234 + + + + 345(?: + 32[3-79]| + 5(?: + 1[467]| + 2[5-7]| + 4[5-9] + )| + 9(?: + 1[679]| + 2[4-9]| + 3[89] + ) + )\d{4} + + \d{10} + 3453231234 + + + + 8(?: + 00| + 55| + 66| + 77| + 88 + )[2-9]\d{6} + + \d{10} + 8002345678 + + + + 900[2-9]\d{6}| + 345976\d{4} + + \d{10} + 9002345678 + + + + + 5(?: + 00| + 33| + 44 + )[2-9]\d{6} + + \d{10} + 5002345678 + + + + + + + + + + (?: + 7\d{2}| + 80[09] + )\d{7} + + \d{10} + + + 751\d{7} + \d{10} + 7511234567 + + + + + 7(?: + 1(?: + 0(?: + [23]\d| + 4[023]| + 59| + 63 + )| + 1(?: + [23]\d| + 4[0-79]| + 59 + )| + 2(?: + [23]\d| + 59 + )| + 3(?: + 2\d| + 3[1-79]| + 4[0-35-9]| + 59 + )| + 4(?: + 2\d| + 3[013-79]| + 4[0-8]| + 5[1-79] + )| + 5(?: + 2\d| + 3[1-8]| + 4[1-7]| + 59 + )| + 6(?: + 2\d| + [34]\d| + 5[19]| + 61 + )| + 72\d| + 8(?: + [27]\d| + 3[1-46-9]| + 4[0-5]| + ) + )| + 2(?: + 1(?: + [23]\d| + 4[46-9]| + 5[3469] + )| + 2(?: + 2\d| + 3[0679]| + 46| + 5[12679]| + )| + 3(?: + [234]\d| + 5[139]| + )| + 4(?: + 2\d| + 3[1235-9]| + 59 + )| + 5(?: + [23]\d| + 4[01246-8]| + 59| + 61 + )| + 6(?: + 2\d| + 3[1-9]| + 4[0-4]| + 59 + )| + 7(?: + [23]\d| + 40| + 5[279]| + 7\d + )| + 8(?: + [23]\d| + 4[0-3]| + 59 + )| + 9(?: + 2\d| + 3[124578]| + 59 + ) + )| + 3622 + )\d{5} + + 7123456789 + + + + 7(?: + 0[01257]\d{2}| + 6[02-4]\d{2}| + 7[157]\d{2} + )\d{5} + + 7710009998 + + + 800\d{7} + 8001234567 + + + 809\d{7} + 8091234567 + + + 751\d{7} + 7511234567 + + + + + + + + + 20 + $1 $2 $3 $4 + + + + 21| + [3-57] + + $1 $2 $3 + + + + [2-57]\d{7,9} + \d{6,10} + + + + (?: + [2-57]1| + 54 + )\d{6} + + \d{6,8} + 21212862 + + + + 20(?: + 2[23]| + 5[4-6]| + 77| + 9[89] + )\d{6} + + \d{10} + 2023123456 + + + + + + + + + + + + [13-6]| + 7(?: + [2-57-9]| + 62)| + [89][2-9] + + $1 $2 $3 + + + + [89][01]| + 7(?: + [01]| + 6[67]) + + $1 $2 $3 + + + + [13-9]\d{6,7} + \d{7,8} + + + + (?: + [14-6]\d{2}| + 7(?: + [2-57-9]\d| + 62)| + [89][2-9]\d + )\d{4} + + \d{7} + 1123456 + + + + (?: + 3\d| + 7(?: + [01]\d| + 6[67] + ) + )\d{5} + + \d{7,8} + 71123456 + + + 9[01]\d{6} + \d{8} + 90123456 + + + 8[01]\d{6} + \d{8} + 80123456 + + + + + + + + + [5789]\d{9} + \d{7}(?:\d{3})? + + + + 758(?: + 234| + 4(?: + 5[0-9]| + 6[2-9]| + 8[0-2] + )| + 638| + 758 + )\d{4} + + 7582345678 + + + + + 758(?: + 28[4-7]| + 384| + 4(?: + 6[01]| + 8[4-9] + )| + 5(?: + 1[89]| + 20| + 84 + )| + 7(?: + 1[2-9]| + 2[0-4] + ) + )\d{4} + + \d{10} + 7582845678 + + + + 8(?: + 00| + 55| + 66| + 77| + 88 + )[2-9]\d{6} + + \d{10} + 8002123456 + + + 900[2-9]\d{6} + \d{10} + 9002123456 + + + + + 5(?: + 00| + 33| + 44 + )[2-9]\d{6} + + \d{10} + 5002345678 + + + + + + + + + + + [23]| + 7[4-9]| + 87 + + $1 $2 $3 + + + 6 + $1 $2 $3 + + + [7-9]0 + $1 $2 $3 + + + + [89]0 + 0$1 $2 $3 $4 + + + + + (?: + 66| + 80| + 90 + )\d{7}| + [237-9]\d{6} + + \d{7,9} + + + + + (?: + 2(?: + 17| + 3\d| + 6[02-58]| + 96 + )| + 3(?: + 02| + 7[01357]| + 8[048]| + 9[0269] + )| + 870 + )\d{4} + + \d{7} + 2345678 + + + + 66(?: + [0178][0-4]| + 2[025-9]| + [36]\d| + 4[129]| + 5[45]| + 9[019] + )\d{5}| + 7(?: + 4[2-59]| + 56| + [6-9]\d + )\d{4} + + \d{7,9} + 661234567 + + + + 80(?: + 0(?: + 07| + 2[238]| + 79| + \d{4} + )| + 9\d{2} + )\d{2} + + \d{7,9} + 8002222 + + + + 90(?: + 0(?: + 2[278]| + 79| + \d{4} + )| + 1(?: + 23| + \d{4} + )| + 6(?: + 66| + \d{4} + ) + )\d{2} + + \d{7,9} + 9002222 + + + 701\d{4} + \d{7} + 7011234 + + + + + + + + + + [1-689] + $1 $2 $3 + + + 7 + $1 $2 $3 + + + + [1-9]\d{8} + \d{7,9} + + + + (?: + [189]1| + 2[13-7]| + 3[1-8]| + 4[157]| + 5[12457]| + 6[35-7] + )[2-57]\d{6} + + 112345678 + + + 7[12578]\d{7} + \d{9} + 712345678 + + + + + + + + + + [279] + $1 $2 $3 + + + [4-6] + $1 $2 $3 + + + + + (?: + [279]\d| + [4-6] + )\d{6} + + \d{7,8} + + + 2\d{7} + \d{8} + 21234567 + + + + + (?: + 4[67]| + 5\d| + 6[4-8]| + 7\d{2} + )\d{5} + + 4612345 + + + + 90\d{6} + \d{8} + 90123456 + + + + + + + + + + $1 $2 + + + + [2568]\d{7} + \d{8} + + + 2\d{7} + 22123456 + + + [56]\d{7} + 50123456 + + + 800[256]\d{4} + 80021234 + + + + + + + + + + + 37| + 4(?: + 1| + 5[45]| + 6[2-4] + ) + + $1 $2 $3 $4 + + + + + 3[148]| + 4(?: + [24]| + 6[09] + )| + 5(?: + [0189]| + 28 + )| + [689] + + $1 $2 $3 + + + 52[0-79] + $1 $2 $3 + + + + [3-9]\d{7} + \d{8} + + + + (?: + 3[1478]| + 4[124-6]| + 52 + )\d{6} + + 31234567 + + + 6\d{7} + 61234567 + + + 800\d{5} + 80012345 + + + 90[0239]\d{5} + 90012345 + + + + + + + + + + + [23-5]| + 7[1-9]| + [89](?: + [1-9]| + 0[2-9] + ) + + $1 $2 + + + + [23-5]| + 7[1-9]| + [89](?: + [1-9]| + 0[2-9] + ) + + $1 $2 $3 + + + 20 + $1 $2 $3 + + + + + 2(?: + [0367]| + 4[3-8] + ) + + $1 $2 $3 $4 + + + 20 + $1 $2 $3 $4 + + + + 2(?: + [0367]| + 4[3-8] + ) + + $1 $2 $3 $4 $5 + + + + 2(?: + [12589]| + 4[12] + )| + [3-5]| + 7[1-9]| + [89](?: + [1-9]| + 0[2-9] + ) + + $1 $2 $3 $4 + + + + [89]0[01]| + 70 + + $1 $2 $3 + + + 6 + $1 $2 $3 + + + + + + [24-9]\d{3,10}| + 3(?: + [0-46-9]\d{2,9}| + 5[013-9]\d{1,8} + ) + + \d{4,11} + + + + + (?: + 2(?: + 2\d{1,2}| + 3[2-9]| + [67]\d| + 4[1-8]\d?| + 5[1-5]\d?| + 9[0-24-9]\d? + )| + 3(?: + [059][05-9]| + [13]\d| + [26][015-9]| + 4[0-26-9]| + 7[0-389]| + 8[08] + )\d?| + 4\d{2,3}| + 5(?: + [01458]\d| + [27][0-69]| + 3[0-3]| + [69][0-7] + )\d?| + 7(?: + 1[019]| + 2[05-9]| + 3[05]| + [45][07-9]| + [679][089]| + 8[06-9] + )\d?| + 8(?: + 0[2-9]| + 1[0-36-9]| + 3[3-9]| + [469]9| + [58][7-9]| + 7[89] + )\d?| + 9(?: + 0[89]| + 2[0-49]| + 37| + 49| + 5[0-27-9]| + 7[7-9]| + 9[0-478] + )\d? + )\d{1,7} + + 27123456 + + + 6[269][18]\d{6} + \d{9} + 628123456 + + + 800\d{5} + \d{8} + 80012345 + + + 90[01]\d{5} + \d{8} + 90012345 + + + 801\d{5} + \d{8} + 80112345 + + + 70\d{6} + \d{8} + 70123456 + + + 20\d{2,8} + \d{4,10} + 2012345 + + + + 1(?: + 1[23]| + 2\d{3} + ) + + \d{3,5} + 12123 + + + + + + + + + $1 $2 $3 + + + + [2689]\d{7} + \d{8} + + + 6\d{7} + 61234567 + + + 2\d{7} + 21234567 + + + 80\d{6} + 80123456 + + + 90\d{6} + 90123456 + + + + + + + + + + $1-$2 + + + + [25679]\d{8} + \d{7,9} + + + + (?: + 2[1345]| + 5[1347]| + 6[123479]| + 71 + )\d{7} + + 212345678 + + + + 9[1-6]\d{7} + \d{9} + 912345678 + + + + + + + + + + + 5(?: + 2[015-7]| + 3[0-4] + )| + 6 + + $1-$2 + + + + 5(?: + 2[2-489]| + 3[5-9] + )| + 892 + + + 5(?: + 2(?: + [2-48]| + 90 + )| + 3(?: + [5-79]| + 80 + ) + )| + 892 + + $1-$2 + + + + 5(?: + 29| + 38 + ) + + + 5(?: + 29| + 38 + )[89] + + $1-$2 + + + + 8(?: + 0| + 9[013-9] + ) + + $1-$2 + + + + [5689]\d{8} + + \d{9} + + + + 5(?: + 2(?: + (?: + [015-7]\d| + 2[2-9]| + 3[2-57]| + 4[2-8]| + 8[235-9]| + )\d| + 9(?: + 0\d| + [89]0 + ) + )| + 3(?: + (?: + [0-4]\d| + [57][2-9]| + 6[235-8]| + 9[3-9] + )\d| + 8(?: + 0\d| + [89]0 + ) + ) + )\d{4} + + 520123456 + + + + 6(?: + 0[06]| + [14-7]\d| + 2[236]| + 33| + 99 + )\d{6} + + 650123456 + + + 80\d{7} + 801234567 + + + 89\d{7} + 891234567 + + + + + + + + + + + [89] + $1 $2 $3 $4 + + + 4 + $1 $2 $3 + + + 6 + $1 $2 $3 $4 $5 + + + + [4689]\d{7,8} + \d{8,9} + + + 8\d{7} + \d{8} + + + + 9[2-47-9]\d{6} + \d{8} + 99123456 + + + + + 6\d{8}| + 4\d{7} + + 612345678 + + + + (?: + 8\d| + 90 + )\d{6} + + \d{8} + 90123456 + + + + + + + + + 22 + $1 $2 $3 + + + + 2[13-79]| + [5-7] + + $1 $2 $3 + + + [89] + $1 $2 + + + + [256-9]\d{7} + \d{8} + + + + (?: + 2(?: + 1[0569]| + 2\d| + 3[015-7]| + 4[1-46-9]| + 5[0-24689]| + 6[2-589]| + 7[1-37]| + 9[1347-9] + )| + 5(?: + 33| + 5[257] + ) + )\d{5} + + \d{5,8} + 22212345 + + + + + (?: + 6(?: + 50| + 7[12]| + [89]\d + )| + 7(?: + 80| + 9\d + ) + )\d{5} + + 65012345 + + + 800\d{5} + 80012345 + + + 900\d{5} + 90012345 + + + + + + + + + [2-57-9]|6[3789] + + [2-57-9]| + 6(?: + [389]| + 7(?: + [0-8]| + 9[3-9] + ) + ) + + $1 $2 $3 + + + 679 + 679[0-2] + $1 $2 $3 $4 + + + + [2-9]\d{7,8} + \d{6,9} + + + + + (?: + 20[2-8]| + 3(?: + 0[2-7]| + 1[35-7]| + 2[367]| + 3[4-7] + )| + 4(?: + 0[237]| + 1[2467] + )| + 5(?: + 0[47]| + 1[27]| + 2[378] + ) + )\d{5} + + \d{6,8} + 30234567 + + + + + 6(?: + 32\d| + [89]\d{2}| + 7(?: + [0-8]\d| + 9(?: + [3-9]| + [0-2]\d + ) + ) + )\d{4} + + + \d{8,9} + 67622901 + + + + 800[28]\d{4} + \d{8} + 80080002 + + + + + (?: + 88\d| + 9(?: + 4[13-8]| + 5[16-8] + ) + )\d{5} + + \d{8} + 94515151 + + + + 78[134579]\d{5} + \d{8} + 78108780 + + + + 77\d{6} + \d{8} + 77273012 + + + + + 1(?: + 16\d{3}| + 2\d{1,2}| + [0135]\d{2}| + 4\d{2,3}| + 9\d{3} + ) + + \d{3,6} + 123 + + + + + + + + + $1 $2 $3 $4 + + + + [23]\d{8} + \d{7,9} + + + + + 2(?: + 0(?: + (?: + 2\d| + 4[47]| + 5[3467]| + 6[279]| + 8[268]| + 9[245] + )\d| + 7(?: + 2[29]| + [35]\d + ) + )| + 210\d + )\d{4} + + 202123456 + + + + 3[02-4]\d{7} + \d{9} + 301234567 + + + + + + + + + [56]\d{8} + \d{9} + + + + 590(?: + 10| + 2[79]| + 5[128]| + [78]7 + )\d{4} + + 590271234 + + + + 690(?: + 10| + 2[27]| + 66| + 77| + 8[78] + )\d{4} + + 690221234 + + + + + + + + + + + + + + 2 + $1 $2 $3 + + + [347] + $1 $2 $3 + + + [58] + $1 $2 $3 $4 + + + + [2-578]\d{7} + \d{8} + + + + (?: + 2(?: + [23]\d| + 5[125]| + 61 + )| + 3(?: + 1[3-6]| + 2[2-6]| + 3[2-5]| + 4[235] + )| + 4(?: + [23][2-6]| + 4[3-6]| + 5[25]| + 6[25-8]| + 7[24-6]| + 8[4-6] + ) + )\d{5} + + \d{6,8} + 22212345 + + + 7[0-25-8]\d{6} + 72345678 + + + 800\d{5} + 80012345 + + + 5[02-9]\d{6} + 50012345 + + + + 8(?: + 0[1-9]| + [1-9]\d + )\d{5} + + 80123456 + + + + + + + + + + $1 $2 $3 $4 + + + + [246-8]\d{7} + \d{8} + + + + + (?: + 2(?: + 0(?: + 2[0-589]| + 7[027-9] + )| + 1(?: + 2[5-7]| + [3-689]\d + ) + )| + 442\d + )\d{4} + + 20212345 + + + + (?: + 6(?: + [569]\d + )| + 7(?: + [08][1-9]| + [3579][0-4]| + 4[014-7]| + 6\d + ) + )\d{5} + + 65012345 + + + + 800\d{5} + 80012345 + + + + + + + + + 1 + $1 $2 $3 + + + + 133 + 1333 + $1 $2 $3 $4 + + + 2 + $1 $2 $3 + + + [4-8] + $1 $2 $3 + + + + 94 + $1 $2 + + + 9[25689] + $1 $2 $3 + + + + + [124-8]\d{5,7}| + 9\d{7,8} + + \d{5,9} + + + + + (?: + 1\d| + 2| + 4[2-6]| + 5[2-9]| + 6\d| + 7[0-5]| + 8[1-6] + )\d{5}| + 1333\d{4} + + \d{5,8} + 1234567 + + + + 9(?: + [25689]\d| + 444 + )\d{5} + + \d{8,9} + 92123456 + + + + + + + + + + [12]1 + $1 $2 $3 + + + [12]2[1-3] + $1 $2 + + + + [12](?: + 27| + [3-5] + ) + + + [12](?: + 27| + [3-5]\d + )2 + + $1 $2 + + + + [57-9] + $1 $2 + + + + [12](?: + 27| + [3-5] + ) + + + [12](?: + 27| + [3-5]\d + )[4-9] + + $1 $2 + + + + + [12]\d{7,9}| + [57-9]\d{7} + + \d{6,10} + + + + + [12](?: + 1\d| + 2(?: + [1-3]\d?| + 7\d + )| + 3[2-8]\d{1,2}| + 4[2-68]\d{1,2}| + 5[1-4689]\d{1,2} + )\d{5}| + (?: + 5[0568]| + 70 + )\d{6} + + 70123456 + + + + + (?: + 8[89]| + 9[15689] + )\d{6} + + \d{8} + 88123456 + + + + 7[569]\d{6} + \d{8} + 75123456 + + + + + + + + + $1 $2 + + + + [268]\d{7} + \d{8} + + + + (?: + 28[2-57-9]| + 8[2-57-9]\d + )\d{5} + + 28212345 + + + + 6[26]\d{6} + 66123456 + + + + + + + + + + + [5689]\d{9} + \d{7}(?:\d{3})? + + + + 670(?: + 2(?: + 3[3-5]| + 88| + 56 + )| + 32[23]| + 4[38]3| + 532| + 6(?: + 64| + 70| + 8\d + ) + )\d{4} + + 6702345678 + + + + 670(?: + 2(?: + 3[3-5]| + 88| + 56 + )| + 32[23]| + 4[38]3| + 532| + 6(?: + 64| + 70| + 8\d + ) + )\d{4} + + 6702345678 + + + + 8(?: + 00| + 55| + 66| + 77| + 88 + )[2-9]\d{6} + + \d{10} + 8002123456 + + + 900[2-9]\d{6} + \d{10} + 9002123456 + + + + + 5(?: + 00| + 33| + 44 + )[2-9]\d{6} + + \d{10} + 5002345678 + + + + + + + + + + + + + + $1 $2 $3 $4 + + + + [2-48]\d{7} + \d{8} + + + + 25[08]\d{5}| + 35\d{6}| + 45[1-7]\d{5} + + 35123456 + + + + (?: + 2(?: + 2\d| + 70 + )| + 3(?: + 3\d| + 6[1-36]| + 7[1-3] + )| + 4(?: + 4\d| + 6[0457-9]| + 7[4-9] + ) + )\d{5} + + 22123456 + + + 800\d{5} + 80012345 + + + + + + + + + [5689]\d{9} + \d{7}(?:\d{3})? + + + 664491\d{4} + 6644912345 + + + 664492\d{4} + \d{10} + 6644923456 + + + + 8(?: + 00| + 55| + 66| + 77| + 88 + )[2-9]\d{6} + + \d{10} + 8002123456 + + + 900[2-9]\d{6} + \d{10} + 9002123456 + + + + + 5(?: + 00| + 33| + 44 + )[2-9]\d{6} + + \d{10} + 5002345678 + + + + + + + + + + $1 $2 + + + + [2579]\d{7} + \d{8} + + + + 2(?: + 0(?: + 1[0-6]| + [69]\d + )| + [1-357]\d{2} + )\d{4} + + 21001234 + + + + (?: + 7(?: + 210| + [79]\d{2}| + )| + 9(?: + 2[13]\d| + 696| + 8(?: + 1[1-3]| + 89| + 97 + )| + 9\d{2} + ) + )\d{4} + + 96961234 + + + 7117\d{4} + 71171234 + + + + 50(?: + 0(?: + 3[1679]| + 4\d + )| + [169]\d{2}| + 7[06]\d + )\d{3} + + 50031234 + + + + + + + + + + + $1 $2 + + + + [2-9]\d{6} + \d{7} + + + + + (?: + 2(?: + [034789]\d| + 1[0-8]| + 2[0-79] + )| + 4(?: + [013-8]\d| + 2[4-7] + )| + [56]\d{2}| + 8(?: + 14| + 3[129] + ) + )\d{4} + + 2012345 + + + + + (?: + 25\d| + 4(?: + 2[12389]| + 9\d + )| + 7\d{2}| + 87[15-7]| + 9[1-8]\d + )\d{4} + + 2512345 + + + 80[012]\d{4} + 8001234 + + + + 30\d{5} + 3012345 + + + + + + + + + + + [367]| + 9(?: + [1-9]| + 0[1-9] + ) + + $1-$2 + + + 900 + $1 $2 $3 + + + + + [367]\d{6}| + 9(?: + 00\d{7}| + \d{6} + ) + + \d{7,10} + + + + + (?: + 3(?: + 0[01]| + 3[0-59]| + )| + 6(?: + [567][02468]| + 8[024689]| + 90 + ) + )\d{4} + + \d{7} + 6701234 + + + + + (?: + 7[3-9]| + 9[6-9] + )\d{5} + + \d{7} + 7712345 + + + 781\d{4} + \d{7} + 7812345 + + + 900\d{7} + \d{10} + 9001234567 + + + + 1(?: + [19]0| + 23 + ) + + \d{3} + 123 + + + + + + + + + + [13-5] + $1 $2 $3 + + + 2 + $1 $2 $3 + + + 7 + $1 $2 $3 + + + [89] + $1 $2 $3 + + + + + + (?: + [13-5]| + [27]\d{2}| + [89](?: + \d{2} + )? + )\d{6} + + \d{7,9} + + + + (?: + 1[2-9]| + 21\d{2} + )\d{5} + + 1234567 + + + + (?: + [3-5]| + 77| + 8(?: + 8\d + )? | + 9(?: + 9\d + )? + )\d{6} + + 991234567 + + + + + + + + + + + + + + 33| + 55| + 81 + + $1 $2 $3 + + + + 33| + 55| + 81 + + $1 $2 $3 + + + + [2467]| + 3[12457-9]| + 5[89]| + 8[02-9]| + 9[0-35-9] + + $1 $2 $3 + + + + [2467]| + 3[12457-9]| + 5[89]| + 8[02-9]| + 9[0-35-9] + + $1 $2 $3 + + + + 1(?: + 33| + 55| + 81 + ) + + 045 $1 $2 $3 + + + + 1(?: + 33| + 55| + 81 + ) + + $1 $2 $3 $4 + + + + 1(?: + [2467]| + 3[12457-9]| + 5[89]| + 8[2-9]| + 9[1-35-9] + ) + + 045 $1 $2 $3 + + + + 1(?: + [2467]| + 3[12457-9]| + 5[89]| + 8[2-9]| + 9[1-35-9] + ) + + $1 $2 $3 $4 + + + + [1-9]\d{9,10} + \d{7,11} + + + + + (?: + 33| + 55| + 81 + )\d{8}| + (?: + 2(?: + 2[2-9]| + 3[1-35-8]| + 4[13-9]| + 7[1-689]| + 8[1-58]| + 9[467] + )| + 3(?: + 1[1-79]| + [2458][1-9]| + 7[1-8]| + 9[1-5] + )| + 4(?: + 1[1-57-9]| + [24-6][1-9]| + [37][1-8]| + 8[1-35-9]| + 9[2-689] + )| + 5(?: + 88| + 9[1-79] + )| + 6(?: + 1[2-68]| + [234][1-9]| + 5[1-3689]| + 6[12457-9]| + 7[1-7]| + 8[67]| + 9[4-8] + )| + 7(?: + [13467][1-9]| + 2[1-8]| + 5[13-9]| + 8[1-69]| + 9[17] + )| + 8(?: + 2[13-689]| + 3[1-6]| + 4[124-6]| + 6[1246-9]| + 7[1-378]| + 9[12479] + )| + 9(?: + 1[346-9]| + 2[1-4]| + 3[2-46-8]| + 5[1348]| + [69][1-9]| + 7[12]| + 8[1-8] + ) + )\d{7} + + \d{7,10} + 2221234567 + + + + 1(?: + (?: + 33| + 55| + 81 + )\d{8}| + (?: + 2(?: + 2[2-9]| + 3[1-35-8]| + 4[13-9]| + 7[1-689]| + 8[1-58]| + 9[467] + )| + 3(?: + 1[1-79]| + [2458][1-9]| + 7[1-8]| + 9[1-5] + )| + 4(?: + 1[1-57-9]| + [24-6][1-9]| + [37][1-8]| + 8[1-35-9]| + 9[2-689] + )| + 5(?: + 88| + 9[1-79] + )| + 6(?: + 1[2-68]| + [2-4][1-9]| + 5[1-3689]| + 6[12457-9]| + 7[1-7]| + 8[67]| + 9[4-8] + )| + 7(?: + [13467][1-9]| + 2[1-8]| + 5[13-9]| + 8[1-69]| + 9[17] + )| + 8(?: + 2[13-689]| + 3[1-6]| + 4[124-6]| + 6[1246-9]| + 7[1-378]| + 9[12479] + )| + 9(?: + 1[346-9]| + 2[1-4]| + 3[2-46-8]| + 5[1348]| + [69][1-9]| + 7[12]| + 8[1-8] + ) + )\d{7} + ) + + \d{11} + 12221234567 + + + 800\d{7} + \d{10} + 8001234567 + + + 900\d{7} + \d{10} + 9001234567 + + + + + + + + + + [4-79] + $1-$2 $3 + + + 3 + $1-$2 $3 + + + + 1[0-46-9][1-9]| + 8 + + $1-$2 $3 + + + 1[36-8]0 + $1-$2-$3-$4 + + + 15 + $1-$2 $3 + + + + [13-9]\d{7,9} + \d{6,10} + + + + (?: + 3\d{2}| + [4-79]\d| + 8[2-9] + )\d{6} + + \d{6,9} + 312345678 + + + 1[0-46-9]\d{7} + \d{9} + 123456789 + + + 1[38]00\d{6} + \d{10} + 1300123456 + + + 1600\d{6} + \d{10} + 1600123456 + + + 1700\d{6} + \d{10} + 1700123456 + + + 154\d{7} + \d{10} + 1541234567 + + + + + + + + + + 2| + 8[24] + + $1 $2 $3 + + + 80 + $1 $2 $3 + + + + [28]\d{7,8} + \d{8,9} + + + + 2(?: + [1346]\d| + 5[0-2]| + [78][12]| + 93 + )\d{5} + + \d{8} + 21123456 + + + 8[24]\d{7} + \d{9} + 821234567 + + + + 800\d{6} + \d{9} + 800123456 + + + + + + + + + + 8[125] + $1 $2 $3 + + + 6 + $1 $2 $3 + + + 88 + $1 $2 $3 + + + 870 + $1 $2 $3 + + + + [68]\d{7,8} + \d{8,9} + + + + + 6(?: + 1(?: + 17| + 2(?: + [0189]\d| + [23-6]| + 7\d? + )| + 3(?: + 2\d| + 3[378] + )| + 4[01]| + 69| + 7[014] + )| + 2(?: + 17| + 25| + 5(?: + [0-36-8]| + 4\d? + )| + 69| + 70 + )| + 3(?: + 17| + 2(?: + [0237]\d?| + [14-689] + )| + 34| + 6[29]| + 7[01]| + 81 + )| + 4(?: + 17| + 2(?: + [012]| + 7? + )| + 4(?: + [06]| + 1\d + )| + 5(?: + [01357]| + [25]\d? + )| + 69| + 7[01] + )| + 5(?: + 17| + 2(?: + [0459]| + [23678]\d? + )| + 69| + 7[01] + )| + 6(?: + 17| + 2(?: + 5| + 6\d? + )| + 38| + 42| + 69| + 7[01] + )| + 7(?: + 17| + 2(?: + [569]| + [234]\d? + )| + 3(?: + 0\d?| + [13] + )| + 69| + 7[01] + ) + )\d{4} + + 612012345 + + + + + (?: + 60| + 8[125] + )\d{7} + + \d{9} + 811234567 + + + 8701\d{5} + \d{9} + 870123456 + + + 886\d{5} + \d{8} + 88612345 + + + + 1(?: + 0111| + \d{3} + )| + 9(?: + 3111| + \d{2} + ) + + \d{3,5} + 93111 + + + + + + + + + + + + + + [29]| + 09 + + $1 $2 $3 $4 + + + 08 + $1 $2 $3 + + + + [029]\d{7} + \d{8} + + + + + 2(?: + 0(?: + 20| + 3[1-7]| + 4[134]| + 5[14]| + 6[14578]| + 7[1-578] + )| + 1(?: + 4[145]| + 5[14]| + 6[14-68]| + 7[169]| + 88 + ) + )\d{4} + + 20201234 + + + + 9[03467]\d{6} + 93123456 + + + 08\d{6} + 08123456 + + + 09\d{6} + 09123456 + + + + + + + + + + 1 + $1 $2 + + + 3 + $1 $2 + + + + [13]\d{5} + \d{5,6} + + + + + (?: + 1(?: + 06| + 17| + 28| + 39 + )| + 3[012]\d + )\d{3} + + 106609 + + + 38\d{4} + 381234 + + + + + + + + + [129] + $1 $2 $3 + + + + [3-6]| + 7(?: + [1-79]| + 0[1-9] + )| + 8[2-9] + + $1 $2 $3 + + + + 70| + 8[01] + + $1 $2 $3 + + + [78]00 + $1 $2 $3 + + + [78]00 + $1 $2 $3 + + + 78 + $1 $2 $3 + + + + + [1-69]\d{5,8}| + [78]\d{5,13} + + \d{5,14} + + + + [12]\d{6,7}| + 9\d{7}| + (?: + 4[023568]| + 5[02368]| + 6[02-469]| + 7[569]| + 8[2-9] + )\d{6}| + (?: + 4[47]| + 5[14579]| + 6[1578]| + 7[0-357] + )\d{5,6}| + (?: + 78| + 41 + )\d{5} + + \d{5,9} + 12345678 + + + + + (?: + 70(?: + [3-9]\d| + 2[1-9] + )| + 8(?: + 0[2-9]| + 1[23689] + )\d + )\d{6} + + \d{10} + 8021234567 + + + + 800\d{7,11} + \d{10,14} + 80017591759 + + + 700\d{7,11} + \d{10,14} + 7001234567 + + + + + + + + + $1 $2 + + + + [128]\d{7} + \d{8} + + + 2\d{7} + 21234567 + + + 8\d{7} + 81234567 + + + 1800\d{4} + 18001234 + + + + + + + + + + + 1[035]| + 2[0346]| + 3[03568]| + 4[0356]| + 5[0358]| + 7| + 8[458] + + $1 $2 $3 + + + + 1[16-8]| + 2[259]| + 3[124]| + 4[17-9]| + 5[124679] + + $1 $2 $3 + + + 6 + $1 $2 + + + + 80| + 9 + + $1 $2 + + + + [1-9]\d{6,9} + \d{7,10} + + + + (?: + 1[0135-8]| + 2[02-69]| + 3[0-68]| + 4[0135-9]| + [57]\d| + 8[478] + )\d{7} + + \d{9} + 101234567 + + + 6[1-58]\d{7} + \d{9} + 612345678 + + + 800\d{4,7} + \d{7,10} + 8001234 + + + 90[069]\d{4,7} + \d{7,10} + 9001234 + + + 85\d{7} + \d{9} + + + + + + + + + + [489] + $1 $2 $3 + + + [235-7] + $1 $2 $3 $4 + + + + + 0\d{4}| + [2-9]\d{7} + + \d{5}(?:\d{3})? + + + + + (?: + 2[1-4]| + 3[1-3578]| + 5[1-35-7]| + 6[1-4679]| + 7[0-8] + )\d{6} + + \d{8} + 21234567 + + + + (?: + 4[015-8]| + 9\d + )\d{6} + + \d{8} + 41234567 + + + 80[01]\d{5} + \d{8} + 80012345 + + + 82[09]\d{5} + \d{8} + 82012345 + + + + 810(?: + 0[0-6]| + [2-8]\d + )\d{3} + + \d{8} + 81021234 + + + 880\d{5} + \d{8} + 88012345 + + + + + 0\d{4}| + 81(?: + 0(?: + 0[7-9]| + 1\d + )| + 5\d{2} + )\d{3} + + 01234 + + + + + + + + + + 1[4-6] + $1 $2 $3 + + + + 1[01]| + [2-8]| + 9[1-79] + + $1 $2 $3 + + + + 98 + $1 $2 $3 + + + + + [1-8]\d{5,7}| + 98[45]\d{7} + + \d{6,10} + + + + (?: + 1[014-6]| + 2[13-79]| + 3[135-8]| + 4[146-9]| + 5[135-7]| + 6[13-9]| + 7[15-9]| + 8[1-4679]| + 9[1-79] + )\d{6} + + \d{6,8} + 14567890 + + + + 98[45]\d{7} + \d{10} + 9841234567 + + + + + + + + + + $1 $2 + + + + [458]\d{6} + \d{7} + + + + (?: + 444| + 888 + )\d{4} + + 4441234 + + + 55[5-9]\d{4} + 5551234 + + + + 1(?: + 1[012]| + 23| + 92 + ) + + \d{3} + 110 + + + + + + + + + [1-5]\d{3} + \d{4} + + + + [34]\d{3} + 4002 + + + [125]\d{3} + 1234 + + + + + + + + + + + + [3467]| + 9[1-9] + + $1-$2 $3 + + + + + 21 + $1 $2 $3 + + + + + 2[0247-9]| + 5| + [89]00 + + $1 $2 $3 + + + + 2[0169]|86 + $1 $2 $3 + + + + 240 + 2409 + 24099 + $1 $2 + + + + + 6[235-9]\d{6}| + [2-57-9]\d{7,10} + + \d{7,11} + + + + (?: + 3[2-79]| + [49][2-689]| + 6[235-9]| + 7[2-589] + )\d{6}| + 24099\d{3} + + \d{7,8} + 32345678 + + + + + 2(?: + [079]\d{7}| + 1(?: + 0\d{5,7}| + [12]\d{5,6}| + [3-9]\d{5} + )| + [28]\d{7,8}| + 4[1-9]\d{6} + ) + + \d{8,10} + 211234567 + + + [28]6\d{6,7} + \d{8,9} + 26123456 + + + + + 508\d{6,7}| + 80\d{6,8} + + \d{8,10} + 800123456 + + + 90\d{7,9} + \d{9,11} + 900123456 + + + + + + + + + 2 + $1 $2 + + + 9 + $1 $2 + + + [58] + $1 $2 + + + + + (?: + 2[3-6]| + 5| + 9[2-9] + )\d{6}| + 800\d{5,6} + + \d{7,9} + + + 2[3-6]\d{6} + \d{8} + 23123456 + + + 9[2-9]\d{6} + \d{8} + 92123456 + + + + + 8007\d{4,5}| + 500\d{4} + + \d{7,9} + 80071234 + + + + + + + + + + + + + + + 1 + $1 $2 + + + [4-8] + $1 $2 + + + + 9 + $1 $2 $3 + + + + [14-9]\d{7,8} + \d{6,9} + + + + (?: + 1\d| + 4[1-4]| + 5[1-46]| + 6[1-7]| + 7[2-46]| + 8[2-4] + )\d{6} + + \d{6,8} + 11234567 + + + 9\d{8} + \d{9} + 912345678 + + + + + + + + + + + + + + [1-689] + $1 $2 + + + 7[1-36] + $1 $2 $3 + + + + [1-9]\d{6,7} + \d{7,8} + + + + + (?: + 3\d{2}| + 4[257]\d| + 5[34]\d| + 6(?: + 29| + 4[1-9] + )| + 85[02-46-9]| + 9[78]\d + )\d{4} + + \d{7} + 3123456 + + + + + (?: + 68| + 7(?: + [126]\d| + 3[1-9] + ) + )\d{5} + + \d{7,8} + 6812345 + + + 180\d{4} + \d{7} + 1801234 + + + + 275\d{4} + \d{7} + 2751234 + + + + + + + + + + 2 + $1 $2 $3 + + + + 3(?: + 23| + 39| + 46 + )| + 4(?: + 2[3-6]| + [35]9| + 4[26]| + 76 + )| + 5(?: + 22| + 44 + )| + 642| + 8(?: + 62| + 8[245] + ) + + + 3(?: + 230| + 397| + 461 + )| + 4(?: + 2(?: + 35| + [46]4| + 51 + )| + 396| + 4(?: + 22| + 63 + )| + 59[347]| + 76[15] + )| + 5(?: + 221| + 446 + )| + 642[23]| + 8(?: + 622| + 8(?: + [24]2| + 5[13] + ) + ) + + $1 $2 + + + + 346| + 4(?: + 27| + 9[35] + )| + 883 + + + 3469| + 4(?: + 279| + 9(?: + 30| + 56 + ) + )| + 8834 + + $1 $2 + + + + [3-8] + $1 $2 $3 + + + 9 + $1 $2 $3 + + + + 1 + $1 $2 $3 + + + 1 + $1 $2 $3 $4 + + + + + [2-9]\d{7,9}| + 1800\d{7,9} + + \d{7,13} + + + + (?: + 2| + 3[2-68]| + 4[2-9]| + 5[2-6]| + 6[2-58]| + 7[24578]| + 8[2-8] + )\d{7} + + \d{7,9} + 21234567 + + + + 9(?: + 0[5-9]| + 1[025-9]| + 2[0-36-9]| + 3[0235-9]| + 7[349]| + [89]9 + )\d{7} + + \d{10} + 9051234567 + + + + 1800\d{7,9} + \d{11,13} + 180012345678 + + + + + + + + + + + + + (?: + 2[125]| + 4[0-246-9]| + 5[1-35-7]| + 6[1-8]| + 7[14]| + 8[16]| + 91 + )1 + + + (?: + 2[125]| + 4[0-246-9]| + 5[1-35-7]| + 6[1-8]| + 7[14]| + 8[16]| + 91 + )11 + + + (?: + 2[125]| + 4[0-246-9]| + 5[1-35-7]| + 6[1-8]| + 7[14]| + 8[16]| + 91 + )111 + + $1 $2 $3 $4 + + + + 2[349]| + 45| + 54| + 60| + 72| + 8[2-5]| + 9[2-9] + + + (?: + 2[349]| + 45| + 54| + 60| + 72| + 8[2-5]| + 9[2-9] + )\d1 + + + (?: + 2[349]| + 45| + 54| + 60| + 72| + 8[2-5]| + 9[2-9] + )\d11 + + + (?: + 2[349]| + 45| + 54| + 60| + 72| + 8[2-5]| + 9[2-9] + )\d111 + + $1 $2 $3 $4 + + + + (?: + 2[125]| + 4[0-246-9]| + 5[1-35-7]| + 6[1-8]| + 7[14]| + 8[16]| + 91 + )[2-9] + + $1 $2 + + + + 2[349]| + 45| + 54| + 60| + 72| + 8[2-5]| + 9[2-9] + + + (?: + 2[349]| + 45| + 54| + 60| + 72| + 8[2-5]| + 9[2-9] + )\d[2-9] + + $1 $2 + + + 3 + $1 $2 + + + + 58[12]| + 1 + + $1 $2 + + + + 586 + $1 $2 + + + [89]00 + $1 $2 $3 + + + + + + 1\d{8}| + [2-8]\d{5,11}| + 9(?: + [013-9]\d{4,9}| + 2\d(?: + 111\d{6}| + \d{3,7} + ) + ) + + \d{6,12} + + + + + (?: + 21| + 42 + )[2-9]\d{7}| + (?: + 2[25]| + 4[0146-9]| + 5[1-35-7]| + 6[1-8]| + 7[14]| + 8[16]| + 91 + )[2-9]\d{6}| + (?: + 2(?: + 3[2358]| + 4[2-4]| + 9[2-8] + )| + 45[3479]| + 54[2-467]| + 60[468]| + 72[236]| + 8(?: + 2[2-689]| + 3[23578]| + 4[3478]| + 5[2356] + )| + 9(?: + 1| + 2[2-8]| + 3[27-9]| + 4[2-6]| + 6[3569]| + 9[25-8] + ) + )[2-9]\d{5,6}| + 58[126]\d{7} + + \d{6,10} + 2123456789 + + + + + 3(?: + 0\d| + 1[2-5]| + 2[1-3]| + 3[1-6]| + 4[2-7]| + 64 + )\d{7} + + \d{10} + 3012345678 + + + 800\d{5} + \d{8} + 80012345 + + + 900\d{5} + \d{8} + 90012345 + + + + 122\d{6} + \d{9} + + 122044444 + + + + + (?: + 2(?: + [125]| + 3[2358]| + 4[2-4]| + 9[2-8] + )| + 4(?: + [0-246-9]| + 5[3479] + )| + 5(?: + [1-35-7]| + 4[2-467] + )| + 6(?: + [1-8]| + 0[468] + )| + 7(?: + [14]| + 2[236] + )| + 8(?: + [16]| + 2[2-689]| + 3[23578]| + 4[3478]| + 5[2356] + )| + 9(?: + 1| + 22| + 3[27-9]| + 4[2-6]| + 6[3569]| + 9[2-7] + ) + )111\d{6} + + \d{11,12} + 21111825888 + + + + + + + + + + + [124]| + 3[2-4]| + 5[24-689]| + 6[1-3578]| + 7[14-7]| + 8[1-79]| + 9[145] + + $1 $2 $3 $4 + + + + + 39| + 5[013]| + 6[069]| + 7[0289]| + 8[08] + + $1 $2 $3 + + + + [1-9]\d{8} + \d{9} + + + + (?: + 1[2-8]| + 2[2-59]| + 3[2-4]| + 4[1-468]| + 5[24-689]| + 6[1-3578]| + 7[14-7]| + 8[1-79]| + 9[145] + )\d{7} + + 123456789 + + + + (?: + 5[013]| + 6[069]| + 7[289]| + 88 + )\d{7} + + 512345678 + + + 800\d{6} + 800123456 + + + 70\d{7} + 701234567 + + + 801\d{6} + 801234567 + + + 39\d{7} + 391234567 + + + + + + + + + + + + + [5789]\d{9} + \d{7}(?:\d{3})? + + + + (?: + 787| + 939 + )[2-9]\d{6} + + 7872345678 + + + + (?: + 787| + 939 + )[2-9]\d{6} + + 7872345678 + + + + 8(?: + 00| + 55| + 66| + 77| + 88 + )[2-9]\d{6} + + \d{10} + 8002345678 + + + 900[2-9]\d{6} + \d{10} + 9002345678 + + + + + 5(?: + 00| + 33| + 44 + )[2-9]\d{6} + + \d{10} + 5002345678 + + + + + + + + + + + + [2489] + $1 $2 $3 + + + 5 + $1 $2 $3 + + + 1[78] + $1 $2 $3 + + + + + + [24589]\d{7,8}| + 1(?: + [78]\d{8}| + [49]\d{2,3} + ) + + \d{4,10} + + + + (?: + 22[234789]| + 42[45]| + 82[01458]| + 92[369] + )\d{5} + + \d{7,8} + 22234567 + + + 5[69]\d{7} + \d{9} + 599123456 + + + 1800\d{6} + \d{10} + 1800123456 + + + + + 1(?: + 4| + 9\d + )\d{2} + + \d{4,5} + 19123 + + + 1700\d{6} + \d{10} + 1700123456 + + + + + + + + + $1 $2 $3 + + + + [2-46-9]\d{8} + \d{9} + + + + 2(?: + [12]\d| + [35][1-689]| + 4[1-59]| + 6[1-35689]| + 7[1-9]| + 8[1-69]| + 9[1256] + )\d{6} + + 212345678 + + + + 9(?: + [136]\d{2}| + 2[124-79]\d| + 4(?: + 80| + 9\d + ) + )\d{5} + + 912345678 + + + + 4\d{8}| + 80[02]\d{6} + + 800123456 + + + 71\d{7} + 712345678 + + + 808\d{6} + 808123456 + + + 30\d{7} + 301234567 + + + + + + + + + + + + + + + + + + 8 + $1 $2 + + + [3-7] + $1 $2 + + + + [3-8]\d{6,7} + \d{7,8} + + + 44\d{6} + 44123456 + + + + (?: + 33| + 55| + 66| + 77 + )\d{6} + + 33123456 + + + 800\d{4} + 8001234 + + + + + + + + + + + $1 $2 $3 $4 + + + + [268]\d{8} + \d{9} + + + + 262\d{6} + 262161234 + + + + 6(?: + 9[23]| + 47 + )\d{6} + + \d{9} + 692123456 + + + + 80\d{7} + 801234567 + + + 89[1-37-9]\d{6} + 891123456 + + + + 8(?: + 1[019]| + 2[0156]| + 84| + 90 + )\d{6} + + 810123456 + + + + + + + + + + + + + [23]1| + 7 + + $1 $2 $3 + + + + [23][02-9]| + [89] + + $1 $2 $3 + + + + [237-9]\d{8} + + \d{9} + + + [23][13-6]\d{7} + 211234567 + + + 7[1-8]\d{7} + 712345678 + + + 800\d{6} + \d{9} + 800123456 + + + 90[036]\d{6} + 900123456 + + + 801\d{6} + 801123456 + + + 802\d{6} + 802123456 + + + + + + + + + + (?: + 2[389]| + 39 + )0 + + $1 $2 + + + + 1| + 2(?: + [0-24-7]| + [389][1-9] + )| + 3(?: + [0-8]| + 9[1-9] + )| + 42 + + $1 $2 + + + 6 + $1 $2 + + + [89] + $1 $2 + + + + [1-46-9]\d{4,11} + \d{5,12} + + + [1-3]\d{6,9} + \d{5,10} + 1012345 + + + 6[0-689]\d{3,10} + \d{5,12} + 6012345 + + + 800\d{3,6} + \d{6,9} + 80012345 + + + + (?: + 9[0-2]| + 42 + )\d{4,7} + + \d{6,9} + 90012345 + + + + + + + + + + + [34689] + $1 $2-$3-$4 + + + 7 + $1 $2 $3 + + + + [3489]\d{9} + \d{10} + + + + + (?: + 3(?: + 0[12]| + 4[1-35-79]| + 5[1-3]| + 8[1-58]| + 9[0145] + )| + 4(?: + 01| + 1[1356]| + 2[13467]| + 7[1-5]| + 8[1-7]| + 9[1-689] + )| + 8(?: + 1[1-8]| + 2[01]| + 3[13-6]| + 4[0-8]| + 5[15]| + 6[1-35-7]| + 7[1-37-9] + ) + )\d{7} + + 3011234567 + + + 9\d{9} + 9123456789 + + + + 80[04]\d{7} + 8001234567 + + + + 80[39]\d{7} + 8091234567 + + + + + + + + + 2 + $1 $2 $3 + + + [7-9] + $1 $2 $3 + + + + [27-9]\d{8} + \d{9} + + + 25\d{7} + 250123456 + + + 7[258]\d{7} + 720123456 + + + 800\d{6} + 800123456 + + + 900\d{6} + 900123456 + + + + + + + + + + [1-467] + $1 $2 $3 + + + 9 + $1 $2 $3 + + + 5 + $1 $2 $3 + + + 80 + $1 $2 $3 + + + 81 + $1 $2 $3 + + + + [1-9]\d{7,10} + \d{7,11} + + + + (?: + 1[24-7]| + 2[24-8]| + 3[35-8]| + 4[34-68]| + 6[2-5]| + 7[235-7] + )\d{6} + + \d{7,8} + 12345678 + + + + + (?: + 5[013-69]\d| + 8111 + )\d{6} + + \d{9,10} + 512345678 + + + 800\d{7} + \d{10} + 8001234567 + + + 9200\d{7} + \d{11} + 92001234567 + + + + + + + + + + + + + + + [23578]| + [46][0-35-9] + + $1 $2 + + + [46]4 + $1 $2 $3 + + + + [2-8]\d{5,6} + \d{6,7} + + + + + (?: + 2(?: + 1[78]| + 2[14-69]| + 3[2-4]| + 4[1-36-8]| + 6[167]| + [89]\d + )| + 3(?: + 2[1-6]| + 4[4-6]| + 55| + 6[016]| + 7\d| + 8[0-589]| + 9[0-5] + )| + 5(?: + 5\d| + 6[0-2] + )| + 6(?: + 0[0-27-9]| + 1[0-478]| + 2[145]| + 3[02-4]| + 4[124]| + 6[015]| + 7\d| + 8[1-3] + )| + 78[0138] + )\d{3} + + \d{6} + 217123 + + + + (?: + 5(?: + [1247-9]\d| + 6[3-9] + )| + 7(?: + [14679]\d| + 2[1-9]| + 8[24-79] + ) + )\d{3} + + \d{6} + 510123 + + + 8000\d{2} + \d{6} + 800000 + + + + (?: + 44[1-3]| + 647 + )\d{4} + + \d{7} + 4410123 + + + + + + + + + $1 $2 $3 + + + + [19]\d{8} + \d{9} + + + + + 1(?: + [25]\d| + 8[3567] + )\d{6} + + 121231234 + + + 9[1259]\d{7} + 911231234 + + + + + + + + + + 8 + $1-$2 $3 $4 + + + 8 + $1 $2 $3 $4 + + + + 1[013689]| + 2[0136]| + 3[1356]| + 4[0246]| + 54| + 6[03]| + 90 + + $1-$2 $3 $4 + + + + 1[013689]| + 2[0136]| + 3[1356]| + 4[0246]| + 54| + 6[03]| + 90 + + $1 $2 $3 $4 + + + + 1[13689]| + 2[136]| + 3[1356]| + 4[0246]| + 54| + 6[03]| + 90 + + $1-$2 $3 + + + + 1[13689]| + 2[136]| + 3[1356]| + 4[0246]| + 54| + 6[03]| + 90 + + $1 $2 $3 + + + + 1[2457]| + 2[2457-9]| + 3[0247-9]| + 4[1357-9]| + 5[0-35-9]| + 6[124-9]| + 9(?: + [125-8]| + 3[0-5]| + 4[0-3] + ) + + $1-$2 $3 $4 + + + + 1[2457]| + 2[2457-9]| + 3[0247-9]| + 4[1357-9]| + 5[0-35-9]| + 6[124-9]| + 9(?: + [125-8]| + 3[0-5]| + 4[0-3] + ) + + $1 $2 $3 $4 + + + + 1[2457]| + 2[2457-9]| + 3[0247-9]| + 4[1357-9]| + 5[0-35-9]| + 6[124-9]| + 9(?: + [125-8]| + 3[0-5]| + 4[0-3] + ) + + $1-$2 $3 + + + + 1[2457]| + 2[2457-9]| + 3[0247-9]| + 4[1357-9]| + 5[0-35-9]| + 6[124-9]| + 9(?: + [125-8]| + 3[0-5]| + 4[0-3] + ) + + $1 $2 $3 + + + 7[02-467] + $1-$2 $3 $4 + + + 7[02-467] + $1 $2 $3 $4 + + + 20 + $1-$2 $3 + + + 20 + $1 $2 $3 + + + 9[034] + $1-$2 $3 $4 + + + 9[034] + $1 $2 $3 $4 + + + + \d{7,10} + \d{5,10} + + + + 1(?: + 0[1-8]\d{6}| + [136]\d{5,7}| + (?: + 2[0-35]| + 4[0-4]| + 5[0-25-9]| + 7[13-6]| + [89]\d + )\d{5,6} + )| + 2(?: + [136]\d{5,7}| + (?: + 2[0-7]| + 4[0136-8]| + 5[0-38]| + 7[018]| + 8[01]| + 9[0-57] + )\d{5,6} + )| + 3(?: + [356]\d{5,7}| + (?: + 0[0-4]| + 1\d| + 2[0-25]| + 4[056]| + 7[0-2]| + 8[0-3]| + 9[023] + )\d{5,6} + )| + 4(?: + [0246]\d{5,7}| + (?: + 1[01-8]| + 3[0135]| + 5[14-79]| + 7[0-246-9]| + 8[0156]| + 9[0-689] + )\d{5,6} + )| + 5(?: + 0[0-6]| + 1[1-5]| + 2[0-68]| + 3[0-4]| + 4\d| + 5[0-5]| + 6[03-5]| + 7[013]| + 8[0-79]| + 9[01] + )\d{5,6}| + 6(?: + [03]\d{5,7}| + (?: + 1[1-3]| + 2[0-4]| + 4[02-57]| + 5[0-37]| + 6[0-3]| + 7[0-2]| + 8[0247]| + 9[0-356] + )\d{5,6} + )| + 8\d{6,8}| + 9(?: + 0\d{5,7}| + (?: + 1[0-68]| + 2\d| + 3[02-59]| + 4[0-4]| + 5[0-4]| + 6[01]| + 7[0135-8]| + 8[01] + )\d{5,6} + ) + + \d{5,9} + 8123456 + + + 7[02-46]\d{7} + \d{9} + 701234567 + + + 20\d{4,7} + \d{6,9} + 201234567 + + + + 9(?: + 00| + 39| + 44 + )\d{7} + + \d{10} + 9001234567 + + + 77\d{7} + \d{9} + 771234567 + + + + + + + + + + [369]| + 8[1-9] + + $1 $2 + + + 1[89] + $1 $2 $3 + + + 70 + $1 $2 $3 + + + 80 + $1 $2 $3 + + + + + + [36]\d{7}| + [17-9]\d{7,10} + + \d{8,11} + + + 6[1-8]\d{6} + \d{8} + 61234567 + + + + (?: + 8[1-5]| + 9[0-8] + )\d{6} + + \d{8} + 81234567 + + + 1?800\d{7} + \d{10,11} + 18001234567 + + + 1900\d{7} + \d{11} + 19001234567 + + + 3[0-2]\d{6} + \d{8} + 31234567 + + + + 7000\d{7} + \d{11} + 70001234567 + + + + 1(?: + [0136]\d{2}| + 41\d| + [89](?: + [1-9]\d| + 0[1-9] + )| + [57]\d{2,3})| + 99\d + + \d{3,5} + 1312 + + + + + + + + + [2-9]\d{3} + \d{4} + + + + (?: + [2-468]\d| + 7[01] + )\d{2} + + + 2158 + + + NA + NA + + + + (?: + [59]\d| + 7[2-9] + )\d{2} + + 5012 + + + 1\d{2,3} + \d{3,4} + + + + + + + + + + [12]| + 3[4-8]| + 4[24-8]| + 5[3-8]| + 7[3-8] + + $1 $2 $3 $4 + + + + [37][01]| + 4[019]| + 51| + 64 + + $1 $2 $3 + + + [89][09] + $1 $2 + + + + 59| + 8[1-3] + + $1 $2 + + + + + [1-7]\d{6,7}| + [89]\d{4,7} + + \d{5,8} + + + + (?: + 1\d| + 2[2-8]| + 3[4-8]| + 4[24-8]| + [57][3-8] + )\d{6} + + \d{7,8} + 11234567 + + + + + (?: + [37][01]| + 4[019]| + 51| + 64 + )\d{6} + + \d{8} + 31234567 + + + 80\d{4,6} + \d{6,8} + 80123456 + + + + + 90\d{4,6}| + 89[1-3]\d{2,5} + + \d{5,8} + 90123456 + + + + (?: + 59| + 8[1-3] + )\d{6} + + \d{8} + 59012345 + + + + + + + + + + 0\d{4}| + [4789]\d{7} + + \d{5}(?:\d{3})? + + + 79\d{6} + \d{8} + 79123456 + + + + + (?: + 4[015-8]| + 9\d + )\d{6} + + \d{8} + 41234567 + + + 80[01]\d{5} + \d{8} + 80012345 + + + 82[09]\d{5} + \d{8} + 82012345 + + + + 810(?: + 0[0-6]| + [2-8]\d + )\d{3} + + \d{8} + 81021234 + + + 880\d{5} + \d{8} + 88012345 + + + + 0\d{4}| + 81(?: + 0(?: + 0[7-9]| + 1\d + )| + 5\d{2} + )\d{3} + + 01234 + + + + + + + + + 2 + $1/$2 $3 $4 + + + [3-5] + $1/$2 $3 $4 + + + [689] + $1 $2 $3 + + + + [2-689]\d{8} + \d{9} + + + [2-5]\d{8} + 212345678 + + + + + 9(?: + 0[1-8]| + 1[0-24-9]| + 4[0489] + )\d{6} + + 912123456 + + + 800\d{6} + 800123456 + + + + 9(?: + [78]\d{7}| + 00\d{6} + ) + + 900123456 + + + 8[5-9]\d{7} + 850123456 + + + + 6(?: + 5[0-4]| + 9[0-6] + )\d{6} + + 690123456 + + + + + + + + + + $1 $2 + + + + [2-578]\d{7} + \d{6,8} + + + [235]2[2-4][2-9]\d{4} + 22221234 + + + + + (?: + 25| + 3[03]| + 44| + 5[056]| + 7[6-8]| + 88 + )[1-9]\d{5} + + 25123456 + + + + + + + + + + + + [5-7] + $1 $2 $3 $4 + + + [5-7] + $1 $2 $3 $4 + + + + 0 + $1 $2 + + + + 0 + ($1) $2 + + + + [89] + 0549 $1 + + + [89] + (0549) $1 + + + + [05-7]\d{7,9} + \d{6,10} + + + + + 0549(?: + 8[0157-9]| + 9\d + )\d{4} + + 0549886377 + + + 6[16]\d{6} + \d{8} + 66661212 + + + + 7[178]\d{6} + \d{8} + 71123456 + + + 5[158]\d{6} + \d{8} + 58001110 + + + + + + + + + + $1 $2 $3 $4 + + + + [37]\d{8} + \d{9} + + + + 3(?: + 010| + 3(?: + 8[1-9]| + 9[2-9] + ) + )\d{5} + + 301012345 + + + + + 7(?: + 0[1256]0| + 6(?: + 1[23]| + 2[89]| + 3[3489]| + 4[6-9]| + 5[1-389]| + 6[6-9]| + 7[45]| + 8[3-8] + )| + 7(?: + 1[014-8]| + 2[0-7]| + 3[0-35-8]| + 4[0-6]| + [56]\d| + 7[0-589]| + 8[01]| + 9[0-6] + ) + )\d{5} + + 701012345 + + + 33301\d{4} + 333011234 + + + + + + + + + + + [13-5] + $1 $2 + + + + 15|9 + $1 $2 + + + + [13-59]\d{6,7} + \d{7,8} + + + + (?: + 5[57-9]| + [134]\d + )\d{5} + + \d{7} + + 5522010 + + + + (?: + 9[01]| + 15 + )\d{6} + + \d{8} + 90792024 + + + + + + + + + + + + + $1 $2 + + + + [29]\d{6} + \d{7} + + + 22\d{5} + 2221234 + + + 9[89]\d{5} + 9812345 + + + + + + + + + [27] + $1 $2 + + + [89] + $1 $2 + + + [89] + $1 $2 $3 + + + + + [27]\d{7}| + [89]\d{6}(?:\d{4})? + + + \d{7,8}| + \d{11} + + + + + 2[1-6]\d{6} + \d{8} + 21234567 + + + 7\d{7} + \d{8} + 70123456 + + + + 800\d{4}(?:\d{4})? + \d{7}(?:\d{4})? + 8001234 + + + + 900\d{4}(?:\d{4})? + \d{7}(?:\d{4})? + 9001234 + + + + + + + + + [1-5] + $1 $2 $3 + + + 9 + $1 $2 $3 + + + + [1-59]\d{7,8} + \d{6,9} + + + + (?: + 1(?: + 1\d?| + 4\d| + [2356] + )| + 2[1-35]| + 3(?: + 1\d| + [34] + )| + 4[13]| + 5[1-3] + )\d{6} + + 112345678 + + + + + 9(?: + 3[23]| + 4[457]| + 55| + 6[67]| + 88| + 9[19] + )\d{6} + + \d{9} + 944567890 + + + + + + + + + + [027] + $1 $2 + + + + [027]\d{7} + \d{8} + + + 0800\d{4} + \d{8} + 08001234 + + + + 2(?: + 2(?: + 0[07]| + [13]7| + 2[57] + )| + 3(?: + 0[34]| + [1278]3| + 3[23]| + [46][34] + )| + (?: + 40[4-69]| + 67 + )| + 5(?: + 0[5-7]| + 1[6-9]| + [23][78]| + 48| + 5[01] + ) + )\d{4} + + 22171234 + + + 7[6-8]\d{6} + 76123456 + + + 0800\d{4} + 08001234 + + + + + + + + + [5689]\d{9} + \d{7}(?:\d{3})? + + + + 649(?: + 712| + 9(?: + 4\d| + 50 + ) + )\d{4} + + 6497121234 + + + + 649(?: + 2(?: + 3[12]| + 4[1-5] + )| + 3(?: + 3[1-39]| + 4[1-57] + )| + 4[34][12] + )\d{4} + + \d{10} + 6492311234 + + + + 8(?: + 00| + 55| + 66| + 77| + 88 + )[2-9]\d{6} + + \d{10} + 8002345678 + + + 900[2-9]\d{6} + \d{10} + 9002345678 + + + + + 5(?: + 00| + 33| + 44 + )[2-9]\d{6} + + \d{10} + 5002345678 + + + 64971[01]\d{4} + \d{10} + 6497101234 + + + + + + + + + + $1 $2 $3 $4 + + + + [2679]\d{7} + \d{8} + + + + 22(?: + [3789]0| + 5[0-5]| + 6[89] + )\d{4} + + 22501234 + + + + + (?: + 6(?: + 3[0-7]| + 6\d + )| + 77\d| + 9(?: + 5[0-4]| + 9\d + ) + )\d{5} + + 63012345 + + + + + + + + + + + + + $1 $2 $3 + + + + [02-9]\d{6} + \d{7} + + + + (?: + 2[2-7]| + 3[23]| + 44| + 55| + 66| + 77 + )\d{5} + + 2212345 + + + + + (?: + 0[1-9]| + 7[56]| + 8[1-7]| + 9\d + )\d{5} + + 0112345 + + + + + + + + + + 2 + $1 $2 $3 + + + [3-7] + $1 $2 $3 + + + 8 + $1 $2 $3 + + + 1 + $1 $2 $3 + + + + + [2-8]\d{7,8}| + 1\d{9} + + \d{8,10} + + + + (?: + 2[1-9]| + 3[24-9]| + 4[2-5]| + 5[3-6]| + 7[3-7] + )\d{6} + + \d{8} + 21234567 + + + + 8\d{8} + \d{9} + 812345678 + + + + 1800\d{6} + \d{10} + 1800123456 + + + 1900\d{6} + \d{10} + 1900123456 + + + 60\d{7} + \d{9} + 601234567 + + + + + + + + + + [34]7| + 91[78] + + $1 $2 $3 + + + + 4[48]| + 5| + 9(?: + 19| + [0235-9] + ) + + $1 $2 $3 + + + 331 + 3317 + 33170 + 331700 + $1 $2 $3 + + + 3[1-5] + + 3(?: + [1245]| + 3(?: + [02-9]| + 1[0-589] + ) + ) + + $1 $2 $3 + + + + [3-59]\d{8} + \d{3,9} + + + + (?: + 3(?: + 1[3-5]| + 2[245]| + 3[12]| + 4[24-7]| + 5[25]| + 72 + )| + 4(?: + 46| + 74| + 87 + ) + )\d{6} + + 372123456 + + + + + (?: + 505| + 9[0-35-9]\d + )\d{6} + + \d{9} + 917123456 + + + + + + + + + + + + + + $1 $2 + + + + [2-47-9]\d{6} + \d{7} + + + + (?: + 2[1-5]| + 3[1-9]| + 4[1-4] + )\d{5} + + 2112345 + + + 7[2-4]\d{5} + 7212345 + + + 80\d{5} + 8012345 + + + 90\d{5} + 9012345 + + + 70\d{5} + 7012345 + + + + + + + + + + $1 $2 $3 $4 + + + + [1-6]\d{7} + \d{8} + + + + (?: + 12\d| + 243| + [3-5]22 + )\d{5} + + 12345678 + + + + 6[6-8]\d{6} + 66123456 + + + + + + + + + + $1 $2 $3 + + + + [247-9]\d{7} + \d{8} + + + 7\d{7} + 71234567 + + + + (?: + 2[0-7]| + 40| + 9\d + )\d{6} + + 20123456 + + + + 8[028]\d{6} + 80123456 + + + + + + + + + + + + + + + [23]| + 4(?: + [0-35-9]| + 4[0-35-9] + ) + + $1 $2 $3 + + + [589] + $1 $2 $3 + + + 444 + $1 $2 $3 + + + + + [2-589]\d{9}| + 444\d{4} + + \d{7,10} + + + + + (?: + 2(?: + [13][26]| + [28][2468]| + [45][268]| + [67][246] + )| + 3(?: + [13][28]| + [24-6][2468]| + [78][02468]| + 92 + )| + 4(?: + [16][246]| + [23578][2468]| + 4[26] + ) + )\d{7} + + \d{10} + 2123456789 + + + + 5(?: + 0[1-35-7]| + 22| + 3\d| + 4[1-79]| + 5[1-5]| + 9[246] + )\d{7} + + \d{10} + 5012345678 + + + 512\d{7} + \d{10} + 5123456789 + + + 800\d{7} + \d{10} + 8001234567 + + + 900\d{7} + \d{10} + 9001234567 + + + + + 444\d{4}| + 850\d{7} + + \d{7,10} + 4441444 + + + + + + + + + [589]\d{9} + \d{7}(?:\d{3})? + + + + 868(?: + 2(?: + 01| + 2[1-4] + )| + 6(?: + 07| + 1[4-6]| + 2[1-9]| + [3-6]\d| + 7[0-79]| + 9[0-8] + )| + 82[12] + )\d{4} + + 8682211234 + + + + 868(?: + 29\d| + 3(?: + 0[1-9]| + 1[02-9]| + [2-9]\d + )| + 4(?: + [679]\d| + 8[0-4] + )| + 6(?: + 20| + 78| + 8\d + )| + 7(?: + 1[02-9]| + [2-9]\d + ) + )\d{4} + + \d{10} + 8682911234 + + + + 8(?: + 00| + 55| + 66| + 77| + 88 + )[2-9]\d{6} + + \d{10} + 8002345678 + + + 900[2-9]\d{6} + \d{10} + 9002345678 + + + + + 5(?: + 00| + 33| + 44 + )[2-9]\d{6} + + \d{10} + 5002345678 + + + + + + + + + [29]\d{4,5} + \d{5,6} + + + 2[02-9]\d{3} + \d{5} + 20123 + + + + 90\d{4} + \d{6} + 901234 + + + + + + + + + + + [2-7]| + 8[1-9] + + $1 $2 $3 + + + + 80| + 9 + + $1 $2 $3 + + + + [2-9]\d{7,8} + \d{8,9} + + + [2-8]\d{7,8} + \d{8,9} + 21234567 + + + 9\d{8} + \d{9} + 912345678 + + + 800\d{6} + \d{9} + 800123456 + + + 900\d{6} + \d{9} + 900123456 + + + + + + + + + [24] + $1 $2 $3 + + + [67] + $1 $2 $3 + + + + [89] + $1 $2 $3 + + + + \d{9} + \d{7,9} + + + 2[2-8]\d{7} + \d{7,9} + 222345678 + + + + (?: + 6[158]| + 7[1-9] + )\d{7} + + \d{9} + 612345678 + + + 80[08]\d{6} + \d{9} + 800123456 + + + 90\d{7} + \d{9} + 900123456 + + + + 8(?: + 40| + 6[01] + )\d{6} + + \d{9} + 840123456 + + + 41\d{7} + \d{9} + 412345678 + + + + + + + + + + + + 39| + 4(?: + [45][0-5]| + 87 + )| + 5(?: + 0| + 6[37]| + 7[37] + )| + 6[36-8]| + 9[1-9] + + + 39| + 4(?: + [45][0-5]| + 87 + )| + 5(?: + 0| + 6(?: + 3[14-7]| + 7 + )| + 7[37] + )| + 6[36-8]| + 9[1-9] + + $1 $2 $3 + + + + 3[1-8]2| + 4[1378]2| + 5(?: + [12457]2| + 6[24] + )| + 6(?: + [49]2| + [12][29]| + 5[24] + )| + 8| + 90 + + + 3(?: + [1-46-8]2[013-9]| + 52 + )| + 4[1378]2| + 5(?: + [12457]2| + 6[24] + )| + 6(?: + [49]2| + [12][29]| + 5[24] + )| + 8| + 90 + + $1 $2 $3 + + + + 3(?: + 5[013-9]| + [1-46-8] + )| + 4(?: + [137][013-9]| + 6| + [45][6-9]| + 8[4-6] + )| + 5(?: + [1245][013-9]| + 6[0135-9]| + 3| + 7[4-6] + )| + 6(?: + [49][013-9]| + 5[0135-9]| + [12][13-8] + ) + + + 3(?: + 5[013-9]| + [1-46-8](?: + 22| + [013-9] + ) + )| + 4(?: + [137][013-9]| + 6| + [45][6-9]| + 8[4-6] + )| + 5(?: + [1245][013-9]| + 6(?: + 3[02389]| + [015689] + )| + 3| + 7[4-6] + )| + 6(?: + [49][013-9]| + 5[0135-9]| + [12][13-8] + ) + + $1 $2 + + + + [3-689]\d{8} + \d{5,9} + + + + (?: + 3[1-8]| + 4[13-8]| + 5[1-7]| + 6[12459] + )\d{7} + + 311234567 + + + + (?: + 39| + 50| + 6[36-8]| + 9[1-9] + )\d{7} + + \d{9} + 391234567 + + + 800\d{6} + \d{9} + 800123456 + + + 900\d{6} + \d{9} + 900123456 + + + + + + + + + + + [7-9]| + 200| + 4(?: + 6[45]| + [7-9] + ) + + $1 $2 + + + + 3| + 4(?: + [1-5]| + 6[0-36-9] + ) + + $1 $2 + + + 202 + $1 $2 + + + + \d{9} + \d{5,9} + + + + 3\d{8}| + 4(?: + [1-6]\d| + 7[136]| + 8[1356]| + 96 + )\d{6}| + 20(?: + 0\d| + 24 + )\d{5} + + \d{5,9} + 312345678 + + + + 7(?: + [1578]\d| + 0[0-4] + )\d{6} + + \d{9} + 712345678 + + + 800[123]\d{5} + \d{9} + 800123456 + + + 90[123]\d{6} + \d{9} + 901123456 + + + + + + + + + + + + ($1) $2-$3 + + + $1-$2 + + + + $1-$2-$3 + + + + [2-9]\d{9} + \d{7}(?:\d{3})? + + + + (?: + 2(?: + 0[1-35-9]| + 1[02-9]| + 2[4589]| + 3[149]| + 4[08]| + 5[1-46]| + 6[0279]| + 7[06]| + 8[13] + )| + 3(?: + 0[1-57-9]| + 1[02-9]| + 2[0135]| + 3[014679]| + 47| + 5[12]| + 6[01]| + 8[056] + )| + 4(?: + 0[124-9]| + 1[02-579]| + 2[3-5]| + 3[0245]| + 4[0235]| + 58| + 69| + 7[0589]| + 8[04] + )| + 5(?: + 0[1-57-9]| + 1[0235-8]| + 20| + 3[0149]| + 4[01]| + 5[19]| + 6[1-37]| + 7[013-5]| + 8[056] + )| + 6(?: + 0[1-35-9]| + 1[024-9]| + 2[036]| + 3[016]| + 4[16]| + 5[017]| + 6[0-29]| + 78| + 8[12] + )| + 7(?: + 0[1-46-8]| + 1[2-9]| + 2[047]| + 3[124]| + 4[07]| + 5[47]| + 6[02359]| + 7[02-59]| + 8[156] + )| + 8(?: + 0[1-68]| + 1[02-8]| + 28| + 3[0-25]| + 4[3578]| + 5[06-9]| + 6[02-5]| + 7[028] + )| + 9(?: + 0[1346-9]| + 1[02-9]| + 2[0589]| + 3[1678]| + 4[0179]| + 5[1246]| + 7[0-3589]| + 8[059] + ) + )[2-9]\d{6} + + 2012345678 + + + + (?: + 2(?: + 0[1-35-9]| + 1[02-9]| + 2[4589]| + 3[149]| + 4[08]| + 5[1-46]| + 6[0279]| + 7[06]| + 8[13] + )| + 3(?: + 0[1-57-9]| + 1[02-9]| + 2[0135]| + 3[014679]| + 47| + 5[12]| + 6[01]| + 8[056] + )| + 4(?: + 0[124-9]| + 1[02-579]| + 2[3-5]| + 3[0245]| + 4[0235]| + 58| + 69| + 7[0589]| + 8[04] + )| + 5(?: + 0[1-57-9]| + 1[0235-8]| + 20| + 3[0149]| + 4[01]| + 5[19]| + 6[1-37]| + 7[013-5]| + 8[056] + )| + 6(?: + 0[1-35-9]| + 1[024-9]| + 2[036]| + 3[016]| + 4[16]| + 5[017]| + 6[0-29]| + 78| + 8[12] + )| + 7(?: + 0[1-46-8]| + 1[2-9]| + 2[047]| + 3[124]| + 4[07]| + 5[47]| + 6[02359]| + 7[02-59]| + 8[156] + )| + 8(?: + 0[1-68]| + 1[02-8]| + 28| + 3[0-25]| + 4[3578]| + 5[06-9]| + 6[02-5]| + 7[028] + )| + 9(?: + 0[1346-9]| + 1[02-9]| + 2[0589]| + 3[1678]| + 4[0179]| + 5[1246]| + 7[0-3589]| + 8[059] + ) + )[2-9]\d{6} + + 2012345678 + + + + 8(?: + 00| + 55| + 66| + 77| + 88 + )[2-9]\d{6} + + \d{10} + 8002345678 + + + 900[2-9]\d{6} + \d{10} + 9002345678 + + + + + 5(?: + 00| + 33| + 44 + )[2-9]\d{6} + + \d{10} + 5002345678 + + + + + + + + + + + + + $1 $2 $3 $4 + + + + [679]\d{8} + \d{7,9} + + + + + (?: + 6[125679]| + 7[0-69] + )\d{7} + + 612345678 + + + + 9[0-57-9]\d{7} + 912345678 + + + + + + + + + + + $1 $2 $3 + + + + 06\d{8} + \d{10} + + + 06698\d{5} + 0669812345 + + + + N/A + N/A + + + + + + + + + + [5789]\d{9} + \d{7}(?:\d{3})? + + + + 784(?: + 266| + 3(?: + 6[6-9]| + 7\d| + 8[0-24-6] + )| + 4(?: + 38| + 5[0-36-8]| + 8\d| + 9[01] + )| + 555| + 638| + 784 + )\d{4} + + 7842661234 + + + + 784(?: + 4(?: + 3[0-24]| + 5[45]| + 9[2-5] + )| + 5(?: + 2[6-9]| + 3[0-3]| + 93 + ) + )\d{4} + + \d{10} + 7844301234 + + + + 8(?: + 00| + 55| + 66| + 77| + 88 + )[2-9]\d{6} + + \d{10} + 8002345678 + + + 900[2-9]\d{6} + \d{10} + 9002345678 + + + + + 5(?: + 00| + 33| + 44 + )[2-9]\d{6} + + \d{10} + 5002345678 + + + + + + + + + + + $1-$2 + + + + [24589]\d{9} + + \d{7,10} + + + + + (?: + 2(?: + 12| + 3[457-9]| + [58][1-9]| + [467]\d| + 9[1-6] + )| + 50[01] + )\d{7} + + 2121234567 + + + + 4(?: + 1[24-8]| + 2[46] + )\d{7} + + \d{10} + 4121234567 + + + 800\d{7} + \d{10} + 8001234567 + + + 900\d{7} + \d{10} + 9001234567 + + + + + + + + + [2589]\d{9} + \d{7}(?:\d{3})? + + + + 284(?: + (?: + 229| + 4(?: + 46| + 9[45] + )| + 8(?: + 52| + 6[459] + ) + )\d{4}| + 496[0-5]\d{3} + ) + + 2842291234 + + + + 284(?: + (?: + 30[0-3]| + 4(?: + 4[0-5]| + 68| + 99 + )| + 54[0-4] + )\d{4}| + 496[6-9]\d{3} + ) + + \d{10} + 2843001234 + + + + 8(?: + 00| + 55| + 66| + 77| + 88 + )[2-9]\d{6} + + \d{10} + 8002345678 + + + 900[2-9]\d{6} + \d{10} + 9002345678 + + + + + 5(?: + 00| + 33| + 44 + )[2-9]\d{6} + + \d{10} + 5002345678 + + + + + + + + + [3589]\d{9} + \d{7}(?:\d{3})? + + + + 340(?: + 6[49]2| + 7[17]\d + )\d{4} + + 3406421234 + + + + 340(?: + 6[49]2| + 7[17]\d + )\d{4} + + 3406421234 + + + + 8(?: + 00| + 55| + 66| + 77| + 88 + )[2-9]\d{6} + + \d{10} + 8002345678 + + + 900[2-9]\d{6} + \d{10} + 9002345678 + + + + + 5(?: + 00| + 33| + 44 + )[2-9]\d{6} + + \d{10} + 5002345678 + + + + + + + + + + [48] + $1 $2 $3 + + + + 2[025-79]| + 3[0136-9]| + 5[2-9]| + 6[0-46-9]| + 7[02-79] + + $1 $2 $3 + + + 80 + $1 $2 + + + 69 + $1 $2 + + + + 2[1348]| + 3[25]| + 5[01]| + 65| + 7[18] + + $1 $2 $3 + + + 9 + $1 $2 $3 $4 + + + + 1(?: + [26]| + 88| + 99 + ) + + $1 $2 $3 + + + 1[89]0 + $1 $2 + + + + + 8\d{5,8}| + [1-79]\d{7,9} + + \d{7,10} + + + + (?: + 2(?: + [025-79]| + 1[0189]| + [348][01] + )| + 3(?: + [0136-9]| + [25][01] + )| + [48]\d| + 5(?: + [01][01]| + [2-9] + )| + 6(?: + [0-46-8]| + 5[01] + )| + 7(?: + [02-79]| + [18][01] + ) + )\d{7}| + 69\d{5,6}| + 80\d{5} + + \d{7,10} + 2101234567 + + + + (?: + 9\d| + 1(?: + 2\d| + 6[3-9]| + 88| + 99 + ) + )\d{7} + + \d{9,10} + 912345678 + + + 1800\d{4,6} + \d{8,10} + 1800123456 + + + 1900\d{4,6} + \d{8,10} + 1900123456 + + + + + + + + + + + + + + + + + + 8[04]0 + $1 $2 + + + 7[25-7] + $1 $2 + + + + [2-8]\d{4,6} + \d{5,7} + + + + (?: + [2-5]\d| + 6[1-9]| + 840\d + )\d{3} + + \d{5,7} + 22123 + + + + (?: + 60| + 7[25-7]\d + )\d{4} + + \d{6,7} + 601234 + + + + 800\d{3} + \d{6} + 800123 + + + + + + + + + + + [1-6]| + 7[24-68] + + $1 $2 $3 + + + 7[137] + $1 $2 $3 + + + + [1-7]\d{6,8} + \d{6,9} + + + + (?: + 1(?: + 7\d| + [2-68] + )| + 2[2-68]| + 3[2358]| + 4[2-58]| + 5[2-6]| + 6[3-58]| + 7[24-68] + )\d{5} + + \d{6,8} + 1234567 + + + 7[137]\d{7} + \d{9} + 712345678 + + + + + + + + + + [268]\d{8} + \d{9} + + + 2696[0-4]\d{4} + 269601234 + + + 639\d{6} + 639123456 + + + + 80\d{7} + 801234567 + + + + + + + + + + 860 + $1 $2 $3 + + + + [1-57]| + 8(?: + [0-57-9]| + 6[1-9] + ) + + $1 $2 $3 + + + + \d{9} + \d{8,9} + + + + (?: + 1[0-8]| + 2[1-478]| + 3[1-69]| + 4\d| + 5[1346-8] + )\d{7} + + \d{8,9} + 101234567 + + + + (?: + 7[1-4689]| + 8[1-5789] + )\d{7} + + \d{9} + 711234567 + + + 80\d{7} + \d{9} + 801234567 + + + 86[1-9]\d{6} + \d{9} + 861234567 + + + 860\d{6} + \d{9} + 860123456 + + + 87\d{7} + \d{9} + 871234567 + + + + + + + + + [29] + $1 $2 + + + 8 + $1 $2 $3 + + + + [289]\d{8} + \d{9} + + + 21[1-8]\d{6} + 211234567 + + + + + 9(?: + 55| + 6[4-9]| + 7[4-9] + )\d{6} + + 955123456 + + + 800\d{6} + 800123456 + + + + + + + + + + + 4| + 9[2-9] + + $1 $2 $3 + + + + + [19]1| + 7 + + $1 $2 $3 + + + + + 1[3-9]| + 2(?: + [1-469]| + 0[0-35-9]| + [45][0-79] + )| + 3(?: + 0[0-79]| + 1[0-689]| + [24-69]| + 3[0-69] + )| + 5(?: + [02-46-9]| + [15][0-69] + )| + 6(?: + [0145]| + [29][0-79]| + 3[0-689]| + [68][0-69] + ) + + $1 $2 + + + + 1[3-9]| + 2(?: + [1-469]| + 0[0-35-9]| + [45][0-79] + )| + 3(?: + 0[0-79]| + 1[0-689]| + [24-69]| + 3[0-69] + )| + 5(?: + [02-46-9]| + [15][0-69] + )| + 6(?: + [0145]| + [29][0-79]| + 3[0-689]| + [68][0-69] + ) + + $1 $2 $3 + + + + + 2(?: + [278]| + 0[45]| + 48 + )| + 3(?: + 08| + 17| + 3[78]| + [78] + )| + 5[15][78]| + 6(?: + [29]8| + 37| + [68][78] + ) + + $1 $2 + + + + 2(?: + [278]| + 0[45]| + 48 + )| + 3(?: + 08| + 17| + 3[78]| + [78] + )| + 5[15][78]| + 6(?: + [29]8| + 37| + [68][78] + ) + + $1 $2 $3 + + + + + (?: + 25| + 54 + )8 + + + 258[23]| + 5483 + + $1 $2 + + + + (?: + 25| + 54 + )8 + + + 258[23]| + 5483 + + $1 $2 $3 + + + + 8 + $1 $2 + + + + + + 2(?: + [012457-9]\d{3,8}| + 6\d{3,6} + )| + [13-79]\d{4,8}| + 86\d{8} + + \d{3,10} + + + + + (?: + 1[3-9]| + 2(?: + 0[45]| + [16]| + 2[28]| + [49]8?| + 58[23]| + 7[246]| + 8[1346-9] + )| + 3(?: + 08?| + 17?| + 3[78]| + [2456]| + 7[1569]| + 8[379] + )| + 5(?: + [07-9]| + 1[78]| + 483| + 5(?: + 7?| + 8 + ) + )| + 6(?: + 0| + 28| + 37?| + [45][68][78]| + 98? + )| + 848 + )\d{3,6}| + (?: + 2(?: + 27| + 5| + 7[135789]| + 8[25] + )| + 3[39]| + 5[1-46]| + 6[126-8] + )\d{4,6}| + 2(?: + 0| + 70 + )\d{5,6}| + (?: + 4\d| + 9[2-8] + )\d{4,7} + + 1312345 + + + 7[137]\d{7} + \d{9} + 711234567 + + + + + 86(?: + 1[12]| + 22| + 30| + 44| + 8[367]| + 99 + )\d{6} + + \d{10} + 8686123456 + + + + diff --git a/third_party/libphonenumber/resources/PhoneNumberMetaDataForTesting.xml b/third_party/libphonenumber/resources/PhoneNumberMetaDataForTesting.xml new file mode 100644 index 0000000..661bdd2 --- /dev/null +++ b/third_party/libphonenumber/resources/PhoneNumberMetaDataForTesting.xml @@ -0,0 +1,764 @@ + + + + + + + + + + + + + $1 $2 $3 + + + + [29]\d{8} + \d{9} + + + 2\d(?:[26-9]\d|\d[26-9])\d{5} + 222123456 + + + + 9[1-3]\d{7} + 923123456 + + + + + + + + + 11 + $1 $2-$3 + + + 1[02-9]|[23] + $1 $2-$3 + + + 911 + $1 15 $2-$3 + + + 9(?:1[02-9]|[23]) + $1 $2-$3 + + + [68] + $1-$2-$3 + + + 11 + $1 $2-$3 + + + 1[02-9]|[23] + $1 $2-$3 + + + 911 + $1 $2 $3 $4 + + + 9(?:1[02-9]|[23]) + $1 $2 $3 $4 + + + [68] + $1-$2-$3 + + + + [1-3689]\d{9,10} + \d{6,11} + + + [1-3]\d{9} + \d{6,10} + + + 9\d{10}|[1-3]\d{9} + \d{10,11} + + + 80\d{8} + \d{10} + + + 6(0\d|10)\d{7} + \d{10} + + + + + + + + 1 + $1 $2 $3 + + + [2-478] + $1 $2 $3 + + + + [1-578]\d{4,14} + \d{5,15} + + + [2378]\d{8} + \d{9} + + + 4\d{8} + \d{9} + + + 1800\d{6} + \d{10} + + + 190[0126]\d{6} + \d{10} + + + + + + + (242|8(00|66|77|88)|900)\d{7} + \d{7,10} + + + 242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[3-57]|9[2-5])|4(?:2[237]|51|64|77)|502|636|702)\d{4} + + + 242(357|359|457|557)\d{4} + \d{10} + + + 8(00|66|77|88)\d{7} + \d{10} + + + 900\d{7} + \d{10} + + + + + + + + 2|3[3-9]|906|[4-9][1-9]1 + $1 $2 + + + [34]0|[68]9 + $1/$2 + + + + [4-9] + [4-6]|[7-9](?:\d[1-9]|[1-9]\d) + $1 $2 + + + [4-9] + [4-6]|[7-9](?:\d[1-9]|[1-9]\d) + $1 $2 + + + 800 + $1 $2 $3 + + + 900 + $1 $2 $3 + + + + \d{4,14} + \d{2,14} + + + (?:[24-6]\d{2}|3[03-9]\d|[789](?:[1-9]\d|0[2-9]))\d{3,8} + 30123456 + + + 1(5\d{9}|7\d{8}|6[02]\d{8}|63\d{7}) + \d{10,11} + + + 800\d{7} + \d{10} + + + 900([135]\d{6}|9\d{7}) + \d{10,11} + + + + + + + + [1-59]|[78]0 + $1 $2 $3 + + + 6 + $1 $2 $3 $4 + + + 7[1-57-9] + $1 $2 $3 + + + 8[47] + $1 $2 $3 + + + + \d{10} + \d{6,10} + + + [1-6]\d{9} + + + 7[1-57-9]\d{8} + \d{10} + + + 80\d{8} + \d{10} + + + 9[018]\d{8} + \d{10} + + + 8(?:4[3-5]|7[0-2])\d{7} + \d{10} + + + 56\d{8} + \d{10} + + + 70\d{8} + \d{10} + + + + + + + + + 0[26] + $1 $2 $3 + + + 0[13-57-9] + $1 $2 $3 + + + 3 + $1 $2 $3 + + + 8 + $1 $2 + + + + [0389]\d{5,10} + \d{6,11} + + + 0\d{9,10} + \d{10,11} + + + 3\d{8,9} + \d{9,10} + + + 80(?:0\d{6}|3\d{3}) + \d{6,9} + + + 89(?:2\d{3}|9\d{6}) + \d{6,9} + + + + + + + + + [57-9]0 + $1 $2 $3 + + + 222|333 + (?:222|333)1 + (?:222|333)11 + $1 $2 $3 + + + 222|333 + 2221|3332 + 22212|3332 + 222120|3332 + $1 $2 $3 + + + [23] + $1 $2 $3 + + + + [23] + *$1 + + + + + + + + + + + + + + + 1(?:0|1[19]|[69]9|5[458])|[57]0 + 1(?:0|1[19]|[69]9|5(?:44|59|8))|[57]0 + $1-$2-$3 + + + 1(?:[169][2-8]|[78]|5[1-4])|[68]0|[3-9][1-9][2-9] + 1(?:[169][2-8]|[78]|5(?:[1-3]|4[56]))|[68]0|[3-9][1-9][2-9] + $1-$2-$3 + + + 131 + 1312 + $1-$2-$3 + + + 131 + 131[13-9] + $1-$2-$3 + + + 13[2-9] + $1-$2-$3 + + + 30 + $1-$2-$3-$4 + + + 2(?:[26]|3[0-467]) + 2(?:[26]|3(?:01|1[45]|2[17-9]|39|4|6[67]|7[078])) + $1-$2-$3 + + + 2(?:3[0-35-9]|[457-9]) + 2(?:3(?:0[02-9]|1[0-36-9]|2[02-6]|3[0-8]|6[0-589]|7[1-69]|[589])|[457-9]) + $1-$2-$3 + + + 21[0-46-9] + 21(?:[0-247-9]|3[124]|6[1269]) + $1-$2 + + + 21[36] + 21(?:3[035-9]|6[03-578]) + $1-$2 + + + [3-9][1-9]1 + [3-9][1-9]1(?:[0-46-9]) + [3-9][1-9]1(?:[0-247-9]|3[124]|6[1269]) + $1-$2 + + + [3-9][1-9]1 + [3-9][1-9]1[36] + [3-9][1-9]1(?:3[035-9]|6[03-578]) + $1-$2 + + + + [1-79]\d{3,9}|8\d{8} + \d{4,10} + + + (?:2|[34][1-3]|5[1-5]|6[1-4])(?:1\d{2,3}|[2-9]\d{6,7}) + \d{4,10} + 22123456 + + + 1[0-25-9]\d{7,8} + \d{9,10} + 1023456789 + + + 80\d{7} + \d{9} + 801234567 + + + 60[2-9]\d{6} + \d{9} + 602345678 + + + 50\d{8} + \d{10} + 5012345678 + + + 70\d{8} + \d{10} + 7012345678 + + + + + + + + [89]00 + $1 $2 $3 + + + 33|55|81 + $1 $2 $3 + + + [2467]|3[0-24-9]|5[0-46-9]|8[2-9]|9[1-9] + $1 $2 $3 + + + 1(?:33|55|81) + 045 $1 $2 $3 + + + 1(?:[124579]|3[0-24-9]|5[0-46-9]|8[02-9]) + 045 $1 $2 $3 + + + [89]00 + $1 $2 $3 + + + 33|55|81 + $1 $2 $3 + + + [2467]|3[0-24-9]|5[0-46-9]|8[2-9]|9[1-9] + $1 $2 $3 + + + 1(?:33|55|81) + $1 $2 $3 $4 + + + 1(?:[124579]|3[0-24-9]|5[0-46-9]|8[02-9]) + $1 $2 $3 $4 + + + + [1-9]\d{9,10} + \d{7,11} + + + [2-9]\d{9} + \d{7,10} + + + 1\d{10} + \d{11} + + + 800\d{7} + \d{10} + + + 900\d{7} + \d{10} + + + + + + + + 24|[34679] + $1-$2 $3 + + + 2[179] + $1-$2 $3 + + + [89] + $1 $2 $3 + + + + + [289]\d{7,9}| + [3-7]\d{7} + + \d{7,10} + + + 24099\d{3}|(?:3[2-79]|[479][2-689]|6[235-9])\d{6} + \d{7,8} + + + 2(?:[027]\d{7}|9\d{6,7}|1(?:0\d{5,7}|[12]\d{5,6}|[3-9]\d{5})|4[1-9]\d{6}|8\d{7,8}) + \d{8,10} + + + 800\d{6,7} + \d{9,10} + + + 900\d{6,7} + \d{9,10} + + + + + + + + + $1 $2 $3 $4 + + + + [1-9]\d{8} + \d{9} + + + (?:5[01]|6[069]|7[289]|88)\d{7} + + + 800\d{6} + + + 70\d{7} + + + + + + + + + $1 $2 $3 $4 + + + + [268]\d{8} + \d{9} + + + + 262\d{6} + 262161234 + + + 6(?:9[23]|47)\d{6} + \d{9} + 692123456 + + + + 80\d{7} + 801234567 + + + 8(?:1[01]|2[0156]|84|9[0-37-9])\d{6} + 810123456 + + + + + + + + + [369]|8[1-9] + $1 $2 + + + 1[89] + $1 $2 $3 + + + 800 + $1 $2 $3 + + + + [13689]\d{7,10} + + + \d{8}| + \d{10,11} + + + + [36]\d{7} + \d{8} + + + [89]\d{7} + \d{8} + + + 1?800\d{7} + \d{10,11} + + + 1900\d{7} + \d{11} + + + + + + + + + + $1 $2 $3 + + + $1 $2 + + + $1 $2 $3 + + + + [13-9]\d{9}|2[0-35-9]\d{8} + \d{7}(?:\d{3})? + 1234567890 + + + + 800\d{7} + \d{10} + + + 8(?:00|66|77|88)\d{7} + \d{10} + + + 900\d{7} + \d{10} + + + + + + + + [268]\d{8} + \d{9} + + + 2696[0-4]\d{4} + 269601234 + + + 639\d{6} + 639123456 + + + + 80\d{7} + 801234567 + + + + diff --git a/third_party/libphonenumber/resources/phonemetadata.proto b/third_party/libphonenumber/resources/phonemetadata.proto new file mode 100644 index 0000000..fd9902a --- /dev/null +++ b/third_party/libphonenumber/resources/phonemetadata.proto @@ -0,0 +1,235 @@ +/* + * Copyright (C) 2009 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Definition of protocol buffer for holding metadata for international +// telephone numbers. +// @author Shaopeng Jia + +syntax = "proto2"; + +option java_package = "com.google.i18n.phonenumbers"; +option optimize_for = LITE_RUNTIME; + +package i18n.phonenumbers; + +message NumberFormat { + // pattern is a regex that is used to match the national (significant) + // number. For example, the pattern "(20)(\d{4})(\d{4})" will match number + // "2070313000", which is the national (significant) number for Google London. + // Note the presence of the parentheses, which are capturing groups what + // specifies the grouping of numbers. + required string pattern = 1; + + // format specifies how the national (significant) number matched by + // pattern should be formatted. + // Using the same example as above, format could contain "$1 $2 $3", + // meaning that the number should be formatted as "20 7031 3000". + // Each $x are replaced by the numbers captured by group x in the + // regex specified by pattern. + required string format = 2; + + // This field is a regex that is used to match a certain number of digits + // at the beginning of the national (significant) number. When the match is + // successful, the accompanying pattern and format should be used to format + // this number. For example, if leading_digits="[1-3]|44", then all the + // national numbers starting with 1, 2, 3 or 44 should be formatted using the + // accompanying pattern and format. + // + // The first leadingDigitsPattern matches up to the first three digits of the + // national (significant) number; the next one matches the first four digits, + // then the first five and so on, until the leadingDigitsPattern can uniquely + // identify one pattern and format to be used to format the number. + // + // In the case when only one formatting pattern exists, no + // leading_digits_pattern is needed. + repeated string leading_digits_pattern = 3; + + // This field specifies how the national prefix ($NP) together with the first + // group ($FG) in the national significant number should be formatted in + // the NATIONAL format when a national prefix exists for a certain country. + // For example, when this field contains "($NP$FG)", a number from Beijing, + // China (whose $NP = 0), which would by default be formatted without + // national prefix as 10 1234 5678 in NATIONAL format, will instead be + // formatted as (010) 1234 5678; to format it as (0)10 1234 5678, the field + // would contain "($NP)$FG". Note $FG should always be present in this field, + // but $NP can be omitted. For example, having "$FG" could indicate the + // number should be formatted in NATIONAL format without the national prefix. + // This is commonly used to override the rule from generalDesc. + // + // When this field is missing, a number will be formatted without national + // prefix in NATIONAL format. This field does not affect how a number + // is formatted in other formats, such as INTERNATIONAL. + optional string national_prefix_formatting_rule = 4; + + // This field specifies how any carrier code ($CC) together with the first + // group ($FG) in the national significant number should be formatted + // when formatWithCarrierCode is called, if carrier codes are used for a + // certain country. + optional string domestic_carrier_code_formatting_rule = 5; +} + +message PhoneNumberDesc { + // The national_number_pattern is the pattern that a valid national + // significant number would match. This specifies information such as its + // total length and leading digits. + optional string national_number_pattern = 2; + + // The possible_number_pattern represents what a potentially valid phone + // number for this region may be written as. This is a superset of the + // national_number_pattern above and includes numbers that have the area code + // omitted. Typically the only restrictions here are in the number of digits. + // This could be used to highlight tokens in a text that may be a phone + // number, or to quickly prune numbers that could not possibly be a phone + // number for this locale. + optional string possible_number_pattern = 3; + + // An example national significant number for the specific type. It should + // not contain any formatting information. + optional string example_number = 6; +} + +message PhoneMetadata { + // The general_desc contains information which is a superset of descriptions + // for all types of phone numbers. If any element is missing in the + // description of a specific type in the XML file, the element will inherit + // from its counterpart in the general_desc. Every locale is assumed to have + // fixed line and mobile numbers - if these types are missing in the XML + // file, they will inherit all fields from the general_desc. For all other + // types, if the whole type is missing in the xml file, it will be given a + // national_number_pattern of "NA" and a possible_number_pattern of "NA". + required PhoneNumberDesc general_desc = 1; + required PhoneNumberDesc fixed_line = 2; + required PhoneNumberDesc mobile = 3; + required PhoneNumberDesc toll_free = 4; + required PhoneNumberDesc premium_rate = 5; + required PhoneNumberDesc shared_cost = 6; + required PhoneNumberDesc personal_number = 7; + required PhoneNumberDesc voip = 8; + required PhoneNumberDesc pager = 21; + required PhoneNumberDesc uan = 25; + // The rules here distinguish the numbers that are only able to be dialled + // nationally. + required PhoneNumberDesc no_international_dialling = 24; + + // The ISO 3166-1 alpha-2 representation of a country/region + required string id = 9; + + // The country calling code that one would dial from overseas when trying to + // dial a phone number in this country. For example, this would be "64" for + // New Zealand. + required int32 country_code = 10; + + // The international_prefix of country A is the number that needs to be + // dialled from country A to another country (country B). This is followed + // by the country code for country B. Note that some countries may have more + // than one international prefix, and for those cases, a regular expression + // matching the international prefixes will be stored in this field. + required string international_prefix = 11; + + // If more than one international prefix is present, a preferred prefix can + // be specified here for out-of-country formatting purposes. If this field is + // not present, and multiple international prefixes are present, then "+" + // will be used instead. + optional string preferred_international_prefix = 17; + + // The national prefix of country A is the number that needs to be dialled + // before the national significant number when dialling internally. This + // would not be dialled when dialling internationally. For example, in New + // Zealand, the number that would be locally dialled as 09 345 3456 would be + // dialled from overseas as +64 9 345 3456. In this case, 0 is the national + // prefix. + optional string national_prefix = 12; + + // The preferred prefix when specifying an extension in this country. This is + // used for formatting only, and if this is not specified, a suitable default + // should be used instead. For example, if you wanted extensions to be + // formatted in the following way: + // 1 (365) 345 445 ext. 2345 + // " ext. " should be the preferred extension prefix. + optional string preferred_extn_prefix = 13; + + // This field is used for cases where the national prefix of a country + // contains a carrier selection code, and is written in the form of a + // regular expression. For example, to dial the number 2222-2222 in + // Fortaleza, Brazil (area code 85) using the long distance carrier Oi + // (selection code 31), one would dial 0 31 85 2222 2222. Assuming the + // only other possible carrier selection code is 32, the field will + // contain "03[12]". + // + // When it is missing from the XML file, this field inherits the value of + // national_prefix, if that is present. + optional string national_prefix_for_parsing = 15; + + // This field is only populated and used under very rare situations. + // For example, mobile numbers in Argentina are written in two completely + // different ways when dialed in-country and out-of-country + // (e.g. 0343 15 555 1212 is exactly the same number as +54 9 343 555 1212). + // This field is used together with national_prefix_for_parsing to transform + // the number into a particular representation for storing in the phonenumber + // proto buffer in those rare cases. + optional string national_prefix_transform_rule = 16; + + // Specifies whether the mobile and fixed-line patterns are the same or not. + // This is used to speed up determining phone number type in countries where + // these two types of phone numbers can never be distinguished. + optional bool same_mobile_and_fixed_line_pattern = 18 [default=false]; + + // Note that the number format here is used for formatting only, not parsing. + // Hence all the varied ways a user *may* write a number need not be recorded + // - just the ideal way we would like to format it for them. When this element + // is absent, the national significant number will be formatted as a whole + // without any formatting applied. + repeated NumberFormat number_format = 19; + + // This field is populated only when the national significant number is + // formatted differently when it forms part of the INTERNATIONAL format + // and NATIONAL format. A case in point is mobile numbers in Argentina: + // The number, which would be written in INTERNATIONAL format as + // +54 9 343 555 1212, will be written as 0343 15 555 1212 for NATIONAL + // format. In this case, the prefix 9 is inserted when dialling from + // overseas, but otherwise the prefix 0 and the carrier selection code + // 15 (inserted after the area code of 343) is used. + repeated NumberFormat intl_number_format = 20; + + // This field is set when this country is considered to be the main country + // for a calling code. It may not be set by more than one country with the + // same calling code, and it should not be set by countries with a unique + // calling code. This can be used to indicate that "GB" is the main country + // for the calling code "44" for example, rather than Jersey or the Isle of + // Man. + optional bool main_country_for_code = 22 [default=false]; + + // This field is populated only for countries or regions that share a country + // calling code. If a number matches this pattern, it could belong to this + // region. This is not intended as a replacement for IsValidForRegion, and + // does not mean the number must come from this region (for example, 800 + // numbers are valid for all NANPA countries.) This field should be a regular + // expression of the expected prefix match. + optional string leading_digits = 23; + + // The leading zero in a phone number is meaningful in some countries (e.g. + // Italy). This means they cannot be dropped from the national number when + // converting into international format. If leading zeros are possible for + // valid international numbers for this region/country then set this to true. + // This only needs to be set for the region that is the main_country_for_code + // and all regions associated with that calling code will use the same + // setting. + optional bool leading_zero_possible = 26 [default=false]; +} + +message PhoneMetadataCollection { + repeated PhoneMetadata metadata = 1; +} diff --git a/third_party/libphonenumber/resources/phonenumber.proto b/third_party/libphonenumber/resources/phonenumber.proto new file mode 100644 index 0000000..8ea4288 --- /dev/null +++ b/third_party/libphonenumber/resources/phonenumber.proto @@ -0,0 +1,121 @@ +/* + * Copyright (C) 2009 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Definition of protocol buffer for representing international telephone numbers. +// @author Shaopeng Jia + +syntax = "proto2"; + +option java_package = "com.google.i18n.phonenumbers"; +option optimize_for = LITE_RUNTIME; + +package i18n.phonenumbers; + +message PhoneNumber { +// The country calling code for this number, as defined by the International Telecommunication Union +// (ITU). Fox example, this would be 1 for NANPA countries, and 33 for France. + required int32 country_code = 1; + +// National (significant) Number is defined in International Telecommunication Union Recommendation +// E.164. It is a language/country-neutral representation of a phone number at a country level. For +// countries which have the concept of Area Code, the National (significant) Number contains the +// area code. It contains a maximum number of digits which equal to 15 - n, where n is the number of +// digits of the country code. Take note that National (significant) Number does not contain +// National(trunk) prefix. Obviously, as a uint64, it will never contain any formatting (hypens, +// spaces, parentheses), nor any alphanumeric spellings. + required uint64 national_number = 2; + +// Extension is not standardized in ITU recommendations, except for being defined as a series of +// numbers with a maximum length of 40 digits. It is defined as a string here to accommodate for the +// possible use of a leading zero in the extension (organizations have complete freedom to do so, +// as there is no standard defined). However, only ASCII digits should be stored here. + optional string extension = 3; + +// In some countries, the national (significant) number starts with a "0" without this being a +// national prefix or trunk code of some kind. For example, the leading zero in the national +// (significant) number of an Italian phone number indicates the number is a fixed-line number. +// There have been plans to migrate fixed-line numbers to start with the digit two since December +// 2000, but it has not happened yet. See http://en.wikipedia.org/wiki/%2B39 for more details. +// +// This field can be safely ignored (there is no need to set it) for most countries. Some limited +// amount of countries behave like Italy - for these cases, if the leading zero of a number would be +// retained even when dialling internationally, set this flag to true. +// +// Clients who use the parsing functionality of the i18n phone number libraries +// will have this field set if necessary automatically. + optional bool italian_leading_zero = 4; + +// The next few fields are non-essential fields for a phone number. They retain extra information +// about the form the phone number was in when it was provided to us to parse. They can be safely +// ignored by most clients. + +// This field is used to store the raw input string containing phone numbers before it was +// canonicalized by the library. For example, it could be used to store alphanumerical numbers +// such as "1-800-GOOG-411". + optional string raw_input = 5; + +// The source from which the country_code is derived. This is not set in the general parsing method, +// but in the method that parses and keeps raw_input. New fields could be added upon request. + enum CountryCodeSource { + // The country_code is derived based on a phone number with a leading "+", e.g. the French + // number "+33 (0)1 42 68 53 00". + FROM_NUMBER_WITH_PLUS_SIGN = 1; + + // The country_code is derived based on a phone number with a leading IDD, e.g. the French + // number "011 33 (0)1 42 68 53 00", as it is dialled from US. + FROM_NUMBER_WITH_IDD = 5; + + // The country_code is derived based on a phone number without a leading "+", e.g. the French + // number "33 (0)1 42 68 53 00" when defaultCountry is supplied as France. + FROM_NUMBER_WITHOUT_PLUS_SIGN = 10; + + // The country_code is derived NOT based on the phone number itself, but from the defaultCountry + // parameter provided in the parsing function by the clients. This happens mostly for numbers + // written in the national format (without country code). For example, this would be set when + // parsing the French number "(0)1 42 68 53 00", when defaultCountry is supplied as France. + FROM_DEFAULT_COUNTRY = 20; + } + +// The source from which the country_code is derived. + optional CountryCodeSource country_code_source = 6; + +// The carrier selection code that is preferred when calling this phone number domestically. This +// also includes codes that need to be dialed in some countries when calling from landlines to +// mobiles or vice versa. For example, in Columbia, a "3" needs to be dialed before the phone number +// itself when calling from a mobile phone to a domestic landline phone and vice versa. +// +// Note this is the "preferred" code, which means other codes may work as well. + optional string preferred_domestic_carrier_code = 7; +} + +// Examples +// +// Google MTV, +1 650-253-0000, (650) 253-0000 +// country_code: 1 +// national_number: 6502530000 +// +// Google Paris, +33 (0)1 42 68 53 00, 01 42 68 53 00 +// country_code: 33 +// national_number: 142685300 +// +// Google Beijing, +86-10-62503000, (010) 62503000 +// country_code: 86 +// national_number: 1062503000 +// +// Google Italy, +39 02-36618 300, 02-36618 300 +// country_code: 39 +// national_number: 236618300 +// italian_leading_zero: true -- cgit v1.1