diff --git a/TMessagesProj/build.gradle b/TMessagesProj/build.gradle index 8e64ce6b9..2ea726af4 100644 --- a/TMessagesProj/build.gradle +++ b/TMessagesProj/build.gradle @@ -11,29 +11,30 @@ configurations { } dependencies { - compileOnly 'org.checkerframework:checker-qual:2.5.0' + compileOnly 'org.checkerframework:checker-qual:2.5.2' compileOnly 'org.checkerframework:checker-compat-qual:2.5.0' - implementation 'com.google.firebase:firebase-core:16.0.3' - implementation 'com.google.firebase:firebase-messaging:17.3.0' - implementation 'com.google.firebase:firebase-config:16.0.0' - implementation 'com.google.android.gms:play-services-maps:15.0.1' - implementation 'com.google.android.gms:play-services-vision:15.0.2' - implementation 'com.google.android.gms:play-services-wallet:16.0.0' - implementation 'com.google.android.gms:play-services-wearable:15.0.1' - implementation 'com.android.support:support-core-ui:28.0.0-rc01' - implementation 'com.android.support:support-compat:28.0.0-rc01' - implementation 'com.android.support:support-core-utils:28.0.0-rc01' - implementation 'com.android.support:support-v13:28.0.0-rc01' - implementation 'com.android.support:palette-v7:28.0.0-rc01' - implementation 'com.android.support:exifinterface:28.0.0-rc01' - implementation 'net.hockeyapp.android:HockeySDK:5.1.0' + implementation 'com.google.firebase:firebase-core:16.0.6' + implementation 'com.google.firebase:firebase-messaging:17.3.4' + implementation 'com.google.firebase:firebase-config:16.1.3' + implementation 'com.google.android.gms:play-services-maps:16.0.0' + implementation 'com.google.android.gms:play-services-auth:16.0.1' + implementation 'com.google.android.gms:play-services-vision:16.2.0' + implementation 'com.google.android.gms:play-services-wallet:16.0.1' + implementation 'com.google.android.gms:play-services-wearable:16.0.1' + implementation 'com.android.support:support-core-ui:28.0.0' + implementation 'com.android.support:support-compat:28.0.0' + implementation 'com.android.support:support-core-utils:28.0.0' + implementation 'com.android.support:support-v13:28.0.0' + implementation 'com.android.support:palette-v7:28.0.0' + implementation 'com.android.support:exifinterface:28.0.0' + implementation 'net.hockeyapp.android:HockeySDK:5.1.1' implementation 'com.googlecode.mp4parser:isoparser:1.0.6' implementation 'com.stripe:stripe-android:2.0.2' } android { compileSdkVersion 28 - buildToolsVersion '28.0.2' + buildToolsVersion '28.0.3' defaultConfig.applicationId = "org.telegram.messenger" @@ -85,6 +86,15 @@ android { proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } + HA { + debuggable false + jniDebuggable false + signingConfig signingConfigs.debug + applicationIdSuffix ".beta" + minifyEnabled true + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + release { debuggable false jniDebuggable false @@ -101,12 +111,16 @@ android { } } - defaultConfig.versionCode = 1358 + defaultConfig.versionCode = 1478 sourceSets.debug { manifest.srcFile 'config/debug/AndroidManifest.xml' } + sourceSets.HA { + manifest.srcFile 'config/debug/AndroidManifest.xml' + } + sourceSets.release { manifest.srcFile 'config/release/AndroidManifest.xml' } @@ -238,7 +252,7 @@ android { defaultConfig { minSdkVersion 16 targetSdkVersion 27 - versionName "4.9.1" + versionName "5.2.1" vectorDrawables.generatedDensities = ['mdpi', 'hdpi', 'xhdpi', 'xxhdpi'] diff --git a/TMessagesProj/config/debug/AndroidManifest.xml b/TMessagesProj/config/debug/AndroidManifest.xml index 9bccde08f..a0b63326b 100644 --- a/TMessagesProj/config/debug/AndroidManifest.xml +++ b/TMessagesProj/config/debug/AndroidManifest.xml @@ -37,12 +37,6 @@ - - - - - diff --git a/TMessagesProj/config/debug/AndroidManifest_SDK23.xml b/TMessagesProj/config/debug/AndroidManifest_SDK23.xml index eda27d3ab..b6d77ff20 100644 --- a/TMessagesProj/config/debug/AndroidManifest_SDK23.xml +++ b/TMessagesProj/config/debug/AndroidManifest_SDK23.xml @@ -15,9 +15,6 @@ - - - @@ -41,12 +38,6 @@ - - - - - diff --git a/TMessagesProj/config/release/AndroidManifest.xml b/TMessagesProj/config/release/AndroidManifest.xml index bc4912d1e..db1b72d38 100644 --- a/TMessagesProj/config/release/AndroidManifest.xml +++ b/TMessagesProj/config/release/AndroidManifest.xml @@ -37,12 +37,6 @@ - - - - - diff --git a/TMessagesProj/config/release/AndroidManifest_SDK23.xml b/TMessagesProj/config/release/AndroidManifest_SDK23.xml index 81c7bbced..532e23b60 100644 --- a/TMessagesProj/config/release/AndroidManifest_SDK23.xml +++ b/TMessagesProj/config/release/AndroidManifest_SDK23.xml @@ -15,9 +15,6 @@ - - - @@ -41,12 +38,6 @@ - - - - - diff --git a/TMessagesProj/jni/Android.mk b/TMessagesProj/jni/Android.mk index 6542a9dfd..f8b65d557 100755 --- a/TMessagesProj/jni/Android.mk +++ b/TMessagesProj/jni/Android.mk @@ -81,13 +81,20 @@ include $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := voip -LOCAL_CPPFLAGS := -Wall -std=c++11 -DANDROID -finline-functions -ffast-math -Os -fno-strict-aliasing -O3 -frtti -D__STDC_LIMIT_MACROS -LOCAL_CFLAGS := -O3 -DUSE_KISS_FFT -fexceptions -DWEBRTC_APM_DEBUG_DUMP=0 -DWEBRTC_POSIX -D__STDC_LIMIT_MACROS -DFIXED_POINT +LOCAL_CPPFLAGS := -Wall -std=c++11 -DANDROID -finline-functions -ffast-math -Os -fno-strict-aliasing -O3 -frtti -D__STDC_LIMIT_MACROS -Wno-unknown-pragmas +LOCAL_CFLAGS := -O3 -DUSE_KISS_FFT -fexceptions -DWEBRTC_APM_DEBUG_DUMP=0 -DWEBRTC_POSIX -DWEBRTC_ANDROID -D__STDC_LIMIT_MACROS -DFIXED_POINT -DWEBRTC_NS_FLOAT MY_DIR := libtgvoip LOCAL_C_INCLUDES := jni/opus/include jni/boringssl/include/ jni/libtgvoip/webrtc_dsp/ +ifeq ($(TARGET_ARCH_ABI),$(filter $(TARGET_ARCH_ABI),armeabi-v7a arm64-v8a)) +CC_NEON := cc.neon +LOCAL_CFLAGS += -DWEBRTC_HAS_NEON +else +CC_NEON := cc +endif + LOCAL_SRC_FILES := \ ./libtgvoip/logging.cpp \ ./libtgvoip/VoIPController.cpp \ @@ -113,104 +120,307 @@ LOCAL_SRC_FILES := \ ./libtgvoip/os/posix/NetworkSocketPosix.cpp \ ./libtgvoip/PacketReassembler.cpp \ ./libtgvoip/MessageThread.cpp \ -./libtgvoip/audio/AudioIO.cpp +./libtgvoip/json11.cpp \ +./libtgvoip/audio/AudioIO.cpp \ +./libtgvoip/video/VideoRenderer.cpp \ +./libtgvoip/video/VideoSource.cpp \ +./libtgvoip/os/android/VideoSourceAndroid.cpp \ +./libtgvoip/os/android/VideoRendererAndroid.cpp # WebRTC signal processing LOCAL_SRC_FILES += \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/ring_buffer.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/auto_corr_to_refl_coef.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/auto_correlation.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/complex_bit_reverse.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/complex_fft.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/copy_set_operations.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/cross_correlation.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/division_operations.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/dot_product_with_scale.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/downsample_fast.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/energy.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/filter_ar.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/filter_ar_fast_q12.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/filter_ma_fast_q12.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/get_hanning_window.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/get_scaling_square.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/ilbc_specific_functions.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/levinson_durbin.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/lpc_to_refl_coef.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/min_max_operations.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/randomization_functions.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/real_fft.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/refl_coef_to_lpc.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/resample.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/resample_48khz.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/resample_by_2.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/resample_by_2_internal.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/resample_fractional.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/spl_init.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/spl_inl.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/spl_sqrt.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/spl_sqrt_floor.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/splitting_filter_impl.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/sqrt_of_one_minus_x_squared.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/vector_scaling_operations.c +./libtgvoip/webrtc_dsp/system_wrappers/source/field_trial.cc \ +./libtgvoip/webrtc_dsp/system_wrappers/source/metrics.cc \ +./libtgvoip/webrtc_dsp/system_wrappers/source/cpu_features.cc \ +./libtgvoip/webrtc_dsp/absl/strings/internal/memutil.cc \ +./libtgvoip/webrtc_dsp/absl/strings/string_view.cc \ +./libtgvoip/webrtc_dsp/absl/strings/ascii.cc \ +./libtgvoip/webrtc_dsp/absl/types/bad_optional_access.cc \ +./libtgvoip/webrtc_dsp/absl/types/optional.cc \ +./libtgvoip/webrtc_dsp/absl/base/internal/raw_logging.cc \ +./libtgvoip/webrtc_dsp/absl/base/internal/throw_delegate.cc \ +./libtgvoip/webrtc_dsp/rtc_base/race_checker.cc \ +./libtgvoip/webrtc_dsp/rtc_base/strings/string_builder.cc \ +./libtgvoip/webrtc_dsp/rtc_base/memory/aligned_malloc.cc \ +./libtgvoip/webrtc_dsp/rtc_base/timeutils.cc \ +./libtgvoip/webrtc_dsp/rtc_base/platform_file.cc \ +./libtgvoip/webrtc_dsp/rtc_base/string_to_number.cc \ +./libtgvoip/webrtc_dsp/rtc_base/thread_checker_impl.cc \ +./libtgvoip/webrtc_dsp/rtc_base/stringencode.cc \ +./libtgvoip/webrtc_dsp/rtc_base/stringutils.cc \ +./libtgvoip/webrtc_dsp/rtc_base/checks.cc \ +./libtgvoip/webrtc_dsp/rtc_base/platform_thread.cc \ +./libtgvoip/webrtc_dsp/rtc_base/criticalsection.cc \ +./libtgvoip/webrtc_dsp/rtc_base/platform_thread_types.cc \ +./libtgvoip/webrtc_dsp/rtc_base/event.cc \ +./libtgvoip/webrtc_dsp/rtc_base/event_tracer.cc \ +./libtgvoip/webrtc_dsp/rtc_base/logging_webrtc.cc \ +./libtgvoip/webrtc_dsp/third_party/rnnoise/src/rnn_vad_weights.cc \ +./libtgvoip/webrtc_dsp/third_party/rnnoise/src/kiss_fft.cc \ +./libtgvoip/webrtc_dsp/api/audio/audio_frame.cc \ +./libtgvoip/webrtc_dsp/api/audio/echo_canceller3_config.cc \ +./libtgvoip/webrtc_dsp/api/audio/echo_canceller3_factory.cc \ +./libtgvoip/webrtc_dsp/modules/third_party/fft/fft.c \ +./libtgvoip/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_estimator.c \ +./libtgvoip/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_shape_swb16_tables.c \ +./libtgvoip/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_gain_tables.c \ +./libtgvoip/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/arith_routines_logist.c \ +./libtgvoip/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/filterbanks.c \ +./libtgvoip/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/transform.c \ +./libtgvoip/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_filter.c \ +./libtgvoip/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/encode_lpc_swb.c \ +./libtgvoip/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/filter_functions.c \ +./libtgvoip/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/decode.c \ +./libtgvoip/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lattice.c \ +./libtgvoip/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/intialize.c \ +./libtgvoip/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_tables.c \ +./libtgvoip/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_gain_swb_tables.c \ +./libtgvoip/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/bandwidth_estimator.c \ +./libtgvoip/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/encode.c \ +./libtgvoip/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_analysis.c \ +./libtgvoip/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/arith_routines_hist.c \ +./libtgvoip/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/entropy_coding.c \ +./libtgvoip/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/isac_vad.c \ +./libtgvoip/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/arith_routines.c \ +./libtgvoip/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/crc.c \ +./libtgvoip/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/lpc_shape_swb12_tables.c \ +./libtgvoip/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/decode_bwe.c \ +./libtgvoip/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/spectrum_ar_model_tables.c \ +./libtgvoip/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/pitch_lag_tables.c \ +./libtgvoip/webrtc_dsp/modules/audio_coding/codecs/isac/main/source/isac.c \ +./libtgvoip/webrtc_dsp/modules/audio_processing/rms_level.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/echo_detector/normalized_covariance_estimator.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/echo_detector/moving_max.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/echo_detector/circular_buffer.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/echo_detector/mean_variance_estimator.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/splitting_filter.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/gain_control_impl.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/ns/nsx_core.c \ +./libtgvoip/webrtc_dsp/modules/audio_processing/ns/noise_suppression_x.c \ +./libtgvoip/webrtc_dsp/modules/audio_processing/ns/nsx_core_c.c \ +./libtgvoip/webrtc_dsp/modules/audio_processing/ns/ns_core.c \ +./libtgvoip/webrtc_dsp/modules/audio_processing/ns/noise_suppression.c \ +./libtgvoip/webrtc_dsp/modules/audio_processing/audio_buffer.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/typing_detection.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/include/audio_processing_statistics.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/include/audio_generator_factory.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/include/aec_dump.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/include/audio_processing.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/include/config.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc2/interpolated_gain_curve.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc2/agc2_common.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc2/gain_applier.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc2/adaptive_agc.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc2/adaptive_digital_gain_applier.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc2/limiter.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc2/saturation_protector.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc2/rnn_vad/spectral_features_internal.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc2/rnn_vad/rnn.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc2/rnn_vad/pitch_search_internal.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc2/rnn_vad/spectral_features.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc2/rnn_vad/pitch_search.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc2/rnn_vad/features_extraction.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc2/rnn_vad/fft_util.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc2/rnn_vad/lp_residual.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc2/adaptive_mode_level_estimator_agc.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc2/vector_float_frame.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc2/noise_level_estimator.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc2/agc2_testing_common.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc2/fixed_digital_level_estimator.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc2/fixed_gain_controller.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc2/vad_with_level.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc2/limiter_db_gain_curve.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc2/down_sampler.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc2/signal_classifier.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc2/noise_spectrum_estimator.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc2/compute_interpolated_gain_curve.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc2/biquad_filter.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/transient/moving_moments.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/transient/wpd_tree.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/transient/wpd_node.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/transient/transient_suppressor.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/transient/transient_detector.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/low_cut_filter.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/level_estimator_impl.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/three_band_filter_bank.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec/echo_cancellation.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec/aec_resampler.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec/aec_core.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/voice_detection_impl.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/echo_cancellation_impl.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/gain_control_for_experimental_agc.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc/agc.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc/loudness_histogram.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc/agc_manager_direct.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc/legacy/analog_agc.c \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc/legacy/digital_agc.c \ +./libtgvoip/webrtc_dsp/modules/audio_processing/agc/utility.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/audio_processing_impl.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/audio_generator/file_audio_generator.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/gain_controller2.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/residual_echo_detector.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/noise_suppression_impl.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aecm/aecm_core.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aecm/aecm_core_c.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aecm/echo_control_mobile.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/render_reverb_model.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/reverb_model_fallback.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/echo_remover_metrics.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/matched_filter_lag_aggregator.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/render_delay_buffer2.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/echo_path_variability.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/frame_blocker.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/subtractor.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/aec3_fft.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/fullband_erle_estimator.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/suppression_filter.$(CC_NEON) \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/block_processor.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/subband_erle_estimator.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/render_delay_controller_metrics.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/render_delay_buffer.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/vector_buffer.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/erl_estimator.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/aec_state.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/adaptive_fir_filter.$(CC_NEON) \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/render_delay_controller.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/skew_estimator.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/echo_path_delay_estimator.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/block_framer.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/erle_estimator.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/reverb_model.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/cascaded_biquad_filter.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/render_buffer.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/subtractor_output.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/stationarity_estimator.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/render_signal_analyzer.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/subtractor_output_analyzer.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/suppression_gain.$(CC_NEON) \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/echo_audibility.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/block_processor_metrics.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/moving_average.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/reverb_model_estimator.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/aec3_common.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/residual_echo_estimator.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/matched_filter.$(CC_NEON) \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/reverb_decay_estimator.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/render_delay_controller2.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/suppression_gain_limiter.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/main_filter_update_gain.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/echo_remover.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/downsampled_render_buffer.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/matrix_buffer.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/block_processor2.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/echo_canceller3.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/block_delay_buffer.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/fft_buffer.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/comfort_noise_generator.$(CC_NEON) \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/shadow_filter_update_gain.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/filter_analyzer.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/reverb_frequency_response.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec3/decimator.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/echo_control_mobile_impl.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/logging/apm_data_dumper.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/vad/voice_activity_detector.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/vad/standalone_vad.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/vad/pitch_internal.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/vad/vad_circular_buffer.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/vad/vad_audio_proc.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/vad/pole_zero_filter.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/vad/pitch_based_vad.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/vad/gmm.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/utility/ooura_fft.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/utility/delay_estimator_wrapper.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/utility/delay_estimator.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/utility/block_mean_calculator.cc \ +./libtgvoip/webrtc_dsp/common_audio/window_generator.cc \ +./libtgvoip/webrtc_dsp/common_audio/channel_buffer.cc \ +./libtgvoip/webrtc_dsp/common_audio/fir_filter_factory.cc \ +./libtgvoip/webrtc_dsp/common_audio/wav_header.cc \ +./libtgvoip/webrtc_dsp/common_audio/real_fourier_ooura.cc \ +./libtgvoip/webrtc_dsp/common_audio/audio_util.cc \ +./libtgvoip/webrtc_dsp/common_audio/resampler/push_sinc_resampler.cc \ +./libtgvoip/webrtc_dsp/common_audio/resampler/resampler.cc \ +./libtgvoip/webrtc_dsp/common_audio/resampler/push_resampler.cc \ +./libtgvoip/webrtc_dsp/common_audio/resampler/sinc_resampler.cc \ +./libtgvoip/webrtc_dsp/common_audio/resampler/sinusoidal_linear_chirp_source.cc \ +./libtgvoip/webrtc_dsp/common_audio/wav_file.cc \ +./libtgvoip/webrtc_dsp/common_audio/third_party/spl_sqrt_floor/spl_sqrt_floor.c \ +./libtgvoip/webrtc_dsp/common_audio/third_party/fft4g/fft4g.c \ +./libtgvoip/webrtc_dsp/common_audio/audio_converter.cc \ +./libtgvoip/webrtc_dsp/common_audio/real_fourier.cc \ +./libtgvoip/webrtc_dsp/common_audio/sparse_fir_filter.cc \ +./libtgvoip/webrtc_dsp/common_audio/smoothing_filter.cc \ +./libtgvoip/webrtc_dsp/common_audio/fir_filter_c.cc \ +./libtgvoip/webrtc_dsp/common_audio/ring_buffer.c \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/complex_fft.c \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/filter_ma_fast_q12.c \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/levinson_durbin.c \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/dot_product_with_scale.cc \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/auto_corr_to_refl_coef.c \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/resample_by_2_internal.c \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/energy.c \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/sqrt_of_one_minus_x_squared.c \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/downsample_fast.c \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/splitting_filter1.c \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/filter_ar_fast_q12.c \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/spl_init.c \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/lpc_to_refl_coef.c \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/cross_correlation.c \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/division_operations.c \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/auto_correlation.c \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/get_scaling_square.c \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/resample.c \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/min_max_operations.c \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/refl_coef_to_lpc.c \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/filter_ar.c \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/vector_scaling_operations.c \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/resample_fractional.c \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/real_fft.c \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/ilbc_specific_functions.c \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/complex_bit_reverse.c \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/randomization_functions.c \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/copy_set_operations.c \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/resample_by_2.c \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/get_hanning_window.c \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/resample_48khz.c \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/spl_inl.c \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/spl_sqrt.c \ +./libtgvoip/webrtc_dsp/common_audio/vad/vad_sp.c \ +./libtgvoip/webrtc_dsp/common_audio/vad/vad.cc \ +./libtgvoip/webrtc_dsp/common_audio/vad/webrtc_vad.c \ +./libtgvoip/webrtc_dsp/common_audio/vad/vad_filterbank.c \ +./libtgvoip/webrtc_dsp/common_audio/vad/vad_core.c \ +./libtgvoip/webrtc_dsp/common_audio/vad/vad_gmm.c +ifeq ($(TARGET_ARCH_ABI),$(filter $(TARGET_ARCH_ABI),armeabi-v7a arm64-v8a)) LOCAL_SRC_FILES += \ -./libtgvoip/webrtc_dsp/webrtc/base/checks.cc \ -./libtgvoip/webrtc_dsp/webrtc/modules/audio_processing/aecm/aecm_core.cc \ -./libtgvoip/webrtc_dsp/webrtc/modules/audio_processing/aecm/aecm_core_c.cc \ -./libtgvoip/webrtc_dsp/webrtc/modules/audio_processing/aecm/echo_control_mobile.cc \ -./libtgvoip/webrtc_dsp/webrtc/modules/audio_processing/utility/delay_estimator.cc \ -./libtgvoip/webrtc_dsp/webrtc/modules/audio_processing/utility/delay_estimator_wrapper.cc \ -./libtgvoip/webrtc_dsp/webrtc/modules/audio_processing/three_band_filter_bank.cc \ -./libtgvoip/webrtc_dsp/webrtc/modules/audio_processing/splitting_filter.cc \ -./libtgvoip/webrtc_dsp/webrtc/system_wrappers/source/cpu_features.cc \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/sparse_fir_filter.cc \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/channel_buffer.cc \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/audio_util.cc - -#LOCAL_SRC_FILES += \ -#./libtgvoip/webrtc_dsp/webrtc/modules/audio_processing/utility/block_mean_calculator.cc \ -#./libtgvoip/webrtc_dsp/webrtc/modules/audio_processing/utility/ooura_fft.cc \ -#./libtgvoip/webrtc_dsp/webrtc/modules/audio_processing/logging/apm_data_dumper.cc \ -#./libtgvoip/webrtc_dsp/webrtc/modules/audio_processing/aec/aec_core.cc \ -#./libtgvoip/webrtc_dsp/webrtc/modules/audio_processing/aec/aec_resampler.cc \ -#./libtgvoip/webrtc_dsp/webrtc/modules/audio_processing/aec/echo_cancellation.cc \ -#./libtgvoip/webrtc_dsp/webrtc/common_audio/wav_header.cc \ -#./libtgvoip/webrtc_dsp/webrtc/common_audio/wav_file.cc \ -#./libtgvoip/webrtc_dsp/webrtc/base/stringutils.cc - -LOCAL_SRC_FILES += \ -./libtgvoip/webrtc_dsp/webrtc/modules/audio_processing/ns/noise_suppression_x.c \ -./libtgvoip/webrtc_dsp/webrtc/modules/audio_processing/ns/noise_suppression.c \ -./libtgvoip/webrtc_dsp/webrtc/modules/audio_processing/ns/ns_core.c \ -./libtgvoip/webrtc_dsp/webrtc/modules/audio_processing/ns/nsx_core_c.c \ -./libtgvoip/webrtc_dsp/webrtc/modules/audio_processing/ns/nsx_core.c \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/fft4g.c - -LOCAL_SRC_FILES += \ -./libtgvoip/webrtc_dsp/webrtc/modules/audio_processing/agc/legacy/analog_agc.c \ -./libtgvoip/webrtc_dsp/webrtc/modules/audio_processing/agc/legacy/digital_agc.c +./libtgvoip/webrtc_dsp/modules/audio_processing/ns/nsx_core_neon.c.neon \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec/aec_core_neon.cc.neon \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aecm/aecm_core_neon.cc.neon \ +./libtgvoip/webrtc_dsp/modules/audio_processing/utility/ooura_fft_neon.cc.neon \ +./libtgvoip/webrtc_dsp/common_audio/fir_filter_neon.cc.neon \ +./libtgvoip/webrtc_dsp/common_audio/resampler/sinc_resampler_neon.cc.neon \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/downsample_fast_neon.c.neon \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/min_max_operations_neon.c.neon \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/cross_correlation_neon.c.neon +endif ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) LOCAL_SRC_FILES += \ -./libtgvoip/webrtc_dsp/webrtc/modules/audio_processing/aecm/aecm_core_neon.cc.neon \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/min_max_operations_neon.c.neon \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/downsample_fast_neon.c.neon \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/cross_correlation_neon.c.neon \ -./libtgvoip/webrtc_dsp/webrtc/common_audio/signal_processing/filter_ar_fast_q12_armv7.S.neon -#LOCAL_SRC_FILES += \ -#./libtgvoip/webrtc_dsp/webrtc/modules/audio_processing/aec/aec_core_neon.cc.neon -#./libtgvoip/webrtc_dsp/webrtc/modules/audio_processing/utility/ooura_fft_neon.cc.neon -LOCAL_SRC_FILES += \ -./libtgvoip/webrtc_dsp/webrtc/modules/audio_processing/ns/nsx_core_neon.c.neon -#LOCAL_ARM_NEON := true +./libtgvoip/webrtc_dsp/common_audio/third_party/spl_sqrt_floor/spl_sqrt_floor_arm.S.neon \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/complex_bit_reverse_arm.S.neon \ +./libtgvoip/webrtc_dsp/common_audio/signal_processing/filter_ar_fast_q12_armv7.S.neon endif -#ifeq ($(TARGET_ARCH_ABI),x86) -#LOCAL_SRC_FILES += \ -#./libtgvoip/webrtc_dsp/webrtc/modules/audio_processing/aec/aec_core_sse2.cc \ -#./libtgvoip/webrtc_dsp/webrtc/modules/audio_processing/utility/ooura_fft_sse2.cc -#endif +ifeq ($(TARGET_ARCH_ABI),$(filter $(TARGET_ARCH_ABI),x86 x86_64)) +LOCAL_SRC_FILES += \ +./libtgvoip/webrtc_dsp/modules/audio_processing/aec/aec_core_sse2.cc \ +./libtgvoip/webrtc_dsp/modules/audio_processing/utility/ooura_fft_sse2.cc \ +./libtgvoip/webrtc_dsp/common_audio/fir_filter_sse.cc \ +./libtgvoip/webrtc_dsp/common_audio/resampler/sinc_resampler_sse.cc +endif include $(BUILD_STATIC_LIBRARY) @@ -325,7 +535,7 @@ LOCAL_SRC_FILES := \ ./libwebp/utils/random.c \ ./libwebp/utils/rescaler.c \ ./libwebp/utils/thread.c \ -./libwebp/utils/utils.c \ +./libwebp/utils/utils.c include $(BUILD_STATIC_LIBRARY) @@ -405,17 +615,25 @@ LOCAL_SRC_FILES := \ ./opus/src/repacketizer.c \ ./opus/src/analysis.c \ ./opus/src/mlp.c \ -./opus/src/mlp_data.c +./opus/src/mlp_data.c \ +./opus/src/opus_projection_encoder.c \ +./opus/src/opus_projection_decoder.c \ +./opus/src/mapping_matrix.c -ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) +ifeq ($(TARGET_ARCH_ABI),$(filter $(TARGET_ARCH_ABI),armeabi-v7a arm64-v8a)) LOCAL_ARM_MODE := arm LOCAL_CPPFLAGS += -DLIBYUV_NEON LOCAL_CFLAGS += -DLIBYUV_NEON LOCAL_CFLAGS += -DOPUS_HAVE_RTCD -DOPUS_ARM_ASM LOCAL_SRC_FILES += \ -# ./opus/celt/arm/celt_neon_intr.c \ -# ./opus/silk/arm/NSQ_neon.c \ - ./opus/silk/arm/arm_silk_map.c + ./opus/celt/arm/celt_neon_intr.c.neon \ + ./opus/celt/arm/pitch_neon_intr.c.neon \ + ./opus/silk/arm/NSQ_neon.c.neon \ + ./opus/silk/arm/arm_silk_map.c \ + ./opus/silk/arm/LPC_inv_pred_gain_neon_intr.c.neon \ + ./opus/silk/arm/NSQ_del_dec_neon_intr.c.neon \ + ./opus/silk/arm/biquad_alt_neon_intr.c.neon \ + ./opus/silk/fixed/arm/warped_autocorrelation_FIX_neon_intr.c.neon # LOCAL_SRC_FILES += ./opus/celt/arm/celt_pitch_xcorr_arm-gnu.S diff --git a/TMessagesProj/jni/TgNetWrapper.cpp b/TMessagesProj/jni/TgNetWrapper.cpp index da84f81e0..71d8954d7 100644 --- a/TMessagesProj/jni/TgNetWrapper.cpp +++ b/TMessagesProj/jni/TgNetWrapper.cpp @@ -428,6 +428,16 @@ void setLangCode(JNIEnv *env, jclass c, jint instanceNum, jstring langCode) { } } +void setSystemLangCode(JNIEnv *env, jclass c, jint instanceNum, jstring langCode) { + const char *langCodeStr = env->GetStringUTFChars(langCode, 0); + + ConnectionsManager::getInstance(instanceNum).setSystemLangCode(std::string(langCodeStr)); + + if (langCodeStr != 0) { + env->ReleaseStringUTFChars(langCode, langCodeStr); + } +} + void init(JNIEnv *env, jclass c, jint instanceNum, jint version, jint layer, jint apiId, jstring deviceModel, jstring systemVersion, jstring appVersion, jstring langCode, jstring systemLangCode, jstring configPath, jstring logPath, jint userId, jboolean enablePushConnection, jboolean hasNetwork, jint networkType) { const char *deviceModelStr = env->GetStringUTFChars(deviceModel, 0); const char *systemVersionStr = env->GetStringUTFChars(systemVersion, 0); @@ -486,6 +496,7 @@ static JNINativeMethod ConnectionsManagerMethods[] = { {"native_setUserId", "(II)V", (void *) setUserId}, {"native_init", "(IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IZZI)V", (void *) init}, {"native_setLangCode", "(ILjava/lang/String;)V", (void *) setLangCode}, + {"native_setSystemLangCode", "(ILjava/lang/String;)V", (void *) setSystemLangCode}, {"native_switchBackend", "(I)V", (void *) switchBackend}, {"native_pauseNetwork", "(I)V", (void *) pauseNetwork}, {"native_resumeNetwork", "(IZ)V", (void *) resumeNetwork}, diff --git a/TMessagesProj/jni/emoji/emoji_suggestions_data.cpp b/TMessagesProj/jni/emoji/emoji_suggestions_data.cpp index c6b570c4f..414e7d289 100755 --- a/TMessagesProj/jni/emoji/emoji_suggestions_data.cpp +++ b/TMessagesProj/jni/emoji/emoji_suggestions_data.cpp @@ -32,6066 +32,6373 @@ struct ReplacementStruct { }; const utf16char ReplacementData[] = { -0xd83d, 0xde00, 0x3a, 0x67, 0x72, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x3a, -0x67, 0x72, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0xd83d, 0xde03, 0x3a, 0x73, -0x6d, 0x69, 0x6c, 0x65, 0x79, 0x3a, 0x73, 0x6d, 0x69, 0x6c, 0x65, 0x79, -0xd83d, 0xde04, 0x3a, 0x73, 0x6d, 0x69, 0x6c, 0x65, 0x3a, 0x73, 0x6d, 0x69, -0x6c, 0x65, 0xd83d, 0xde01, 0x3a, 0x67, 0x72, 0x69, 0x6e, 0x3a, 0x67, 0x72, -0x69, 0x6e, 0xd83d, 0xde06, 0x3a, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, -0x65, 0x64, 0x3a, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, -0xd83d, 0xde06, 0x3a, 0x6c, 0x61, 0x75, 0x67, 0x68, 0x69, 0x6e, 0x67, 0x3a, -0x6c, 0x61, 0x75, 0x67, 0x68, 0x69, 0x6e, 0x67, 0xd83d, 0xde05, 0x3a, 0x73, -0x77, 0x65, 0x61, 0x74, 0x5f, 0x73, 0x6d, 0x69, 0x6c, 0x65, 0x3a, 0x73, -0x6d, 0x69, 0x6c, 0x65, 0x73, 0x77, 0x65, 0x61, 0x74, 0xd83d, 0xde02, 0x3a, -0x6a, 0x6f, 0x79, 0x3a, 0x6a, 0x6f, 0x79, 0xd83e, 0xdd23, 0x3a, 0x72, 0x6f, -0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x6e, 0x5f, 0x74, 0x68, 0x65, -0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x5f, 0x6c, 0x61, 0x75, 0x67, 0x68, -0x69, 0x6e, 0x67, 0x3a, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x6c, 0x61, 0x75, -0x67, 0x68, 0x69, 0x6e, 0x67, 0x6f, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x69, -0x6e, 0x67, 0x74, 0x68, 0x65, 0xd83e, 0xdd23, 0x3a, 0x72, 0x6f, 0x66, 0x6c, -0x3a, 0x72, 0x6f, 0x66, 0x6c, 0x263a, 0xfe0f, 0x3a, 0x72, 0x65, 0x6c, 0x61, -0x78, 0x65, 0x64, 0x3a, 0x72, 0x65, 0x6c, 0x61, 0x78, 0x65, 0x64, 0xd83d, -0xde0a, 0x3a, 0x62, 0x6c, 0x75, 0x73, 0x68, 0x3a, 0x62, 0x6c, 0x75, 0x73, -0x68, 0xd83d, 0xde07, 0x3a, 0x69, 0x6e, 0x6e, 0x6f, 0x63, 0x65, 0x6e, 0x74, -0x3a, 0x69, 0x6e, 0x6e, 0x6f, 0x63, 0x65, 0x6e, 0x74, 0xd83d, 0xde42, 0x3a, -0x73, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x6c, 0x79, 0x5f, 0x73, 0x6d, 0x69, -0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, -0x63, 0x65, 0x73, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x6c, 0x79, 0x73, 0x6d, -0x69, 0x6c, 0x69, 0x6e, 0x67, 0xd83d, 0xde42, 0x3a, 0x73, 0x6c, 0x69, 0x67, -0x68, 0x74, 0x5f, 0x73, 0x6d, 0x69, 0x6c, 0x65, 0x3a, 0x73, 0x6c, 0x69, -0x67, 0x68, 0x74, 0x73, 0x6d, 0x69, 0x6c, 0x65, 0xd83d, 0xde43, 0x3a, 0x75, -0x70, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x66, -0x61, 0x63, 0x65, 0x3a, 0x64, 0x6f, 0x77, 0x6e, 0x66, 0x61, 0x63, 0x65, -0x75, 0x70, 0x73, 0x69, 0x64, 0x65, 0xd83d, 0xde43, 0x3a, 0x75, 0x70, 0x73, -0x69, 0x64, 0x65, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x3a, 0x64, 0x6f, 0x77, -0x6e, 0x75, 0x70, 0x73, 0x69, 0x64, 0x65, 0xd83d, 0xde09, 0x3a, 0x77, 0x69, -0x6e, 0x6b, 0x3a, 0x77, 0x69, 0x6e, 0x6b, 0xd83d, 0xde0c, 0x3a, 0x72, 0x65, -0x6c, 0x69, 0x65, 0x76, 0x65, 0x64, 0x3a, 0x72, 0x65, 0x6c, 0x69, 0x65, -0x76, 0x65, 0x64, 0xd83d, 0xde0d, 0x3a, 0x68, 0x65, 0x61, 0x72, 0x74, 0x5f, -0x65, 0x79, 0x65, 0x73, 0x3a, 0x65, 0x79, 0x65, 0x73, 0x68, 0x65, 0x61, -0x72, 0x74, 0xd83d, 0xde18, 0x3a, 0x6b, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, -0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x3a, 0x68, 0x65, 0x61, 0x72, 0x74, -0x6b, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0xd83d, 0xde17, 0x3a, 0x6b, 0x69, -0x73, 0x73, 0x69, 0x6e, 0x67, 0x3a, 0x6b, 0x69, 0x73, 0x73, 0x69, 0x6e, -0x67, 0xd83d, 0xde19, 0x3a, 0x6b, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, -0x73, 0x6d, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x79, 0x65, 0x73, -0x3a, 0x65, 0x79, 0x65, 0x73, 0x6b, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, -0x73, 0x6d, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0xd83d, 0xde1a, 0x3a, 0x6b, 0x69, -0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, -0x5f, 0x65, 0x79, 0x65, 0x73, 0x3a, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, -0x65, 0x79, 0x65, 0x73, 0x6b, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0xd83d, -0xde0b, 0x3a, 0x79, 0x75, 0x6d, 0x3a, 0x79, 0x75, 0x6d, 0xd83d, 0xde1c, 0x3a, -0x73, 0x74, 0x75, 0x63, 0x6b, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x74, 0x6f, -0x6e, 0x67, 0x75, 0x65, 0x5f, 0x77, 0x69, 0x6e, 0x6b, 0x69, 0x6e, 0x67, -0x5f, 0x65, 0x79, 0x65, 0x3a, 0x65, 0x79, 0x65, 0x6f, 0x75, 0x74, 0x73, -0x74, 0x75, 0x63, 0x6b, 0x74, 0x6f, 0x6e, 0x67, 0x75, 0x65, 0x77, 0x69, -0x6e, 0x6b, 0x69, 0x6e, 0x67, 0xd83d, 0xde1d, 0x3a, 0x73, 0x74, 0x75, 0x63, -0x6b, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x74, 0x6f, 0x6e, 0x67, 0x75, 0x65, -0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x5f, 0x65, 0x79, 0x65, 0x73, -0x3a, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x65, 0x79, 0x65, 0x73, 0x6f, -0x75, 0x74, 0x73, 0x74, 0x75, 0x63, 0x6b, 0x74, 0x6f, 0x6e, 0x67, 0x75, -0x65, 0xd83d, 0xde1b, 0x3a, 0x73, 0x74, 0x75, 0x63, 0x6b, 0x5f, 0x6f, 0x75, -0x74, 0x5f, 0x74, 0x6f, 0x6e, 0x67, 0x75, 0x65, 0x3a, 0x6f, 0x75, 0x74, -0x73, 0x74, 0x75, 0x63, 0x6b, 0x74, 0x6f, 0x6e, 0x67, 0x75, 0x65, 0xd83e, -0xdd11, 0x3a, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x5f, 0x6d, 0x6f, 0x75, 0x74, -0x68, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x6d, -0x6f, 0x6e, 0x65, 0x79, 0x6d, 0x6f, 0x75, 0x74, 0x68, 0xd83e, 0xdd11, 0x3a, -0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x5f, 0x6d, 0x6f, 0x75, 0x74, 0x68, 0x3a, -0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x6d, 0x6f, 0x75, 0x74, 0x68, 0xd83e, 0xdd17, -0x3a, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, 0x63, -0x65, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, -0x67, 0xd83e, 0xdd17, 0x3a, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x3a, -0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0xd83e, 0xdd13, 0x3a, 0x6e, 0x65, -0x72, 0x64, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, 0x63, 0x65, -0x6e, 0x65, 0x72, 0x64, 0xd83e, 0xdd13, 0x3a, 0x6e, 0x65, 0x72, 0x64, 0x3a, -0x6e, 0x65, 0x72, 0x64, 0xd83d, 0xde0e, 0x3a, 0x73, 0x75, 0x6e, 0x67, 0x6c, -0x61, 0x73, 0x73, 0x65, 0x73, 0x3a, 0x73, 0x75, 0x6e, 0x67, 0x6c, 0x61, -0x73, 0x73, 0x65, 0x73, 0xd83e, 0xdd21, 0x3a, 0x63, 0x6c, 0x6f, 0x77, 0x6e, -0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x63, 0x6c, 0x6f, 0x77, 0x6e, 0x66, -0x61, 0x63, 0x65, 0xd83e, 0xdd21, 0x3a, 0x63, 0x6c, 0x6f, 0x77, 0x6e, 0x3a, -0x63, 0x6c, 0x6f, 0x77, 0x6e, 0xd83e, 0xdd20, 0x3a, 0x66, 0x61, 0x63, 0x65, -0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x63, 0x6f, 0x77, 0x62, 0x6f, 0x79, -0x5f, 0x68, 0x61, 0x74, 0x3a, 0x63, 0x6f, 0x77, 0x62, 0x6f, 0x79, 0x66, -0x61, 0x63, 0x65, 0x68, 0x61, 0x74, 0x77, 0x69, 0x74, 0x68, 0xd83e, 0xdd20, -0x3a, 0x63, 0x6f, 0x77, 0x62, 0x6f, 0x79, 0x3a, 0x63, 0x6f, 0x77, 0x62, -0x6f, 0x79, 0xd83d, 0xde0f, 0x3a, 0x73, 0x6d, 0x69, 0x72, 0x6b, 0x3a, 0x73, -0x6d, 0x69, 0x72, 0x6b, 0xd83d, 0xde12, 0x3a, 0x75, 0x6e, 0x61, 0x6d, 0x75, -0x73, 0x65, 0x64, 0x3a, 0x75, 0x6e, 0x61, 0x6d, 0x75, 0x73, 0x65, 0x64, -0xd83d, 0xde1e, 0x3a, 0x64, 0x69, 0x73, 0x61, 0x70, 0x70, 0x6f, 0x69, 0x6e, -0x74, 0x65, 0x64, 0x3a, 0x64, 0x69, 0x73, 0x61, 0x70, 0x70, 0x6f, 0x69, -0x6e, 0x74, 0x65, 0x64, 0xd83d, 0xde14, 0x3a, 0x70, 0x65, 0x6e, 0x73, 0x69, -0x76, 0x65, 0x3a, 0x70, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0xd83d, 0xde1f, -0x3a, 0x77, 0x6f, 0x72, 0x72, 0x69, 0x65, 0x64, 0x3a, 0x77, 0x6f, 0x72, -0x72, 0x69, 0x65, 0x64, 0xd83d, 0xde15, 0x3a, 0x63, 0x6f, 0x6e, 0x66, 0x75, -0x73, 0x65, 0x64, 0x3a, 0x63, 0x6f, 0x6e, 0x66, 0x75, 0x73, 0x65, 0x64, -0xd83d, 0xde41, 0x3a, 0x73, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x6c, 0x79, 0x5f, -0x66, 0x72, 0x6f, 0x77, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, 0x63, -0x65, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x66, 0x72, 0x6f, 0x77, 0x6e, 0x69, -0x6e, 0x67, 0x73, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x6c, 0x79, 0xd83d, 0xde41, -0x3a, 0x73, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x66, 0x72, 0x6f, 0x77, -0x6e, 0x3a, 0x66, 0x72, 0x6f, 0x77, 0x6e, 0x73, 0x6c, 0x69, 0x67, 0x68, -0x74, 0x2639, 0xfe0f, 0x3a, 0x77, 0x68, 0x69, 0x74, 0x65, 0x5f, 0x66, 0x72, -0x6f, 0x77, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, -0x66, 0x61, 0x63, 0x65, 0x66, 0x72, 0x6f, 0x77, 0x6e, 0x69, 0x6e, 0x67, -0x77, 0x68, 0x69, 0x74, 0x65, 0x2639, 0xfe0f, 0x3a, 0x66, 0x72, 0x6f, 0x77, -0x6e, 0x69, 0x6e, 0x67, 0x32, 0x3a, 0x66, 0x72, 0x6f, 0x77, 0x6e, 0x69, -0x6e, 0x67, 0x32, 0xd83d, 0xde23, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x65, 0x76, -0x65, 0x72, 0x65, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x65, 0x76, 0x65, 0x72, -0x65, 0xd83d, 0xde16, 0x3a, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x75, 0x6e, 0x64, -0x65, 0x64, 0x3a, 0x63, 0x6f, 0x6e, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x65, -0x64, 0xd83d, 0xde2b, 0x3a, 0x74, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x66, 0x61, -0x63, 0x65, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, -0xd83d, 0xde29, 0x3a, 0x77, 0x65, 0x61, 0x72, 0x79, 0x3a, 0x77, 0x65, 0x61, -0x72, 0x79, 0xd83d, 0xde24, 0x3a, 0x74, 0x72, 0x69, 0x75, 0x6d, 0x70, 0x68, -0x3a, 0x74, 0x72, 0x69, 0x75, 0x6d, 0x70, 0x68, 0xd83d, 0xde20, 0x3a, 0x61, -0x6e, 0x67, 0x72, 0x79, 0x3a, 0x61, 0x6e, 0x67, 0x72, 0x79, 0xd83d, 0xde21, -0x3a, 0x72, 0x61, 0x67, 0x65, 0x3a, 0x72, 0x61, 0x67, 0x65, 0xd83d, 0xde36, -0x3a, 0x6e, 0x6f, 0x5f, 0x6d, 0x6f, 0x75, 0x74, 0x68, 0x3a, 0x6d, 0x6f, -0x75, 0x74, 0x68, 0x6e, 0x6f, 0xd83d, 0xde10, 0x3a, 0x6e, 0x65, 0x75, 0x74, -0x72, 0x61, 0x6c, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, 0x63, -0x65, 0x6e, 0x65, 0x75, 0x74, 0x72, 0x61, 0x6c, 0xd83d, 0xde11, 0x3a, 0x65, -0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x6c, 0x65, 0x73, -0x73, 0x3a, 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, -0x6c, 0x65, 0x73, 0x73, 0xd83d, 0xde2f, 0x3a, 0x68, 0x75, 0x73, 0x68, 0x65, -0x64, 0x3a, 0x68, 0x75, 0x73, 0x68, 0x65, 0x64, 0xd83d, 0xde26, 0x3a, 0x66, -0x72, 0x6f, 0x77, 0x6e, 0x69, 0x6e, 0x67, 0x3a, 0x66, 0x72, 0x6f, 0x77, -0x6e, 0x69, 0x6e, 0x67, 0xd83d, 0xde27, 0x3a, 0x61, 0x6e, 0x67, 0x75, 0x69, -0x73, 0x68, 0x65, 0x64, 0x3a, 0x61, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, -0x65, 0x64, 0xd83d, 0xde2e, 0x3a, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x6d, 0x6f, -0x75, 0x74, 0x68, 0x3a, 0x6d, 0x6f, 0x75, 0x74, 0x68, 0x6f, 0x70, 0x65, -0x6e, 0xd83d, 0xde32, 0x3a, 0x61, 0x73, 0x74, 0x6f, 0x6e, 0x69, 0x73, 0x68, -0x65, 0x64, 0x3a, 0x61, 0x73, 0x74, 0x6f, 0x6e, 0x69, 0x73, 0x68, 0x65, -0x64, 0xd83d, 0xde35, 0x3a, 0x64, 0x69, 0x7a, 0x7a, 0x79, 0x5f, 0x66, 0x61, -0x63, 0x65, 0x3a, 0x64, 0x69, 0x7a, 0x7a, 0x79, 0x66, 0x61, 0x63, 0x65, -0xd83d, 0xde33, 0x3a, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0x3a, 0x66, -0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0xd83d, 0xde31, 0x3a, 0x73, 0x63, 0x72, -0x65, 0x61, 0x6d, 0x3a, 0x73, 0x63, 0x72, 0x65, 0x61, 0x6d, 0xd83d, 0xde28, -0x3a, 0x66, 0x65, 0x61, 0x72, 0x66, 0x75, 0x6c, 0x3a, 0x66, 0x65, 0x61, -0x72, 0x66, 0x75, 0x6c, 0xd83d, 0xde30, 0x3a, 0x63, 0x6f, 0x6c, 0x64, 0x5f, -0x73, 0x77, 0x65, 0x61, 0x74, 0x3a, 0x63, 0x6f, 0x6c, 0x64, 0x73, 0x77, -0x65, 0x61, 0x74, 0xd83d, 0xde22, 0x3a, 0x63, 0x72, 0x79, 0x3a, 0x63, 0x72, -0x79, 0xd83d, 0xde25, 0x3a, 0x64, 0x69, 0x73, 0x61, 0x70, 0x70, 0x6f, 0x69, -0x6e, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x6c, 0x69, 0x65, 0x76, 0x65, -0x64, 0x3a, 0x64, 0x69, 0x73, 0x61, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, -0x65, 0x64, 0x72, 0x65, 0x6c, 0x69, 0x65, 0x76, 0x65, 0x64, 0xd83e, 0xdd24, -0x3a, 0x64, 0x72, 0x6f, 0x6f, 0x6c, 0x3a, 0x64, 0x72, 0x6f, 0x6f, 0x6c, -0xd83e, 0xdd24, 0x3a, 0x64, 0x72, 0x6f, 0x6f, 0x6c, 0x69, 0x6e, 0x67, 0x5f, -0x66, 0x61, 0x63, 0x65, 0x3a, 0x64, 0x72, 0x6f, 0x6f, 0x6c, 0x69, 0x6e, -0x67, 0x66, 0x61, 0x63, 0x65, 0xd83d, 0xde2d, 0x3a, 0x73, 0x6f, 0x62, 0x3a, -0x73, 0x6f, 0x62, 0xd83d, 0xde13, 0x3a, 0x73, 0x77, 0x65, 0x61, 0x74, 0x3a, -0x73, 0x77, 0x65, 0x61, 0x74, 0xd83d, 0xde2a, 0x3a, 0x73, 0x6c, 0x65, 0x65, -0x70, 0x79, 0x3a, 0x73, 0x6c, 0x65, 0x65, 0x70, 0x79, 0xd83d, 0xde34, 0x3a, -0x73, 0x6c, 0x65, 0x65, 0x70, 0x69, 0x6e, 0x67, 0x3a, 0x73, 0x6c, 0x65, -0x65, 0x70, 0x69, 0x6e, 0x67, 0xd83d, 0xde44, 0x3a, 0x66, 0x61, 0x63, 0x65, -0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, -0x67, 0x5f, 0x65, 0x79, 0x65, 0x73, 0x3a, 0x65, 0x79, 0x65, 0x73, 0x66, -0x61, 0x63, 0x65, 0x72, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x77, 0x69, -0x74, 0x68, 0xd83d, 0xde44, 0x3a, 0x72, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, -0x5f, 0x65, 0x79, 0x65, 0x73, 0x3a, 0x65, 0x79, 0x65, 0x73, 0x72, 0x6f, -0x6c, 0x6c, 0x69, 0x6e, 0x67, 0xd83e, 0xdd14, 0x3a, 0x68, 0x6d, 0x6d, 0x3a, -0x68, 0x6d, 0x6d, 0xd83e, 0xdd14, 0x3a, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x69, -0x6e, 0x67, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, 0x63, 0x65, -0x74, 0x68, 0x69, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0xd83e, 0xdd14, 0x3a, 0x74, -0x68, 0x69, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x3a, 0x74, 0x68, 0x69, 0x6e, -0x6b, 0x69, 0x6e, 0x67, 0xd83e, 0xdd25, 0x3a, 0x6c, 0x69, 0x61, 0x72, 0x3a, -0x6c, 0x69, 0x61, 0x72, 0xd83e, 0xdd25, 0x3a, 0x6c, 0x79, 0x69, 0x6e, 0x67, -0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x6c, 0x79, -0x69, 0x6e, 0x67, 0xd83d, 0xde2c, 0x3a, 0x67, 0x72, 0x69, 0x6d, 0x61, 0x63, -0x69, 0x6e, 0x67, 0x3a, 0x67, 0x72, 0x69, 0x6d, 0x61, 0x63, 0x69, 0x6e, -0x67, 0xd83e, 0xdd10, 0x3a, 0x7a, 0x69, 0x70, 0x70, 0x65, 0x72, 0x5f, 0x6d, -0x6f, 0x75, 0x74, 0x68, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, -0x63, 0x65, 0x6d, 0x6f, 0x75, 0x74, 0x68, 0x7a, 0x69, 0x70, 0x70, 0x65, -0x72, 0xd83e, 0xdd10, 0x3a, 0x7a, 0x69, 0x70, 0x70, 0x65, 0x72, 0x5f, 0x6d, -0x6f, 0x75, 0x74, 0x68, 0x3a, 0x6d, 0x6f, 0x75, 0x74, 0x68, 0x7a, 0x69, -0x70, 0x70, 0x65, 0x72, 0xd83e, 0xdd22, 0x3a, 0x73, 0x69, 0x63, 0x6b, 0x3a, -0x73, 0x69, 0x63, 0x6b, 0xd83e, 0xdd22, 0x3a, 0x6e, 0x61, 0x75, 0x73, 0x65, -0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, -0x63, 0x65, 0x6e, 0x61, 0x75, 0x73, 0x65, 0x61, 0x74, 0x65, 0x64, 0xd83e, -0xdd27, 0x3a, 0x73, 0x6e, 0x65, 0x65, 0x7a, 0x65, 0x3a, 0x73, 0x6e, 0x65, -0x65, 0x7a, 0x65, 0xd83e, 0xdd27, 0x3a, 0x73, 0x6e, 0x65, 0x65, 0x7a, 0x69, -0x6e, 0x67, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, 0x63, 0x65, -0x73, 0x6e, 0x65, 0x65, 0x7a, 0x69, 0x6e, 0x67, 0xd83d, 0xde37, 0x3a, 0x6d, -0x61, 0x73, 0x6b, 0x3a, 0x6d, 0x61, 0x73, 0x6b, 0xd83e, 0xdd12, 0x3a, 0x66, -0x61, 0x63, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x74, 0x68, 0x65, -0x72, 0x6d, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x3a, 0x66, 0x61, 0x63, -0x65, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, -0x77, 0x69, 0x74, 0x68, 0xd83e, 0xdd12, 0x3a, 0x74, 0x68, 0x65, 0x72, 0x6d, -0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, -0x66, 0x61, 0x63, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x6f, 0x6d, 0x65, -0x74, 0x65, 0x72, 0xd83e, 0xdd15, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x77, -0x69, 0x74, 0x68, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x62, 0x61, 0x6e, -0x64, 0x61, 0x67, 0x65, 0x3a, 0x62, 0x61, 0x6e, 0x64, 0x61, 0x67, 0x65, -0x66, 0x61, 0x63, 0x65, 0x68, 0x65, 0x61, 0x64, 0x77, 0x69, 0x74, 0x68, -0xd83e, 0xdd15, 0x3a, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x62, 0x61, 0x6e, 0x64, -0x61, 0x67, 0x65, 0x3a, 0x62, 0x61, 0x6e, 0x64, 0x61, 0x67, 0x65, 0x68, -0x65, 0x61, 0x64, 0xd83d, 0xde08, 0x3a, 0x73, 0x6d, 0x69, 0x6c, 0x69, 0x6e, -0x67, 0x5f, 0x69, 0x6d, 0x70, 0x3a, 0x69, 0x6d, 0x70, 0x73, 0x6d, 0x69, -0x6c, 0x69, 0x6e, 0x67, 0xd83d, 0xdc7f, 0x3a, 0x69, 0x6d, 0x70, 0x3a, 0x69, -0x6d, 0x70, 0xd83d, 0xdc79, 0x3a, 0x6a, 0x61, 0x70, 0x61, 0x6e, 0x65, 0x73, -0x65, 0x5f, 0x6f, 0x67, 0x72, 0x65, 0x3a, 0x6a, 0x61, 0x70, 0x61, 0x6e, -0x65, 0x73, 0x65, 0x6f, 0x67, 0x72, 0x65, 0xd83d, 0xdc7a, 0x3a, 0x6a, 0x61, -0x70, 0x61, 0x6e, 0x65, 0x73, 0x65, 0x5f, 0x67, 0x6f, 0x62, 0x6c, 0x69, -0x6e, 0x3a, 0x67, 0x6f, 0x62, 0x6c, 0x69, 0x6e, 0x6a, 0x61, 0x70, 0x61, -0x6e, 0x65, 0x73, 0x65, 0xd83d, 0xdca9, 0x3a, 0x70, 0x6f, 0x6f, 0x3a, 0x70, -0x6f, 0x6f, 0xd83d, 0xdca9, 0x3a, 0x68, 0x61, 0x6e, 0x6b, 0x65, 0x79, 0x3a, -0x68, 0x61, 0x6e, 0x6b, 0x65, 0x79, 0xd83d, 0xdca9, 0x3a, 0x73, 0x68, 0x69, -0x74, 0x3a, 0x73, 0x68, 0x69, 0x74, 0xd83d, 0xdca9, 0x3a, 0x70, 0x6f, 0x6f, -0x70, 0x3a, 0x70, 0x6f, 0x6f, 0x70, 0xd83d, 0xdc7b, 0x3a, 0x67, 0x68, 0x6f, -0x73, 0x74, 0x3a, 0x67, 0x68, 0x6f, 0x73, 0x74, 0xd83d, 0xdc80, 0x3a, 0x73, -0x6b, 0x65, 0x6c, 0x65, 0x74, 0x6f, 0x6e, 0x3a, 0x73, 0x6b, 0x65, 0x6c, -0x65, 0x74, 0x6f, 0x6e, 0xd83d, 0xdc80, 0x3a, 0x73, 0x6b, 0x75, 0x6c, 0x6c, -0x3a, 0x73, 0x6b, 0x75, 0x6c, 0x6c, 0x2620, 0xfe0f, 0x3a, 0x73, 0x6b, 0x75, -0x6c, 0x6c, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, 0x72, 0x6f, 0x73, 0x73, -0x62, 0x6f, 0x6e, 0x65, 0x73, 0x3a, 0x61, 0x6e, 0x64, 0x63, 0x72, 0x6f, -0x73, 0x73, 0x62, 0x6f, 0x6e, 0x65, 0x73, 0x73, 0x6b, 0x75, 0x6c, 0x6c, -0x2620, 0xfe0f, 0x3a, 0x73, 0x6b, 0x75, 0x6c, 0x6c, 0x5f, 0x63, 0x72, 0x6f, -0x73, 0x73, 0x62, 0x6f, 0x6e, 0x65, 0x73, 0x3a, 0x63, 0x72, 0x6f, 0x73, -0x73, 0x62, 0x6f, 0x6e, 0x65, 0x73, 0x73, 0x6b, 0x75, 0x6c, 0x6c, 0xd83d, -0xdc7d, 0x3a, 0x61, 0x6c, 0x69, 0x65, 0x6e, 0x3a, 0x61, 0x6c, 0x69, 0x65, -0x6e, 0xd83d, 0xdc7e, 0x3a, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x6e, -0x76, 0x61, 0x64, 0x65, 0x72, 0x3a, 0x69, 0x6e, 0x76, 0x61, 0x64, 0x65, -0x72, 0x73, 0x70, 0x61, 0x63, 0x65, 0xd83e, 0xdd16, 0x3a, 0x72, 0x6f, 0x62, -0x6f, 0x74, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, 0x63, 0x65, -0x72, 0x6f, 0x62, 0x6f, 0x74, 0xd83e, 0xdd16, 0x3a, 0x72, 0x6f, 0x62, 0x6f, -0x74, 0x3a, 0x72, 0x6f, 0x62, 0x6f, 0x74, 0xd83c, 0xdf83, 0x3a, 0x6a, 0x61, -0x63, 0x6b, 0x5f, 0x6f, 0x5f, 0x6c, 0x61, 0x6e, 0x74, 0x65, 0x72, 0x6e, -0x3a, 0x6a, 0x61, 0x63, 0x6b, 0x6c, 0x61, 0x6e, 0x74, 0x65, 0x72, 0x6e, -0x6f, 0xd83d, 0xde3a, 0x3a, 0x73, 0x6d, 0x69, 0x6c, 0x65, 0x79, 0x5f, 0x63, -0x61, 0x74, 0x3a, 0x63, 0x61, 0x74, 0x73, 0x6d, 0x69, 0x6c, 0x65, 0x79, -0xd83d, 0xde38, 0x3a, 0x73, 0x6d, 0x69, 0x6c, 0x65, 0x5f, 0x63, 0x61, 0x74, -0x3a, 0x63, 0x61, 0x74, 0x73, 0x6d, 0x69, 0x6c, 0x65, 0xd83d, 0xde39, 0x3a, -0x6a, 0x6f, 0x79, 0x5f, 0x63, 0x61, 0x74, 0x3a, 0x63, 0x61, 0x74, 0x6a, -0x6f, 0x79, 0xd83d, 0xde3b, 0x3a, 0x68, 0x65, 0x61, 0x72, 0x74, 0x5f, 0x65, -0x79, 0x65, 0x73, 0x5f, 0x63, 0x61, 0x74, 0x3a, 0x63, 0x61, 0x74, 0x65, -0x79, 0x65, 0x73, 0x68, 0x65, 0x61, 0x72, 0x74, 0xd83d, 0xde3c, 0x3a, 0x73, -0x6d, 0x69, 0x72, 0x6b, 0x5f, 0x63, 0x61, 0x74, 0x3a, 0x63, 0x61, 0x74, -0x73, 0x6d, 0x69, 0x72, 0x6b, 0xd83d, 0xde3d, 0x3a, 0x6b, 0x69, 0x73, 0x73, -0x69, 0x6e, 0x67, 0x5f, 0x63, 0x61, 0x74, 0x3a, 0x63, 0x61, 0x74, 0x6b, -0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0xd83d, 0xde40, 0x3a, 0x73, 0x63, 0x72, -0x65, 0x61, 0x6d, 0x5f, 0x63, 0x61, 0x74, 0x3a, 0x63, 0x61, 0x74, 0x73, -0x63, 0x72, 0x65, 0x61, 0x6d, 0xd83d, 0xde3f, 0x3a, 0x63, 0x72, 0x79, 0x69, -0x6e, 0x67, 0x5f, 0x63, 0x61, 0x74, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, -0x63, 0x61, 0x74, 0x63, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, -0x65, 0xd83d, 0xde3e, 0x3a, 0x70, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, -0x63, 0x61, 0x74, 0x3a, 0x63, 0x61, 0x74, 0x70, 0x6f, 0x75, 0x74, 0x69, -0x6e, 0x67, 0xd83d, 0xdc50, 0x3a, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x68, 0x61, -0x6e, 0x64, 0x73, 0x3a, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x6f, 0x70, 0x65, -0x6e, 0xd83d, 0xde4c, 0x3a, 0x72, 0x61, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x68, -0x61, 0x6e, 0x64, 0x73, 0x3a, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x72, 0x61, -0x69, 0x73, 0x65, 0x64, 0xd83d, 0xdc4f, 0x3a, 0x63, 0x6c, 0x61, 0x70, 0x3a, -0x63, 0x6c, 0x61, 0x70, 0xd83d, 0xde4f, 0x3a, 0x70, 0x72, 0x61, 0x79, 0x3a, -0x70, 0x72, 0x61, 0x79, 0xd83e, 0xdd1d, 0x3a, 0x73, 0x68, 0x61, 0x6b, 0x69, -0x6e, 0x67, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x3a, 0x68, 0x61, 0x6e, -0x64, 0x73, 0x73, 0x68, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0xd83e, 0xdd1d, 0x3a, -0x68, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0x3a, 0x68, 0x61, -0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0xd83d, 0xdc4d, 0x3a, 0x6c, 0x69, -0x6b, 0x65, 0x3a, 0x6c, 0x69, 0x6b, 0x65, 0xd83d, 0xdc4d, 0x3a, 0x74, 0x68, -0x75, 0x6d, 0x62, 0x75, 0x70, 0x3a, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x75, -0x70, 0xd83d, 0xdc4d, 0x3a, 0x2b, 0x31, 0x3a, 0x2b, 0x31, 0xd83d, 0xdc4d, 0x3a, -0x74, 0x68, 0x75, 0x6d, 0x62, 0x73, 0x75, 0x70, 0x3a, 0x74, 0x68, 0x75, -0x6d, 0x62, 0x73, 0x75, 0x70, 0xd83d, 0xdc4e, 0x3a, 0x64, 0x69, 0x73, 0x6c, -0x69, 0x6b, 0x65, 0x3a, 0x64, 0x69, 0x73, 0x6c, 0x69, 0x6b, 0x65, 0xd83d, -0xdc4e, 0x3a, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x64, 0x6f, 0x77, 0x6e, 0x3a, -0x74, 0x68, 0x75, 0x6d, 0x62, 0x64, 0x6f, 0x77, 0x6e, 0xd83d, 0xdc4e, 0x3a, -0x2d, 0x31, 0x3a, 0x2d, 0x31, 0xd83d, 0xdc4e, 0x3a, 0x74, 0x68, 0x75, 0x6d, -0x62, 0x73, 0x64, 0x6f, 0x77, 0x6e, 0x3a, 0x74, 0x68, 0x75, 0x6d, 0x62, -0x73, 0x64, 0x6f, 0x77, 0x6e, 0xd83d, 0xdc4a, 0x3a, 0x70, 0x75, 0x6e, 0x63, -0x68, 0x3a, 0x70, 0x75, 0x6e, 0x63, 0x68, 0x270a, 0xfe0f, 0x3a, 0x66, 0x69, -0x73, 0x74, 0x3a, 0x66, 0x69, 0x73, 0x74, 0xd83e, 0xdd1b, 0x3a, 0x6c, 0x65, -0x66, 0x74, 0x5f, 0x66, 0x69, 0x73, 0x74, 0x3a, 0x66, 0x69, 0x73, 0x74, -0x6c, 0x65, 0x66, 0x74, 0xd83e, 0xdd1b, 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x5f, -0x66, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x69, 0x73, 0x74, 0x3a, -0x66, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x66, 0x69, 0x73, 0x74, 0x6c, 0x65, -0x66, 0x74, 0xd83e, 0xdd1c, 0x3a, 0x72, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x66, -0x69, 0x73, 0x74, 0x3a, 0x66, 0x69, 0x73, 0x74, 0x72, 0x69, 0x67, 0x68, -0x74, 0xd83e, 0xdd1c, 0x3a, 0x72, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x66, 0x61, -0x63, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x69, 0x73, 0x74, 0x3a, 0x66, 0x61, -0x63, 0x69, 0x6e, 0x67, 0x66, 0x69, 0x73, 0x74, 0x72, 0x69, 0x67, 0x68, -0x74, 0xd83e, 0xdd1e, 0x3a, 0x68, 0x61, 0x6e, 0x64, 0x5f, 0x77, 0x69, 0x74, -0x68, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x61, 0x6e, 0x64, 0x5f, -0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6e, 0x67, 0x65, -0x72, 0x5f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x65, 0x64, 0x3a, 0x61, 0x6e, -0x64, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x65, 0x64, 0x66, 0x69, 0x6e, 0x67, -0x65, 0x72, 0x68, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x6d, -0x69, 0x64, 0x64, 0x6c, 0x65, 0x77, 0x69, 0x74, 0x68, 0xd83e, 0xdd1e, 0x3a, -0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x5f, 0x63, 0x72, 0x6f, 0x73, -0x73, 0x65, 0x64, 0x3a, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x65, 0x64, 0x66, -0x69, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x270c, 0xfe0f, 0x3a, 0x76, 0x3a, 0x76, -0xd83e, 0xdd18, 0x3a, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x6f, 0x66, 0x5f, 0x74, -0x68, 0x65, 0x5f, 0x68, 0x6f, 0x72, 0x6e, 0x73, 0x3a, 0x68, 0x6f, 0x72, -0x6e, 0x73, 0x6f, 0x66, 0x73, 0x69, 0x67, 0x6e, 0x74, 0x68, 0x65, 0xd83e, -0xdd18, 0x3a, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x3a, 0x6d, 0x65, 0x74, 0x61, -0x6c, 0xd83d, 0xdc4c, 0x3a, 0x6f, 0x6b, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x3a, -0x68, 0x61, 0x6e, 0x64, 0x6f, 0x6b, 0xd83d, 0xdc48, 0x3a, 0x70, 0x6f, 0x69, -0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x6c, 0x65, 0x66, 0x74, -0x70, 0x6f, 0x69, 0x6e, 0x74, 0xd83d, 0xdc49, 0x3a, 0x70, 0x6f, 0x69, 0x6e, -0x74, 0x5f, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x70, 0x6f, 0x69, 0x6e, -0x74, 0x72, 0x69, 0x67, 0x68, 0x74, 0xd83d, 0xdc46, 0x3a, 0x70, 0x6f, 0x69, -0x6e, 0x74, 0x5f, 0x75, 0x70, 0x5f, 0x32, 0x3a, 0x32, 0x70, 0x6f, 0x69, -0x6e, 0x74, 0x75, 0x70, 0xd83d, 0xdc47, 0x3a, 0x70, 0x6f, 0x69, 0x6e, 0x74, -0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x3a, 0x64, 0x6f, 0x77, 0x6e, 0x70, 0x6f, -0x69, 0x6e, 0x74, 0x261d, 0xfe0f, 0x3a, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, -0x75, 0x70, 0x3a, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x75, 0x70, 0x270b, 0xfe0f, -0x3a, 0x72, 0x61, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x6e, 0x64, -0x3a, 0x68, 0x61, 0x6e, 0x64, 0x72, 0x61, 0x69, 0x73, 0x65, 0x64, 0xd83e, -0xdd1a, 0x3a, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6f, 0x66, 0x5f, 0x68, 0x61, -0x6e, 0x64, 0x3a, 0x62, 0x61, 0x63, 0x6b, 0x68, 0x61, 0x6e, 0x64, 0x6f, -0x66, 0xd83e, 0xdd1a, 0x3a, 0x72, 0x61, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x62, -0x61, 0x63, 0x6b, 0x5f, 0x6f, 0x66, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x3a, -0x62, 0x61, 0x63, 0x6b, 0x68, 0x61, 0x6e, 0x64, 0x6f, 0x66, 0x72, 0x61, -0x69, 0x73, 0x65, 0x64, 0xd83d, 0xdd90, 0x3a, 0x72, 0x61, 0x69, 0x73, 0x65, -0x64, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, -0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x5f, 0x73, 0x70, 0x6c, 0x61, -0x79, 0x65, 0x64, 0x3a, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x68, -0x61, 0x6e, 0x64, 0x72, 0x61, 0x69, 0x73, 0x65, 0x64, 0x73, 0x70, 0x6c, -0x61, 0x79, 0x65, 0x64, 0x77, 0x69, 0x74, 0x68, 0xd83d, 0xdd90, 0x3a, 0x68, -0x61, 0x6e, 0x64, 0x5f, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x3a, -0x68, 0x61, 0x6e, 0x64, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x64, 0xd83d, -0xdd96, 0x3a, 0x72, 0x61, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x6e, -0x64, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x5f, -0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x5f, 0x6d, 0x69, 0x64, 0x64, -0x6c, 0x65, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x72, 0x69, 0x6e, 0x67, 0x5f, -0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x61, 0x6e, 0x64, 0x62, -0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, -0x73, 0x68, 0x61, 0x6e, 0x64, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x70, -0x61, 0x72, 0x74, 0x72, 0x61, 0x69, 0x73, 0x65, 0x64, 0x72, 0x69, 0x6e, -0x67, 0x77, 0x69, 0x74, 0x68, 0xd83d, 0xdd96, 0x3a, 0x76, 0x75, 0x6c, 0x63, -0x61, 0x6e, 0x3a, 0x76, 0x75, 0x6c, 0x63, 0x61, 0x6e, 0xd83d, 0xdc4b, 0x3a, -0x77, 0x61, 0x76, 0x65, 0x3a, 0x77, 0x61, 0x76, 0x65, 0xd83e, 0xdd19, 0x3a, -0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x6d, 0x65, 0x5f, 0x68, 0x61, 0x6e, 0x64, -0x3a, 0x63, 0x61, 0x6c, 0x6c, 0x68, 0x61, 0x6e, 0x64, 0x6d, 0x65, 0xd83e, -0xdd19, 0x3a, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x6d, 0x65, 0x3a, 0x63, 0x61, -0x6c, 0x6c, 0x6d, 0x65, 0xd83d, 0xdcaa, 0x3a, 0x6d, 0x75, 0x73, 0x63, 0x6c, -0x65, 0x3a, 0x6d, 0x75, 0x73, 0x63, 0x6c, 0x65, 0xd83d, 0xdd95, 0x3a, 0x72, -0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x6e, 0x64, -0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, -0x5f, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, -0x6e, 0x64, 0x65, 0x64, 0x3a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, -0x64, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x64, 0x6d, -0x69, 0x64, 0x64, 0x6c, 0x65, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, -0x64, 0x77, 0x69, 0x74, 0x68, 0xd83d, 0xdd95, 0x3a, 0x6d, 0x69, 0x64, 0x64, -0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x3a, 0x66, 0x69, -0x6e, 0x67, 0x65, 0x72, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x270d, 0xfe0f, -0x3a, 0x77, 0x72, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x61, 0x6e, -0x64, 0x3a, 0x68, 0x61, 0x6e, 0x64, 0x77, 0x72, 0x69, 0x74, 0x69, 0x6e, -0x67, 0xd83e, 0xdd33, 0x3a, 0x73, 0x65, 0x6c, 0x66, 0x69, 0x65, 0x3a, 0x73, -0x65, 0x6c, 0x66, 0x69, 0x65, 0xd83d, 0xdc85, 0x3a, 0x6e, 0x61, 0x69, 0x6c, -0x5f, 0x63, 0x61, 0x72, 0x65, 0x3a, 0x63, 0x61, 0x72, 0x65, 0x6e, 0x61, -0x69, 0x6c, 0xd83d, 0xdc8d, 0x3a, 0x72, 0x69, 0x6e, 0x67, 0x3a, 0x72, 0x69, -0x6e, 0x67, 0xd83d, 0xdc84, 0x3a, 0x6c, 0x69, 0x70, 0x73, 0x74, 0x69, 0x63, -0x6b, 0x3a, 0x6c, 0x69, 0x70, 0x73, 0x74, 0x69, 0x63, 0x6b, 0xd83d, 0xdc8b, -0x3a, 0x6b, 0x69, 0x73, 0x73, 0x3a, 0x6b, 0x69, 0x73, 0x73, 0xd83d, 0xdc44, -0x3a, 0x6c, 0x69, 0x70, 0x73, 0x3a, 0x6c, 0x69, 0x70, 0x73, 0xd83d, 0xdc45, -0x3a, 0x74, 0x6f, 0x6e, 0x67, 0x75, 0x65, 0x3a, 0x74, 0x6f, 0x6e, 0x67, -0x75, 0x65, 0xd83d, 0xdc42, 0x3a, 0x65, 0x61, 0x72, 0x3a, 0x65, 0x61, 0x72, -0xd83d, 0xdc43, 0x3a, 0x6e, 0x6f, 0x73, 0x65, 0x3a, 0x6e, 0x6f, 0x73, 0x65, -0xd83d, 0xdc63, 0x3a, 0x66, 0x6f, 0x6f, 0x74, 0x70, 0x72, 0x69, 0x6e, 0x74, -0x73, 0x3a, 0x66, 0x6f, 0x6f, 0x74, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x73, -0xd83d, 0xdc41, 0x3a, 0x65, 0x79, 0x65, 0x3a, 0x65, 0x79, 0x65, 0xd83d, 0xdc40, -0x3a, 0x65, 0x79, 0x65, 0x73, 0x3a, 0x65, 0x79, 0x65, 0x73, 0xd83d, 0xdde3, -0x3a, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x65, -0x61, 0x64, 0x5f, 0x69, 0x6e, 0x5f, 0x73, 0x69, 0x6c, 0x68, 0x6f, 0x75, -0x65, 0x74, 0x74, 0x65, 0x3a, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x73, -0x69, 0x6c, 0x68, 0x6f, 0x75, 0x65, 0x74, 0x74, 0x65, 0x73, 0x70, 0x65, -0x61, 0x6b, 0x69, 0x6e, 0x67, 0xd83d, 0xdde3, 0x3a, 0x73, 0x70, 0x65, 0x61, -0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x3a, 0x68, 0x65, -0x61, 0x64, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0xd83d, 0xdc64, -0x3a, 0x62, 0x75, 0x73, 0x74, 0x5f, 0x69, 0x6e, 0x5f, 0x73, 0x69, 0x6c, -0x68, 0x6f, 0x75, 0x65, 0x74, 0x74, 0x65, 0x3a, 0x62, 0x75, 0x73, 0x74, -0x69, 0x6e, 0x73, 0x69, 0x6c, 0x68, 0x6f, 0x75, 0x65, 0x74, 0x74, 0x65, -0xd83d, 0xdc65, 0x3a, 0x62, 0x75, 0x73, 0x74, 0x73, 0x5f, 0x69, 0x6e, 0x5f, -0x73, 0x69, 0x6c, 0x68, 0x6f, 0x75, 0x65, 0x74, 0x74, 0x65, 0x3a, 0x62, -0x75, 0x73, 0x74, 0x73, 0x69, 0x6e, 0x73, 0x69, 0x6c, 0x68, 0x6f, 0x75, -0x65, 0x74, 0x74, 0x65, 0xd83d, 0xdc76, 0x3a, 0x62, 0x61, 0x62, 0x79, 0x3a, -0x62, 0x61, 0x62, 0x79, 0xd83d, 0xdc66, 0x3a, 0x62, 0x6f, 0x79, 0x3a, 0x62, -0x6f, 0x79, 0xd83d, 0xdc67, 0x3a, 0x67, 0x69, 0x72, 0x6c, 0x3a, 0x67, 0x69, -0x72, 0x6c, 0xd83d, 0xdc68, 0x3a, 0x6d, 0x61, 0x6e, 0x3a, 0x6d, 0x61, 0x6e, -0xd83d, 0xdc69, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x3a, 0x77, 0x6f, 0x6d, -0x61, 0x6e, 0xd83d, 0xdc71, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x62, 0x6c, 0x6f, 0x6e, -0x64, 0x2d, 0x68, 0x61, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x77, 0x6f, 0x6d, -0x61, 0x6e, 0x3a, 0x62, 0x6c, 0x6f, 0x6e, 0x64, 0x68, 0x61, 0x69, 0x72, -0x65, 0x64, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc71, 0x3a, 0x62, 0x6c, -0x6f, 0x6e, 0x64, 0x2d, 0x68, 0x61, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x6d, -0x61, 0x6e, 0x3a, 0x62, 0x6c, 0x6f, 0x6e, 0x64, 0x68, 0x61, 0x69, 0x72, -0x65, 0x64, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc71, 0x3a, 0x70, 0x65, 0x72, 0x73, -0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x62, 0x6c, 0x6f, 0x6e, -0x64, 0x5f, 0x68, 0x61, 0x69, 0x72, 0x3a, 0x62, 0x6c, 0x6f, 0x6e, 0x64, -0x68, 0x61, 0x69, 0x72, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x77, 0x69, -0x74, 0x68, 0xd83d, 0xdc71, 0x3a, 0x62, 0x6c, 0x6f, 0x6e, 0x64, 0x5f, 0x68, -0x61, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, -0x3a, 0x62, 0x6c, 0x6f, 0x6e, 0x64, 0x68, 0x61, 0x69, 0x72, 0x65, 0x64, -0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0xd83d, 0xdc74, 0x3a, 0x6f, 0x6c, 0x64, -0x65, 0x72, 0x5f, 0x6d, 0x61, 0x6e, 0x3a, 0x6d, 0x61, 0x6e, 0x6f, 0x6c, -0x64, 0x65, 0x72, 0xd83d, 0xdc75, 0x3a, 0x67, 0x72, 0x61, 0x6e, 0x64, 0x6d, -0x61, 0x3a, 0x67, 0x72, 0x61, 0x6e, 0x64, 0x6d, 0x61, 0xd83d, 0xdc75, 0x3a, -0x6f, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x3a, -0x6f, 0x6c, 0x64, 0x65, 0x72, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc72, -0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x67, 0x75, -0x61, 0x5f, 0x70, 0x69, 0x5f, 0x6d, 0x61, 0x6f, 0x3a, 0x67, 0x75, 0x61, -0x6d, 0x61, 0x6e, 0x6d, 0x61, 0x6f, 0x70, 0x69, 0x77, 0x69, 0x74, 0x68, -0xd83d, 0xdc72, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, -0x63, 0x68, 0x69, 0x6e, 0x65, 0x73, 0x65, 0x5f, 0x63, 0x61, 0x70, 0x3a, -0x63, 0x61, 0x70, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x73, 0x65, 0x6d, 0x61, -0x6e, 0x77, 0x69, 0x74, 0x68, 0xd83d, 0xdc73, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, -0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x77, 0x65, 0x61, 0x72, 0x69, 0x6e, 0x67, -0x5f, 0x74, 0x75, 0x72, 0x62, 0x61, 0x6e, 0x3a, 0x74, 0x75, 0x72, 0x62, -0x61, 0x6e, 0x77, 0x65, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x77, 0x6f, 0x6d, -0x61, 0x6e, 0xd83d, 0xdc73, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x77, 0x65, 0x61, -0x72, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x75, 0x72, 0x62, 0x61, 0x6e, 0x3a, -0x6d, 0x61, 0x6e, 0x74, 0x75, 0x72, 0x62, 0x61, 0x6e, 0x77, 0x65, 0x61, -0x72, 0x69, 0x6e, 0x67, 0xd83d, 0xdc73, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x77, -0x69, 0x74, 0x68, 0x5f, 0x74, 0x75, 0x72, 0x62, 0x61, 0x6e, 0x3a, 0x6d, -0x61, 0x6e, 0x74, 0x75, 0x72, 0x62, 0x61, 0x6e, 0x77, 0x69, 0x74, 0x68, -0xd83d, 0xdc73, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x77, 0x65, -0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x75, 0x72, 0x62, 0x61, 0x6e, -0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x74, 0x75, 0x72, 0x62, 0x61, -0x6e, 0x77, 0x65, 0x61, 0x72, 0x69, 0x6e, 0x67, 0xd83d, 0xdc6e, 0x200d, 0x2640, -0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x6c, 0x69, -0x63, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x72, 0x3a, 0x6f, -0x66, 0x66, 0x69, 0x63, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, -0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc6e, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, -0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x69, 0x63, -0x65, 0x72, 0x3a, 0x6d, 0x61, 0x6e, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, -0x72, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0xd83d, 0xdc6e, 0x3a, 0x63, 0x6f, -0x70, 0x3a, 0x63, 0x6f, 0x70, 0xd83d, 0xdc6e, 0x3a, 0x70, 0x6f, 0x6c, 0x69, -0x63, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x72, 0x3a, 0x6f, -0x66, 0x66, 0x69, 0x63, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, -0xd83d, 0xdc77, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, -0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, -0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x3a, 0x63, 0x6f, 0x6e, 0x73, -0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x77, 0x6f, 0x6d, 0x61, -0x6e, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0xd83d, 0xdc77, 0x3a, 0x6d, 0x61, -0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, -0x6f, 0x6e, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x3a, 0x63, 0x6f, -0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x6d, 0x61, -0x6e, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0xd83d, 0xdc77, 0x3a, 0x63, 0x6f, -0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x77, -0x6f, 0x72, 0x6b, 0x65, 0x72, 0x3a, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, -0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, -0xd83d, 0xdc82, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, -0x67, 0x75, 0x61, 0x72, 0x64, 0x3a, 0x67, 0x75, 0x61, 0x72, 0x64, 0x77, -0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc82, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x67, -0x75, 0x61, 0x72, 0x64, 0x3a, 0x67, 0x75, 0x61, 0x72, 0x64, 0x6d, 0x61, -0x6e, 0xd83d, 0xdc82, 0x3a, 0x67, 0x75, 0x61, 0x72, 0x64, 0x73, 0x6d, 0x61, -0x6e, 0x3a, 0x67, 0x75, 0x61, 0x72, 0x64, 0x73, 0x6d, 0x61, 0x6e, 0xd83d, -0xdc82, 0x3a, 0x67, 0x75, 0x61, 0x72, 0x64, 0x3a, 0x67, 0x75, 0x61, 0x72, -0x64, 0xd83d, 0xdd75, 0xfe0f, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, -0x6e, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x3a, -0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x77, 0x6f, 0x6d, -0x61, 0x6e, 0xd83d, 0xdd75, 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x64, 0x65, -0x74, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x3a, 0x64, 0x65, 0x74, 0x65, -0x63, 0x74, 0x69, 0x76, 0x65, 0x6d, 0x61, 0x6e, 0xd83d, 0xdd75, 0xfe0f, 0x3a, -0x73, 0x6c, 0x65, 0x75, 0x74, 0x68, 0x5f, 0x6f, 0x72, 0x5f, 0x73, 0x70, -0x79, 0x3a, 0x6f, 0x72, 0x73, 0x6c, 0x65, 0x75, 0x74, 0x68, 0x73, 0x70, -0x79, 0xd83d, 0xdd75, 0xfe0f, 0x3a, 0x73, 0x70, 0x79, 0x3a, 0x73, 0x70, 0x79, -0xd83d, 0xdd75, 0xfe0f, 0x3a, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x76, -0x65, 0x3a, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0xd83d, -0xdc69, 0x200d, 0x2695, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x68, -0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, -0x3a, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x77, 0x6f, 0x6d, 0x61, 0x6e, -0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0xd83d, 0xdc68, 0x200d, 0x2695, 0xfe0f, 0x3a, -0x6d, 0x61, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x77, -0x6f, 0x72, 0x6b, 0x65, 0x72, 0x3a, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, -0x6d, 0x61, 0x6e, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0xd83d, 0xdc69, 0x200d, -0xd83c, 0xdf3e, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x66, 0x61, 0x72, -0x6d, 0x65, 0x72, 0x3a, 0x66, 0x61, 0x72, 0x6d, 0x65, 0x72, 0x77, 0x6f, -0x6d, 0x61, 0x6e, 0xd83d, 0xdc68, 0x200d, 0xd83c, 0xdf3e, 0x3a, 0x6d, 0x61, 0x6e, -0x5f, 0x66, 0x61, 0x72, 0x6d, 0x65, 0x72, 0x3a, 0x66, 0x61, 0x72, 0x6d, -0x65, 0x72, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc69, 0x200d, 0xd83c, 0xdf73, 0x3a, 0x77, -0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x63, 0x6f, 0x6f, 0x6b, 0x3a, 0x63, 0x6f, -0x6f, 0x6b, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc68, 0x200d, 0xd83c, 0xdf73, -0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x63, 0x6f, 0x6f, 0x6b, 0x3a, 0x63, 0x6f, -0x6f, 0x6b, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc69, 0x200d, 0xd83c, 0xdf93, 0x3a, 0x77, -0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, -0x3a, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x77, 0x6f, 0x6d, 0x61, -0x6e, 0xd83d, 0xdc68, 0x200d, 0xd83c, 0xdf93, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x73, -0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x3a, 0x6d, 0x61, 0x6e, 0x73, 0x74, -0x75, 0x64, 0x65, 0x6e, 0x74, 0xd83d, 0xdc69, 0x200d, 0xd83c, 0xdfa4, 0x3a, 0x77, -0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x73, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x3a, -0x73, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, -0xdc68, 0x200d, 0xd83c, 0xdfa4, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x73, 0x69, 0x6e, -0x67, 0x65, 0x72, 0x3a, 0x6d, 0x61, 0x6e, 0x73, 0x69, 0x6e, 0x67, 0x65, -0x72, 0xd83d, 0xdc69, 0x200d, 0xd83c, 0xdfeb, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, -0x5f, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x3a, 0x74, 0x65, 0x61, -0x63, 0x68, 0x65, 0x72, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc68, 0x200d, -0xd83c, 0xdfeb, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x74, 0x65, 0x61, 0x63, 0x68, -0x65, 0x72, 0x3a, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, -0x72, 0xd83d, 0xdc69, 0x200d, 0xd83c, 0xdfed, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, -0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x77, 0x6f, 0x72, -0x6b, 0x65, 0x72, 0x3a, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x77, -0x6f, 0x6d, 0x61, 0x6e, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0xd83d, 0xdc68, -0x200d, 0xd83c, 0xdfed, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x66, 0x61, 0x63, 0x74, -0x6f, 0x72, 0x79, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x3a, 0x66, -0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x6d, 0x61, 0x6e, 0x77, 0x6f, 0x72, -0x6b, 0x65, 0x72, 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xdcbb, 0x3a, 0x77, 0x6f, 0x6d, -0x61, 0x6e, 0x5f, 0x74, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, 0x6f, 0x67, -0x69, 0x73, 0x74, 0x3a, 0x74, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, 0x6f, -0x67, 0x69, 0x73, 0x74, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc68, 0x200d, -0xd83d, 0xdcbb, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x74, 0x65, 0x63, 0x68, 0x6e, -0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x73, 0x74, 0x3a, 0x6d, 0x61, 0x6e, 0x74, -0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x73, 0x74, 0xd83d, -0xdc69, 0x200d, 0xd83d, 0xdcbc, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x6f, -0x66, 0x66, 0x69, 0x63, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, -0x3a, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x77, 0x6f, 0x6d, 0x61, 0x6e, -0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0xd83d, 0xdc68, 0x200d, 0xd83d, 0xdcbc, 0x3a, -0x6d, 0x61, 0x6e, 0x5f, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x5f, 0x77, -0x6f, 0x72, 0x6b, 0x65, 0x72, 0x3a, 0x6d, 0x61, 0x6e, 0x6f, 0x66, 0x66, -0x69, 0x63, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0xd83d, 0xdc69, 0x200d, -0xd83d, 0xdd27, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x6d, 0x65, 0x63, -0x68, 0x61, 0x6e, 0x69, 0x63, 0x3a, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, -0x69, 0x63, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc68, 0x200d, 0xd83d, 0xdd27, -0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, -0x63, 0x3a, 0x6d, 0x61, 0x6e, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, 0x69, -0x63, 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xdd2c, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, -0x5f, 0x73, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x73, 0x74, 0x3a, 0x73, -0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x73, 0x74, 0x77, 0x6f, 0x6d, 0x61, -0x6e, 0xd83d, 0xdc68, 0x200d, 0xd83d, 0xdd2c, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x73, -0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x73, 0x74, 0x3a, 0x6d, 0x61, 0x6e, -0x73, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x73, 0x74, 0xd83d, 0xdc69, 0x200d, -0xd83c, 0xdfa8, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x61, 0x72, 0x74, -0x69, 0x73, 0x74, 0x3a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x77, 0x6f, -0x6d, 0x61, 0x6e, 0xd83d, 0xdc68, 0x200d, 0xd83c, 0xdfa8, 0x3a, 0x6d, 0x61, 0x6e, -0x5f, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x3a, 0x61, 0x72, 0x74, 0x69, -0x73, 0x74, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xde92, 0x3a, 0x77, -0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x66, 0x69, 0x72, 0x65, 0x66, 0x69, 0x67, -0x68, 0x74, 0x65, 0x72, 0x3a, 0x66, 0x69, 0x72, 0x65, 0x66, 0x69, 0x67, -0x68, 0x74, 0x65, 0x72, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc68, 0x200d, -0xd83d, 0xde92, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x66, 0x69, 0x72, 0x65, 0x66, -0x69, 0x67, 0x68, 0x74, 0x65, 0x72, 0x3a, 0x66, 0x69, 0x72, 0x65, 0x66, -0x69, 0x67, 0x68, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc69, 0x200d, -0x2708, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x70, 0x69, 0x6c, -0x6f, 0x74, 0x3a, 0x70, 0x69, 0x6c, 0x6f, 0x74, 0x77, 0x6f, 0x6d, 0x61, -0x6e, 0xd83d, 0xdc68, 0x200d, 0x2708, 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x70, -0x69, 0x6c, 0x6f, 0x74, 0x3a, 0x6d, 0x61, 0x6e, 0x70, 0x69, 0x6c, 0x6f, -0x74, 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xde80, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, -0x5f, 0x61, 0x73, 0x74, 0x72, 0x6f, 0x6e, 0x61, 0x75, 0x74, 0x3a, 0x61, -0x73, 0x74, 0x72, 0x6f, 0x6e, 0x61, 0x75, 0x74, 0x77, 0x6f, 0x6d, 0x61, -0x6e, 0xd83d, 0xdc68, 0x200d, 0xd83d, 0xde80, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x61, -0x73, 0x74, 0x72, 0x6f, 0x6e, 0x61, 0x75, 0x74, 0x3a, 0x61, 0x73, 0x74, -0x72, 0x6f, 0x6e, 0x61, 0x75, 0x74, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc69, 0x200d, -0x2696, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x6a, 0x75, 0x64, -0x67, 0x65, 0x3a, 0x6a, 0x75, 0x64, 0x67, 0x65, 0x77, 0x6f, 0x6d, 0x61, -0x6e, 0xd83d, 0xdc68, 0x200d, 0x2696, 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x6a, -0x75, 0x64, 0x67, 0x65, 0x3a, 0x6a, 0x75, 0x64, 0x67, 0x65, 0x6d, 0x61, -0x6e, 0xd83e, 0xdd36, 0x3a, 0x6d, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x63, -0x68, 0x72, 0x69, 0x73, 0x74, 0x6d, 0x61, 0x73, 0x3a, 0x63, 0x68, 0x72, -0x69, 0x73, 0x74, 0x6d, 0x61, 0x73, 0x6d, 0x6f, 0x74, 0x68, 0x65, 0x72, -0xd83e, 0xdd36, 0x3a, 0x6d, 0x72, 0x73, 0x5f, 0x63, 0x6c, 0x61, 0x75, 0x73, -0x3a, 0x63, 0x6c, 0x61, 0x75, 0x73, 0x6d, 0x72, 0x73, 0xd83c, 0xdf85, 0x3a, -0x73, 0x61, 0x6e, 0x74, 0x61, 0x3a, 0x73, 0x61, 0x6e, 0x74, 0x61, 0xd83d, -0xdc78, 0x3a, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x65, 0x73, 0x73, 0x3a, 0x70, -0x72, 0x69, 0x6e, 0x63, 0x65, 0x73, 0x73, 0xd83e, 0xdd34, 0x3a, 0x70, 0x72, -0x69, 0x6e, 0x63, 0x65, 0x3a, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x65, 0xd83d, -0xdc70, 0x3a, 0x62, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, -0x5f, 0x76, 0x65, 0x69, 0x6c, 0x3a, 0x62, 0x72, 0x69, 0x64, 0x65, 0x76, -0x65, 0x69, 0x6c, 0x77, 0x69, 0x74, 0x68, 0xd83e, 0xdd35, 0x3a, 0x6d, 0x61, -0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x74, 0x75, 0x78, 0x65, 0x64, 0x6f, 0x3a, -0x69, 0x6e, 0x6d, 0x61, 0x6e, 0x74, 0x75, 0x78, 0x65, 0x64, 0x6f, 0xd83d, -0xdc7c, 0x3a, 0x61, 0x6e, 0x67, 0x65, 0x6c, 0x3a, 0x61, 0x6e, 0x67, 0x65, -0x6c, 0xd83e, 0xdd30, 0x3a, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6e, -0x67, 0x5f, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x3a, 0x65, 0x78, 0x70, 0x65, -0x63, 0x74, 0x69, 0x6e, 0x67, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83e, 0xdd30, -0x3a, 0x70, 0x72, 0x65, 0x67, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x77, 0x6f, -0x6d, 0x61, 0x6e, 0x3a, 0x70, 0x72, 0x65, 0x67, 0x6e, 0x61, 0x6e, 0x74, -0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xde47, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, -0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x62, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x3a, -0x62, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, -0xde47, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x62, 0x6f, 0x77, 0x69, 0x6e, 0x67, -0x3a, 0x62, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x6d, 0x61, 0x6e, 0xd83d, 0xde47, -0x3a, 0x62, 0x6f, 0x77, 0x3a, 0x62, 0x6f, 0x77, 0xd83d, 0xde47, 0x3a, 0x70, -0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x62, 0x6f, 0x77, 0x69, 0x6e, 0x67, -0x3a, 0x62, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x70, 0x65, 0x72, 0x73, 0x6f, -0x6e, 0xd83d, 0xdc81, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x74, 0x69, -0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x3a, 0x68, -0x61, 0x6e, 0x64, 0x74, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x77, 0x6f, -0x6d, 0x61, 0x6e, 0xd83d, 0xdc81, 0x3a, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, -0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x6b, 0x5f, 0x70, -0x65, 0x72, 0x73, 0x6f, 0x6e, 0x3a, 0x64, 0x65, 0x73, 0x6b, 0x69, 0x6e, -0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x70, 0x65, 0x72, -0x73, 0x6f, 0x6e, 0xd83d, 0xdc81, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, -0x5f, 0x74, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x61, 0x6e, -0x64, 0x3a, 0x68, 0x61, 0x6e, 0x64, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, -0x74, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0xd83d, 0xdc81, 0x200d, 0x2642, 0xfe0f, -0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x74, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, -0x5f, 0x68, 0x61, 0x6e, 0x64, 0x3a, 0x68, 0x61, 0x6e, 0x64, 0x6d, 0x61, -0x6e, 0x74, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0xd83d, 0xde45, 0x3a, 0x77, -0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x67, 0x65, 0x73, 0x74, 0x75, 0x72, 0x69, -0x6e, 0x67, 0x5f, 0x6e, 0x6f, 0x3a, 0x67, 0x65, 0x73, 0x74, 0x75, 0x72, -0x69, 0x6e, 0x67, 0x6e, 0x6f, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xde45, -0x3a, 0x6e, 0x6f, 0x5f, 0x67, 0x6f, 0x6f, 0x64, 0x3a, 0x67, 0x6f, 0x6f, -0x64, 0x6e, 0x6f, 0xd83d, 0xde45, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, -0x5f, 0x67, 0x65, 0x73, 0x74, 0x75, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6e, -0x6f, 0x3a, 0x67, 0x65, 0x73, 0x74, 0x75, 0x72, 0x69, 0x6e, 0x67, 0x6e, -0x6f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0xd83d, 0xde45, 0x200d, 0x2642, 0xfe0f, -0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x67, 0x65, 0x73, 0x74, 0x75, 0x72, 0x69, -0x6e, 0x67, 0x5f, 0x6e, 0x6f, 0x3a, 0x67, 0x65, 0x73, 0x74, 0x75, 0x72, -0x69, 0x6e, 0x67, 0x6d, 0x61, 0x6e, 0x6e, 0x6f, 0xd83d, 0xde46, 0x3a, 0x77, -0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x67, 0x65, 0x73, 0x74, 0x75, 0x72, 0x69, -0x6e, 0x67, 0x5f, 0x6f, 0x6b, 0x3a, 0x67, 0x65, 0x73, 0x74, 0x75, 0x72, -0x69, 0x6e, 0x67, 0x6f, 0x6b, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xde46, -0x3a, 0x6f, 0x6b, 0x5f, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x3a, 0x6f, 0x6b, -0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xde46, 0x3a, 0x70, 0x65, 0x72, 0x73, -0x6f, 0x6e, 0x5f, 0x67, 0x65, 0x73, 0x74, 0x75, 0x72, 0x69, 0x6e, 0x67, -0x5f, 0x6f, 0x6b, 0x3a, 0x67, 0x65, 0x73, 0x74, 0x75, 0x72, 0x69, 0x6e, -0x67, 0x6f, 0x6b, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0xd83d, 0xde46, 0x200d, -0x2642, 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x67, 0x65, 0x73, 0x74, 0x75, -0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x6b, 0x3a, 0x67, 0x65, 0x73, 0x74, -0x75, 0x72, 0x69, 0x6e, 0x67, 0x6d, 0x61, 0x6e, 0x6f, 0x6b, 0xd83d, 0xde4b, -0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x72, 0x61, 0x69, 0x73, 0x69, -0x6e, 0x67, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x3a, 0x68, 0x61, 0x6e, 0x64, -0x72, 0x61, 0x69, 0x73, 0x69, 0x6e, 0x67, 0x77, 0x6f, 0x6d, 0x61, 0x6e, -0xd83d, 0xde4b, 0x3a, 0x72, 0x61, 0x69, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x68, -0x61, 0x6e, 0x64, 0x3a, 0x68, 0x61, 0x6e, 0x64, 0x72, 0x61, 0x69, 0x73, -0x69, 0x6e, 0x67, 0xd83d, 0xde4b, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, -0x5f, 0x72, 0x61, 0x69, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x61, 0x6e, -0x64, 0x3a, 0x68, 0x61, 0x6e, 0x64, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, -0x72, 0x61, 0x69, 0x73, 0x69, 0x6e, 0x67, 0xd83d, 0xde4b, 0x200d, 0x2642, 0xfe0f, -0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x72, 0x61, 0x69, 0x73, 0x69, 0x6e, 0x67, -0x5f, 0x68, 0x61, 0x6e, 0x64, 0x3a, 0x68, 0x61, 0x6e, 0x64, 0x6d, 0x61, -0x6e, 0x72, 0x61, 0x69, 0x73, 0x69, 0x6e, 0x67, 0xd83e, 0xdd26, 0x200d, 0x2640, -0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x66, 0x61, 0x63, 0x65, -0x70, 0x61, 0x6c, 0x6d, 0x69, 0x6e, 0x67, 0x3a, 0x66, 0x61, 0x63, 0x65, -0x70, 0x61, 0x6c, 0x6d, 0x69, 0x6e, 0x67, 0x77, 0x6f, 0x6d, 0x61, 0x6e, -0xd83e, 0xdd26, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x66, 0x61, -0x63, 0x65, 0x70, 0x61, 0x6c, 0x6d, 0x69, 0x6e, 0x67, 0x3a, 0x66, 0x61, -0x63, 0x65, 0x70, 0x61, 0x6c, 0x6d, 0x69, 0x6e, 0x67, 0x6d, 0x61, 0x6e, -0xd83e, 0xdd26, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x70, 0x61, -0x6c, 0x6d, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x70, 0x61, 0x6c, 0x6d, 0xd83e, -0xdd26, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x61, -0x6c, 0x6d, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x70, 0x61, 0x6c, 0x6d, 0xd83e, -0xdd26, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, -0x66, 0x61, 0x63, 0x65, 0x70, 0x61, 0x6c, 0x6d, 0x69, 0x6e, 0x67, 0x3a, -0x66, 0x61, 0x63, 0x65, 0x70, 0x61, 0x6c, 0x6d, 0x69, 0x6e, 0x67, 0x70, -0x65, 0x72, 0x73, 0x6f, 0x6e, 0xd83e, 0xdd37, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, -0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x73, 0x68, 0x72, 0x75, 0x67, 0x67, 0x69, -0x6e, 0x67, 0x3a, 0x73, 0x68, 0x72, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, -0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83e, 0xdd37, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x73, -0x68, 0x72, 0x75, 0x67, 0x3a, 0x73, 0x68, 0x72, 0x75, 0x67, 0xd83e, 0xdd37, -0x200d, 0x2640, 0xfe0f, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x73, -0x68, 0x72, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x3a, 0x70, 0x65, 0x72, -0x73, 0x6f, 0x6e, 0x73, 0x68, 0x72, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, -0xd83e, 0xdd37, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x73, 0x68, -0x72, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x3a, 0x6d, 0x61, 0x6e, 0x73, -0x68, 0x72, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0xd83d, 0xde4e, 0x3a, 0x77, -0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, -0x3a, 0x70, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x77, 0x6f, 0x6d, 0x61, -0x6e, 0xd83d, 0xde4e, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x77, -0x69, 0x74, 0x68, 0x5f, 0x70, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5f, -0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x70, 0x65, 0x72, -0x73, 0x6f, 0x6e, 0x70, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x77, 0x69, -0x74, 0x68, 0xd83d, 0xde4e, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, -0x70, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x3a, 0x70, 0x65, 0x72, 0x73, -0x6f, 0x6e, 0x70, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0xd83d, 0xde4e, 0x200d, -0x2642, 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x75, 0x74, 0x69, -0x6e, 0x67, 0x3a, 0x6d, 0x61, 0x6e, 0x70, 0x6f, 0x75, 0x74, 0x69, 0x6e, -0x67, 0xd83d, 0xde4d, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x66, 0x72, -0x6f, 0x77, 0x6e, 0x69, 0x6e, 0x67, 0x3a, 0x66, 0x72, 0x6f, 0x77, 0x6e, -0x69, 0x6e, 0x67, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xde4d, 0x3a, 0x70, -0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x72, 0x6f, 0x77, 0x6e, 0x69, -0x6e, 0x67, 0x3a, 0x66, 0x72, 0x6f, 0x77, 0x6e, 0x69, 0x6e, 0x67, 0x70, -0x65, 0x72, 0x73, 0x6f, 0x6e, 0xd83d, 0xde4d, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, -0x61, 0x6e, 0x5f, 0x66, 0x72, 0x6f, 0x77, 0x6e, 0x69, 0x6e, 0x67, 0x3a, -0x66, 0x72, 0x6f, 0x77, 0x6e, 0x69, 0x6e, 0x67, 0x6d, 0x61, 0x6e, 0xd83d, -0xdc87, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x67, 0x65, 0x74, 0x74, -0x69, 0x6e, 0x67, 0x5f, 0x68, 0x61, 0x69, 0x72, 0x63, 0x75, 0x74, 0x3a, -0x67, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x68, 0x61, 0x69, 0x72, 0x63, -0x75, 0x74, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc87, 0x3a, 0x68, 0x61, -0x69, 0x72, 0x63, 0x75, 0x74, 0x3a, 0x68, 0x61, 0x69, 0x72, 0x63, 0x75, -0x74, 0xd83d, 0xdc87, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x67, -0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x61, 0x69, 0x72, 0x63, -0x75, 0x74, 0x3a, 0x67, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x68, 0x61, -0x69, 0x72, 0x63, 0x75, 0x74, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0xd83d, -0xdc87, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x67, 0x65, 0x74, -0x74, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x61, 0x69, 0x72, 0x63, 0x75, 0x74, -0x3a, 0x67, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x68, 0x61, 0x69, 0x72, -0x63, 0x75, 0x74, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc86, 0x3a, 0x77, 0x6f, 0x6d, -0x61, 0x6e, 0x5f, 0x67, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x66, -0x61, 0x63, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x73, 0x61, 0x67, 0x65, 0x3a, -0x66, 0x61, 0x63, 0x65, 0x67, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x6d, -0x61, 0x73, 0x73, 0x61, 0x67, 0x65, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, -0xdc86, 0x3a, 0x6d, 0x61, 0x73, 0x73, 0x61, 0x67, 0x65, 0x3a, 0x6d, 0x61, -0x73, 0x73, 0x61, 0x67, 0x65, 0xd83d, 0xdc86, 0x3a, 0x70, 0x65, 0x72, 0x73, -0x6f, 0x6e, 0x5f, 0x67, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x6d, -0x61, 0x73, 0x73, 0x61, 0x67, 0x65, 0x3a, 0x67, 0x65, 0x74, 0x74, 0x69, -0x6e, 0x67, 0x6d, 0x61, 0x73, 0x73, 0x61, 0x67, 0x65, 0x70, 0x65, 0x72, -0x73, 0x6f, 0x6e, 0xd83d, 0xdc86, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, -0x5f, 0x67, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, 0x63, -0x65, 0x5f, 0x6d, 0x61, 0x73, 0x73, 0x61, 0x67, 0x65, 0x3a, 0x66, 0x61, -0x63, 0x65, 0x67, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x6d, 0x61, 0x6e, -0x6d, 0x61, 0x73, 0x73, 0x61, 0x67, 0x65, 0xd83d, 0xdd74, 0x3a, 0x6d, 0x61, -0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x62, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, -0x73, 0x5f, 0x73, 0x75, 0x69, 0x74, 0x5f, 0x6c, 0x65, 0x76, 0x69, 0x74, -0x61, 0x74, 0x69, 0x6e, 0x67, 0x3a, 0x62, 0x75, 0x73, 0x69, 0x6e, 0x65, -0x73, 0x73, 0x69, 0x6e, 0x6c, 0x65, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, -0x6e, 0x67, 0x6d, 0x61, 0x6e, 0x73, 0x75, 0x69, 0x74, 0xd83d, 0xdc83, 0x3a, -0x64, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x3a, 0x64, 0x61, 0x6e, 0x63, 0x65, -0x72, 0xd83d, 0xdd7a, 0x3a, 0x6d, 0x61, 0x6c, 0x65, 0x5f, 0x64, 0x61, 0x6e, -0x63, 0x65, 0x72, 0x3a, 0x64, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x6d, 0x61, -0x6c, 0x65, 0xd83d, 0xdd7a, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x64, 0x61, 0x6e, -0x63, 0x69, 0x6e, 0x67, 0x3a, 0x64, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, -0x6d, 0x61, 0x6e, 0xd83d, 0xdc6f, 0x3a, 0x77, 0x6f, 0x6d, 0x65, 0x6e, 0x5f, -0x77, 0x69, 0x74, 0x68, 0x5f, 0x62, 0x75, 0x6e, 0x6e, 0x79, 0x5f, 0x65, -0x61, 0x72, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x79, 0x69, 0x6e, 0x67, -0x3a, 0x62, 0x75, 0x6e, 0x6e, 0x79, 0x65, 0x61, 0x72, 0x73, 0x70, 0x61, -0x72, 0x74, 0x79, 0x69, 0x6e, 0x67, 0x77, 0x69, 0x74, 0x68, 0x77, 0x6f, -0x6d, 0x65, 0x6e, 0xd83d, 0xdc6f, 0x3a, 0x64, 0x61, 0x6e, 0x63, 0x65, 0x72, -0x73, 0x3a, 0x64, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x73, 0xd83d, 0xdc6f, 0x3a, -0x70, 0x65, 0x6f, 0x70, 0x6c, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, -0x62, 0x75, 0x6e, 0x6e, 0x79, 0x5f, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x70, -0x61, 0x72, 0x74, 0x79, 0x69, 0x6e, 0x67, 0x3a, 0x62, 0x75, 0x6e, 0x6e, -0x79, 0x65, 0x61, 0x72, 0x73, 0x70, 0x61, 0x72, 0x74, 0x79, 0x69, 0x6e, -0x67, 0x70, 0x65, 0x6f, 0x70, 0x6c, 0x65, 0x77, 0x69, 0x74, 0x68, 0xd83d, -0xdc6f, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, 0x65, 0x6e, 0x5f, 0x77, 0x69, 0x74, -0x68, 0x5f, 0x62, 0x75, 0x6e, 0x6e, 0x79, 0x5f, 0x65, 0x61, 0x72, 0x73, -0x5f, 0x70, 0x61, 0x72, 0x74, 0x79, 0x69, 0x6e, 0x67, 0x3a, 0x62, 0x75, -0x6e, 0x6e, 0x79, 0x65, 0x61, 0x72, 0x73, 0x6d, 0x65, 0x6e, 0x70, 0x61, -0x72, 0x74, 0x79, 0x69, 0x6e, 0x67, 0x77, 0x69, 0x74, 0x68, 0xd83d, 0xdeb6, -0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x77, 0x61, -0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x3a, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, -0x67, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdeb6, 0x3a, 0x6d, 0x61, 0x6e, -0x5f, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x3a, 0x6d, 0x61, 0x6e, -0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0xd83d, 0xdeb6, 0x3a, 0x77, 0x61, -0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x3a, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, -0x67, 0xd83d, 0xdeb6, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x77, -0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, -0x6e, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0xd83c, 0xdfc3, 0x200d, 0x2640, -0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x72, 0x75, 0x6e, 0x6e, -0x69, 0x6e, 0x67, 0x3a, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x77, -0x6f, 0x6d, 0x61, 0x6e, 0xd83c, 0xdfc3, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x72, -0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x3a, 0x6d, 0x61, 0x6e, 0x72, 0x75, -0x6e, 0x6e, 0x69, 0x6e, 0x67, 0xd83c, 0xdfc3, 0x3a, 0x72, 0x75, 0x6e, 0x6e, -0x65, 0x72, 0x3a, 0x72, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0xd83c, 0xdfc3, 0x3a, -0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x72, 0x75, 0x6e, 0x6e, 0x69, -0x6e, 0x67, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x72, 0x75, 0x6e, -0x6e, 0x69, 0x6e, 0x67, 0xd83d, 0xdc6b, 0x3a, 0x63, 0x6f, 0x75, 0x70, 0x6c, -0x65, 0x3a, 0x63, 0x6f, 0x75, 0x70, 0x6c, 0x65, 0xd83d, 0xdc6d, 0x3a, 0x74, -0x77, 0x6f, 0x5f, 0x77, 0x6f, 0x6d, 0x65, 0x6e, 0x5f, 0x68, 0x6f, 0x6c, -0x64, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x3a, 0x68, -0x61, 0x6e, 0x64, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x74, -0x77, 0x6f, 0x77, 0x6f, 0x6d, 0x65, 0x6e, 0xd83d, 0xdc6c, 0x3a, 0x74, 0x77, -0x6f, 0x5f, 0x6d, 0x65, 0x6e, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, -0x67, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x3a, 0x68, 0x61, 0x6e, 0x64, -0x73, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x6d, 0x65, 0x6e, 0x74, -0x77, 0x6f, 0xd83d, 0xdc91, 0x3a, 0x63, 0x6f, 0x75, 0x70, 0x6c, 0x65, 0x5f, -0x77, 0x69, 0x74, 0x68, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x3a, 0x63, -0x6f, 0x75, 0x70, 0x6c, 0x65, 0x68, 0x65, 0x61, 0x72, 0x74, 0x77, 0x69, -0x74, 0x68, 0xd83d, 0xdc91, 0x3a, 0x63, 0x6f, 0x75, 0x70, 0x6c, 0x65, 0x5f, -0x77, 0x69, 0x74, 0x68, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x5f, 0x77, -0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x6d, 0x61, 0x6e, 0x3a, 0x63, 0x6f, 0x75, -0x70, 0x6c, 0x65, 0x68, 0x65, 0x61, 0x72, 0x74, 0x6d, 0x61, 0x6e, 0x77, -0x69, 0x74, 0x68, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc69, 0x200d, 0x2764, -0xfe0f, 0x200d, 0xd83d, 0xdc69, 0x3a, 0x63, 0x6f, 0x75, 0x70, 0x6c, 0x65, 0x5f, -0x77, 0x69, 0x74, 0x68, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x5f, 0x77, -0x77, 0x3a, 0x63, 0x6f, 0x75, 0x70, 0x6c, 0x65, 0x68, 0x65, 0x61, 0x72, -0x74, 0x77, 0x69, 0x74, 0x68, 0x77, 0x77, 0xd83d, 0xdc69, 0x200d, 0x2764, 0xfe0f, -0x200d, 0xd83d, 0xdc69, 0x3a, 0x63, 0x6f, 0x75, 0x70, 0x6c, 0x65, 0x5f, 0x77, -0x77, 0x3a, 0x63, 0x6f, 0x75, 0x70, 0x6c, 0x65, 0x77, 0x77, 0xd83d, 0xdc68, -0x200d, 0x2764, 0xfe0f, 0x200d, 0xd83d, 0xdc68, 0x3a, 0x63, 0x6f, 0x75, 0x70, 0x6c, -0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, -0x5f, 0x6d, 0x6d, 0x3a, 0x63, 0x6f, 0x75, 0x70, 0x6c, 0x65, 0x68, 0x65, -0x61, 0x72, 0x74, 0x6d, 0x6d, 0x77, 0x69, 0x74, 0x68, 0xd83d, 0xdc68, 0x200d, -0x2764, 0xfe0f, 0x200d, 0xd83d, 0xdc68, 0x3a, 0x63, 0x6f, 0x75, 0x70, 0x6c, 0x65, -0x5f, 0x6d, 0x6d, 0x3a, 0x63, 0x6f, 0x75, 0x70, 0x6c, 0x65, 0x6d, 0x6d, -0xd83d, 0xdc8f, 0x3a, 0x63, 0x6f, 0x75, 0x70, 0x6c, 0x65, 0x6b, 0x69, 0x73, -0x73, 0x3a, 0x63, 0x6f, 0x75, 0x70, 0x6c, 0x65, 0x6b, 0x69, 0x73, 0x73, -0xd83d, 0xdc8f, 0x3a, 0x6b, 0x69, 0x73, 0x73, 0x5f, 0x77, 0x6f, 0x6d, 0x61, -0x6e, 0x5f, 0x6d, 0x61, 0x6e, 0x3a, 0x6b, 0x69, 0x73, 0x73, 0x6d, 0x61, -0x6e, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc69, 0x200d, 0x2764, 0xfe0f, 0x200d, -0xd83d, 0xdc8b, 0x200d, 0xd83d, 0xdc69, 0x3a, 0x63, 0x6f, 0x75, 0x70, 0x6c, 0x65, -0x6b, 0x69, 0x73, 0x73, 0x5f, 0x77, 0x77, 0x3a, 0x63, 0x6f, 0x75, 0x70, -0x6c, 0x65, 0x6b, 0x69, 0x73, 0x73, 0x77, 0x77, 0xd83d, 0xdc69, 0x200d, 0x2764, -0xfe0f, 0x200d, 0xd83d, 0xdc8b, 0x200d, 0xd83d, 0xdc69, 0x3a, 0x6b, 0x69, 0x73, 0x73, -0x5f, 0x77, 0x77, 0x3a, 0x6b, 0x69, 0x73, 0x73, 0x77, 0x77, 0xd83d, 0xdc68, -0x200d, 0x2764, 0xfe0f, 0x200d, 0xd83d, 0xdc8b, 0x200d, 0xd83d, 0xdc68, 0x3a, 0x63, 0x6f, -0x75, 0x70, 0x6c, 0x65, 0x6b, 0x69, 0x73, 0x73, 0x5f, 0x6d, 0x6d, 0x3a, -0x63, 0x6f, 0x75, 0x70, 0x6c, 0x65, 0x6b, 0x69, 0x73, 0x73, 0x6d, 0x6d, -0xd83d, 0xdc68, 0x200d, 0x2764, 0xfe0f, 0x200d, 0xd83d, 0xdc8b, 0x200d, 0xd83d, 0xdc68, 0x3a, -0x6b, 0x69, 0x73, 0x73, 0x5f, 0x6d, 0x6d, 0x3a, 0x6b, 0x69, 0x73, 0x73, -0x6d, 0x6d, 0xd83d, 0xdc6a, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x3a, -0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0xd83d, 0xdc6a, 0x3a, 0x66, 0x61, 0x6d, -0x69, 0x6c, 0x79, 0x5f, 0x6d, 0x61, 0x6e, 0x5f, 0x77, 0x6f, 0x6d, 0x61, -0x6e, 0x5f, 0x62, 0x6f, 0x79, 0x3a, 0x62, 0x6f, 0x79, 0x66, 0x61, 0x6d, -0x69, 0x6c, 0x79, 0x6d, 0x61, 0x6e, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, -0xdc68, 0x200d, 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xdc67, 0x3a, 0x66, 0x61, 0x6d, 0x69, -0x6c, 0x79, 0x5f, 0x6d, 0x77, 0x67, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, -0x79, 0x6d, 0x77, 0x67, 0xd83d, 0xdc68, 0x200d, 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xdc67, -0x200d, 0xd83d, 0xdc66, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x6d, -0x77, 0x67, 0x62, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x6d, 0x77, -0x67, 0x62, 0xd83d, 0xdc68, 0x200d, 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xdc66, 0x200d, 0xd83d, -0xdc66, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x6d, 0x77, 0x62, -0x62, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x6d, 0x77, 0x62, 0x62, -0xd83d, 0xdc68, 0x200d, 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xdc67, 0x200d, 0xd83d, 0xdc67, 0x3a, -0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x6d, 0x77, 0x67, 0x67, 0x3a, -0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x6d, 0x77, 0x67, 0x67, 0xd83d, 0xdc69, -0x200d, 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xdc66, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, -0x79, 0x5f, 0x77, 0x77, 0x62, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, -0x77, 0x77, 0x62, 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xdc67, 0x3a, -0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x77, 0x77, 0x67, 0x3a, 0x66, -0x61, 0x6d, 0x69, 0x6c, 0x79, 0x77, 0x77, 0x67, 0xd83d, 0xdc69, 0x200d, 0xd83d, -0xdc69, 0x200d, 0xd83d, 0xdc67, 0x200d, 0xd83d, 0xdc66, 0x3a, 0x66, 0x61, 0x6d, 0x69, -0x6c, 0x79, 0x5f, 0x77, 0x77, 0x67, 0x62, 0x3a, 0x66, 0x61, 0x6d, 0x69, -0x6c, 0x79, 0x77, 0x77, 0x67, 0x62, 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xdc69, 0x200d, -0xd83d, 0xdc66, 0x200d, 0xd83d, 0xdc66, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, -0x5f, 0x77, 0x77, 0x62, 0x62, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, -0x77, 0x77, 0x62, 0x62, 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xdc67, -0x200d, 0xd83d, 0xdc67, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x77, -0x77, 0x67, 0x67, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x77, 0x77, -0x67, 0x67, 0xd83d, 0xdc68, 0x200d, 0xd83d, 0xdc68, 0x200d, 0xd83d, 0xdc66, 0x3a, 0x66, -0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x6d, 0x6d, 0x62, 0x3a, 0x66, 0x61, -0x6d, 0x69, 0x6c, 0x79, 0x6d, 0x6d, 0x62, 0xd83d, 0xdc68, 0x200d, 0xd83d, 0xdc68, -0x200d, 0xd83d, 0xdc67, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x6d, -0x6d, 0x67, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x6d, 0x6d, 0x67, -0xd83d, 0xdc68, 0x200d, 0xd83d, 0xdc68, 0x200d, 0xd83d, 0xdc67, 0x200d, 0xd83d, 0xdc66, 0x3a, -0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x6d, 0x6d, 0x67, 0x62, 0x3a, -0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x6d, 0x6d, 0x67, 0x62, 0xd83d, 0xdc68, -0x200d, 0xd83d, 0xdc68, 0x200d, 0xd83d, 0xdc66, 0x200d, 0xd83d, 0xdc66, 0x3a, 0x66, 0x61, -0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x6d, 0x6d, 0x62, 0x62, 0x3a, 0x66, 0x61, -0x6d, 0x69, 0x6c, 0x79, 0x6d, 0x6d, 0x62, 0x62, 0xd83d, 0xdc68, 0x200d, 0xd83d, -0xdc68, 0x200d, 0xd83d, 0xdc67, 0x200d, 0xd83d, 0xdc67, 0x3a, 0x66, 0x61, 0x6d, 0x69, -0x6c, 0x79, 0x5f, 0x6d, 0x6d, 0x67, 0x67, 0x3a, 0x66, 0x61, 0x6d, 0x69, -0x6c, 0x79, 0x6d, 0x6d, 0x67, 0x67, 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xdc66, 0x3a, -0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x77, 0x6f, 0x6d, 0x61, 0x6e, -0x5f, 0x62, 0x6f, 0x79, 0x3a, 0x62, 0x6f, 0x79, 0x66, 0x61, 0x6d, 0x69, -0x6c, 0x79, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xdc67, -0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x77, 0x6f, 0x6d, 0x61, -0x6e, 0x5f, 0x67, 0x69, 0x72, 0x6c, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, -0x79, 0x67, 0x69, 0x72, 0x6c, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc69, -0x200d, 0xd83d, 0xdc67, 0x200d, 0xd83d, 0xdc66, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, -0x79, 0x5f, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x67, 0x69, 0x72, 0x6c, -0x5f, 0x62, 0x6f, 0x79, 0x3a, 0x62, 0x6f, 0x79, 0x66, 0x61, 0x6d, 0x69, -0x6c, 0x79, 0x67, 0x69, 0x72, 0x6c, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, -0xdc69, 0x200d, 0xd83d, 0xdc66, 0x200d, 0xd83d, 0xdc66, 0x3a, 0x66, 0x61, 0x6d, 0x69, -0x6c, 0x79, 0x5f, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x62, 0x6f, 0x79, -0x5f, 0x62, 0x6f, 0x79, 0x3a, 0x62, 0x6f, 0x79, 0x62, 0x6f, 0x79, 0x66, -0x61, 0x6d, 0x69, 0x6c, 0x79, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc69, -0x200d, 0xd83d, 0xdc67, 0x200d, 0xd83d, 0xdc67, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, -0x79, 0x5f, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x67, 0x69, 0x72, 0x6c, -0x5f, 0x67, 0x69, 0x72, 0x6c, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, -0x67, 0x69, 0x72, 0x6c, 0x67, 0x69, 0x72, 0x6c, 0x77, 0x6f, 0x6d, 0x61, -0x6e, 0xd83d, 0xdc68, 0x200d, 0xd83d, 0xdc66, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, -0x79, 0x5f, 0x6d, 0x61, 0x6e, 0x5f, 0x62, 0x6f, 0x79, 0x3a, 0x62, 0x6f, -0x79, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc68, -0x200d, 0xd83d, 0xdc67, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x6d, -0x61, 0x6e, 0x5f, 0x67, 0x69, 0x72, 0x6c, 0x3a, 0x66, 0x61, 0x6d, 0x69, -0x6c, 0x79, 0x67, 0x69, 0x72, 0x6c, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc68, 0x200d, -0xd83d, 0xdc67, 0x200d, 0xd83d, 0xdc66, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, -0x5f, 0x6d, 0x61, 0x6e, 0x5f, 0x67, 0x69, 0x72, 0x6c, 0x5f, 0x62, 0x6f, -0x79, 0x3a, 0x62, 0x6f, 0x79, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x67, -0x69, 0x72, 0x6c, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc68, 0x200d, 0xd83d, 0xdc66, 0x200d, -0xd83d, 0xdc66, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x6d, 0x61, -0x6e, 0x5f, 0x62, 0x6f, 0x79, 0x5f, 0x62, 0x6f, 0x79, 0x3a, 0x62, 0x6f, -0x79, 0x62, 0x6f, 0x79, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x6d, 0x61, -0x6e, 0xd83d, 0xdc68, 0x200d, 0xd83d, 0xdc67, 0x200d, 0xd83d, 0xdc67, 0x3a, 0x66, 0x61, -0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x6d, 0x61, 0x6e, 0x5f, 0x67, 0x69, 0x72, -0x6c, 0x5f, 0x67, 0x69, 0x72, 0x6c, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, -0x79, 0x67, 0x69, 0x72, 0x6c, 0x67, 0x69, 0x72, 0x6c, 0x6d, 0x61, 0x6e, -0xd83d, 0xdc5a, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x73, 0x5f, 0x63, 0x6c, -0x6f, 0x74, 0x68, 0x65, 0x73, 0x3a, 0x63, 0x6c, 0x6f, 0x74, 0x68, 0x65, -0x73, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x73, 0xd83d, 0xdc55, 0x3a, 0x73, 0x68, -0x69, 0x72, 0x74, 0x3a, 0x73, 0x68, 0x69, 0x72, 0x74, 0xd83d, 0xdc56, 0x3a, -0x6a, 0x65, 0x61, 0x6e, 0x73, 0x3a, 0x6a, 0x65, 0x61, 0x6e, 0x73, 0xd83d, -0xdc54, 0x3a, 0x6e, 0x65, 0x63, 0x6b, 0x74, 0x69, 0x65, 0x3a, 0x6e, 0x65, -0x63, 0x6b, 0x74, 0x69, 0x65, 0xd83d, 0xdc57, 0x3a, 0x64, 0x72, 0x65, 0x73, -0x73, 0x3a, 0x64, 0x72, 0x65, 0x73, 0x73, 0xd83d, 0xdc59, 0x3a, 0x62, 0x69, -0x6b, 0x69, 0x6e, 0x69, 0x3a, 0x62, 0x69, 0x6b, 0x69, 0x6e, 0x69, 0xd83d, -0xdc58, 0x3a, 0x6b, 0x69, 0x6d, 0x6f, 0x6e, 0x6f, 0x3a, 0x6b, 0x69, 0x6d, -0x6f, 0x6e, 0x6f, 0xd83d, 0xdc60, 0x3a, 0x68, 0x69, 0x67, 0x68, 0x5f, 0x68, -0x65, 0x65, 0x6c, 0x3a, 0x68, 0x65, 0x65, 0x6c, 0x68, 0x69, 0x67, 0x68, -0xd83d, 0xdc61, 0x3a, 0x73, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x3a, 0x73, 0x61, -0x6e, 0x64, 0x61, 0x6c, 0xd83d, 0xdc62, 0x3a, 0x62, 0x6f, 0x6f, 0x74, 0x3a, -0x62, 0x6f, 0x6f, 0x74, 0xd83d, 0xdc5e, 0x3a, 0x6d, 0x61, 0x6e, 0x73, 0x5f, -0x73, 0x68, 0x6f, 0x65, 0x3a, 0x6d, 0x61, 0x6e, 0x73, 0x73, 0x68, 0x6f, -0x65, 0xd83d, 0xdc5f, 0x3a, 0x61, 0x74, 0x68, 0x6c, 0x65, 0x74, 0x69, 0x63, -0x5f, 0x73, 0x68, 0x6f, 0x65, 0x3a, 0x61, 0x74, 0x68, 0x6c, 0x65, 0x74, -0x69, 0x63, 0x73, 0x68, 0x6f, 0x65, 0xd83d, 0xdc52, 0x3a, 0x77, 0x6f, 0x6d, -0x61, 0x6e, 0x73, 0x5f, 0x68, 0x61, 0x74, 0x3a, 0x68, 0x61, 0x74, 0x77, -0x6f, 0x6d, 0x61, 0x6e, 0x73, 0xd83c, 0xdfa9, 0x3a, 0x74, 0x6f, 0x70, 0x68, -0x61, 0x74, 0x3a, 0x74, 0x6f, 0x70, 0x68, 0x61, 0x74, 0xd83c, 0xdf93, 0x3a, -0x6d, 0x6f, 0x72, 0x74, 0x61, 0x72, 0x5f, 0x62, 0x6f, 0x61, 0x72, 0x64, -0x3a, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x6d, 0x6f, 0x72, 0x74, 0x61, 0x72, -0xd83d, 0xdc51, 0x3a, 0x63, 0x72, 0x6f, 0x77, 0x6e, 0x3a, 0x63, 0x72, 0x6f, -0x77, 0x6e, 0x26d1, 0x3a, 0x68, 0x65, 0x6c, 0x6d, 0x65, 0x74, 0x5f, 0x77, -0x69, 0x74, 0x68, 0x5f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x5f, 0x63, 0x72, -0x6f, 0x73, 0x73, 0x3a, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x68, 0x65, 0x6c, -0x6d, 0x65, 0x74, 0x77, 0x68, 0x69, 0x74, 0x65, 0x77, 0x69, 0x74, 0x68, -0x26d1, 0x3a, 0x68, 0x65, 0x6c, 0x6d, 0x65, 0x74, 0x5f, 0x77, 0x69, 0x74, -0x68, 0x5f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x3a, 0x63, 0x72, 0x6f, 0x73, -0x73, 0x68, 0x65, 0x6c, 0x6d, 0x65, 0x74, 0x77, 0x69, 0x74, 0x68, 0xd83c, -0xdf92, 0x3a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x5f, 0x73, 0x61, 0x74, -0x63, 0x68, 0x65, 0x6c, 0x3a, 0x73, 0x61, 0x74, 0x63, 0x68, 0x65, 0x6c, -0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0xd83d, 0xdc5d, 0x3a, 0x70, 0x6f, 0x75, -0x63, 0x68, 0x3a, 0x70, 0x6f, 0x75, 0x63, 0x68, 0xd83d, 0xdc5b, 0x3a, 0x70, -0x75, 0x72, 0x73, 0x65, 0x3a, 0x70, 0x75, 0x72, 0x73, 0x65, 0xd83d, 0xdc5c, -0x3a, 0x68, 0x61, 0x6e, 0x64, 0x62, 0x61, 0x67, 0x3a, 0x68, 0x61, 0x6e, -0x64, 0x62, 0x61, 0x67, 0xd83d, 0xdcbc, 0x3a, 0x62, 0x72, 0x69, 0x65, 0x66, -0x63, 0x61, 0x73, 0x65, 0x3a, 0x62, 0x72, 0x69, 0x65, 0x66, 0x63, 0x61, -0x73, 0x65, 0xd83d, 0xdc53, 0x3a, 0x65, 0x79, 0x65, 0x67, 0x6c, 0x61, 0x73, -0x73, 0x65, 0x73, 0x3a, 0x65, 0x79, 0x65, 0x67, 0x6c, 0x61, 0x73, 0x73, -0x65, 0x73, 0xd83d, 0xdd76, 0x3a, 0x64, 0x61, 0x72, 0x6b, 0x5f, 0x73, 0x75, -0x6e, 0x67, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x3a, 0x64, 0x61, 0x72, -0x6b, 0x73, 0x75, 0x6e, 0x67, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0xd83c, -0xdf02, 0x3a, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x5f, 0x75, 0x6d, 0x62, -0x72, 0x65, 0x6c, 0x6c, 0x61, 0x3a, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, -0x75, 0x6d, 0x62, 0x72, 0x65, 0x6c, 0x6c, 0x61, 0x2602, 0xfe0f, 0x3a, 0x75, -0x6d, 0x62, 0x72, 0x65, 0x6c, 0x6c, 0x61, 0x32, 0x3a, 0x75, 0x6d, 0x62, -0x72, 0x65, 0x6c, 0x6c, 0x61, 0x32, 0xd83d, 0xdc36, 0x3a, 0x64, 0x6f, 0x67, -0x3a, 0x64, 0x6f, 0x67, 0xd83d, 0xdc31, 0x3a, 0x63, 0x61, 0x74, 0x3a, 0x63, -0x61, 0x74, 0xd83d, 0xdc2d, 0x3a, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x3a, 0x6d, -0x6f, 0x75, 0x73, 0x65, 0xd83d, 0xdc39, 0x3a, 0x68, 0x61, 0x6d, 0x73, 0x74, -0x65, 0x72, 0x3a, 0x68, 0x61, 0x6d, 0x73, 0x74, 0x65, 0x72, 0xd83d, 0xdc30, -0x3a, 0x72, 0x61, 0x62, 0x62, 0x69, 0x74, 0x3a, 0x72, 0x61, 0x62, 0x62, -0x69, 0x74, 0xd83e, 0xdd8a, 0x3a, 0x66, 0x6f, 0x78, 0x5f, 0x66, 0x61, 0x63, -0x65, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x66, 0x6f, 0x78, 0xd83e, 0xdd8a, 0x3a, -0x66, 0x6f, 0x78, 0x3a, 0x66, 0x6f, 0x78, 0xd83d, 0xdc3b, 0x3a, 0x62, 0x65, -0x61, 0x72, 0x3a, 0x62, 0x65, 0x61, 0x72, 0xd83d, 0xdc3c, 0x3a, 0x70, 0x61, -0x6e, 0x64, 0x61, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, 0x63, -0x65, 0x70, 0x61, 0x6e, 0x64, 0x61, 0xd83d, 0xdc28, 0x3a, 0x6b, 0x6f, 0x61, -0x6c, 0x61, 0x3a, 0x6b, 0x6f, 0x61, 0x6c, 0x61, 0xd83d, 0xdc2f, 0x3a, 0x74, -0x69, 0x67, 0x65, 0x72, 0x3a, 0x74, 0x69, 0x67, 0x65, 0x72, 0xd83e, 0xdd81, -0x3a, 0x6c, 0x69, 0x6f, 0x6e, 0x3a, 0x6c, 0x69, 0x6f, 0x6e, 0xd83e, 0xdd81, -0x3a, 0x6c, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, -0x61, 0x63, 0x65, 0x6c, 0x69, 0x6f, 0x6e, 0xd83d, 0xdc2e, 0x3a, 0x63, 0x6f, -0x77, 0x3a, 0x63, 0x6f, 0x77, 0xd83d, 0xdc37, 0x3a, 0x70, 0x69, 0x67, 0x3a, -0x70, 0x69, 0x67, 0xd83d, 0xdc3d, 0x3a, 0x70, 0x69, 0x67, 0x5f, 0x6e, 0x6f, -0x73, 0x65, 0x3a, 0x6e, 0x6f, 0x73, 0x65, 0x70, 0x69, 0x67, 0xd83d, 0xdc38, -0x3a, 0x66, 0x72, 0x6f, 0x67, 0x3a, 0x66, 0x72, 0x6f, 0x67, 0xd83d, 0xdc35, -0x3a, 0x6d, 0x6f, 0x6e, 0x6b, 0x65, 0x79, 0x5f, 0x66, 0x61, 0x63, 0x65, -0x3a, 0x66, 0x61, 0x63, 0x65, 0x6d, 0x6f, 0x6e, 0x6b, 0x65, 0x79, 0xd83d, -0xde48, 0x3a, 0x73, 0x65, 0x65, 0x5f, 0x6e, 0x6f, 0x5f, 0x65, 0x76, 0x69, -0x6c, 0x3a, 0x65, 0x76, 0x69, 0x6c, 0x6e, 0x6f, 0x73, 0x65, 0x65, 0xd83d, -0xde49, 0x3a, 0x68, 0x65, 0x61, 0x72, 0x5f, 0x6e, 0x6f, 0x5f, 0x65, 0x76, -0x69, 0x6c, 0x3a, 0x65, 0x76, 0x69, 0x6c, 0x68, 0x65, 0x61, 0x72, 0x6e, -0x6f, 0xd83d, 0xde4a, 0x3a, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x5f, 0x6e, 0x6f, -0x5f, 0x65, 0x76, 0x69, 0x6c, 0x3a, 0x65, 0x76, 0x69, 0x6c, 0x6e, 0x6f, -0x73, 0x70, 0x65, 0x61, 0x6b, 0xd83d, 0xdc12, 0x3a, 0x6d, 0x6f, 0x6e, 0x6b, -0x65, 0x79, 0x3a, 0x6d, 0x6f, 0x6e, 0x6b, 0x65, 0x79, 0xd83d, 0xdc14, 0x3a, -0x63, 0x68, 0x69, 0x63, 0x6b, 0x65, 0x6e, 0x3a, 0x63, 0x68, 0x69, 0x63, -0x6b, 0x65, 0x6e, 0xd83d, 0xdc27, 0x3a, 0x70, 0x65, 0x6e, 0x67, 0x75, 0x69, -0x6e, 0x3a, 0x70, 0x65, 0x6e, 0x67, 0x75, 0x69, 0x6e, 0xd83d, 0xdc26, 0x3a, -0x62, 0x69, 0x72, 0x64, 0x3a, 0x62, 0x69, 0x72, 0x64, 0xd83d, 0xdc24, 0x3a, -0x62, 0x61, 0x62, 0x79, 0x5f, 0x63, 0x68, 0x69, 0x63, 0x6b, 0x3a, 0x62, -0x61, 0x62, 0x79, 0x63, 0x68, 0x69, 0x63, 0x6b, 0xd83d, 0xdc23, 0x3a, 0x68, -0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x69, 0x63, -0x6b, 0x3a, 0x63, 0x68, 0x69, 0x63, 0x6b, 0x68, 0x61, 0x74, 0x63, 0x68, -0x69, 0x6e, 0x67, 0xd83d, 0xdc25, 0x3a, 0x68, 0x61, 0x74, 0x63, 0x68, 0x65, -0x64, 0x5f, 0x63, 0x68, 0x69, 0x63, 0x6b, 0x3a, 0x63, 0x68, 0x69, 0x63, -0x6b, 0x68, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0xd83e, 0xdd86, 0x3a, 0x64, -0x75, 0x63, 0x6b, 0x3a, 0x64, 0x75, 0x63, 0x6b, 0xd83e, 0xdd85, 0x3a, 0x65, -0x61, 0x67, 0x6c, 0x65, 0x3a, 0x65, 0x61, 0x67, 0x6c, 0x65, 0xd83e, 0xdd89, -0x3a, 0x6f, 0x77, 0x6c, 0x3a, 0x6f, 0x77, 0x6c, 0xd83e, 0xdd87, 0x3a, 0x62, -0x61, 0x74, 0x3a, 0x62, 0x61, 0x74, 0xd83d, 0xdc3a, 0x3a, 0x77, 0x6f, 0x6c, -0x66, 0x3a, 0x77, 0x6f, 0x6c, 0x66, 0xd83d, 0xdc17, 0x3a, 0x62, 0x6f, 0x61, -0x72, 0x3a, 0x62, 0x6f, 0x61, 0x72, 0xd83d, 0xdc34, 0x3a, 0x68, 0x6f, 0x72, -0x73, 0x65, 0x3a, 0x68, 0x6f, 0x72, 0x73, 0x65, 0xd83e, 0xdd84, 0x3a, 0x75, -0x6e, 0x69, 0x63, 0x6f, 0x72, 0x6e, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, -0x66, 0x61, 0x63, 0x65, 0x75, 0x6e, 0x69, 0x63, 0x6f, 0x72, 0x6e, 0xd83e, -0xdd84, 0x3a, 0x75, 0x6e, 0x69, 0x63, 0x6f, 0x72, 0x6e, 0x3a, 0x75, 0x6e, -0x69, 0x63, 0x6f, 0x72, 0x6e, 0xd83d, 0xdc1d, 0x3a, 0x62, 0x65, 0x65, 0x3a, -0x62, 0x65, 0x65, 0xd83d, 0xdc1b, 0x3a, 0x62, 0x75, 0x67, 0x3a, 0x62, 0x75, -0x67, 0xd83e, 0xdd8b, 0x3a, 0x62, 0x75, 0x74, 0x74, 0x65, 0x72, 0x66, 0x6c, -0x79, 0x3a, 0x62, 0x75, 0x74, 0x74, 0x65, 0x72, 0x66, 0x6c, 0x79, 0xd83d, -0xdc0c, 0x3a, 0x73, 0x6e, 0x61, 0x69, 0x6c, 0x3a, 0x73, 0x6e, 0x61, 0x69, -0x6c, 0xd83d, 0xdc1a, 0x3a, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x3a, 0x73, 0x68, -0x65, 0x6c, 0x6c, 0xd83d, 0xdc1e, 0x3a, 0x62, 0x65, 0x65, 0x74, 0x6c, 0x65, -0x3a, 0x62, 0x65, 0x65, 0x74, 0x6c, 0x65, 0xd83d, 0xdc1c, 0x3a, 0x61, 0x6e, -0x74, 0x3a, 0x61, 0x6e, 0x74, 0xd83d, 0xdd77, 0x3a, 0x73, 0x70, 0x69, 0x64, -0x65, 0x72, 0x3a, 0x73, 0x70, 0x69, 0x64, 0x65, 0x72, 0xd83d, 0xdd78, 0x3a, -0x73, 0x70, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x77, 0x65, 0x62, 0x3a, 0x73, -0x70, 0x69, 0x64, 0x65, 0x72, 0x77, 0x65, 0x62, 0xd83d, 0xdc22, 0x3a, 0x74, -0x75, 0x72, 0x74, 0x6c, 0x65, 0x3a, 0x74, 0x75, 0x72, 0x74, 0x6c, 0x65, -0xd83d, 0xdc0d, 0x3a, 0x73, 0x6e, 0x61, 0x6b, 0x65, 0x3a, 0x73, 0x6e, 0x61, -0x6b, 0x65, 0xd83e, 0xdd8e, 0x3a, 0x6c, 0x69, 0x7a, 0x61, 0x72, 0x64, 0x3a, -0x6c, 0x69, 0x7a, 0x61, 0x72, 0x64, 0xd83e, 0xdd82, 0x3a, 0x73, 0x63, 0x6f, -0x72, 0x70, 0x69, 0x6f, 0x6e, 0x3a, 0x73, 0x63, 0x6f, 0x72, 0x70, 0x69, -0x6f, 0x6e, 0xd83e, 0xdd80, 0x3a, 0x63, 0x72, 0x61, 0x62, 0x3a, 0x63, 0x72, -0x61, 0x62, 0xd83e, 0xdd91, 0x3a, 0x73, 0x71, 0x75, 0x69, 0x64, 0x3a, 0x73, -0x71, 0x75, 0x69, 0x64, 0xd83d, 0xdc19, 0x3a, 0x6f, 0x63, 0x74, 0x6f, 0x70, -0x75, 0x73, 0x3a, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0xd83e, 0xdd90, -0x3a, 0x73, 0x68, 0x72, 0x69, 0x6d, 0x70, 0x3a, 0x73, 0x68, 0x72, 0x69, -0x6d, 0x70, 0xd83d, 0xdc20, 0x3a, 0x74, 0x72, 0x6f, 0x70, 0x69, 0x63, 0x61, -0x6c, 0x5f, 0x66, 0x69, 0x73, 0x68, 0x3a, 0x66, 0x69, 0x73, 0x68, 0x74, -0x72, 0x6f, 0x70, 0x69, 0x63, 0x61, 0x6c, 0xd83d, 0xdc1f, 0x3a, 0x66, 0x69, -0x73, 0x68, 0x3a, 0x66, 0x69, 0x73, 0x68, 0xd83d, 0xdc21, 0x3a, 0x62, 0x6c, -0x6f, 0x77, 0x66, 0x69, 0x73, 0x68, 0x3a, 0x62, 0x6c, 0x6f, 0x77, 0x66, -0x69, 0x73, 0x68, 0xd83d, 0xdc2c, 0x3a, 0x64, 0x6f, 0x6c, 0x70, 0x68, 0x69, -0x6e, 0x3a, 0x64, 0x6f, 0x6c, 0x70, 0x68, 0x69, 0x6e, 0xd83e, 0xdd88, 0x3a, -0x73, 0x68, 0x61, 0x72, 0x6b, 0x3a, 0x73, 0x68, 0x61, 0x72, 0x6b, 0xd83d, -0xdc33, 0x3a, 0x77, 0x68, 0x61, 0x6c, 0x65, 0x3a, 0x77, 0x68, 0x61, 0x6c, -0x65, 0xd83d, 0xdc0b, 0x3a, 0x77, 0x68, 0x61, 0x6c, 0x65, 0x32, 0x3a, 0x77, -0x68, 0x61, 0x6c, 0x65, 0x32, 0xd83d, 0xdc0a, 0x3a, 0x63, 0x72, 0x6f, 0x63, -0x6f, 0x64, 0x69, 0x6c, 0x65, 0x3a, 0x63, 0x72, 0x6f, 0x63, 0x6f, 0x64, -0x69, 0x6c, 0x65, 0xd83d, 0xdc06, 0x3a, 0x6c, 0x65, 0x6f, 0x70, 0x61, 0x72, -0x64, 0x3a, 0x6c, 0x65, 0x6f, 0x70, 0x61, 0x72, 0x64, 0xd83d, 0xdc05, 0x3a, -0x74, 0x69, 0x67, 0x65, 0x72, 0x32, 0x3a, 0x74, 0x69, 0x67, 0x65, 0x72, -0x32, 0xd83d, 0xdc03, 0x3a, 0x77, 0x61, 0x74, 0x65, 0x72, 0x5f, 0x62, 0x75, -0x66, 0x66, 0x61, 0x6c, 0x6f, 0x3a, 0x62, 0x75, 0x66, 0x66, 0x61, 0x6c, -0x6f, 0x77, 0x61, 0x74, 0x65, 0x72, 0xd83d, 0xdc02, 0x3a, 0x6f, 0x78, 0x3a, -0x6f, 0x78, 0xd83d, 0xdc04, 0x3a, 0x63, 0x6f, 0x77, 0x32, 0x3a, 0x63, 0x6f, -0x77, 0x32, 0xd83e, 0xdd8c, 0x3a, 0x64, 0x65, 0x65, 0x72, 0x3a, 0x64, 0x65, -0x65, 0x72, 0xd83d, 0xdc2a, 0x3a, 0x64, 0x72, 0x6f, 0x6d, 0x65, 0x64, 0x61, -0x72, 0x79, 0x5f, 0x63, 0x61, 0x6d, 0x65, 0x6c, 0x3a, 0x63, 0x61, 0x6d, -0x65, 0x6c, 0x64, 0x72, 0x6f, 0x6d, 0x65, 0x64, 0x61, 0x72, 0x79, 0xd83d, -0xdc2b, 0x3a, 0x63, 0x61, 0x6d, 0x65, 0x6c, 0x3a, 0x63, 0x61, 0x6d, 0x65, -0x6c, 0xd83d, 0xdc18, 0x3a, 0x65, 0x6c, 0x65, 0x70, 0x68, 0x61, 0x6e, 0x74, -0x3a, 0x65, 0x6c, 0x65, 0x70, 0x68, 0x61, 0x6e, 0x74, 0xd83e, 0xdd8f, 0x3a, -0x72, 0x68, 0x69, 0x6e, 0x6f, 0x63, 0x65, 0x72, 0x6f, 0x73, 0x3a, 0x72, -0x68, 0x69, 0x6e, 0x6f, 0x63, 0x65, 0x72, 0x6f, 0x73, 0xd83e, 0xdd8f, 0x3a, -0x72, 0x68, 0x69, 0x6e, 0x6f, 0x3a, 0x72, 0x68, 0x69, 0x6e, 0x6f, 0xd83e, -0xdd8d, 0x3a, 0x67, 0x6f, 0x72, 0x69, 0x6c, 0x6c, 0x61, 0x3a, 0x67, 0x6f, -0x72, 0x69, 0x6c, 0x6c, 0x61, 0xd83d, 0xdc0e, 0x3a, 0x72, 0x61, 0x63, 0x65, -0x68, 0x6f, 0x72, 0x73, 0x65, 0x3a, 0x72, 0x61, 0x63, 0x65, 0x68, 0x6f, -0x72, 0x73, 0x65, 0xd83d, 0xdc16, 0x3a, 0x70, 0x69, 0x67, 0x32, 0x3a, 0x70, -0x69, 0x67, 0x32, 0xd83d, 0xdc10, 0x3a, 0x67, 0x6f, 0x61, 0x74, 0x3a, 0x67, -0x6f, 0x61, 0x74, 0xd83d, 0xdc0f, 0x3a, 0x72, 0x61, 0x6d, 0x3a, 0x72, 0x61, -0x6d, 0xd83d, 0xdc11, 0x3a, 0x73, 0x68, 0x65, 0x65, 0x70, 0x3a, 0x73, 0x68, -0x65, 0x65, 0x70, 0xd83d, 0xdc15, 0x3a, 0x64, 0x6f, 0x67, 0x32, 0x3a, 0x64, -0x6f, 0x67, 0x32, 0xd83d, 0xdc29, 0x3a, 0x70, 0x6f, 0x6f, 0x64, 0x6c, 0x65, -0x3a, 0x70, 0x6f, 0x6f, 0x64, 0x6c, 0x65, 0xd83d, 0xdc08, 0x3a, 0x63, 0x61, -0x74, 0x32, 0x3a, 0x63, 0x61, 0x74, 0x32, 0xd83d, 0xdc13, 0x3a, 0x72, 0x6f, -0x6f, 0x73, 0x74, 0x65, 0x72, 0x3a, 0x72, 0x6f, 0x6f, 0x73, 0x74, 0x65, -0x72, 0xd83e, 0xdd83, 0x3a, 0x74, 0x75, 0x72, 0x6b, 0x65, 0x79, 0x3a, 0x74, -0x75, 0x72, 0x6b, 0x65, 0x79, 0xd83d, 0xdd4a, 0x3a, 0x64, 0x6f, 0x76, 0x65, -0x5f, 0x6f, 0x66, 0x5f, 0x70, 0x65, 0x61, 0x63, 0x65, 0x3a, 0x64, 0x6f, -0x76, 0x65, 0x6f, 0x66, 0x70, 0x65, 0x61, 0x63, 0x65, 0xd83d, 0xdd4a, 0x3a, -0x64, 0x6f, 0x76, 0x65, 0x3a, 0x64, 0x6f, 0x76, 0x65, 0xd83d, 0xdc07, 0x3a, -0x72, 0x61, 0x62, 0x62, 0x69, 0x74, 0x32, 0x3a, 0x72, 0x61, 0x62, 0x62, -0x69, 0x74, 0x32, 0xd83d, 0xdc01, 0x3a, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x32, -0x3a, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x32, 0xd83d, 0xdc00, 0x3a, 0x72, 0x61, -0x74, 0x3a, 0x72, 0x61, 0x74, 0xd83d, 0xdc3f, 0x3a, 0x63, 0x68, 0x69, 0x70, -0x6d, 0x75, 0x6e, 0x6b, 0x3a, 0x63, 0x68, 0x69, 0x70, 0x6d, 0x75, 0x6e, -0x6b, 0xd83d, 0xdc3e, 0x3a, 0x70, 0x61, 0x77, 0x5f, 0x70, 0x72, 0x69, 0x6e, -0x74, 0x73, 0x3a, 0x70, 0x61, 0x77, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x73, -0xd83d, 0xdc3e, 0x3a, 0x66, 0x65, 0x65, 0x74, 0x3a, 0x66, 0x65, 0x65, 0x74, -0xd83d, 0xdc09, 0x3a, 0x64, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x3a, 0x64, 0x72, -0x61, 0x67, 0x6f, 0x6e, 0xd83d, 0xdc32, 0x3a, 0x64, 0x72, 0x61, 0x67, 0x6f, -0x6e, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x64, 0x72, 0x61, 0x67, 0x6f, -0x6e, 0x66, 0x61, 0x63, 0x65, 0xd83c, 0xdf35, 0x3a, 0x63, 0x61, 0x63, 0x74, -0x75, 0x73, 0x3a, 0x63, 0x61, 0x63, 0x74, 0x75, 0x73, 0xd83c, 0xdf84, 0x3a, -0x63, 0x68, 0x72, 0x69, 0x73, 0x74, 0x6d, 0x61, 0x73, 0x5f, 0x74, 0x72, -0x65, 0x65, 0x3a, 0x63, 0x68, 0x72, 0x69, 0x73, 0x74, 0x6d, 0x61, 0x73, -0x74, 0x72, 0x65, 0x65, 0xd83c, 0xdf32, 0x3a, 0x65, 0x76, 0x65, 0x72, 0x67, -0x72, 0x65, 0x65, 0x6e, 0x5f, 0x74, 0x72, 0x65, 0x65, 0x3a, 0x65, 0x76, -0x65, 0x72, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x74, 0x72, 0x65, 0x65, 0xd83c, -0xdf33, 0x3a, 0x64, 0x65, 0x63, 0x69, 0x64, 0x75, 0x6f, 0x75, 0x73, 0x5f, -0x74, 0x72, 0x65, 0x65, 0x3a, 0x64, 0x65, 0x63, 0x69, 0x64, 0x75, 0x6f, -0x75, 0x73, 0x74, 0x72, 0x65, 0x65, 0xd83c, 0xdf34, 0x3a, 0x70, 0x61, 0x6c, -0x6d, 0x5f, 0x74, 0x72, 0x65, 0x65, 0x3a, 0x70, 0x61, 0x6c, 0x6d, 0x74, -0x72, 0x65, 0x65, 0xd83c, 0xdf31, 0x3a, 0x73, 0x65, 0x65, 0x64, 0x6c, 0x69, -0x6e, 0x67, 0x3a, 0x73, 0x65, 0x65, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0xd83c, -0xdf3f, 0x3a, 0x68, 0x65, 0x72, 0x62, 0x3a, 0x68, 0x65, 0x72, 0x62, 0x2618, -0xfe0f, 0x3a, 0x73, 0x68, 0x61, 0x6d, 0x72, 0x6f, 0x63, 0x6b, 0x3a, 0x73, -0x68, 0x61, 0x6d, 0x72, 0x6f, 0x63, 0x6b, 0xd83c, 0xdf40, 0x3a, 0x66, 0x6f, -0x75, 0x72, 0x5f, 0x6c, 0x65, 0x61, 0x66, 0x5f, 0x63, 0x6c, 0x6f, 0x76, -0x65, 0x72, 0x3a, 0x63, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x66, 0x6f, 0x75, -0x72, 0x6c, 0x65, 0x61, 0x66, 0xd83c, 0xdf8d, 0x3a, 0x62, 0x61, 0x6d, 0x62, -0x6f, 0x6f, 0x3a, 0x62, 0x61, 0x6d, 0x62, 0x6f, 0x6f, 0xd83c, 0xdf8b, 0x3a, -0x74, 0x61, 0x6e, 0x61, 0x62, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x72, 0x65, -0x65, 0x3a, 0x74, 0x61, 0x6e, 0x61, 0x62, 0x61, 0x74, 0x61, 0x74, 0x72, -0x65, 0x65, 0xd83c, 0xdf43, 0x3a, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x3a, -0x6c, 0x65, 0x61, 0x76, 0x65, 0x73, 0xd83c, 0xdf42, 0x3a, 0x66, 0x61, 0x6c, -0x6c, 0x65, 0x6e, 0x5f, 0x6c, 0x65, 0x61, 0x66, 0x3a, 0x66, 0x61, 0x6c, -0x6c, 0x65, 0x6e, 0x6c, 0x65, 0x61, 0x66, 0xd83c, 0xdf41, 0x3a, 0x6d, 0x61, -0x70, 0x6c, 0x65, 0x5f, 0x6c, 0x65, 0x61, 0x66, 0x3a, 0x6c, 0x65, 0x61, -0x66, 0x6d, 0x61, 0x70, 0x6c, 0x65, 0xd83c, 0xdf44, 0x3a, 0x6d, 0x75, 0x73, -0x68, 0x72, 0x6f, 0x6f, 0x6d, 0x3a, 0x6d, 0x75, 0x73, 0x68, 0x72, 0x6f, -0x6f, 0x6d, 0xd83c, 0xdf3e, 0x3a, 0x65, 0x61, 0x72, 0x5f, 0x6f, 0x66, 0x5f, -0x72, 0x69, 0x63, 0x65, 0x3a, 0x65, 0x61, 0x72, 0x6f, 0x66, 0x72, 0x69, -0x63, 0x65, 0xd83d, 0xdc90, 0x3a, 0x62, 0x6f, 0x75, 0x71, 0x75, 0x65, 0x74, -0x3a, 0x62, 0x6f, 0x75, 0x71, 0x75, 0x65, 0x74, 0xd83c, 0xdf37, 0x3a, 0x74, -0x75, 0x6c, 0x69, 0x70, 0x3a, 0x74, 0x75, 0x6c, 0x69, 0x70, 0xd83c, 0xdf39, -0x3a, 0x72, 0x6f, 0x73, 0x65, 0x3a, 0x72, 0x6f, 0x73, 0x65, 0xd83e, 0xdd40, -0x3a, 0x77, 0x69, 0x6c, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x6f, 0x77, -0x65, 0x72, 0x3a, 0x66, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x77, 0x69, 0x6c, -0x74, 0x65, 0x64, 0xd83e, 0xdd40, 0x3a, 0x77, 0x69, 0x6c, 0x74, 0x65, 0x64, -0x5f, 0x72, 0x6f, 0x73, 0x65, 0x3a, 0x72, 0x6f, 0x73, 0x65, 0x77, 0x69, -0x6c, 0x74, 0x65, 0x64, 0xd83c, 0xdf3b, 0x3a, 0x73, 0x75, 0x6e, 0x66, 0x6c, -0x6f, 0x77, 0x65, 0x72, 0x3a, 0x73, 0x75, 0x6e, 0x66, 0x6c, 0x6f, 0x77, -0x65, 0x72, 0xd83c, 0xdf3c, 0x3a, 0x62, 0x6c, 0x6f, 0x73, 0x73, 0x6f, 0x6d, -0x3a, 0x62, 0x6c, 0x6f, 0x73, 0x73, 0x6f, 0x6d, 0xd83c, 0xdf38, 0x3a, 0x63, -0x68, 0x65, 0x72, 0x72, 0x79, 0x5f, 0x62, 0x6c, 0x6f, 0x73, 0x73, 0x6f, -0x6d, 0x3a, 0x62, 0x6c, 0x6f, 0x73, 0x73, 0x6f, 0x6d, 0x63, 0x68, 0x65, -0x72, 0x72, 0x79, 0xd83c, 0xdf3a, 0x3a, 0x68, 0x69, 0x62, 0x69, 0x73, 0x63, -0x75, 0x73, 0x3a, 0x68, 0x69, 0x62, 0x69, 0x73, 0x63, 0x75, 0x73, 0xd83c, -0xdf0e, 0x3a, 0x65, 0x61, 0x72, 0x74, 0x68, 0x5f, 0x61, 0x6d, 0x65, 0x72, -0x69, 0x63, 0x61, 0x73, 0x3a, 0x61, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, -0x73, 0x65, 0x61, 0x72, 0x74, 0x68, 0xd83c, 0xdf0d, 0x3a, 0x65, 0x61, 0x72, -0x74, 0x68, 0x5f, 0x61, 0x66, 0x72, 0x69, 0x63, 0x61, 0x3a, 0x61, 0x66, -0x72, 0x69, 0x63, 0x61, 0x65, 0x61, 0x72, 0x74, 0x68, 0xd83c, 0xdf0f, 0x3a, -0x65, 0x61, 0x72, 0x74, 0x68, 0x5f, 0x61, 0x73, 0x69, 0x61, 0x3a, 0x61, -0x73, 0x69, 0x61, 0x65, 0x61, 0x72, 0x74, 0x68, 0xd83c, 0xdf15, 0x3a, 0x66, -0x75, 0x6c, 0x6c, 0x5f, 0x6d, 0x6f, 0x6f, 0x6e, 0x3a, 0x66, 0x75, 0x6c, -0x6c, 0x6d, 0x6f, 0x6f, 0x6e, 0xd83c, 0xdf16, 0x3a, 0x77, 0x61, 0x6e, 0x69, -0x6e, 0x67, 0x5f, 0x67, 0x69, 0x62, 0x62, 0x6f, 0x75, 0x73, 0x5f, 0x6d, -0x6f, 0x6f, 0x6e, 0x3a, 0x67, 0x69, 0x62, 0x62, 0x6f, 0x75, 0x73, 0x6d, -0x6f, 0x6f, 0x6e, 0x77, 0x61, 0x6e, 0x69, 0x6e, 0x67, 0xd83c, 0xdf17, 0x3a, -0x6c, 0x61, 0x73, 0x74, 0x5f, 0x71, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, -0x5f, 0x6d, 0x6f, 0x6f, 0x6e, 0x3a, 0x6c, 0x61, 0x73, 0x74, 0x6d, 0x6f, -0x6f, 0x6e, 0x71, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0xd83c, 0xdf18, 0x3a, -0x77, 0x61, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x72, 0x65, 0x73, 0x63, -0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x6f, 0x6f, 0x6e, 0x3a, 0x63, 0x72, 0x65, -0x73, 0x63, 0x65, 0x6e, 0x74, 0x6d, 0x6f, 0x6f, 0x6e, 0x77, 0x61, 0x6e, -0x69, 0x6e, 0x67, 0xd83c, 0xdf11, 0x3a, 0x6e, 0x65, 0x77, 0x5f, 0x6d, 0x6f, -0x6f, 0x6e, 0x3a, 0x6d, 0x6f, 0x6f, 0x6e, 0x6e, 0x65, 0x77, 0xd83c, 0xdf12, -0x3a, 0x77, 0x61, 0x78, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x72, 0x65, 0x73, -0x63, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x6f, 0x6f, 0x6e, 0x3a, 0x63, 0x72, -0x65, 0x73, 0x63, 0x65, 0x6e, 0x74, 0x6d, 0x6f, 0x6f, 0x6e, 0x77, 0x61, -0x78, 0x69, 0x6e, 0x67, 0xd83c, 0xdf13, 0x3a, 0x66, 0x69, 0x72, 0x73, 0x74, -0x5f, 0x71, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x6f, -0x6e, 0x3a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x6d, 0x6f, 0x6f, 0x6e, 0x71, -0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0xd83c, 0xdf14, 0x3a, 0x77, 0x61, 0x78, -0x69, 0x6e, 0x67, 0x5f, 0x67, 0x69, 0x62, 0x62, 0x6f, 0x75, 0x73, 0x5f, -0x6d, 0x6f, 0x6f, 0x6e, 0x3a, 0x67, 0x69, 0x62, 0x62, 0x6f, 0x75, 0x73, -0x6d, 0x6f, 0x6f, 0x6e, 0x77, 0x61, 0x78, 0x69, 0x6e, 0x67, 0xd83c, 0xdf1a, -0x3a, 0x6e, 0x65, 0x77, 0x5f, 0x6d, 0x6f, 0x6f, 0x6e, 0x5f, 0x77, 0x69, -0x74, 0x68, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, 0x63, 0x65, -0x6d, 0x6f, 0x6f, 0x6e, 0x6e, 0x65, 0x77, 0x77, 0x69, 0x74, 0x68, 0xd83c, -0xdf1d, 0x3a, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x6d, 0x6f, 0x6f, 0x6e, 0x5f, -0x77, 0x69, 0x74, 0x68, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, -0x63, 0x65, 0x66, 0x75, 0x6c, 0x6c, 0x6d, 0x6f, 0x6f, 0x6e, 0x77, 0x69, -0x74, 0x68, 0xd83c, 0xdf1e, 0x3a, 0x73, 0x75, 0x6e, 0x5f, 0x77, 0x69, 0x74, -0x68, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x73, -0x75, 0x6e, 0x77, 0x69, 0x74, 0x68, 0xd83c, 0xdf1b, 0x3a, 0x66, 0x69, 0x72, -0x73, 0x74, 0x5f, 0x71, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x5f, 0x6d, -0x6f, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x66, 0x61, 0x63, -0x65, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x66, 0x69, 0x72, 0x73, 0x74, 0x6d, -0x6f, 0x6f, 0x6e, 0x71, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x77, 0x69, -0x74, 0x68, 0xd83c, 0xdf1c, 0x3a, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x71, 0x75, -0x61, 0x72, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x6f, 0x6e, 0x5f, 0x77, -0x69, 0x74, 0x68, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, 0x63, -0x65, 0x6c, 0x61, 0x73, 0x74, 0x6d, 0x6f, 0x6f, 0x6e, 0x71, 0x75, 0x61, -0x72, 0x74, 0x65, 0x72, 0x77, 0x69, 0x74, 0x68, 0xd83c, 0xdf19, 0x3a, 0x63, -0x72, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x6f, 0x6f, 0x6e, -0x3a, 0x63, 0x72, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x74, 0x6d, 0x6f, 0x6f, -0x6e, 0xd83d, 0xdcab, 0x3a, 0x64, 0x69, 0x7a, 0x7a, 0x79, 0x3a, 0x64, 0x69, -0x7a, 0x7a, 0x79, 0x2b50, 0xfe0f, 0x3a, 0x73, 0x74, 0x61, 0x72, 0x3a, 0x73, -0x74, 0x61, 0x72, 0xd83c, 0xdf1f, 0x3a, 0x73, 0x74, 0x61, 0x72, 0x32, 0x3a, -0x73, 0x74, 0x61, 0x72, 0x32, 0x2728, 0x3a, 0x73, 0x70, 0x61, 0x72, 0x6b, -0x6c, 0x65, 0x73, 0x3a, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x6c, 0x65, 0x73, -0x26a1, 0xfe0f, 0x3a, 0x7a, 0x61, 0x70, 0x3a, 0x7a, 0x61, 0x70, 0xd83d, 0xdd25, -0x3a, 0x66, 0x6c, 0x61, 0x6d, 0x65, 0x3a, 0x66, 0x6c, 0x61, 0x6d, 0x65, -0xd83d, 0xdd25, 0x3a, 0x66, 0x69, 0x72, 0x65, 0x3a, 0x66, 0x69, 0x72, 0x65, -0xd83d, 0xdca5, 0x3a, 0x62, 0x6f, 0x6f, 0x6d, 0x3a, 0x62, 0x6f, 0x6f, 0x6d, -0x2604, 0xfe0f, 0x3a, 0x63, 0x6f, 0x6d, 0x65, 0x74, 0x3a, 0x63, 0x6f, 0x6d, -0x65, 0x74, 0x2600, 0xfe0f, 0x3a, 0x73, 0x75, 0x6e, 0x6e, 0x79, 0x3a, 0x73, -0x75, 0x6e, 0x6e, 0x79, 0xd83c, 0xdf24, 0x3a, 0x77, 0x68, 0x69, 0x74, 0x65, -0x5f, 0x73, 0x75, 0x6e, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x73, 0x6d, -0x61, 0x6c, 0x6c, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x63, 0x6c, -0x6f, 0x75, 0x64, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x73, 0x75, 0x6e, 0x77, -0x68, 0x69, 0x74, 0x65, 0x77, 0x69, 0x74, 0x68, 0xd83c, 0xdf24, 0x3a, 0x77, -0x68, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x75, 0x6e, 0x5f, 0x73, 0x6d, 0x61, -0x6c, 0x6c, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x63, 0x6c, 0x6f, -0x75, 0x64, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x73, 0x75, 0x6e, 0x77, 0x68, -0x69, 0x74, 0x65, 0x26c5, 0xfe0f, 0x3a, 0x70, 0x61, 0x72, 0x74, 0x6c, 0x79, -0x5f, 0x73, 0x75, 0x6e, 0x6e, 0x79, 0x3a, 0x70, 0x61, 0x72, 0x74, 0x6c, -0x79, 0x73, 0x75, 0x6e, 0x6e, 0x79, 0xd83c, 0xdf25, 0x3a, 0x77, 0x68, 0x69, -0x74, 0x65, 0x5f, 0x73, 0x75, 0x6e, 0x5f, 0x62, 0x65, 0x68, 0x69, 0x6e, -0x64, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x62, 0x65, 0x68, 0x69, -0x6e, 0x64, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x75, 0x6e, 0x77, 0x68, -0x69, 0x74, 0x65, 0xd83c, 0xdf25, 0x3a, 0x77, 0x68, 0x69, 0x74, 0x65, 0x5f, -0x73, 0x75, 0x6e, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x63, 0x6c, -0x6f, 0x75, 0x64, 0x73, 0x75, 0x6e, 0x77, 0x68, 0x69, 0x74, 0x65, 0xd83c, -0xdf26, 0x3a, 0x77, 0x68, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x75, 0x6e, 0x5f, -0x62, 0x65, 0x68, 0x69, 0x6e, 0x64, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, -0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x72, 0x61, 0x69, 0x6e, 0x3a, 0x62, -0x65, 0x68, 0x69, 0x6e, 0x64, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x72, 0x61, -0x69, 0x6e, 0x73, 0x75, 0x6e, 0x77, 0x68, 0x69, 0x74, 0x65, 0x77, 0x69, -0x74, 0x68, 0xd83c, 0xdf26, 0x3a, 0x77, 0x68, 0x69, 0x74, 0x65, 0x5f, 0x73, -0x75, 0x6e, 0x5f, 0x72, 0x61, 0x69, 0x6e, 0x5f, 0x63, 0x6c, 0x6f, 0x75, -0x64, 0x3a, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x72, 0x61, 0x69, 0x6e, 0x73, -0x75, 0x6e, 0x77, 0x68, 0x69, 0x74, 0x65, 0xd83c, 0xdf08, 0x3a, 0x72, 0x61, -0x69, 0x6e, 0x62, 0x6f, 0x77, 0x3a, 0x72, 0x61, 0x69, 0x6e, 0x62, 0x6f, -0x77, 0x2601, 0xfe0f, 0x3a, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x63, 0x6c, -0x6f, 0x75, 0x64, 0xd83c, 0xdf27, 0x3a, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, -0x77, 0x69, 0x74, 0x68, 0x5f, 0x72, 0x61, 0x69, 0x6e, 0x3a, 0x63, 0x6c, -0x6f, 0x75, 0x64, 0x72, 0x61, 0x69, 0x6e, 0x77, 0x69, 0x74, 0x68, 0xd83c, -0xdf27, 0x3a, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x72, 0x61, 0x69, 0x6e, -0x3a, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x72, 0x61, 0x69, 0x6e, 0x26c8, 0x3a, -0x74, 0x68, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x6f, 0x75, -0x64, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x72, 0x61, 0x69, 0x6e, 0x3a, 0x61, -0x6e, 0x64, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x72, 0x61, 0x69, 0x6e, 0x74, -0x68, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x26c8, 0x3a, 0x74, 0x68, 0x75, 0x6e, -0x64, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x72, 0x61, -0x69, 0x6e, 0x3a, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x72, 0x61, 0x69, 0x6e, -0x74, 0x68, 0x75, 0x6e, 0x64, 0x65, 0x72, 0xd83c, 0xdf29, 0x3a, 0x63, 0x6c, -0x6f, 0x75, 0x64, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6c, 0x69, 0x67, -0x68, 0x74, 0x6e, 0x69, 0x6e, 0x67, 0x3a, 0x63, 0x6c, 0x6f, 0x75, 0x64, -0x6c, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x69, 0x6e, 0x67, 0x77, 0x69, 0x74, -0x68, 0xd83c, 0xdf29, 0x3a, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x6c, 0x69, -0x67, 0x68, 0x74, 0x6e, 0x69, 0x6e, 0x67, 0x3a, 0x63, 0x6c, 0x6f, 0x75, -0x64, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x69, 0x6e, 0x67, 0xd83c, 0xdf28, -0x3a, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, -0x73, 0x6e, 0x6f, 0x77, 0x3a, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x6e, -0x6f, 0x77, 0x77, 0x69, 0x74, 0x68, 0xd83c, 0xdf28, 0x3a, 0x63, 0x6c, 0x6f, -0x75, 0x64, 0x5f, 0x73, 0x6e, 0x6f, 0x77, 0x3a, 0x63, 0x6c, 0x6f, 0x75, -0x64, 0x73, 0x6e, 0x6f, 0x77, 0x2603, 0xfe0f, 0x3a, 0x73, 0x6e, 0x6f, 0x77, -0x6d, 0x61, 0x6e, 0x32, 0x3a, 0x73, 0x6e, 0x6f, 0x77, 0x6d, 0x61, 0x6e, -0x32, 0x26c4, 0xfe0f, 0x3a, 0x73, 0x6e, 0x6f, 0x77, 0x6d, 0x61, 0x6e, 0x3a, -0x73, 0x6e, 0x6f, 0x77, 0x6d, 0x61, 0x6e, 0x2744, 0xfe0f, 0x3a, 0x73, 0x6e, -0x6f, 0x77, 0x66, 0x6c, 0x61, 0x6b, 0x65, 0x3a, 0x73, 0x6e, 0x6f, 0x77, -0x66, 0x6c, 0x61, 0x6b, 0x65, 0xd83c, 0xdf2c, 0x3a, 0x77, 0x69, 0x6e, 0x64, -0x5f, 0x62, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, 0x63, -0x65, 0x3a, 0x62, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, -0x65, 0x77, 0x69, 0x6e, 0x64, 0xd83d, 0xdca8, 0x3a, 0x64, 0x61, 0x73, 0x68, -0x3a, 0x64, 0x61, 0x73, 0x68, 0xd83c, 0xdf2a, 0x3a, 0x63, 0x6c, 0x6f, 0x75, -0x64, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x72, 0x6e, 0x61, -0x64, 0x6f, 0x3a, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x74, 0x6f, 0x72, 0x6e, -0x61, 0x64, 0x6f, 0x77, 0x69, 0x74, 0x68, 0xd83c, 0xdf2a, 0x3a, 0x63, 0x6c, -0x6f, 0x75, 0x64, 0x5f, 0x74, 0x6f, 0x72, 0x6e, 0x61, 0x64, 0x6f, 0x3a, -0x63, 0x6c, 0x6f, 0x75, 0x64, 0x74, 0x6f, 0x72, 0x6e, 0x61, 0x64, 0x6f, -0xd83c, 0xdf2b, 0x3a, 0x66, 0x6f, 0x67, 0x3a, 0x66, 0x6f, 0x67, 0xd83c, 0xdf0a, -0x3a, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x3a, 0x6f, 0x63, 0x65, 0x61, 0x6e, -0xd83d, 0xdca7, 0x3a, 0x64, 0x72, 0x6f, 0x70, 0x6c, 0x65, 0x74, 0x3a, 0x64, -0x72, 0x6f, 0x70, 0x6c, 0x65, 0x74, 0xd83d, 0xdca6, 0x3a, 0x73, 0x77, 0x65, -0x61, 0x74, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x73, 0x3a, 0x64, 0x72, 0x6f, -0x70, 0x73, 0x73, 0x77, 0x65, 0x61, 0x74, 0x2614, 0xfe0f, 0x3a, 0x75, 0x6d, -0x62, 0x72, 0x65, 0x6c, 0x6c, 0x61, 0x3a, 0x75, 0x6d, 0x62, 0x72, 0x65, -0x6c, 0x6c, 0x61, 0xd83c, 0xdf4f, 0x3a, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, -0x61, 0x70, 0x70, 0x6c, 0x65, 0x3a, 0x61, 0x70, 0x70, 0x6c, 0x65, 0x67, -0x72, 0x65, 0x65, 0x6e, 0xd83c, 0xdf4e, 0x3a, 0x61, 0x70, 0x70, 0x6c, 0x65, -0x3a, 0x61, 0x70, 0x70, 0x6c, 0x65, 0xd83c, 0xdf50, 0x3a, 0x70, 0x65, 0x61, -0x72, 0x3a, 0x70, 0x65, 0x61, 0x72, 0xd83c, 0xdf4a, 0x3a, 0x74, 0x61, 0x6e, -0x67, 0x65, 0x72, 0x69, 0x6e, 0x65, 0x3a, 0x74, 0x61, 0x6e, 0x67, 0x65, -0x72, 0x69, 0x6e, 0x65, 0xd83c, 0xdf4b, 0x3a, 0x6c, 0x65, 0x6d, 0x6f, 0x6e, -0x3a, 0x6c, 0x65, 0x6d, 0x6f, 0x6e, 0xd83c, 0xdf4c, 0x3a, 0x62, 0x61, 0x6e, -0x61, 0x6e, 0x61, 0x3a, 0x62, 0x61, 0x6e, 0x61, 0x6e, 0x61, 0xd83c, 0xdf49, -0x3a, 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x65, 0x6c, 0x6f, 0x6e, 0x3a, -0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x65, 0x6c, 0x6f, 0x6e, 0xd83c, 0xdf47, -0x3a, 0x67, 0x72, 0x61, 0x70, 0x65, 0x73, 0x3a, 0x67, 0x72, 0x61, 0x70, -0x65, 0x73, 0xd83c, 0xdf53, 0x3a, 0x73, 0x74, 0x72, 0x61, 0x77, 0x62, 0x65, -0x72, 0x72, 0x79, 0x3a, 0x73, 0x74, 0x72, 0x61, 0x77, 0x62, 0x65, 0x72, -0x72, 0x79, 0xd83c, 0xdf48, 0x3a, 0x6d, 0x65, 0x6c, 0x6f, 0x6e, 0x3a, 0x6d, -0x65, 0x6c, 0x6f, 0x6e, 0xd83c, 0xdf52, 0x3a, 0x63, 0x68, 0x65, 0x72, 0x72, -0x69, 0x65, 0x73, 0x3a, 0x63, 0x68, 0x65, 0x72, 0x72, 0x69, 0x65, 0x73, -0xd83c, 0xdf51, 0x3a, 0x70, 0x65, 0x61, 0x63, 0x68, 0x3a, 0x70, 0x65, 0x61, -0x63, 0x68, 0xd83c, 0xdf4d, 0x3a, 0x70, 0x69, 0x6e, 0x65, 0x61, 0x70, 0x70, -0x6c, 0x65, 0x3a, 0x70, 0x69, 0x6e, 0x65, 0x61, 0x70, 0x70, 0x6c, 0x65, -0xd83e, 0xdd5d, 0x3a, 0x6b, 0x69, 0x77, 0x69, 0x66, 0x72, 0x75, 0x69, 0x74, -0x3a, 0x6b, 0x69, 0x77, 0x69, 0x66, 0x72, 0x75, 0x69, 0x74, 0xd83e, 0xdd5d, -0x3a, 0x6b, 0x69, 0x77, 0x69, 0x3a, 0x6b, 0x69, 0x77, 0x69, 0xd83e, 0xdd51, -0x3a, 0x61, 0x76, 0x6f, 0x63, 0x61, 0x64, 0x6f, 0x3a, 0x61, 0x76, 0x6f, -0x63, 0x61, 0x64, 0x6f, 0xd83c, 0xdf45, 0x3a, 0x74, 0x6f, 0x6d, 0x61, 0x74, -0x6f, 0x3a, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x6f, 0xd83c, 0xdf46, 0x3a, 0x65, -0x67, 0x67, 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x3a, 0x65, 0x67, 0x67, 0x70, -0x6c, 0x61, 0x6e, 0x74, 0xd83e, 0xdd52, 0x3a, 0x63, 0x75, 0x63, 0x75, 0x6d, -0x62, 0x65, 0x72, 0x3a, 0x63, 0x75, 0x63, 0x75, 0x6d, 0x62, 0x65, 0x72, -0xd83e, 0xdd55, 0x3a, 0x63, 0x61, 0x72, 0x72, 0x6f, 0x74, 0x3a, 0x63, 0x61, -0x72, 0x72, 0x6f, 0x74, 0xd83c, 0xdf3d, 0x3a, 0x63, 0x6f, 0x72, 0x6e, 0x3a, -0x63, 0x6f, 0x72, 0x6e, 0xd83c, 0xdf36, 0x3a, 0x68, 0x6f, 0x74, 0x5f, 0x70, -0x65, 0x70, 0x70, 0x65, 0x72, 0x3a, 0x68, 0x6f, 0x74, 0x70, 0x65, 0x70, -0x70, 0x65, 0x72, 0xd83e, 0xdd54, 0x3a, 0x70, 0x6f, 0x74, 0x61, 0x74, 0x6f, -0x3a, 0x70, 0x6f, 0x74, 0x61, 0x74, 0x6f, 0xd83c, 0xdf60, 0x3a, 0x73, 0x77, -0x65, 0x65, 0x74, 0x5f, 0x70, 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x3a, 0x70, -0x6f, 0x74, 0x61, 0x74, 0x6f, 0x73, 0x77, 0x65, 0x65, 0x74, 0xd83c, 0xdf30, -0x3a, 0x63, 0x68, 0x65, 0x73, 0x74, 0x6e, 0x75, 0x74, 0x3a, 0x63, 0x68, -0x65, 0x73, 0x74, 0x6e, 0x75, 0x74, 0xd83e, 0xdd5c, 0x3a, 0x73, 0x68, 0x65, -0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x70, 0x65, 0x61, 0x6e, 0x75, 0x74, 0x3a, -0x70, 0x65, 0x61, 0x6e, 0x75, 0x74, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x65, -0x64, 0xd83e, 0xdd5c, 0x3a, 0x70, 0x65, 0x61, 0x6e, 0x75, 0x74, 0x73, 0x3a, -0x70, 0x65, 0x61, 0x6e, 0x75, 0x74, 0x73, 0xd83c, 0xdf6f, 0x3a, 0x68, 0x6f, -0x6e, 0x65, 0x79, 0x5f, 0x70, 0x6f, 0x74, 0x3a, 0x68, 0x6f, 0x6e, 0x65, -0x79, 0x70, 0x6f, 0x74, 0xd83e, 0xdd50, 0x3a, 0x63, 0x72, 0x6f, 0x69, 0x73, -0x73, 0x61, 0x6e, 0x74, 0x3a, 0x63, 0x72, 0x6f, 0x69, 0x73, 0x73, 0x61, -0x6e, 0x74, 0xd83c, 0xdf5e, 0x3a, 0x62, 0x72, 0x65, 0x61, 0x64, 0x3a, 0x62, -0x72, 0x65, 0x61, 0x64, 0xd83e, 0xdd56, 0x3a, 0x62, 0x61, 0x67, 0x75, 0x65, -0x74, 0x74, 0x65, 0x5f, 0x62, 0x72, 0x65, 0x61, 0x64, 0x3a, 0x62, 0x61, -0x67, 0x75, 0x65, 0x74, 0x74, 0x65, 0x62, 0x72, 0x65, 0x61, 0x64, 0xd83e, -0xdd56, 0x3a, 0x66, 0x72, 0x65, 0x6e, 0x63, 0x68, 0x5f, 0x62, 0x72, 0x65, -0x61, 0x64, 0x3a, 0x62, 0x72, 0x65, 0x61, 0x64, 0x66, 0x72, 0x65, 0x6e, -0x63, 0x68, 0xd83e, 0xddc0, 0x3a, 0x63, 0x68, 0x65, 0x65, 0x73, 0x65, 0x5f, -0x77, 0x65, 0x64, 0x67, 0x65, 0x3a, 0x63, 0x68, 0x65, 0x65, 0x73, 0x65, -0x77, 0x65, 0x64, 0x67, 0x65, 0xd83e, 0xddc0, 0x3a, 0x63, 0x68, 0x65, 0x65, -0x73, 0x65, 0x3a, 0x63, 0x68, 0x65, 0x65, 0x73, 0x65, 0xd83e, 0xdd5a, 0x3a, -0x65, 0x67, 0x67, 0x3a, 0x65, 0x67, 0x67, 0xd83c, 0xdf73, 0x3a, 0x63, 0x6f, -0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x3a, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, -0x67, 0xd83e, 0xdd53, 0x3a, 0x62, 0x61, 0x63, 0x6f, 0x6e, 0x3a, 0x62, 0x61, -0x63, 0x6f, 0x6e, 0xd83e, 0xdd5e, 0x3a, 0x70, 0x61, 0x6e, 0x63, 0x61, 0x6b, -0x65, 0x73, 0x3a, 0x70, 0x61, 0x6e, 0x63, 0x61, 0x6b, 0x65, 0x73, 0xd83c, -0xdf64, 0x3a, 0x66, 0x72, 0x69, 0x65, 0x64, 0x5f, 0x73, 0x68, 0x72, 0x69, -0x6d, 0x70, 0x3a, 0x66, 0x72, 0x69, 0x65, 0x64, 0x73, 0x68, 0x72, 0x69, -0x6d, 0x70, 0xd83c, 0xdf57, 0x3a, 0x70, 0x6f, 0x75, 0x6c, 0x74, 0x72, 0x79, -0x5f, 0x6c, 0x65, 0x67, 0x3a, 0x6c, 0x65, 0x67, 0x70, 0x6f, 0x75, 0x6c, -0x74, 0x72, 0x79, 0xd83c, 0xdf56, 0x3a, 0x6d, 0x65, 0x61, 0x74, 0x5f, 0x6f, -0x6e, 0x5f, 0x62, 0x6f, 0x6e, 0x65, 0x3a, 0x62, 0x6f, 0x6e, 0x65, 0x6d, -0x65, 0x61, 0x74, 0x6f, 0x6e, 0xd83c, 0xdf55, 0x3a, 0x70, 0x69, 0x7a, 0x7a, -0x61, 0x3a, 0x70, 0x69, 0x7a, 0x7a, 0x61, 0xd83c, 0xdf2d, 0x3a, 0x68, 0x6f, -0x74, 0x5f, 0x64, 0x6f, 0x67, 0x3a, 0x64, 0x6f, 0x67, 0x68, 0x6f, 0x74, -0xd83c, 0xdf2d, 0x3a, 0x68, 0x6f, 0x74, 0x64, 0x6f, 0x67, 0x3a, 0x68, 0x6f, -0x74, 0x64, 0x6f, 0x67, 0xd83c, 0xdf54, 0x3a, 0x68, 0x61, 0x6d, 0x62, 0x75, -0x72, 0x67, 0x65, 0x72, 0x3a, 0x68, 0x61, 0x6d, 0x62, 0x75, 0x72, 0x67, -0x65, 0x72, 0xd83c, 0xdf5f, 0x3a, 0x66, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x66, -0x72, 0x69, 0x65, 0x73, 0xd83e, 0xdd59, 0x3a, 0x73, 0x74, 0x75, 0x66, 0x66, -0x65, 0x64, 0x5f, 0x70, 0x69, 0x74, 0x61, 0x3a, 0x70, 0x69, 0x74, 0x61, -0x73, 0x74, 0x75, 0x66, 0x66, 0x65, 0x64, 0xd83e, 0xdd59, 0x3a, 0x73, 0x74, -0x75, 0x66, 0x66, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x61, 0x74, 0x62, 0x72, -0x65, 0x61, 0x64, 0x3a, 0x66, 0x6c, 0x61, 0x74, 0x62, 0x72, 0x65, 0x61, -0x64, 0x73, 0x74, 0x75, 0x66, 0x66, 0x65, 0x64, 0xd83c, 0xdf2e, 0x3a, 0x74, -0x61, 0x63, 0x6f, 0x3a, 0x74, 0x61, 0x63, 0x6f, 0xd83c, 0xdf2f, 0x3a, 0x62, -0x75, 0x72, 0x72, 0x69, 0x74, 0x6f, 0x3a, 0x62, 0x75, 0x72, 0x72, 0x69, -0x74, 0x6f, 0xd83e, 0xdd57, 0x3a, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x73, -0x61, 0x6c, 0x61, 0x64, 0x3a, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x73, 0x61, -0x6c, 0x61, 0x64, 0xd83e, 0xdd57, 0x3a, 0x73, 0x61, 0x6c, 0x61, 0x64, 0x3a, -0x73, 0x61, 0x6c, 0x61, 0x64, 0xd83e, 0xdd58, 0x3a, 0x70, 0x61, 0x65, 0x6c, -0x6c, 0x61, 0x3a, 0x70, 0x61, 0x65, 0x6c, 0x6c, 0x61, 0xd83e, 0xdd58, 0x3a, -0x73, 0x68, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x70, 0x61, 0x6e, 0x5f, -0x6f, 0x66, 0x5f, 0x66, 0x6f, 0x6f, 0x64, 0x3a, 0x66, 0x6f, 0x6f, 0x64, -0x6f, 0x66, 0x70, 0x61, 0x6e, 0x73, 0x68, 0x61, 0x6c, 0x6c, 0x6f, 0x77, -0xd83c, 0xdf5d, 0x3a, 0x73, 0x70, 0x61, 0x67, 0x68, 0x65, 0x74, 0x74, 0x69, -0x3a, 0x73, 0x70, 0x61, 0x67, 0x68, 0x65, 0x74, 0x74, 0x69, 0xd83c, 0xdf5c, -0x3a, 0x72, 0x61, 0x6d, 0x65, 0x6e, 0x3a, 0x72, 0x61, 0x6d, 0x65, 0x6e, -0xd83c, 0xdf72, 0x3a, 0x73, 0x74, 0x65, 0x77, 0x3a, 0x73, 0x74, 0x65, 0x77, -0xd83c, 0xdf65, 0x3a, 0x66, 0x69, 0x73, 0x68, 0x5f, 0x63, 0x61, 0x6b, 0x65, -0x3a, 0x63, 0x61, 0x6b, 0x65, 0x66, 0x69, 0x73, 0x68, 0xd83c, 0xdf63, 0x3a, -0x73, 0x75, 0x73, 0x68, 0x69, 0x3a, 0x73, 0x75, 0x73, 0x68, 0x69, 0xd83c, -0xdf71, 0x3a, 0x62, 0x65, 0x6e, 0x74, 0x6f, 0x3a, 0x62, 0x65, 0x6e, 0x74, -0x6f, 0xd83c, 0xdf5b, 0x3a, 0x63, 0x75, 0x72, 0x72, 0x79, 0x3a, 0x63, 0x75, -0x72, 0x72, 0x79, 0xd83c, 0xdf59, 0x3a, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x62, -0x61, 0x6c, 0x6c, 0x3a, 0x62, 0x61, 0x6c, 0x6c, 0x72, 0x69, 0x63, 0x65, -0xd83c, 0xdf5a, 0x3a, 0x72, 0x69, 0x63, 0x65, 0x3a, 0x72, 0x69, 0x63, 0x65, -0xd83c, 0xdf58, 0x3a, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x72, 0x61, 0x63, -0x6b, 0x65, 0x72, 0x3a, 0x63, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x72, -0x69, 0x63, 0x65, 0xd83c, 0xdf62, 0x3a, 0x6f, 0x64, 0x65, 0x6e, 0x3a, 0x6f, -0x64, 0x65, 0x6e, 0xd83c, 0xdf61, 0x3a, 0x64, 0x61, 0x6e, 0x67, 0x6f, 0x3a, -0x64, 0x61, 0x6e, 0x67, 0x6f, 0xd83c, 0xdf67, 0x3a, 0x73, 0x68, 0x61, 0x76, -0x65, 0x64, 0x5f, 0x69, 0x63, 0x65, 0x3a, 0x69, 0x63, 0x65, 0x73, 0x68, -0x61, 0x76, 0x65, 0x64, 0xd83c, 0xdf68, 0x3a, 0x69, 0x63, 0x65, 0x5f, 0x63, -0x72, 0x65, 0x61, 0x6d, 0x3a, 0x63, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x63, -0x65, 0xd83c, 0xdf66, 0x3a, 0x69, 0x63, 0x65, 0x63, 0x72, 0x65, 0x61, 0x6d, -0x3a, 0x69, 0x63, 0x65, 0x63, 0x72, 0x65, 0x61, 0x6d, 0xd83c, 0xdf70, 0x3a, -0x63, 0x61, 0x6b, 0x65, 0x3a, 0x63, 0x61, 0x6b, 0x65, 0xd83c, 0xdf82, 0x3a, -0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x3a, 0x62, 0x69, 0x72, -0x74, 0x68, 0x64, 0x61, 0x79, 0xd83c, 0xdf6e, 0x3a, 0x66, 0x6c, 0x61, 0x6e, -0x3a, 0x66, 0x6c, 0x61, 0x6e, 0xd83c, 0xdf6e, 0x3a, 0x70, 0x75, 0x64, 0x64, -0x69, 0x6e, 0x67, 0x3a, 0x70, 0x75, 0x64, 0x64, 0x69, 0x6e, 0x67, 0xd83c, -0xdf6e, 0x3a, 0x63, 0x75, 0x73, 0x74, 0x61, 0x72, 0x64, 0x3a, 0x63, 0x75, -0x73, 0x74, 0x61, 0x72, 0x64, 0xd83c, 0xdf6d, 0x3a, 0x6c, 0x6f, 0x6c, 0x6c, -0x69, 0x70, 0x6f, 0x70, 0x3a, 0x6c, 0x6f, 0x6c, 0x6c, 0x69, 0x70, 0x6f, -0x70, 0xd83c, 0xdf6c, 0x3a, 0x63, 0x61, 0x6e, 0x64, 0x79, 0x3a, 0x63, 0x61, -0x6e, 0x64, 0x79, 0xd83c, 0xdf6b, 0x3a, 0x63, 0x68, 0x6f, 0x63, 0x6f, 0x6c, -0x61, 0x74, 0x65, 0x5f, 0x62, 0x61, 0x72, 0x3a, 0x62, 0x61, 0x72, 0x63, -0x68, 0x6f, 0x63, 0x6f, 0x6c, 0x61, 0x74, 0x65, 0xd83c, 0xdf7f, 0x3a, 0x70, -0x6f, 0x70, 0x63, 0x6f, 0x72, 0x6e, 0x3a, 0x70, 0x6f, 0x70, 0x63, 0x6f, -0x72, 0x6e, 0xd83c, 0xdf69, 0x3a, 0x64, 0x6f, 0x75, 0x67, 0x68, 0x6e, 0x75, -0x74, 0x3a, 0x64, 0x6f, 0x75, 0x67, 0x68, 0x6e, 0x75, 0x74, 0xd83c, 0xdf6a, -0x3a, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x3a, 0x63, 0x6f, 0x6f, 0x6b, -0x69, 0x65, 0xd83e, 0xdd5b, 0x3a, 0x67, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6f, -0x66, 0x5f, 0x6d, 0x69, 0x6c, 0x6b, 0x3a, 0x67, 0x6c, 0x61, 0x73, 0x73, -0x6d, 0x69, 0x6c, 0x6b, 0x6f, 0x66, 0xd83e, 0xdd5b, 0x3a, 0x6d, 0x69, 0x6c, -0x6b, 0x3a, 0x6d, 0x69, 0x6c, 0x6b, 0xd83c, 0xdf7c, 0x3a, 0x62, 0x61, 0x62, -0x79, 0x5f, 0x62, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x3a, 0x62, 0x61, 0x62, -0x79, 0x62, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x2615, 0xfe0f, 0x3a, 0x63, 0x6f, -0x66, 0x66, 0x65, 0x65, 0x3a, 0x63, 0x6f, 0x66, 0x66, 0x65, 0x65, 0xd83c, -0xdf75, 0x3a, 0x74, 0x65, 0x61, 0x3a, 0x74, 0x65, 0x61, 0xd83c, 0xdf76, 0x3a, -0x73, 0x61, 0x6b, 0x65, 0x3a, 0x73, 0x61, 0x6b, 0x65, 0xd83c, 0xdf7a, 0x3a, -0x62, 0x65, 0x65, 0x72, 0x3a, 0x62, 0x65, 0x65, 0x72, 0xd83c, 0xdf7b, 0x3a, -0x62, 0x65, 0x65, 0x72, 0x73, 0x3a, 0x62, 0x65, 0x65, 0x72, 0x73, 0xd83e, -0xdd42, 0x3a, 0x63, 0x6c, 0x69, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x67, -0x6c, 0x61, 0x73, 0x73, 0x3a, 0x63, 0x6c, 0x69, 0x6e, 0x6b, 0x69, 0x6e, -0x67, 0x67, 0x6c, 0x61, 0x73, 0x73, 0xd83e, 0xdd42, 0x3a, 0x63, 0x68, 0x61, -0x6d, 0x70, 0x61, 0x67, 0x6e, 0x65, 0x5f, 0x67, 0x6c, 0x61, 0x73, 0x73, -0x3a, 0x63, 0x68, 0x61, 0x6d, 0x70, 0x61, 0x67, 0x6e, 0x65, 0x67, 0x6c, -0x61, 0x73, 0x73, 0xd83c, 0xdf77, 0x3a, 0x77, 0x69, 0x6e, 0x65, 0x5f, 0x67, -0x6c, 0x61, 0x73, 0x73, 0x3a, 0x67, 0x6c, 0x61, 0x73, 0x73, 0x77, 0x69, -0x6e, 0x65, 0xd83e, 0xdd43, 0x3a, 0x77, 0x68, 0x69, 0x73, 0x6b, 0x79, 0x3a, -0x77, 0x68, 0x69, 0x73, 0x6b, 0x79, 0xd83e, 0xdd43, 0x3a, 0x74, 0x75, 0x6d, -0x62, 0x6c, 0x65, 0x72, 0x5f, 0x67, 0x6c, 0x61, 0x73, 0x73, 0x3a, 0x67, -0x6c, 0x61, 0x73, 0x73, 0x74, 0x75, 0x6d, 0x62, 0x6c, 0x65, 0x72, 0xd83c, -0xdf78, 0x3a, 0x63, 0x6f, 0x63, 0x6b, 0x74, 0x61, 0x69, 0x6c, 0x3a, 0x63, -0x6f, 0x63, 0x6b, 0x74, 0x61, 0x69, 0x6c, 0xd83c, 0xdf79, 0x3a, 0x74, 0x72, -0x6f, 0x70, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x64, 0x72, 0x69, 0x6e, 0x6b, -0x3a, 0x64, 0x72, 0x69, 0x6e, 0x6b, 0x74, 0x72, 0x6f, 0x70, 0x69, 0x63, -0x61, 0x6c, 0xd83c, 0xdf7e, 0x3a, 0x62, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x5f, -0x77, 0x69, 0x74, 0x68, 0x5f, 0x70, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, -0x5f, 0x63, 0x6f, 0x72, 0x6b, 0x3a, 0x62, 0x6f, 0x74, 0x74, 0x6c, 0x65, -0x63, 0x6f, 0x72, 0x6b, 0x70, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x77, -0x69, 0x74, 0x68, 0xd83c, 0xdf7e, 0x3a, 0x63, 0x68, 0x61, 0x6d, 0x70, 0x61, -0x67, 0x6e, 0x65, 0x3a, 0x63, 0x68, 0x61, 0x6d, 0x70, 0x61, 0x67, 0x6e, -0x65, 0xd83e, 0xdd44, 0x3a, 0x73, 0x70, 0x6f, 0x6f, 0x6e, 0x3a, 0x73, 0x70, -0x6f, 0x6f, 0x6e, 0xd83c, 0xdf74, 0x3a, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x61, -0x6e, 0x64, 0x5f, 0x6b, 0x6e, 0x69, 0x66, 0x65, 0x3a, 0x61, 0x6e, 0x64, -0x66, 0x6f, 0x72, 0x6b, 0x6b, 0x6e, 0x69, 0x66, 0x65, 0xd83c, 0xdf7d, 0x3a, -0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x6b, 0x6e, 0x69, -0x66, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x70, 0x6c, 0x61, 0x74, -0x65, 0x3a, 0x61, 0x6e, 0x64, 0x66, 0x6f, 0x72, 0x6b, 0x6b, 0x6e, 0x69, -0x66, 0x65, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x77, 0x69, 0x74, 0x68, 0xd83c, -0xdf7d, 0x3a, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x6b, 0x6e, 0x69, 0x66, 0x65, -0x5f, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x3a, 0x66, 0x6f, 0x72, 0x6b, 0x6b, -0x6e, 0x69, 0x66, 0x65, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x26bd, 0xfe0f, 0x3a, -0x73, 0x6f, 0x63, 0x63, 0x65, 0x72, 0x3a, 0x73, 0x6f, 0x63, 0x63, 0x65, -0x72, 0xd83c, 0xdfc0, 0x3a, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x62, 0x61, -0x6c, 0x6c, 0x3a, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x62, 0x61, 0x6c, -0x6c, 0xd83c, 0xdfc8, 0x3a, 0x66, 0x6f, 0x6f, 0x74, 0x62, 0x61, 0x6c, 0x6c, -0x3a, 0x66, 0x6f, 0x6f, 0x74, 0x62, 0x61, 0x6c, 0x6c, 0x26be, 0xfe0f, 0x3a, -0x62, 0x61, 0x73, 0x65, 0x62, 0x61, 0x6c, 0x6c, 0x3a, 0x62, 0x61, 0x73, -0x65, 0x62, 0x61, 0x6c, 0x6c, 0xd83c, 0xdfbe, 0x3a, 0x74, 0x65, 0x6e, 0x6e, -0x69, 0x73, 0x3a, 0x74, 0x65, 0x6e, 0x6e, 0x69, 0x73, 0xd83c, 0xdfd0, 0x3a, -0x76, 0x6f, 0x6c, 0x6c, 0x65, 0x79, 0x62, 0x61, 0x6c, 0x6c, 0x3a, 0x76, -0x6f, 0x6c, 0x6c, 0x65, 0x79, 0x62, 0x61, 0x6c, 0x6c, 0xd83c, 0xdfc9, 0x3a, -0x72, 0x75, 0x67, 0x62, 0x79, 0x5f, 0x66, 0x6f, 0x6f, 0x74, 0x62, 0x61, -0x6c, 0x6c, 0x3a, 0x66, 0x6f, 0x6f, 0x74, 0x62, 0x61, 0x6c, 0x6c, 0x72, -0x75, 0x67, 0x62, 0x79, 0xd83c, 0xdfb1, 0x3a, 0x38, 0x62, 0x61, 0x6c, 0x6c, -0x3a, 0x38, 0x62, 0x61, 0x6c, 0x6c, 0xd83c, 0xdfd3, 0x3a, 0x74, 0x61, 0x62, -0x6c, 0x65, 0x5f, 0x74, 0x65, 0x6e, 0x6e, 0x69, 0x73, 0x3a, 0x74, 0x61, -0x62, 0x6c, 0x65, 0x74, 0x65, 0x6e, 0x6e, 0x69, 0x73, 0xd83c, 0xdfd3, 0x3a, -0x70, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x6e, 0x67, 0x3a, 0x70, 0x69, -0x6e, 0x67, 0x70, 0x6f, 0x6e, 0x67, 0xd83c, 0xdff8, 0x3a, 0x62, 0x61, 0x64, -0x6d, 0x69, 0x6e, 0x74, 0x6f, 0x6e, 0x3a, 0x62, 0x61, 0x64, 0x6d, 0x69, -0x6e, 0x74, 0x6f, 0x6e, 0xd83e, 0xdd45, 0x3a, 0x67, 0x6f, 0x61, 0x6c, 0x5f, -0x6e, 0x65, 0x74, 0x3a, 0x67, 0x6f, 0x61, 0x6c, 0x6e, 0x65, 0x74, 0xd83e, -0xdd45, 0x3a, 0x67, 0x6f, 0x61, 0x6c, 0x3a, 0x67, 0x6f, 0x61, 0x6c, 0xd83c, -0xdfd2, 0x3a, 0x68, 0x6f, 0x63, 0x6b, 0x65, 0x79, 0x3a, 0x68, 0x6f, 0x63, -0x6b, 0x65, 0x79, 0xd83c, 0xdfd1, 0x3a, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, -0x68, 0x6f, 0x63, 0x6b, 0x65, 0x79, 0x3a, 0x66, 0x69, 0x65, 0x6c, 0x64, -0x68, 0x6f, 0x63, 0x6b, 0x65, 0x79, 0xd83c, 0xdfcf, 0x3a, 0x63, 0x72, 0x69, -0x63, 0x6b, 0x65, 0x74, 0x5f, 0x62, 0x61, 0x74, 0x5f, 0x62, 0x61, 0x6c, -0x6c, 0x3a, 0x62, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x74, 0x63, 0x72, 0x69, -0x63, 0x6b, 0x65, 0x74, 0xd83c, 0xdfcf, 0x3a, 0x63, 0x72, 0x69, 0x63, 0x6b, -0x65, 0x74, 0x5f, 0x67, 0x61, 0x6d, 0x65, 0x3a, 0x63, 0x72, 0x69, 0x63, -0x6b, 0x65, 0x74, 0x67, 0x61, 0x6d, 0x65, 0x26f3, 0xfe0f, 0x3a, 0x67, 0x6f, -0x6c, 0x66, 0x3a, 0x67, 0x6f, 0x6c, 0x66, 0xd83c, 0xdff9, 0x3a, 0x61, 0x72, -0x63, 0x68, 0x65, 0x72, 0x79, 0x3a, 0x61, 0x72, 0x63, 0x68, 0x65, 0x72, -0x79, 0xd83c, 0xdff9, 0x3a, 0x62, 0x6f, 0x77, 0x5f, 0x61, 0x6e, 0x64, 0x5f, -0x61, 0x72, 0x72, 0x6f, 0x77, 0x3a, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x72, -0x6f, 0x77, 0x62, 0x6f, 0x77, 0xd83c, 0xdfa3, 0x3a, 0x66, 0x69, 0x73, 0x68, -0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x6c, 0x65, 0x5f, 0x61, 0x6e, 0x64, -0x5f, 0x66, 0x69, 0x73, 0x68, 0x3a, 0x61, 0x6e, 0x64, 0x66, 0x69, 0x73, -0x68, 0x66, 0x69, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x70, 0x6f, 0x6c, 0x65, -0xd83e, 0xdd4a, 0x3a, 0x62, 0x6f, 0x78, 0x69, 0x6e, 0x67, 0x5f, 0x67, 0x6c, -0x6f, 0x76, 0x65, 0x73, 0x3a, 0x62, 0x6f, 0x78, 0x69, 0x6e, 0x67, 0x67, -0x6c, 0x6f, 0x76, 0x65, 0x73, 0xd83e, 0xdd4a, 0x3a, 0x62, 0x6f, 0x78, 0x69, -0x6e, 0x67, 0x5f, 0x67, 0x6c, 0x6f, 0x76, 0x65, 0x3a, 0x62, 0x6f, 0x78, -0x69, 0x6e, 0x67, 0x67, 0x6c, 0x6f, 0x76, 0x65, 0xd83e, 0xdd4b, 0x3a, 0x6b, -0x61, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, -0x6d, 0x3a, 0x6b, 0x61, 0x72, 0x61, 0x74, 0x65, 0x75, 0x6e, 0x69, 0x66, -0x6f, 0x72, 0x6d, 0xd83e, 0xdd4b, 0x3a, 0x6d, 0x61, 0x72, 0x74, 0x69, 0x61, -0x6c, 0x5f, 0x61, 0x72, 0x74, 0x73, 0x5f, 0x75, 0x6e, 0x69, 0x66, 0x6f, -0x72, 0x6d, 0x3a, 0x61, 0x72, 0x74, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x69, -0x61, 0x6c, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x26f8, 0x3a, 0x69, -0x63, 0x65, 0x5f, 0x73, 0x6b, 0x61, 0x74, 0x65, 0x3a, 0x69, 0x63, 0x65, -0x73, 0x6b, 0x61, 0x74, 0x65, 0xd83c, 0xdfbf, 0x3a, 0x73, 0x6b, 0x69, 0x3a, -0x73, 0x6b, 0x69, 0x26f7, 0x3a, 0x73, 0x6b, 0x69, 0x65, 0x72, 0x3a, 0x73, -0x6b, 0x69, 0x65, 0x72, 0xd83c, 0xdfc2, 0x3a, 0x73, 0x6e, 0x6f, 0x77, 0x62, -0x6f, 0x61, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x73, 0x6e, 0x6f, 0x77, 0x62, -0x6f, 0x61, 0x72, 0x64, 0x65, 0x72, 0xd83c, 0xdfcb, 0xfe0f, 0x200d, 0x2640, 0xfe0f, -0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x6c, 0x69, 0x66, 0x74, 0x69, -0x6e, 0x67, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x73, 0x3a, 0x6c, -0x69, 0x66, 0x74, 0x69, 0x6e, 0x67, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, -0x73, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83c, 0xdfcb, 0xfe0f, 0x3a, 0x6d, 0x61, -0x6e, 0x5f, 0x6c, 0x69, 0x66, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, -0x69, 0x67, 0x68, 0x74, 0x73, 0x3a, 0x6c, 0x69, 0x66, 0x74, 0x69, 0x6e, -0x67, 0x6d, 0x61, 0x6e, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x73, 0xd83c, -0xdfcb, 0xfe0f, 0x3a, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x6c, 0x69, -0x66, 0x74, 0x65, 0x72, 0x3a, 0x6c, 0x69, 0x66, 0x74, 0x65, 0x72, 0x77, -0x65, 0x69, 0x67, 0x68, 0x74, 0xd83c, 0xdfcb, 0xfe0f, 0x3a, 0x6c, 0x69, 0x66, -0x74, 0x65, 0x72, 0x3a, 0x6c, 0x69, 0x66, 0x74, 0x65, 0x72, 0xd83c, 0xdfcb, -0xfe0f, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, 0x66, -0x74, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x73, -0x3a, 0x6c, 0x69, 0x66, 0x74, 0x69, 0x6e, 0x67, 0x70, 0x65, 0x72, 0x73, -0x6f, 0x6e, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x73, 0xd83e, 0xdd3a, 0x3a, -0x66, 0x65, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x66, 0x65, 0x6e, 0x63, -0x69, 0x6e, 0x67, 0xd83e, 0xdd3a, 0x3a, 0x66, 0x65, 0x6e, 0x63, 0x65, 0x72, -0x3a, 0x66, 0x65, 0x6e, 0x63, 0x65, 0x72, 0xd83e, 0xdd3a, 0x3a, 0x70, 0x65, -0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x6e, 0x63, 0x69, 0x6e, 0x67, -0x3a, 0x66, 0x65, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x70, 0x65, 0x72, 0x73, -0x6f, 0x6e, 0xd83e, 0xdd3c, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x65, -0x6e, 0x5f, 0x77, 0x72, 0x65, 0x73, 0x74, 0x6c, 0x69, 0x6e, 0x67, 0x3a, -0x77, 0x6f, 0x6d, 0x65, 0x6e, 0x77, 0x72, 0x65, 0x73, 0x74, 0x6c, 0x69, -0x6e, 0x67, 0xd83e, 0xdd3c, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, 0x65, 0x6e, 0x5f, -0x77, 0x72, 0x65, 0x73, 0x74, 0x6c, 0x69, 0x6e, 0x67, 0x3a, 0x6d, 0x65, -0x6e, 0x77, 0x72, 0x65, 0x73, 0x74, 0x6c, 0x69, 0x6e, 0x67, 0xd83e, 0xdd3c, -0x200d, 0x2642, 0xfe0f, 0x3a, 0x77, 0x72, 0x65, 0x73, 0x74, 0x6c, 0x69, 0x6e, -0x67, 0x3a, 0x77, 0x72, 0x65, 0x73, 0x74, 0x6c, 0x69, 0x6e, 0x67, 0xd83e, -0xdd3c, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x77, 0x72, 0x65, 0x73, 0x74, 0x6c, 0x65, -0x72, 0x73, 0x3a, 0x77, 0x72, 0x65, 0x73, 0x74, 0x6c, 0x65, 0x72, 0x73, -0xd83e, 0xdd3c, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x70, 0x65, 0x6f, 0x70, 0x6c, 0x65, -0x5f, 0x77, 0x72, 0x65, 0x73, 0x74, 0x6c, 0x69, 0x6e, 0x67, 0x3a, 0x70, -0x65, 0x6f, 0x70, 0x6c, 0x65, 0x77, 0x72, 0x65, 0x73, 0x74, 0x6c, 0x69, -0x6e, 0x67, 0xd83e, 0xdd38, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, -0x6e, 0x5f, 0x63, 0x61, 0x72, 0x74, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x69, -0x6e, 0x67, 0x3a, 0x63, 0x61, 0x72, 0x74, 0x77, 0x68, 0x65, 0x65, 0x6c, -0x69, 0x6e, 0x67, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83e, 0xdd38, 0x200d, 0x2642, -0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x63, 0x61, 0x72, 0x74, 0x77, 0x68, -0x65, 0x65, 0x6c, 0x69, 0x6e, 0x67, 0x3a, 0x63, 0x61, 0x72, 0x74, 0x77, -0x68, 0x65, 0x65, 0x6c, 0x69, 0x6e, 0x67, 0x6d, 0x61, 0x6e, 0xd83e, 0xdd38, -0x200d, 0x2642, 0xfe0f, 0x3a, 0x63, 0x61, 0x72, 0x74, 0x77, 0x68, 0x65, 0x65, -0x6c, 0x3a, 0x63, 0x61, 0x72, 0x74, 0x77, 0x68, 0x65, 0x65, 0x6c, 0xd83e, -0xdd38, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, -0x64, 0x6f, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x61, 0x72, 0x74, 0x77, 0x68, -0x65, 0x65, 0x6c, 0x3a, 0x63, 0x61, 0x72, 0x74, 0x77, 0x68, 0x65, 0x65, -0x6c, 0x64, 0x6f, 0x69, 0x6e, 0x67, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, -0x26f9, 0xfe0f, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, -0x62, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x61, 0x6c, -0x6c, 0x3a, 0x62, 0x61, 0x6c, 0x6c, 0x62, 0x6f, 0x75, 0x6e, 0x63, 0x69, -0x6e, 0x67, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x26f9, 0xfe0f, 0x3a, 0x6d, 0x61, -0x6e, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x5f, 0x62, -0x61, 0x6c, 0x6c, 0x3a, 0x62, 0x61, 0x6c, 0x6c, 0x62, 0x6f, 0x75, 0x6e, -0x63, 0x69, 0x6e, 0x67, 0x6d, 0x61, 0x6e, 0x26f9, 0xfe0f, 0x3a, 0x70, 0x65, -0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x62, 0x61, -0x6c, 0x6c, 0x3a, 0x62, 0x61, 0x6c, 0x6c, 0x70, 0x65, 0x72, 0x73, 0x6f, -0x6e, 0x77, 0x69, 0x74, 0x68, 0x26f9, 0xfe0f, 0x3a, 0x62, 0x61, 0x73, 0x6b, -0x65, 0x74, 0x62, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x65, -0x72, 0x3a, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x62, 0x61, 0x6c, 0x6c, -0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x26f9, 0xfe0f, 0x3a, 0x70, 0x65, 0x72, -0x73, 0x6f, 0x6e, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6e, 0x67, -0x5f, 0x62, 0x61, 0x6c, 0x6c, 0x3a, 0x62, 0x61, 0x6c, 0x6c, 0x62, 0x6f, -0x75, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, -0xd83e, 0xdd3e, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, -0x70, 0x6c, 0x61, 0x79, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x61, 0x6e, 0x64, -0x62, 0x61, 0x6c, 0x6c, 0x3a, 0x68, 0x61, 0x6e, 0x64, 0x62, 0x61, 0x6c, -0x6c, 0x70, 0x6c, 0x61, 0x79, 0x69, 0x6e, 0x67, 0x77, 0x6f, 0x6d, 0x61, -0x6e, 0xd83e, 0xdd3e, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x68, 0x61, 0x6e, 0x64, 0x62, -0x61, 0x6c, 0x6c, 0x3a, 0x68, 0x61, 0x6e, 0x64, 0x62, 0x61, 0x6c, 0x6c, -0xd83e, 0xdd3e, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, -0x5f, 0x70, 0x6c, 0x61, 0x79, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x61, 0x6e, -0x64, 0x62, 0x61, 0x6c, 0x6c, 0x3a, 0x68, 0x61, 0x6e, 0x64, 0x62, 0x61, -0x6c, 0x6c, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x70, 0x6c, 0x61, 0x79, -0x69, 0x6e, 0x67, 0xd83e, 0xdd3e, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, -0x5f, 0x70, 0x6c, 0x61, 0x79, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x61, 0x6e, -0x64, 0x62, 0x61, 0x6c, 0x6c, 0x3a, 0x68, 0x61, 0x6e, 0x64, 0x62, 0x61, -0x6c, 0x6c, 0x6d, 0x61, 0x6e, 0x70, 0x6c, 0x61, 0x79, 0x69, 0x6e, 0x67, -0xd83c, 0xdfcc, 0xfe0f, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, -0x5f, 0x67, 0x6f, 0x6c, 0x66, 0x69, 0x6e, 0x67, 0x3a, 0x67, 0x6f, 0x6c, -0x66, 0x69, 0x6e, 0x67, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83c, 0xdfcc, 0xfe0f, -0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x67, 0x6f, 0x6c, 0x66, 0x69, 0x6e, 0x67, -0x3a, 0x67, 0x6f, 0x6c, 0x66, 0x69, 0x6e, 0x67, 0x6d, 0x61, 0x6e, 0xd83c, -0xdfcc, 0xfe0f, 0x3a, 0x67, 0x6f, 0x6c, 0x66, 0x65, 0x72, 0x3a, 0x67, 0x6f, -0x6c, 0x66, 0x65, 0x72, 0xd83c, 0xdfcc, 0xfe0f, 0x3a, 0x70, 0x65, 0x72, 0x73, -0x6f, 0x6e, 0x5f, 0x67, 0x6f, 0x6c, 0x66, 0x69, 0x6e, 0x67, 0x3a, 0x67, -0x6f, 0x6c, 0x66, 0x69, 0x6e, 0x67, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, -0xd83c, 0xdfc4, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, -0x73, 0x75, 0x72, 0x66, 0x69, 0x6e, 0x67, 0x3a, 0x73, 0x75, 0x72, 0x66, -0x69, 0x6e, 0x67, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83c, 0xdfc4, 0x3a, 0x6d, -0x61, 0x6e, 0x5f, 0x73, 0x75, 0x72, 0x66, 0x69, 0x6e, 0x67, 0x3a, 0x6d, -0x61, 0x6e, 0x73, 0x75, 0x72, 0x66, 0x69, 0x6e, 0x67, 0xd83c, 0xdfc4, 0x3a, -0x73, 0x75, 0x72, 0x66, 0x65, 0x72, 0x3a, 0x73, 0x75, 0x72, 0x66, 0x65, -0x72, 0xd83c, 0xdfc4, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x73, -0x75, 0x72, 0x66, 0x69, 0x6e, 0x67, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, -0x6e, 0x73, 0x75, 0x72, 0x66, 0x69, 0x6e, 0x67, 0xd83c, 0xdfca, 0x200d, 0x2640, -0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x73, 0x77, 0x69, 0x6d, -0x6d, 0x69, 0x6e, 0x67, 0x3a, 0x73, 0x77, 0x69, 0x6d, 0x6d, 0x69, 0x6e, -0x67, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83c, 0xdfca, 0x3a, 0x6d, 0x61, 0x6e, -0x5f, 0x73, 0x77, 0x69, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x3a, 0x6d, 0x61, -0x6e, 0x73, 0x77, 0x69, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0xd83c, 0xdfca, 0x3a, -0x73, 0x77, 0x69, 0x6d, 0x6d, 0x65, 0x72, 0x3a, 0x73, 0x77, 0x69, 0x6d, -0x6d, 0x65, 0x72, 0xd83c, 0xdfca, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, -0x5f, 0x73, 0x77, 0x69, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x3a, 0x70, 0x65, -0x72, 0x73, 0x6f, 0x6e, 0x73, 0x77, 0x69, 0x6d, 0x6d, 0x69, 0x6e, 0x67, -0xd83e, 0xdd3d, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, -0x70, 0x6c, 0x61, 0x79, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x61, 0x74, 0x65, -0x72, 0x5f, 0x70, 0x6f, 0x6c, 0x6f, 0x3a, 0x70, 0x6c, 0x61, 0x79, 0x69, -0x6e, 0x67, 0x70, 0x6f, 0x6c, 0x6f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x77, -0x6f, 0x6d, 0x61, 0x6e, 0xd83e, 0xdd3d, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, 0x61, -0x6e, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x61, -0x74, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x6c, 0x6f, 0x3a, 0x6d, 0x61, 0x6e, -0x70, 0x6c, 0x61, 0x79, 0x69, 0x6e, 0x67, 0x70, 0x6f, 0x6c, 0x6f, 0x77, -0x61, 0x74, 0x65, 0x72, 0xd83e, 0xdd3d, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x77, 0x61, -0x74, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x6c, 0x6f, 0x3a, 0x70, 0x6f, 0x6c, -0x6f, 0x77, 0x61, 0x74, 0x65, 0x72, 0xd83e, 0xdd3d, 0x200d, 0x2642, 0xfe0f, 0x3a, -0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x69, -0x6e, 0x67, 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x6c, -0x6f, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x70, 0x6c, 0x61, 0x79, -0x69, 0x6e, 0x67, 0x70, 0x6f, 0x6c, 0x6f, 0x77, 0x61, 0x74, 0x65, 0x72, -0xd83d, 0xdea3, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, -0x72, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6f, 0x61, 0x74, 0x3a, -0x62, 0x6f, 0x61, 0x74, 0x72, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x77, 0x6f, -0x6d, 0x61, 0x6e, 0xd83d, 0xdea3, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x72, 0x6f, -0x77, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6f, 0x61, 0x74, 0x3a, 0x62, 0x6f, -0x61, 0x74, 0x6d, 0x61, 0x6e, 0x72, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0xd83d, -0xdea3, 0x3a, 0x72, 0x6f, 0x77, 0x62, 0x6f, 0x61, 0x74, 0x3a, 0x72, 0x6f, -0x77, 0x62, 0x6f, 0x61, 0x74, 0xd83d, 0xdea3, 0x3a, 0x70, 0x65, 0x72, 0x73, -0x6f, 0x6e, 0x5f, 0x72, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6f, -0x61, 0x74, 0x3a, 0x62, 0x6f, 0x61, 0x74, 0x70, 0x65, 0x72, 0x73, 0x6f, -0x6e, 0x72, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0xd83c, 0xdfc7, 0x3a, 0x68, 0x6f, -0x72, 0x73, 0x65, 0x5f, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x68, -0x6f, 0x72, 0x73, 0x65, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0xd83d, 0xdeb4, -0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x62, 0x69, -0x6b, 0x69, 0x6e, 0x67, 0x3a, 0x62, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x77, -0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdeb4, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x62, -0x69, 0x6b, 0x69, 0x6e, 0x67, 0x3a, 0x62, 0x69, 0x6b, 0x69, 0x6e, 0x67, -0x6d, 0x61, 0x6e, 0xd83d, 0xdeb4, 0x3a, 0x62, 0x69, 0x63, 0x79, 0x63, 0x6c, -0x69, 0x73, 0x74, 0x3a, 0x62, 0x69, 0x63, 0x79, 0x63, 0x6c, 0x69, 0x73, -0x74, 0xd83d, 0xdeb4, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x62, -0x69, 0x6b, 0x69, 0x6e, 0x67, 0x3a, 0x62, 0x69, 0x6b, 0x69, 0x6e, 0x67, -0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0xd83d, 0xdeb5, 0x200d, 0x2640, 0xfe0f, 0x3a, -0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, -0x69, 0x6e, 0x5f, 0x62, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x3a, 0x62, 0x69, -0x6b, 0x69, 0x6e, 0x67, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, -0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdeb5, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, -0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x5f, 0x62, 0x69, 0x6b, -0x69, 0x6e, 0x67, 0x3a, 0x62, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x6d, 0x61, -0x6e, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0xd83d, 0xdeb5, 0x3a, -0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x5f, 0x62, 0x69, 0x63, -0x79, 0x63, 0x6c, 0x69, 0x73, 0x74, 0x3a, 0x62, 0x69, 0x63, 0x79, 0x63, -0x6c, 0x69, 0x73, 0x74, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, -0xd83d, 0xdeb5, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, -0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x5f, 0x62, 0x69, 0x6b, 0x69, 0x6e, -0x67, 0x3a, 0x62, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x6d, 0x6f, 0x75, 0x6e, -0x74, 0x61, 0x69, 0x6e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0xd83c, 0xdfbd, -0x3a, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x68, 0x69, -0x72, 0x74, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x73, 0x61, 0x73, 0x68, -0x3a, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x61, 0x73, 0x68, -0x73, 0x68, 0x69, 0x72, 0x74, 0x77, 0x69, 0x74, 0x68, 0xd83c, 0xdfc5, 0x3a, -0x73, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x6d, 0x65, 0x64, 0x61, 0x6c, -0x3a, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x73, -0xd83c, 0xdfc5, 0x3a, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x3a, 0x6d, 0x65, 0x64, -0x61, 0x6c, 0xd83c, 0xdf96, 0x3a, 0x6d, 0x69, 0x6c, 0x69, 0x74, 0x61, 0x72, -0x79, 0x5f, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x3a, 0x6d, 0x65, 0x64, 0x61, -0x6c, 0x6d, 0x69, 0x6c, 0x69, 0x74, 0x61, 0x72, 0x79, 0xd83e, 0xdd47, 0x3a, -0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x5f, -0x6d, 0x65, 0x64, 0x61, 0x6c, 0x3a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x6d, -0x65, 0x64, 0x61, 0x6c, 0x70, 0x6c, 0x61, 0x63, 0x65, 0xd83e, 0xdd47, 0x3a, -0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x3a, -0x66, 0x69, 0x72, 0x73, 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0xd83e, 0xdd48, -0x3a, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x5f, 0x70, 0x6c, 0x61, 0x63, -0x65, 0x5f, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x3a, 0x6d, 0x65, 0x64, 0x61, -0x6c, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, -0xd83e, 0xdd48, 0x3a, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x5f, 0x70, 0x6c, -0x61, 0x63, 0x65, 0x3a, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x73, 0x65, 0x63, -0x6f, 0x6e, 0x64, 0xd83e, 0xdd49, 0x3a, 0x74, 0x68, 0x69, 0x72, 0x64, 0x5f, -0x70, 0x6c, 0x61, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x3a, -0x6d, 0x65, 0x64, 0x61, 0x6c, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x74, 0x68, -0x69, 0x72, 0x64, 0xd83e, 0xdd49, 0x3a, 0x74, 0x68, 0x69, 0x72, 0x64, 0x5f, -0x70, 0x6c, 0x61, 0x63, 0x65, 0x3a, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x74, -0x68, 0x69, 0x72, 0x64, 0xd83c, 0xdfc6, 0x3a, 0x74, 0x72, 0x6f, 0x70, 0x68, -0x79, 0x3a, 0x74, 0x72, 0x6f, 0x70, 0x68, 0x79, 0xd83c, 0xdff5, 0x3a, 0x72, -0x6f, 0x73, 0x65, 0x74, 0x74, 0x65, 0x3a, 0x72, 0x6f, 0x73, 0x65, 0x74, -0x74, 0x65, 0xd83c, 0xdf97, 0x3a, 0x72, 0x65, 0x6d, 0x69, 0x6e, 0x64, 0x65, -0x72, 0x5f, 0x72, 0x69, 0x62, 0x62, 0x6f, 0x6e, 0x3a, 0x72, 0x65, 0x6d, -0x69, 0x6e, 0x64, 0x65, 0x72, 0x72, 0x69, 0x62, 0x62, 0x6f, 0x6e, 0xd83c, -0xdfab, 0x3a, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x3a, 0x74, 0x69, 0x63, -0x6b, 0x65, 0x74, 0xd83c, 0xdf9f, 0x3a, 0x61, 0x64, 0x6d, 0x69, 0x73, 0x73, -0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x3a, -0x61, 0x64, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x74, 0x69, 0x63, -0x6b, 0x65, 0x74, 0x73, 0xd83c, 0xdf9f, 0x3a, 0x74, 0x69, 0x63, 0x6b, 0x65, -0x74, 0x73, 0x3a, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x73, 0xd83c, 0xdfaa, -0x3a, 0x63, 0x69, 0x72, 0x63, 0x75, 0x73, 0x5f, 0x74, 0x65, 0x6e, 0x74, -0x3a, 0x63, 0x69, 0x72, 0x63, 0x75, 0x73, 0x74, 0x65, 0x6e, 0x74, 0xd83e, -0xdd39, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x6a, -0x75, 0x67, 0x67, 0x6c, 0x69, 0x6e, 0x67, 0x3a, 0x6a, 0x75, 0x67, 0x67, -0x6c, 0x69, 0x6e, 0x67, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83e, 0xdd39, 0x200d, -0x2642, 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x6a, 0x75, 0x67, 0x67, 0x6c, -0x69, 0x6e, 0x67, 0x3a, 0x6a, 0x75, 0x67, 0x67, 0x6c, 0x69, 0x6e, 0x67, -0x6d, 0x61, 0x6e, 0xd83e, 0xdd39, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6a, 0x75, 0x67, -0x67, 0x6c, 0x65, 0x72, 0x3a, 0x6a, 0x75, 0x67, 0x67, 0x6c, 0x65, 0x72, -0xd83e, 0xdd39, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6a, 0x75, 0x67, 0x67, 0x6c, 0x69, -0x6e, 0x67, 0x3a, 0x6a, 0x75, 0x67, 0x67, 0x6c, 0x69, 0x6e, 0x67, 0xd83e, -0xdd39, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, -0x6a, 0x75, 0x67, 0x67, 0x6c, 0x69, 0x6e, 0x67, 0x3a, 0x6a, 0x75, 0x67, -0x67, 0x6c, 0x69, 0x6e, 0x67, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0xd83c, -0xdfad, 0x3a, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x69, 0x6e, 0x67, -0x5f, 0x61, 0x72, 0x74, 0x73, 0x3a, 0x61, 0x72, 0x74, 0x73, 0x70, 0x65, -0x72, 0x66, 0x6f, 0x72, 0x6d, 0x69, 0x6e, 0x67, 0xd83c, 0xdfa8, 0x3a, 0x61, -0x72, 0x74, 0x3a, 0x61, 0x72, 0x74, 0xd83c, 0xdfac, 0x3a, 0x63, 0x6c, 0x61, -0x70, 0x70, 0x65, 0x72, 0x3a, 0x63, 0x6c, 0x61, 0x70, 0x70, 0x65, 0x72, -0xd83c, 0xdfa4, 0x3a, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, -0x65, 0x3a, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, -0xd83c, 0xdfa7, 0x3a, 0x68, 0x65, 0x61, 0x64, 0x70, 0x68, 0x6f, 0x6e, 0x65, -0x73, 0x3a, 0x68, 0x65, 0x61, 0x64, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x73, -0xd83c, 0xdfbc, 0x3a, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x73, -0x63, 0x6f, 0x72, 0x65, 0x3a, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x61, 0x6c, -0x73, 0x63, 0x6f, 0x72, 0x65, 0xd83c, 0xdfb9, 0x3a, 0x6d, 0x75, 0x73, 0x69, -0x63, 0x61, 0x6c, 0x5f, 0x6b, 0x65, 0x79, 0x62, 0x6f, 0x61, 0x72, 0x64, -0x3a, 0x6b, 0x65, 0x79, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x6d, 0x75, 0x73, -0x69, 0x63, 0x61, 0x6c, 0xd83e, 0xdd41, 0x3a, 0x64, 0x72, 0x75, 0x6d, 0x5f, -0x77, 0x69, 0x74, 0x68, 0x5f, 0x64, 0x72, 0x75, 0x6d, 0x73, 0x74, 0x69, -0x63, 0x6b, 0x73, 0x3a, 0x64, 0x72, 0x75, 0x6d, 0x64, 0x72, 0x75, 0x6d, -0x73, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x77, 0x69, 0x74, 0x68, 0xd83e, 0xdd41, -0x3a, 0x64, 0x72, 0x75, 0x6d, 0x3a, 0x64, 0x72, 0x75, 0x6d, 0xd83c, 0xdfb7, -0x3a, 0x73, 0x61, 0x78, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x3a, 0x73, -0x61, 0x78, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0xd83c, 0xdfba, 0x3a, 0x74, -0x72, 0x75, 0x6d, 0x70, 0x65, 0x74, 0x3a, 0x74, 0x72, 0x75, 0x6d, 0x70, -0x65, 0x74, 0xd83c, 0xdfb8, 0x3a, 0x67, 0x75, 0x69, 0x74, 0x61, 0x72, 0x3a, -0x67, 0x75, 0x69, 0x74, 0x61, 0x72, 0xd83c, 0xdfbb, 0x3a, 0x76, 0x69, 0x6f, -0x6c, 0x69, 0x6e, 0x3a, 0x76, 0x69, 0x6f, 0x6c, 0x69, 0x6e, 0xd83c, 0xdfb2, -0x3a, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x64, 0x69, 0x65, 0x3a, 0x64, 0x69, -0x65, 0x67, 0x61, 0x6d, 0x65, 0xd83c, 0xdfaf, 0x3a, 0x64, 0x61, 0x72, 0x74, -0x3a, 0x64, 0x61, 0x72, 0x74, 0xd83c, 0xdfb3, 0x3a, 0x62, 0x6f, 0x77, 0x6c, -0x69, 0x6e, 0x67, 0x3a, 0x62, 0x6f, 0x77, 0x6c, 0x69, 0x6e, 0x67, 0xd83c, -0xdfae, 0x3a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x5f, 0x67, 0x61, 0x6d, 0x65, -0x3a, 0x67, 0x61, 0x6d, 0x65, 0x76, 0x69, 0x64, 0x65, 0x6f, 0xd83c, 0xdfb0, -0x3a, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, -0x65, 0x3a, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x73, 0x6c, 0x6f, -0x74, 0xd83d, 0xde97, 0x3a, 0x72, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x72, 0x3a, -0x63, 0x61, 0x72, 0x72, 0x65, 0x64, 0xd83d, 0xde95, 0x3a, 0x74, 0x61, 0x78, -0x69, 0x3a, 0x74, 0x61, 0x78, 0x69, 0xd83d, 0xde99, 0x3a, 0x62, 0x6c, 0x75, -0x65, 0x5f, 0x63, 0x61, 0x72, 0x3a, 0x62, 0x6c, 0x75, 0x65, 0x63, 0x61, -0x72, 0xd83d, 0xde8c, 0x3a, 0x62, 0x75, 0x73, 0x3a, 0x62, 0x75, 0x73, 0xd83d, -0xde8e, 0x3a, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x79, 0x62, 0x75, 0x73, -0x3a, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x79, 0x62, 0x75, 0x73, 0xd83c, -0xdfce, 0x3a, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x61, 0x72, -0x3a, 0x63, 0x61, 0x72, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0xd83c, 0xdfce, -0x3a, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x61, 0x72, 0x3a, 0x63, 0x61, -0x72, 0x72, 0x61, 0x63, 0x65, 0xd83d, 0xde93, 0x3a, 0x70, 0x6f, 0x6c, 0x69, -0x63, 0x65, 0x5f, 0x63, 0x61, 0x72, 0x3a, 0x63, 0x61, 0x72, 0x70, 0x6f, -0x6c, 0x69, 0x63, 0x65, 0xd83d, 0xde91, 0x3a, 0x61, 0x6d, 0x62, 0x75, 0x6c, -0x61, 0x6e, 0x63, 0x65, 0x3a, 0x61, 0x6d, 0x62, 0x75, 0x6c, 0x61, 0x6e, -0x63, 0x65, 0xd83d, 0xde92, 0x3a, 0x66, 0x69, 0x72, 0x65, 0x5f, 0x65, 0x6e, -0x67, 0x69, 0x6e, 0x65, 0x3a, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x66, -0x69, 0x72, 0x65, 0xd83d, 0xde90, 0x3a, 0x6d, 0x69, 0x6e, 0x69, 0x62, 0x75, -0x73, 0x3a, 0x6d, 0x69, 0x6e, 0x69, 0x62, 0x75, 0x73, 0xd83d, 0xde9a, 0x3a, -0x74, 0x72, 0x75, 0x63, 0x6b, 0x3a, 0x74, 0x72, 0x75, 0x63, 0x6b, 0xd83d, -0xde9b, 0x3a, 0x61, 0x72, 0x74, 0x69, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, -0x64, 0x5f, 0x6c, 0x6f, 0x72, 0x72, 0x79, 0x3a, 0x61, 0x72, 0x74, 0x69, -0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x6c, 0x6f, 0x72, 0x72, 0x79, -0xd83d, 0xde9c, 0x3a, 0x74, 0x72, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x3a, 0x74, -0x72, 0x61, 0x63, 0x74, 0x6f, 0x72, 0xd83d, 0xdef4, 0x3a, 0x73, 0x63, 0x6f, -0x6f, 0x74, 0x65, 0x72, 0x3a, 0x73, 0x63, 0x6f, 0x6f, 0x74, 0x65, 0x72, -0xd83d, 0xdeb2, 0x3a, 0x62, 0x69, 0x6b, 0x65, 0x3a, 0x62, 0x69, 0x6b, 0x65, -0xd83d, 0xdef5, 0x3a, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x62, 0x69, 0x6b, 0x65, -0x3a, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x62, 0x69, 0x6b, 0x65, 0xd83d, 0xdef5, -0x3a, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x63, 0x6f, 0x6f, 0x74, -0x65, 0x72, 0x3a, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x73, 0x63, 0x6f, 0x6f, -0x74, 0x65, 0x72, 0xd83c, 0xdfcd, 0x3a, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, -0x5f, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x3a, -0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x72, 0x61, -0x63, 0x69, 0x6e, 0x67, 0xd83c, 0xdfcd, 0x3a, 0x6d, 0x6f, 0x74, 0x6f, 0x72, -0x63, 0x79, 0x63, 0x6c, 0x65, 0x3a, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x63, -0x79, 0x63, 0x6c, 0x65, 0xd83d, 0xdea8, 0x3a, 0x72, 0x6f, 0x74, 0x61, 0x74, -0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x6c, 0x69, -0x67, 0x68, 0x74, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6e, 0x67, 0xd83d, -0xde94, 0x3a, 0x6f, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x70, -0x6f, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x61, 0x72, 0x3a, 0x63, 0x61, -0x72, 0x6f, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x70, 0x6f, 0x6c, -0x69, 0x63, 0x65, 0xd83d, 0xde8d, 0x3a, 0x6f, 0x6e, 0x63, 0x6f, 0x6d, 0x69, -0x6e, 0x67, 0x5f, 0x62, 0x75, 0x73, 0x3a, 0x62, 0x75, 0x73, 0x6f, 0x6e, -0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0xd83d, 0xde98, 0x3a, 0x6f, 0x6e, 0x63, -0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x6f, -0x62, 0x69, 0x6c, 0x65, 0x3a, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x6f, 0x62, -0x69, 0x6c, 0x65, 0x6f, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0xd83d, -0xde96, 0x3a, 0x6f, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x74, -0x61, 0x78, 0x69, 0x3a, 0x6f, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, -0x74, 0x61, 0x78, 0x69, 0xd83d, 0xdea1, 0x3a, 0x61, 0x65, 0x72, 0x69, 0x61, -0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6d, 0x77, 0x61, 0x79, 0x3a, 0x61, 0x65, -0x72, 0x69, 0x61, 0x6c, 0x74, 0x72, 0x61, 0x6d, 0x77, 0x61, 0x79, 0xd83d, -0xdea0, 0x3a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x5f, 0x63, -0x61, 0x62, 0x6c, 0x65, 0x77, 0x61, 0x79, 0x3a, 0x63, 0x61, 0x62, 0x6c, -0x65, 0x77, 0x61, 0x79, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, -0xd83d, 0xde9f, 0x3a, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x73, 0x69, 0x6f, -0x6e, 0x5f, 0x72, 0x61, 0x69, 0x6c, 0x77, 0x61, 0x79, 0x3a, 0x72, 0x61, -0x69, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x73, -0x69, 0x6f, 0x6e, 0xd83d, 0xde83, 0x3a, 0x72, 0x61, 0x69, 0x6c, 0x77, 0x61, -0x79, 0x5f, 0x63, 0x61, 0x72, 0x3a, 0x63, 0x61, 0x72, 0x72, 0x61, 0x69, -0x6c, 0x77, 0x61, 0x79, 0xd83d, 0xde8b, 0x3a, 0x74, 0x72, 0x61, 0x69, 0x6e, -0x3a, 0x74, 0x72, 0x61, 0x69, 0x6e, 0xd83d, 0xde9e, 0x3a, 0x6d, 0x6f, 0x75, -0x6e, 0x74, 0x61, 0x69, 0x6e, 0x5f, 0x72, 0x61, 0x69, 0x6c, 0x77, 0x61, -0x79, 0x3a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x72, 0x61, -0x69, 0x6c, 0x77, 0x61, 0x79, 0xd83d, 0xde9d, 0x3a, 0x6d, 0x6f, 0x6e, 0x6f, -0x72, 0x61, 0x69, 0x6c, 0x3a, 0x6d, 0x6f, 0x6e, 0x6f, 0x72, 0x61, 0x69, -0x6c, 0xd83d, 0xde84, 0x3a, 0x62, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x74, 0x72, -0x61, 0x69, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x3a, 0x62, 0x75, 0x6c, -0x6c, 0x65, 0x74, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x73, 0x69, 0x64, 0x65, -0xd83d, 0xde85, 0x3a, 0x62, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x74, 0x72, 0x61, -0x69, 0x6e, 0x5f, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x3a, 0x62, 0x75, 0x6c, -0x6c, 0x65, 0x74, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x66, 0x72, 0x6f, 0x6e, -0x74, 0xd83d, 0xde88, 0x3a, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x72, 0x61, -0x69, 0x6c, 0x3a, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x72, 0x61, 0x69, 0x6c, -0xd83d, 0xde82, 0x3a, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x5f, 0x6c, 0x6f, 0x63, -0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x76, 0x65, 0x3a, 0x6c, 0x6f, 0x63, 0x6f, -0x6d, 0x6f, 0x74, 0x69, 0x76, 0x65, 0x73, 0x74, 0x65, 0x61, 0x6d, 0xd83d, -0xde86, 0x3a, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x32, 0x3a, 0x74, 0x72, 0x61, -0x69, 0x6e, 0x32, 0xd83d, 0xde87, 0x3a, 0x6d, 0x65, 0x74, 0x72, 0x6f, 0x3a, -0x6d, 0x65, 0x74, 0x72, 0x6f, 0xd83d, 0xde8a, 0x3a, 0x74, 0x72, 0x61, 0x6d, -0x3a, 0x74, 0x72, 0x61, 0x6d, 0xd83d, 0xde89, 0x3a, 0x73, 0x74, 0x61, 0x74, -0x69, 0x6f, 0x6e, 0x3a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0xd83d, -0xde81, 0x3a, 0x68, 0x65, 0x6c, 0x69, 0x63, 0x6f, 0x70, 0x74, 0x65, 0x72, -0x3a, 0x68, 0x65, 0x6c, 0x69, 0x63, 0x6f, 0x70, 0x74, 0x65, 0x72, 0xd83d, -0xdee9, 0x3a, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x5f, 0x61, 0x69, 0x72, 0x70, -0x6c, 0x61, 0x6e, 0x65, 0x3a, 0x61, 0x69, 0x72, 0x70, 0x6c, 0x61, 0x6e, -0x65, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0xd83d, 0xdee9, 0x3a, 0x61, 0x69, 0x72, -0x70, 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x3a, -0x61, 0x69, 0x72, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x73, 0x6d, 0x61, 0x6c, -0x6c, 0x2708, 0xfe0f, 0x3a, 0x61, 0x69, 0x72, 0x70, 0x6c, 0x61, 0x6e, 0x65, -0x3a, 0x61, 0x69, 0x72, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0xd83d, 0xdeeb, 0x3a, -0x61, 0x69, 0x72, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x64, 0x65, 0x70, -0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x3a, 0x61, 0x69, 0x72, 0x70, 0x6c, -0x61, 0x6e, 0x65, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, -0xd83d, 0xdeec, 0x3a, 0x61, 0x69, 0x72, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x5f, -0x61, 0x72, 0x72, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x3a, 0x61, 0x69, 0x72, -0x70, 0x6c, 0x61, 0x6e, 0x65, 0x61, 0x72, 0x72, 0x69, 0x76, 0x69, 0x6e, -0x67, 0xd83d, 0xde80, 0x3a, 0x72, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x3a, 0x72, -0x6f, 0x63, 0x6b, 0x65, 0x74, 0xd83d, 0xdef0, 0x3a, 0x73, 0x61, 0x74, 0x65, -0x6c, 0x6c, 0x69, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x62, 0x69, 0x74, 0x61, -0x6c, 0x3a, 0x6f, 0x72, 0x62, 0x69, 0x74, 0x61, 0x6c, 0x73, 0x61, 0x74, -0x65, 0x6c, 0x6c, 0x69, 0x74, 0x65, 0xd83d, 0xdcba, 0x3a, 0x73, 0x65, 0x61, -0x74, 0x3a, 0x73, 0x65, 0x61, 0x74, 0xd83d, 0xdef6, 0x3a, 0x6b, 0x61, 0x79, -0x61, 0x6b, 0x3a, 0x6b, 0x61, 0x79, 0x61, 0x6b, 0xd83d, 0xdef6, 0x3a, 0x63, -0x61, 0x6e, 0x6f, 0x65, 0x3a, 0x63, 0x61, 0x6e, 0x6f, 0x65, 0x26f5, 0xfe0f, -0x3a, 0x73, 0x61, 0x69, 0x6c, 0x62, 0x6f, 0x61, 0x74, 0x3a, 0x73, 0x61, -0x69, 0x6c, 0x62, 0x6f, 0x61, 0x74, 0xd83d, 0xdee5, 0x3a, 0x6d, 0x6f, 0x74, -0x6f, 0x72, 0x62, 0x6f, 0x61, 0x74, 0x3a, 0x6d, 0x6f, 0x74, 0x6f, 0x72, -0x62, 0x6f, 0x61, 0x74, 0xd83d, 0xdea4, 0x3a, 0x73, 0x70, 0x65, 0x65, 0x64, -0x62, 0x6f, 0x61, 0x74, 0x3a, 0x73, 0x70, 0x65, 0x65, 0x64, 0x62, 0x6f, -0x61, 0x74, 0xd83d, 0xdef3, 0x3a, 0x70, 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, -0x65, 0x72, 0x5f, 0x73, 0x68, 0x69, 0x70, 0x3a, 0x70, 0x61, 0x73, 0x73, -0x65, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0xd83d, 0xdef3, 0x3a, -0x63, 0x72, 0x75, 0x69, 0x73, 0x65, 0x5f, 0x73, 0x68, 0x69, 0x70, 0x3a, -0x63, 0x72, 0x75, 0x69, 0x73, 0x65, 0x73, 0x68, 0x69, 0x70, 0x26f4, 0x3a, -0x66, 0x65, 0x72, 0x72, 0x79, 0x3a, 0x66, 0x65, 0x72, 0x72, 0x79, 0xd83d, -0xdea2, 0x3a, 0x73, 0x68, 0x69, 0x70, 0x3a, 0x73, 0x68, 0x69, 0x70, 0x2693, -0xfe0f, 0x3a, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x3a, 0x61, 0x6e, 0x63, -0x68, 0x6f, 0x72, 0xd83d, 0xdea7, 0x3a, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, -0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x63, 0x6f, 0x6e, 0x73, 0x74, -0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x26fd, 0xfe0f, 0x3a, 0x66, 0x75, -0x65, 0x6c, 0x70, 0x75, 0x6d, 0x70, 0x3a, 0x66, 0x75, 0x65, 0x6c, 0x70, -0x75, 0x6d, 0x70, 0xd83d, 0xde8f, 0x3a, 0x62, 0x75, 0x73, 0x73, 0x74, 0x6f, -0x70, 0x3a, 0x62, 0x75, 0x73, 0x73, 0x74, 0x6f, 0x70, 0xd83d, 0xdea6, 0x3a, -0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x74, 0x72, 0x61, -0x66, 0x66, 0x69, 0x63, 0x5f, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x6c, -0x69, 0x67, 0x68, 0x74, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x76, -0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0xd83d, 0xdea5, 0x3a, 0x74, 0x72, -0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x3a, -0x6c, 0x69, 0x67, 0x68, 0x74, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, -0xd83d, 0xddfa, 0x3a, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x70, -0x3a, 0x6d, 0x61, 0x70, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0xd83d, 0xddfa, 0x3a, -0x6d, 0x61, 0x70, 0x3a, 0x6d, 0x61, 0x70, 0xd83d, 0xddff, 0x3a, 0x6d, 0x6f, -0x79, 0x61, 0x69, 0x3a, 0x6d, 0x6f, 0x79, 0x61, 0x69, 0xd83d, 0xddfd, 0x3a, -0x73, 0x74, 0x61, 0x74, 0x75, 0x65, 0x5f, 0x6f, 0x66, 0x5f, 0x6c, 0x69, -0x62, 0x65, 0x72, 0x74, 0x79, 0x3a, 0x6c, 0x69, 0x62, 0x65, 0x72, 0x74, -0x79, 0x6f, 0x66, 0x73, 0x74, 0x61, 0x74, 0x75, 0x65, 0x26f2, 0xfe0f, 0x3a, -0x66, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3a, 0x66, 0x6f, 0x75, -0x6e, 0x74, 0x61, 0x69, 0x6e, 0xd83d, 0xddfc, 0x3a, 0x74, 0x6f, 0x6b, 0x79, -0x6f, 0x5f, 0x74, 0x6f, 0x77, 0x65, 0x72, 0x3a, 0x74, 0x6f, 0x6b, 0x79, -0x6f, 0x74, 0x6f, 0x77, 0x65, 0x72, 0xd83c, 0xdff0, 0x3a, 0x65, 0x75, 0x72, -0x6f, 0x70, 0x65, 0x61, 0x6e, 0x5f, 0x63, 0x61, 0x73, 0x74, 0x6c, 0x65, -0x3a, 0x63, 0x61, 0x73, 0x74, 0x6c, 0x65, 0x65, 0x75, 0x72, 0x6f, 0x70, -0x65, 0x61, 0x6e, 0xd83c, 0xdfef, 0x3a, 0x6a, 0x61, 0x70, 0x61, 0x6e, 0x65, -0x73, 0x65, 0x5f, 0x63, 0x61, 0x73, 0x74, 0x6c, 0x65, 0x3a, 0x63, 0x61, -0x73, 0x74, 0x6c, 0x65, 0x6a, 0x61, 0x70, 0x61, 0x6e, 0x65, 0x73, 0x65, -0xd83c, 0xdfdf, 0x3a, 0x73, 0x74, 0x61, 0x64, 0x69, 0x75, 0x6d, 0x3a, 0x73, -0x74, 0x61, 0x64, 0x69, 0x75, 0x6d, 0xd83c, 0xdfa1, 0x3a, 0x66, 0x65, 0x72, -0x72, 0x69, 0x73, 0x5f, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x3a, 0x66, 0x65, -0x72, 0x72, 0x69, 0x73, 0x77, 0x68, 0x65, 0x65, 0x6c, 0xd83c, 0xdfa2, 0x3a, -0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x61, 0x73, 0x74, -0x65, 0x72, 0x3a, 0x63, 0x6f, 0x61, 0x73, 0x74, 0x65, 0x72, 0x72, 0x6f, -0x6c, 0x6c, 0x65, 0x72, 0xd83c, 0xdfa0, 0x3a, 0x63, 0x61, 0x72, 0x6f, 0x75, -0x73, 0x65, 0x6c, 0x5f, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x3a, 0x63, 0x61, -0x72, 0x6f, 0x75, 0x73, 0x65, 0x6c, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x26f1, -0x3a, 0x75, 0x6d, 0x62, 0x72, 0x65, 0x6c, 0x6c, 0x61, 0x5f, 0x6f, 0x6e, -0x5f, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x67, 0x72, 0x6f, 0x75, -0x6e, 0x64, 0x6f, 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x65, 0x6c, 0x6c, 0x61, -0x26f1, 0x3a, 0x62, 0x65, 0x61, 0x63, 0x68, 0x5f, 0x75, 0x6d, 0x62, 0x72, -0x65, 0x6c, 0x6c, 0x61, 0x3a, 0x62, 0x65, 0x61, 0x63, 0x68, 0x75, 0x6d, -0x62, 0x72, 0x65, 0x6c, 0x6c, 0x61, 0xd83c, 0xdfd6, 0x3a, 0x62, 0x65, 0x61, -0x63, 0x68, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x75, 0x6d, 0x62, 0x72, -0x65, 0x6c, 0x6c, 0x61, 0x3a, 0x62, 0x65, 0x61, 0x63, 0x68, 0x75, 0x6d, -0x62, 0x72, 0x65, 0x6c, 0x6c, 0x61, 0x77, 0x69, 0x74, 0x68, 0xd83c, 0xdfd6, -0x3a, 0x62, 0x65, 0x61, 0x63, 0x68, 0x3a, 0x62, 0x65, 0x61, 0x63, 0x68, -0xd83c, 0xdfdd, 0x3a, 0x64, 0x65, 0x73, 0x65, 0x72, 0x74, 0x5f, 0x69, 0x73, -0x6c, 0x61, 0x6e, 0x64, 0x3a, 0x64, 0x65, 0x73, 0x65, 0x72, 0x74, 0x69, -0x73, 0x6c, 0x61, 0x6e, 0x64, 0xd83c, 0xdfdd, 0x3a, 0x69, 0x73, 0x6c, 0x61, -0x6e, 0x64, 0x3a, 0x69, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x26f0, 0x3a, 0x6d, -0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3a, 0x6d, 0x6f, 0x75, 0x6e, -0x74, 0x61, 0x69, 0x6e, 0xd83c, 0xdfd4, 0x3a, 0x73, 0x6e, 0x6f, 0x77, 0x5f, -0x63, 0x61, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, -0x61, 0x69, 0x6e, 0x3a, 0x63, 0x61, 0x70, 0x70, 0x65, 0x64, 0x6d, 0x6f, -0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x6e, 0x6f, 0x77, 0xd83c, 0xdfd4, -0x3a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x5f, 0x73, 0x6e, -0x6f, 0x77, 0x3a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, -0x6e, 0x6f, 0x77, 0xd83d, 0xddfb, 0x3a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, -0x66, 0x75, 0x6a, 0x69, 0x3a, 0x66, 0x75, 0x6a, 0x69, 0x6d, 0x6f, 0x75, -0x6e, 0x74, 0xd83c, 0xdf0b, 0x3a, 0x76, 0x6f, 0x6c, 0x63, 0x61, 0x6e, 0x6f, -0x3a, 0x76, 0x6f, 0x6c, 0x63, 0x61, 0x6e, 0x6f, 0xd83c, 0xdfdc, 0x3a, 0x64, -0x65, 0x73, 0x65, 0x72, 0x74, 0x3a, 0x64, 0x65, 0x73, 0x65, 0x72, 0x74, -0xd83c, 0xdfd5, 0x3a, 0x63, 0x61, 0x6d, 0x70, 0x69, 0x6e, 0x67, 0x3a, 0x63, -0x61, 0x6d, 0x70, 0x69, 0x6e, 0x67, 0x26fa, 0xfe0f, 0x3a, 0x74, 0x65, 0x6e, -0x74, 0x3a, 0x74, 0x65, 0x6e, 0x74, 0xd83d, 0xdee4, 0x3a, 0x72, 0x61, 0x69, -0x6c, 0x72, 0x6f, 0x61, 0x64, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x3a, -0x72, 0x61, 0x69, 0x6c, 0x72, 0x6f, 0x61, 0x64, 0x74, 0x72, 0x61, 0x63, -0x6b, 0xd83d, 0xdee4, 0x3a, 0x72, 0x61, 0x69, 0x6c, 0x77, 0x61, 0x79, 0x5f, -0x74, 0x72, 0x61, 0x63, 0x6b, 0x3a, 0x72, 0x61, 0x69, 0x6c, 0x77, 0x61, -0x79, 0x74, 0x72, 0x61, 0x63, 0x6b, 0xd83d, 0xdee3, 0x3a, 0x6d, 0x6f, 0x74, -0x6f, 0x72, 0x77, 0x61, 0x79, 0x3a, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x77, -0x61, 0x79, 0xd83c, 0xdfd7, 0x3a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, -0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, -0x6f, 0x6e, 0x3a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x63, -0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0xd83c, -0xdfd7, 0x3a, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, -0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x74, 0x65, 0x3a, 0x63, 0x6f, 0x6e, 0x73, -0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x69, 0x74, 0x65, -0xd83c, 0xdfed, 0x3a, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x3a, 0x66, -0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0xd83c, 0xdfe0, 0x3a, 0x68, 0x6f, 0x75, -0x73, 0x65, 0x3a, 0x68, 0x6f, 0x75, 0x73, 0x65, 0xd83c, 0xdfe1, 0x3a, 0x68, -0x6f, 0x75, 0x73, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x67, 0x61, -0x72, 0x64, 0x65, 0x6e, 0x3a, 0x67, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x68, -0x6f, 0x75, 0x73, 0x65, 0x77, 0x69, 0x74, 0x68, 0xd83c, 0xdfd8, 0x3a, 0x68, -0x6f, 0x75, 0x73, 0x65, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, -0x67, 0x73, 0x3a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x73, -0x68, 0x6f, 0x75, 0x73, 0x65, 0xd83c, 0xdfd8, 0x3a, 0x68, 0x6f, 0x6d, 0x65, -0x73, 0x3a, 0x68, 0x6f, 0x6d, 0x65, 0x73, 0xd83c, 0xdfda, 0x3a, 0x64, 0x65, -0x72, 0x65, 0x6c, 0x69, 0x63, 0x74, 0x5f, 0x68, 0x6f, 0x75, 0x73, 0x65, -0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x62, 0x75, -0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x64, 0x65, 0x72, 0x65, 0x6c, 0x69, -0x63, 0x74, 0x68, 0x6f, 0x75, 0x73, 0x65, 0xd83c, 0xdfda, 0x3a, 0x68, 0x6f, -0x75, 0x73, 0x65, 0x5f, 0x61, 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x65, -0x64, 0x3a, 0x61, 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x65, 0x64, 0x68, -0x6f, 0x75, 0x73, 0x65, 0xd83c, 0xdfe2, 0x3a, 0x6f, 0x66, 0x66, 0x69, 0x63, -0x65, 0x3a, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0xd83c, 0xdfec, 0x3a, 0x64, -0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, -0x6f, 0x72, 0x65, 0x3a, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, -0x6e, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0xd83c, 0xdfe3, 0x3a, 0x70, 0x6f, -0x73, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x3a, 0x6f, 0x66, -0x66, 0x69, 0x63, 0x65, 0x70, 0x6f, 0x73, 0x74, 0xd83c, 0xdfe4, 0x3a, 0x65, -0x75, 0x72, 0x6f, 0x70, 0x65, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, 0x74, -0x5f, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x3a, 0x65, 0x75, 0x72, 0x6f, -0x70, 0x65, 0x61, 0x6e, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x70, 0x6f, -0x73, 0x74, 0xd83c, 0xdfe5, 0x3a, 0x68, 0x6f, 0x73, 0x70, 0x69, 0x74, 0x61, -0x6c, 0x3a, 0x68, 0x6f, 0x73, 0x70, 0x69, 0x74, 0x61, 0x6c, 0xd83c, 0xdfe6, -0x3a, 0x62, 0x61, 0x6e, 0x6b, 0x3a, 0x62, 0x61, 0x6e, 0x6b, 0xd83c, 0xdfe8, -0x3a, 0x68, 0x6f, 0x74, 0x65, 0x6c, 0x3a, 0x68, 0x6f, 0x74, 0x65, 0x6c, -0xd83c, 0xdfea, 0x3a, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x6e, 0x69, 0x65, 0x6e, -0x63, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x3a, 0x63, 0x6f, 0x6e, -0x76, 0x65, 0x6e, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, 0x72, -0x65, 0xd83c, 0xdfeb, 0x3a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x3a, 0x73, -0x63, 0x68, 0x6f, 0x6f, 0x6c, 0xd83c, 0xdfe9, 0x3a, 0x6c, 0x6f, 0x76, 0x65, -0x5f, 0x68, 0x6f, 0x74, 0x65, 0x6c, 0x3a, 0x68, 0x6f, 0x74, 0x65, 0x6c, -0x6c, 0x6f, 0x76, 0x65, 0xd83d, 0xdc92, 0x3a, 0x77, 0x65, 0x64, 0x64, 0x69, -0x6e, 0x67, 0x3a, 0x77, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0xd83c, 0xdfdb, -0x3a, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x62, -0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x62, 0x75, 0x69, 0x6c, -0x64, 0x69, 0x6e, 0x67, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x63, 0x61, -0x6c, 0x26ea, 0xfe0f, 0x3a, 0x63, 0x68, 0x75, 0x72, 0x63, 0x68, 0x3a, 0x63, -0x68, 0x75, 0x72, 0x63, 0x68, 0xd83d, 0xdd4c, 0x3a, 0x6d, 0x6f, 0x73, 0x71, -0x75, 0x65, 0x3a, 0x6d, 0x6f, 0x73, 0x71, 0x75, 0x65, 0xd83d, 0xdd4d, 0x3a, -0x73, 0x79, 0x6e, 0x61, 0x67, 0x6f, 0x67, 0x75, 0x65, 0x3a, 0x73, 0x79, -0x6e, 0x61, 0x67, 0x6f, 0x67, 0x75, 0x65, 0xd83d, 0xdd4b, 0x3a, 0x6b, 0x61, -0x61, 0x62, 0x61, 0x3a, 0x6b, 0x61, 0x61, 0x62, 0x61, 0x26e9, 0x3a, 0x73, -0x68, 0x69, 0x6e, 0x74, 0x6f, 0x5f, 0x73, 0x68, 0x72, 0x69, 0x6e, 0x65, -0x3a, 0x73, 0x68, 0x69, 0x6e, 0x74, 0x6f, 0x73, 0x68, 0x72, 0x69, 0x6e, -0x65, 0xd83d, 0xddfe, 0x3a, 0x6a, 0x61, 0x70, 0x61, 0x6e, 0x3a, 0x6a, 0x61, -0x70, 0x61, 0x6e, 0xd83c, 0xdf91, 0x3a, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x73, -0x63, 0x65, 0x6e, 0x65, 0x3a, 0x72, 0x69, 0x63, 0x65, 0x73, 0x63, 0x65, -0x6e, 0x65, 0xd83c, 0xdfde, 0x3a, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, -0x6c, 0x5f, 0x70, 0x61, 0x72, 0x6b, 0x3a, 0x6e, 0x61, 0x74, 0x69, 0x6f, -0x6e, 0x61, 0x6c, 0x70, 0x61, 0x72, 0x6b, 0xd83c, 0xdfde, 0x3a, 0x70, 0x61, -0x72, 0x6b, 0x3a, 0x70, 0x61, 0x72, 0x6b, 0xd83c, 0xdf05, 0x3a, 0x73, 0x75, -0x6e, 0x72, 0x69, 0x73, 0x65, 0x3a, 0x73, 0x75, 0x6e, 0x72, 0x69, 0x73, -0x65, 0xd83c, 0xdf04, 0x3a, 0x73, 0x75, 0x6e, 0x72, 0x69, 0x73, 0x65, 0x5f, -0x6f, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, -0x6e, 0x73, 0x3a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, -0x6f, 0x76, 0x65, 0x72, 0x73, 0x75, 0x6e, 0x72, 0x69, 0x73, 0x65, 0xd83c, -0xdf20, 0x3a, 0x73, 0x74, 0x61, 0x72, 0x73, 0x3a, 0x73, 0x74, 0x61, 0x72, -0x73, 0xd83c, 0xdf87, 0x3a, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x6c, 0x65, 0x72, -0x3a, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x6c, 0x65, 0x72, 0xd83c, 0xdf86, 0x3a, -0x66, 0x69, 0x72, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x3a, 0x66, 0x69, -0x72, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0xd83c, 0xdf07, 0x3a, 0x63, 0x69, -0x74, 0x79, 0x5f, 0x73, 0x75, 0x6e, 0x72, 0x69, 0x73, 0x65, 0x3a, 0x63, -0x69, 0x74, 0x79, 0x73, 0x75, 0x6e, 0x72, 0x69, 0x73, 0x65, 0xd83c, 0xdf07, -0x3a, 0x63, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x75, 0x6e, 0x73, 0x65, 0x74, -0x3a, 0x63, 0x69, 0x74, 0x79, 0x73, 0x75, 0x6e, 0x73, 0x65, 0x74, 0xd83c, -0xdf06, 0x3a, 0x63, 0x69, 0x74, 0x79, 0x5f, 0x64, 0x75, 0x73, 0x6b, 0x3a, -0x63, 0x69, 0x74, 0x79, 0x64, 0x75, 0x73, 0x6b, 0xd83c, 0xdfd9, 0x3a, 0x63, -0x69, 0x74, 0x79, 0x73, 0x63, 0x61, 0x70, 0x65, 0x3a, 0x63, 0x69, 0x74, -0x79, 0x73, 0x63, 0x61, 0x70, 0x65, 0xd83c, 0xdf03, 0x3a, 0x6e, 0x69, 0x67, -0x68, 0x74, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x73, 0x74, 0x61, 0x72, -0x73, 0x3a, 0x6e, 0x69, 0x67, 0x68, 0x74, 0x73, 0x74, 0x61, 0x72, 0x73, -0x77, 0x69, 0x74, 0x68, 0xd83c, 0xdf0c, 0x3a, 0x6d, 0x69, 0x6c, 0x6b, 0x79, -0x5f, 0x77, 0x61, 0x79, 0x3a, 0x6d, 0x69, 0x6c, 0x6b, 0x79, 0x77, 0x61, -0x79, 0xd83c, 0xdf09, 0x3a, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x61, -0x74, 0x5f, 0x6e, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x61, 0x74, 0x62, 0x72, -0x69, 0x64, 0x67, 0x65, 0x6e, 0x69, 0x67, 0x68, 0x74, 0xd83c, 0xdf01, 0x3a, -0x66, 0x6f, 0x67, 0x67, 0x79, 0x3a, 0x66, 0x6f, 0x67, 0x67, 0x79, 0x231a, -0xfe0f, 0x3a, 0x77, 0x61, 0x74, 0x63, 0x68, 0x3a, 0x77, 0x61, 0x74, 0x63, -0x68, 0xd83d, 0xdcf1, 0x3a, 0x69, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x3a, 0x69, -0x70, 0x68, 0x6f, 0x6e, 0x65, 0xd83d, 0xdcf2, 0x3a, 0x63, 0x61, 0x6c, 0x6c, -0x69, 0x6e, 0x67, 0x3a, 0x63, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0xd83d, -0xdcbb, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x72, 0x3a, 0x63, -0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x72, 0x2328, 0xfe0f, 0x3a, 0x6b, 0x65, -0x79, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x3a, 0x6b, 0x65, 0x79, 0x62, 0x6f, -0x61, 0x72, 0x64, 0xd83d, 0xdda5, 0x3a, 0x64, 0x65, 0x73, 0x6b, 0x74, 0x6f, -0x70, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x72, 0x3a, 0x63, -0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x72, 0x64, 0x65, 0x73, 0x6b, 0x74, -0x6f, 0x70, 0xd83d, 0xdda5, 0x3a, 0x64, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, -0x3a, 0x64, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0xd83d, 0xdda8, 0x3a, 0x70, -0x72, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x3a, 0x70, 0x72, 0x69, 0x6e, 0x74, -0x65, 0x72, 0xd83d, 0xddb1, 0x3a, 0x74, 0x68, 0x72, 0x65, 0x65, 0x5f, 0x62, -0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x3a, -0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x74, -0x68, 0x72, 0x65, 0x65, 0xd83d, 0xddb1, 0x3a, 0x6d, 0x6f, 0x75, 0x73, 0x65, -0x5f, 0x74, 0x68, 0x72, 0x65, 0x65, 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f, -0x6e, 0x3a, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x6d, 0x6f, 0x75, 0x73, -0x65, 0x74, 0x68, 0x72, 0x65, 0x65, 0xd83d, 0xddb2, 0x3a, 0x74, 0x72, 0x61, -0x63, 0x6b, 0x62, 0x61, 0x6c, 0x6c, 0x3a, 0x74, 0x72, 0x61, 0x63, 0x6b, -0x62, 0x61, 0x6c, 0x6c, 0xd83d, 0xdd79, 0x3a, 0x6a, 0x6f, 0x79, 0x73, 0x74, -0x69, 0x63, 0x6b, 0x3a, 0x6a, 0x6f, 0x79, 0x73, 0x74, 0x69, 0x63, 0x6b, -0xd83d, 0xdddc, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, -0x6f, 0x6e, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, -0x6f, 0x6e, 0xd83d, 0xdcbd, 0x3a, 0x6d, 0x69, 0x6e, 0x69, 0x64, 0x69, 0x73, -0x63, 0x3a, 0x6d, 0x69, 0x6e, 0x69, 0x64, 0x69, 0x73, 0x63, 0xd83d, 0xdcbe, -0x3a, 0x66, 0x6c, 0x6f, 0x70, 0x70, 0x79, 0x5f, 0x64, 0x69, 0x73, 0x6b, -0x3a, 0x64, 0x69, 0x73, 0x6b, 0x66, 0x6c, 0x6f, 0x70, 0x70, 0x79, 0xd83d, -0xdcbf, 0x3a, 0x63, 0x64, 0x3a, 0x63, 0x64, 0xd83d, 0xdcc0, 0x3a, 0x64, 0x76, -0x64, 0x3a, 0x64, 0x76, 0x64, 0xd83d, 0xdcfc, 0x3a, 0x76, 0x68, 0x73, 0x3a, -0x76, 0x68, 0x73, 0xd83d, 0xdcf7, 0x3a, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, -0x3a, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0xd83d, 0xdcf8, 0x3a, 0x63, 0x61, -0x6d, 0x65, 0x72, 0x61, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x66, 0x6c, -0x61, 0x73, 0x68, 0x3a, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x66, 0x6c, -0x61, 0x73, 0x68, 0x77, 0x69, 0x74, 0x68, 0xd83d, 0xdcf9, 0x3a, 0x76, 0x69, -0x64, 0x65, 0x6f, 0x5f, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x3a, 0x63, -0x61, 0x6d, 0x65, 0x72, 0x61, 0x76, 0x69, 0x64, 0x65, 0x6f, 0xd83c, 0xdfa5, -0x3a, 0x6d, 0x6f, 0x76, 0x69, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x65, 0x72, -0x61, 0x3a, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x6d, 0x6f, 0x76, 0x69, -0x65, 0xd83d, 0xdcfd, 0x3a, 0x66, 0x69, 0x6c, 0x6d, 0x5f, 0x70, 0x72, 0x6f, -0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x3a, 0x66, 0x69, 0x6c, 0x6d, 0x70, -0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0xd83d, 0xdcfd, 0x3a, 0x70, -0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x3a, 0x70, 0x72, 0x6f, -0x6a, 0x65, 0x63, 0x74, 0x6f, 0x72, 0xd83c, 0xdf9e, 0x3a, 0x66, 0x69, 0x6c, -0x6d, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x3a, 0x66, 0x69, 0x6c, -0x6d, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0xd83d, 0xdcde, 0x3a, 0x74, 0x65, -0x6c, 0x65, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, -0x69, 0x76, 0x65, 0x72, 0x3a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, -0x72, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x260e, 0xfe0f, -0x3a, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x3a, 0x74, -0x65, 0x6c, 0x65, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0xd83d, 0xdcdf, 0x3a, 0x70, -0x61, 0x67, 0x65, 0x72, 0x3a, 0x70, 0x61, 0x67, 0x65, 0x72, 0xd83d, 0xdce0, -0x3a, 0x66, 0x61, 0x78, 0x3a, 0x66, 0x61, 0x78, 0xd83d, 0xdcfa, 0x3a, 0x74, -0x76, 0x3a, 0x74, 0x76, 0xd83d, 0xdcfb, 0x3a, 0x72, 0x61, 0x64, 0x69, 0x6f, -0x3a, 0x72, 0x61, 0x64, 0x69, 0x6f, 0xd83c, 0xdf99, 0x3a, 0x73, 0x74, 0x75, -0x64, 0x69, 0x6f, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, -0x6e, 0x65, 0x3a, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, -0x65, 0x73, 0x74, 0x75, 0x64, 0x69, 0x6f, 0xd83c, 0xdf99, 0x3a, 0x6d, 0x69, -0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x32, 0x3a, 0x6d, 0x69, -0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x32, 0xd83c, 0xdf9a, 0x3a, -0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x64, 0x65, 0x72, -0x3a, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x73, 0x6c, 0x69, 0x64, 0x65, 0x72, -0xd83c, 0xdf9b, 0x3a, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6b, -0x6e, 0x6f, 0x62, 0x73, 0x3a, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, -0x6b, 0x6e, 0x6f, 0x62, 0x73, 0x23f1, 0x3a, 0x73, 0x74, 0x6f, 0x70, 0x77, -0x61, 0x74, 0x63, 0x68, 0x3a, 0x73, 0x74, 0x6f, 0x70, 0x77, 0x61, 0x74, -0x63, 0x68, 0x23f2, 0x3a, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x5f, 0x63, 0x6c, -0x6f, 0x63, 0x6b, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x74, 0x69, 0x6d, -0x65, 0x72, 0x23f2, 0x3a, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x3a, 0x74, 0x69, -0x6d, 0x65, 0x72, 0x23f0, 0x3a, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x5f, 0x63, -0x6c, 0x6f, 0x63, 0x6b, 0x3a, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x63, 0x6c, -0x6f, 0x63, 0x6b, 0xd83d, 0xdd70, 0x3a, 0x6d, 0x61, 0x6e, 0x74, 0x6c, 0x65, -0x70, 0x69, 0x65, 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x3a, -0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x6d, 0x61, 0x6e, 0x74, 0x6c, 0x65, 0x70, -0x69, 0x65, 0x63, 0x65, 0xd83d, 0xdd70, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, -0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x231b, 0xfe0f, 0x3a, 0x68, 0x6f, 0x75, -0x72, 0x67, 0x6c, 0x61, 0x73, 0x73, 0x3a, 0x68, 0x6f, 0x75, 0x72, 0x67, -0x6c, 0x61, 0x73, 0x73, 0x23f3, 0x3a, 0x68, 0x6f, 0x75, 0x72, 0x67, 0x6c, -0x61, 0x73, 0x73, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x5f, -0x73, 0x61, 0x6e, 0x64, 0x3a, 0x66, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, -0x68, 0x6f, 0x75, 0x72, 0x67, 0x6c, 0x61, 0x73, 0x73, 0x73, 0x61, 0x6e, -0x64, 0xd83d, 0xdce1, 0x3a, 0x73, 0x61, 0x74, 0x65, 0x6c, 0x6c, 0x69, 0x74, -0x65, 0x3a, 0x73, 0x61, 0x74, 0x65, 0x6c, 0x6c, 0x69, 0x74, 0x65, 0xd83d, -0xdd0b, 0x3a, 0x62, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x3a, 0x62, 0x61, -0x74, 0x74, 0x65, 0x72, 0x79, 0xd83d, 0xdd0c, 0x3a, 0x65, 0x6c, 0x65, 0x63, -0x74, 0x72, 0x69, 0x63, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x3a, 0x65, 0x6c, -0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x70, 0x6c, 0x75, 0x67, 0xd83d, 0xdca1, -0x3a, 0x62, 0x75, 0x6c, 0x62, 0x3a, 0x62, 0x75, 0x6c, 0x62, 0xd83d, 0xdd26, -0x3a, 0x66, 0x6c, 0x61, 0x73, 0x68, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x3a, -0x66, 0x6c, 0x61, 0x73, 0x68, 0x6c, 0x69, 0x67, 0x68, 0x74, 0xd83d, 0xdd6f, -0x3a, 0x63, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x3a, 0x63, 0x61, 0x6e, 0x64, -0x6c, 0x65, 0xd83d, 0xddd1, 0x3a, 0x77, 0x61, 0x73, 0x74, 0x65, 0x62, 0x61, -0x73, 0x6b, 0x65, 0x74, 0x3a, 0x77, 0x61, 0x73, 0x74, 0x65, 0x62, 0x61, -0x73, 0x6b, 0x65, 0x74, 0xd83d, 0xdee2, 0x3a, 0x6f, 0x69, 0x6c, 0x5f, 0x64, -0x72, 0x75, 0x6d, 0x3a, 0x64, 0x72, 0x75, 0x6d, 0x6f, 0x69, 0x6c, 0xd83d, -0xdee2, 0x3a, 0x6f, 0x69, 0x6c, 0x3a, 0x6f, 0x69, 0x6c, 0xd83d, 0xdcb8, 0x3a, -0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x77, -0x69, 0x6e, 0x67, 0x73, 0x3a, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x77, 0x69, -0x6e, 0x67, 0x73, 0x77, 0x69, 0x74, 0x68, 0xd83d, 0xdcb5, 0x3a, 0x64, 0x6f, -0x6c, 0x6c, 0x61, 0x72, 0x3a, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0xd83d, -0xdcb4, 0x3a, 0x79, 0x65, 0x6e, 0x3a, 0x79, 0x65, 0x6e, 0xd83d, 0xdcb6, 0x3a, -0x65, 0x75, 0x72, 0x6f, 0x3a, 0x65, 0x75, 0x72, 0x6f, 0xd83d, 0xdcb7, 0x3a, -0x70, 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0xd83d, -0xdcb0, 0x3a, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x62, 0x61, 0x67, 0x3a, 0x6d, -0x6f, 0x6e, 0x65, 0x79, 0x62, 0x61, 0x67, 0xd83d, 0xdcb3, 0x3a, 0x63, 0x72, -0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x3a, 0x63, 0x61, -0x72, 0x64, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0xd83d, 0xdc8e, 0x3a, 0x67, -0x65, 0x6d, 0x3a, 0x67, 0x65, 0x6d, 0x2696, 0xfe0f, 0x3a, 0x73, 0x63, 0x61, -0x6c, 0x65, 0x73, 0x3a, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x73, 0xd83d, 0xdd27, -0x3a, 0x77, 0x72, 0x65, 0x6e, 0x63, 0x68, 0x3a, 0x77, 0x72, 0x65, 0x6e, -0x63, 0x68, 0xd83d, 0xdd28, 0x3a, 0x68, 0x61, 0x6d, 0x6d, 0x65, 0x72, 0x3a, -0x68, 0x61, 0x6d, 0x6d, 0x65, 0x72, 0x2692, 0x3a, 0x68, 0x61, 0x6d, 0x6d, -0x65, 0x72, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, 0x69, 0x63, 0x6b, 0x3a, -0x61, 0x6e, 0x64, 0x68, 0x61, 0x6d, 0x6d, 0x65, 0x72, 0x70, 0x69, 0x63, -0x6b, 0x2692, 0x3a, 0x68, 0x61, 0x6d, 0x6d, 0x65, 0x72, 0x5f, 0x70, 0x69, -0x63, 0x6b, 0x3a, 0x68, 0x61, 0x6d, 0x6d, 0x65, 0x72, 0x70, 0x69, 0x63, -0x6b, 0xd83d, 0xdee0, 0x3a, 0x68, 0x61, 0x6d, 0x6d, 0x65, 0x72, 0x5f, 0x61, -0x6e, 0x64, 0x5f, 0x77, 0x72, 0x65, 0x6e, 0x63, 0x68, 0x3a, 0x61, 0x6e, -0x64, 0x68, 0x61, 0x6d, 0x6d, 0x65, 0x72, 0x77, 0x72, 0x65, 0x6e, 0x63, -0x68, 0xd83d, 0xdee0, 0x3a, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x3a, 0x74, 0x6f, -0x6f, 0x6c, 0x73, 0x26cf, 0x3a, 0x70, 0x69, 0x63, 0x6b, 0x3a, 0x70, 0x69, -0x63, 0x6b, 0xd83d, 0xdd29, 0x3a, 0x6e, 0x75, 0x74, 0x5f, 0x61, 0x6e, 0x64, -0x5f, 0x62, 0x6f, 0x6c, 0x74, 0x3a, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6c, -0x74, 0x6e, 0x75, 0x74, 0x2699, 0xfe0f, 0x3a, 0x67, 0x65, 0x61, 0x72, 0x3a, -0x67, 0x65, 0x61, 0x72, 0x26d3, 0x3a, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, -0x3a, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0xd83d, 0xdd2b, 0x3a, 0x67, 0x75, -0x6e, 0x3a, 0x67, 0x75, 0x6e, 0xd83d, 0xdca3, 0x3a, 0x62, 0x6f, 0x6d, 0x62, -0x3a, 0x62, 0x6f, 0x6d, 0x62, 0xd83d, 0xdd2a, 0x3a, 0x6b, 0x6e, 0x69, 0x66, -0x65, 0x3a, 0x6b, 0x6e, 0x69, 0x66, 0x65, 0xd83d, 0xdde1, 0x3a, 0x64, 0x61, -0x67, 0x67, 0x65, 0x72, 0x5f, 0x6b, 0x6e, 0x69, 0x66, 0x65, 0x3a, 0x64, -0x61, 0x67, 0x67, 0x65, 0x72, 0x6b, 0x6e, 0x69, 0x66, 0x65, 0xd83d, 0xdde1, -0x3a, 0x64, 0x61, 0x67, 0x67, 0x65, 0x72, 0x3a, 0x64, 0x61, 0x67, 0x67, -0x65, 0x72, 0x2694, 0xfe0f, 0x3a, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x65, 0x64, -0x5f, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x73, 0x3a, 0x63, 0x72, 0x6f, 0x73, -0x73, 0x65, 0x64, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x73, 0xd83d, 0xdee1, 0x3a, -0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0x3a, 0x73, 0x68, 0x69, 0x65, 0x6c, -0x64, 0xd83d, 0xdeac, 0x3a, 0x73, 0x6d, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x3a, -0x73, 0x6d, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x26b0, 0xfe0f, 0x3a, 0x63, 0x6f, -0x66, 0x66, 0x69, 0x6e, 0x3a, 0x63, 0x6f, 0x66, 0x66, 0x69, 0x6e, 0x26b1, -0xfe0f, 0x3a, 0x66, 0x75, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x5f, 0x75, 0x72, -0x6e, 0x3a, 0x66, 0x75, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x75, 0x72, 0x6e, -0x26b1, 0xfe0f, 0x3a, 0x75, 0x72, 0x6e, 0x3a, 0x75, 0x72, 0x6e, 0xd83c, 0xdffa, -0x3a, 0x61, 0x6d, 0x70, 0x68, 0x6f, 0x72, 0x61, 0x3a, 0x61, 0x6d, 0x70, -0x68, 0x6f, 0x72, 0x61, 0xd83d, 0xdd2e, 0x3a, 0x63, 0x72, 0x79, 0x73, 0x74, -0x61, 0x6c, 0x5f, 0x62, 0x61, 0x6c, 0x6c, 0x3a, 0x62, 0x61, 0x6c, 0x6c, -0x63, 0x72, 0x79, 0x73, 0x74, 0x61, 0x6c, 0xd83d, 0xdcff, 0x3a, 0x70, 0x72, -0x61, 0x79, 0x65, 0x72, 0x5f, 0x62, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x62, -0x65, 0x61, 0x64, 0x73, 0x70, 0x72, 0x61, 0x79, 0x65, 0x72, 0xd83d, 0xdc88, -0x3a, 0x62, 0x61, 0x72, 0x62, 0x65, 0x72, 0x3a, 0x62, 0x61, 0x72, 0x62, -0x65, 0x72, 0x2697, 0xfe0f, 0x3a, 0x61, 0x6c, 0x65, 0x6d, 0x62, 0x69, 0x63, -0x3a, 0x61, 0x6c, 0x65, 0x6d, 0x62, 0x69, 0x63, 0xd83d, 0xdd2d, 0x3a, 0x74, -0x65, 0x6c, 0x65, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x3a, 0x74, 0x65, 0x6c, -0x65, 0x73, 0x63, 0x6f, 0x70, 0x65, 0xd83d, 0xdd2c, 0x3a, 0x6d, 0x69, 0x63, -0x72, 0x6f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x3a, 0x6d, 0x69, 0x63, 0x72, -0x6f, 0x73, 0x63, 0x6f, 0x70, 0x65, 0xd83d, 0xdd73, 0x3a, 0x68, 0x6f, 0x6c, -0x65, 0x3a, 0x68, 0x6f, 0x6c, 0x65, 0xd83d, 0xdc8a, 0x3a, 0x70, 0x69, 0x6c, -0x6c, 0x3a, 0x70, 0x69, 0x6c, 0x6c, 0xd83d, 0xdc89, 0x3a, 0x73, 0x79, 0x72, -0x69, 0x6e, 0x67, 0x65, 0x3a, 0x73, 0x79, 0x72, 0x69, 0x6e, 0x67, 0x65, -0xd83c, 0xdf21, 0x3a, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x6f, 0x6d, 0x65, 0x74, -0x65, 0x72, 0x3a, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x6f, 0x6d, 0x65, 0x74, -0x65, 0x72, 0xd83d, 0xdebd, 0x3a, 0x74, 0x6f, 0x69, 0x6c, 0x65, 0x74, 0x3a, -0x74, 0x6f, 0x69, 0x6c, 0x65, 0x74, 0xd83d, 0xdeb0, 0x3a, 0x70, 0x6f, 0x74, -0x61, 0x62, 0x6c, 0x65, 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x3a, 0x70, -0x6f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x77, 0x61, 0x74, 0x65, 0x72, 0xd83d, -0xdebf, 0x3a, 0x73, 0x68, 0x6f, 0x77, 0x65, 0x72, 0x3a, 0x73, 0x68, 0x6f, -0x77, 0x65, 0x72, 0xd83d, 0xdec1, 0x3a, 0x62, 0x61, 0x74, 0x68, 0x74, 0x75, -0x62, 0x3a, 0x62, 0x61, 0x74, 0x68, 0x74, 0x75, 0x62, 0xd83d, 0xdec0, 0x3a, -0x62, 0x61, 0x74, 0x68, 0x3a, 0x62, 0x61, 0x74, 0x68, 0xd83d, 0xdece, 0x3a, -0x62, 0x65, 0x6c, 0x6c, 0x68, 0x6f, 0x70, 0x5f, 0x62, 0x65, 0x6c, 0x6c, -0x3a, 0x62, 0x65, 0x6c, 0x6c, 0x62, 0x65, 0x6c, 0x6c, 0x68, 0x6f, 0x70, -0xd83d, 0xdece, 0x3a, 0x62, 0x65, 0x6c, 0x6c, 0x68, 0x6f, 0x70, 0x3a, 0x62, -0x65, 0x6c, 0x6c, 0x68, 0x6f, 0x70, 0xd83d, 0xdd11, 0x3a, 0x6b, 0x65, 0x79, -0x3a, 0x6b, 0x65, 0x79, 0xd83d, 0xdddd, 0x3a, 0x6f, 0x6c, 0x64, 0x5f, 0x6b, -0x65, 0x79, 0x3a, 0x6b, 0x65, 0x79, 0x6f, 0x6c, 0x64, 0xd83d, 0xdddd, 0x3a, -0x6b, 0x65, 0x79, 0x32, 0x3a, 0x6b, 0x65, 0x79, 0x32, 0xd83d, 0xdeaa, 0x3a, -0x64, 0x6f, 0x6f, 0x72, 0x3a, 0x64, 0x6f, 0x6f, 0x72, 0xd83d, 0xdecb, 0x3a, -0x63, 0x6f, 0x75, 0x63, 0x68, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x6c, 0x61, -0x6d, 0x70, 0x3a, 0x61, 0x6e, 0x64, 0x63, 0x6f, 0x75, 0x63, 0x68, 0x6c, -0x61, 0x6d, 0x70, 0xd83d, 0xdecb, 0x3a, 0x63, 0x6f, 0x75, 0x63, 0x68, 0x3a, -0x63, 0x6f, 0x75, 0x63, 0x68, 0xd83d, 0xdecf, 0x3a, 0x62, 0x65, 0x64, 0x3a, -0x62, 0x65, 0x64, 0xd83d, 0xdecc, 0x3a, 0x73, 0x6c, 0x65, 0x65, 0x70, 0x69, -0x6e, 0x67, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x64, 0x61, -0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x61, 0x63, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, -0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x6c, 0x65, 0x65, 0x70, 0x69, -0x6e, 0x67, 0xd83d, 0xddbc, 0x3a, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x77, -0x69, 0x74, 0x68, 0x5f, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x3a, -0x66, 0x72, 0x61, 0x6d, 0x65, 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, -0x77, 0x69, 0x74, 0x68, 0xd83d, 0xddbc, 0x3a, 0x66, 0x72, 0x61, 0x6d, 0x65, -0x5f, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x3a, 0x66, 0x72, 0x61, 0x6d, 0x65, -0x70, 0x68, 0x6f, 0x74, 0x6f, 0xd83d, 0xdecd, 0x3a, 0x73, 0x68, 0x6f, 0x70, -0x70, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x61, 0x67, 0x73, 0x3a, 0x62, 0x61, -0x67, 0x73, 0x73, 0x68, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0xd83d, 0xded2, -0x3a, 0x73, 0x68, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x72, -0x6f, 0x6c, 0x6c, 0x65, 0x79, 0x3a, 0x73, 0x68, 0x6f, 0x70, 0x70, 0x69, -0x6e, 0x67, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x79, 0xd83d, 0xded2, 0x3a, -0x73, 0x68, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x61, 0x72, -0x74, 0x3a, 0x63, 0x61, 0x72, 0x74, 0x73, 0x68, 0x6f, 0x70, 0x70, 0x69, -0x6e, 0x67, 0xd83c, 0xdf81, 0x3a, 0x67, 0x69, 0x66, 0x74, 0x3a, 0x67, 0x69, -0x66, 0x74, 0xd83c, 0xdf88, 0x3a, 0x62, 0x61, 0x6c, 0x6c, 0x6f, 0x6f, 0x6e, -0x3a, 0x62, 0x61, 0x6c, 0x6c, 0x6f, 0x6f, 0x6e, 0xd83c, 0xdf8f, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x73, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x73, 0xd83c, 0xdf80, -0x3a, 0x72, 0x69, 0x62, 0x62, 0x6f, 0x6e, 0x3a, 0x72, 0x69, 0x62, 0x62, -0x6f, 0x6e, 0xd83c, 0xdf8a, 0x3a, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x74, 0x74, -0x69, 0x5f, 0x62, 0x61, 0x6c, 0x6c, 0x3a, 0x62, 0x61, 0x6c, 0x6c, 0x63, -0x6f, 0x6e, 0x66, 0x65, 0x74, 0x74, 0x69, 0xd83c, 0xdf89, 0x3a, 0x74, 0x61, -0x64, 0x61, 0x3a, 0x74, 0x61, 0x64, 0x61, 0xd83c, 0xdf8e, 0x3a, 0x64, 0x6f, -0x6c, 0x6c, 0x73, 0x3a, 0x64, 0x6f, 0x6c, 0x6c, 0x73, 0xd83c, 0xdfee, 0x3a, -0x69, 0x7a, 0x61, 0x6b, 0x61, 0x79, 0x61, 0x5f, 0x6c, 0x61, 0x6e, 0x74, -0x65, 0x72, 0x6e, 0x3a, 0x69, 0x7a, 0x61, 0x6b, 0x61, 0x79, 0x61, 0x6c, -0x61, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0xd83c, 0xdf90, 0x3a, 0x77, 0x69, 0x6e, -0x64, 0x5f, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x3a, 0x63, 0x68, 0x69, 0x6d, -0x65, 0x77, 0x69, 0x6e, 0x64, 0x2709, 0xfe0f, 0x3a, 0x65, 0x6e, 0x76, 0x65, -0x6c, 0x6f, 0x70, 0x65, 0x3a, 0x65, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, -0x65, 0xd83d, 0xdce9, 0x3a, 0x65, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, -0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x3a, -0x61, 0x72, 0x72, 0x6f, 0x77, 0x65, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, -0x65, 0x77, 0x69, 0x74, 0x68, 0xd83d, 0xdce8, 0x3a, 0x69, 0x6e, 0x63, 0x6f, -0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, -0x65, 0x3a, 0x65, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x69, 0x6e, -0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0xd83d, 0xdce7, 0x3a, 0x65, 0x6d, 0x61, -0x69, 0x6c, 0x3a, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0xd83d, 0xdce7, 0x3a, 0x65, -0x2d, 0x6d, 0x61, 0x69, 0x6c, 0x3a, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0xd83d, -0xdc8c, 0x3a, 0x6c, 0x6f, 0x76, 0x65, 0x5f, 0x6c, 0x65, 0x74, 0x74, 0x65, -0x72, 0x3a, 0x6c, 0x65, 0x74, 0x74, 0x65, 0x72, 0x6c, 0x6f, 0x76, 0x65, -0xd83d, 0xdce5, 0x3a, 0x69, 0x6e, 0x62, 0x6f, 0x78, 0x5f, 0x74, 0x72, 0x61, -0x79, 0x3a, 0x69, 0x6e, 0x62, 0x6f, 0x78, 0x74, 0x72, 0x61, 0x79, 0xd83d, -0xdce4, 0x3a, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x78, 0x5f, 0x74, 0x72, 0x61, -0x79, 0x3a, 0x6f, 0x75, 0x74, 0x62, 0x6f, 0x78, 0x74, 0x72, 0x61, 0x79, -0xd83d, 0xdce6, 0x3a, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x3a, 0x70, -0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0xd83c, 0xdff7, 0x3a, 0x6c, 0x61, 0x62, -0x65, 0x6c, 0x3a, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0xd83d, 0xdcea, 0x3a, 0x6d, -0x61, 0x69, 0x6c, 0x62, 0x6f, 0x78, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, -0x64, 0x3a, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x6d, 0x61, 0x69, 0x6c, -0x62, 0x6f, 0x78, 0xd83d, 0xdceb, 0x3a, 0x6d, 0x61, 0x69, 0x6c, 0x62, 0x6f, -0x78, 0x3a, 0x6d, 0x61, 0x69, 0x6c, 0x62, 0x6f, 0x78, 0xd83d, 0xdcec, 0x3a, -0x6d, 0x61, 0x69, 0x6c, 0x62, 0x6f, 0x78, 0x5f, 0x77, 0x69, 0x74, 0x68, -0x5f, 0x6d, 0x61, 0x69, 0x6c, 0x3a, 0x6d, 0x61, 0x69, 0x6c, 0x6d, 0x61, -0x69, 0x6c, 0x62, 0x6f, 0x78, 0x77, 0x69, 0x74, 0x68, 0xd83d, 0xdced, 0x3a, -0x6d, 0x61, 0x69, 0x6c, 0x62, 0x6f, 0x78, 0x5f, 0x77, 0x69, 0x74, 0x68, -0x5f, 0x6e, 0x6f, 0x5f, 0x6d, 0x61, 0x69, 0x6c, 0x3a, 0x6d, 0x61, 0x69, -0x6c, 0x6d, 0x61, 0x69, 0x6c, 0x62, 0x6f, 0x78, 0x6e, 0x6f, 0x77, 0x69, -0x74, 0x68, 0xd83d, 0xdcee, 0x3a, 0x70, 0x6f, 0x73, 0x74, 0x62, 0x6f, 0x78, -0x3a, 0x70, 0x6f, 0x73, 0x74, 0x62, 0x6f, 0x78, 0xd83d, 0xdcef, 0x3a, 0x70, -0x6f, 0x73, 0x74, 0x61, 0x6c, 0x5f, 0x68, 0x6f, 0x72, 0x6e, 0x3a, 0x68, -0x6f, 0x72, 0x6e, 0x70, 0x6f, 0x73, 0x74, 0x61, 0x6c, 0xd83d, 0xdcdc, 0x3a, -0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0x3a, 0x73, 0x63, 0x72, 0x6f, 0x6c, -0x6c, 0xd83d, 0xdcc3, 0x3a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x77, 0x69, 0x74, -0x68, 0x5f, 0x63, 0x75, 0x72, 0x6c, 0x3a, 0x63, 0x75, 0x72, 0x6c, 0x70, -0x61, 0x67, 0x65, 0x77, 0x69, 0x74, 0x68, 0xd83d, 0xdcc4, 0x3a, 0x70, 0x61, -0x67, 0x65, 0x5f, 0x66, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x70, -0x3a, 0x66, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x70, 0x61, 0x67, 0x65, 0x75, -0x70, 0xd83d, 0xdcd1, 0x3a, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, -0x5f, 0x74, 0x61, 0x62, 0x73, 0x3a, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, -0x72, 0x6b, 0x74, 0x61, 0x62, 0x73, 0xd83d, 0xdcca, 0x3a, 0x62, 0x61, 0x72, -0x5f, 0x63, 0x68, 0x61, 0x72, 0x74, 0x3a, 0x62, 0x61, 0x72, 0x63, 0x68, -0x61, 0x72, 0x74, 0xd83d, 0xdcc8, 0x3a, 0x63, 0x68, 0x61, 0x72, 0x74, 0x5f, -0x77, 0x69, 0x74, 0x68, 0x5f, 0x75, 0x70, 0x77, 0x61, 0x72, 0x64, 0x73, -0x5f, 0x74, 0x72, 0x65, 0x6e, 0x64, 0x3a, 0x63, 0x68, 0x61, 0x72, 0x74, -0x74, 0x72, 0x65, 0x6e, 0x64, 0x75, 0x70, 0x77, 0x61, 0x72, 0x64, 0x73, -0x77, 0x69, 0x74, 0x68, 0xd83d, 0xdcc9, 0x3a, 0x63, 0x68, 0x61, 0x72, 0x74, -0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x77, 0x61, -0x72, 0x64, 0x73, 0x5f, 0x74, 0x72, 0x65, 0x6e, 0x64, 0x3a, 0x63, 0x68, -0x61, 0x72, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x77, 0x61, 0x72, 0x64, 0x73, -0x74, 0x72, 0x65, 0x6e, 0x64, 0x77, 0x69, 0x74, 0x68, 0xd83d, 0xddd2, 0x3a, -0x73, 0x70, 0x69, 0x72, 0x61, 0x6c, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x5f, -0x70, 0x61, 0x64, 0x3a, 0x6e, 0x6f, 0x74, 0x65, 0x70, 0x61, 0x64, 0x73, -0x70, 0x69, 0x72, 0x61, 0x6c, 0xd83d, 0xddd2, 0x3a, 0x6e, 0x6f, 0x74, 0x65, -0x70, 0x61, 0x64, 0x5f, 0x73, 0x70, 0x69, 0x72, 0x61, 0x6c, 0x3a, 0x6e, -0x6f, 0x74, 0x65, 0x70, 0x61, 0x64, 0x73, 0x70, 0x69, 0x72, 0x61, 0x6c, -0xd83d, 0xddd3, 0x3a, 0x73, 0x70, 0x69, 0x72, 0x61, 0x6c, 0x5f, 0x63, 0x61, -0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, 0x5f, 0x70, 0x61, 0x64, 0x3a, 0x63, -0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, 0x70, 0x61, 0x64, 0x73, 0x70, -0x69, 0x72, 0x61, 0x6c, 0xd83d, 0xddd3, 0x3a, 0x63, 0x61, 0x6c, 0x65, 0x6e, -0x64, 0x61, 0x72, 0x5f, 0x73, 0x70, 0x69, 0x72, 0x61, 0x6c, 0x3a, 0x63, -0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, 0x73, 0x70, 0x69, 0x72, 0x61, -0x6c, 0xd83d, 0xdcc6, 0x3a, 0x63, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, -0x3a, 0x63, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, 0xd83d, 0xdcc5, 0x3a, -0x64, 0x61, 0x74, 0x65, 0x3a, 0x64, 0x61, 0x74, 0x65, 0xd83d, 0xdcc7, 0x3a, -0x63, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x3a, 0x63, -0x61, 0x72, 0x64, 0x69, 0x6e, 0x64, 0x65, 0x78, 0xd83d, 0xddc3, 0x3a, 0x63, -0x61, 0x72, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x62, 0x6f, 0x78, -0x3a, 0x62, 0x6f, 0x78, 0x63, 0x61, 0x72, 0x64, 0x66, 0x69, 0x6c, 0x65, -0xd83d, 0xddc3, 0x3a, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x62, 0x6f, 0x78, 0x3a, -0x62, 0x6f, 0x78, 0x63, 0x61, 0x72, 0x64, 0xd83d, 0xddf3, 0x3a, 0x62, 0x61, -0x6c, 0x6c, 0x6f, 0x74, 0x5f, 0x62, 0x6f, 0x78, 0x5f, 0x77, 0x69, 0x74, -0x68, 0x5f, 0x62, 0x61, 0x6c, 0x6c, 0x6f, 0x74, 0x3a, 0x62, 0x61, 0x6c, -0x6c, 0x6f, 0x74, 0x62, 0x61, 0x6c, 0x6c, 0x6f, 0x74, 0x62, 0x6f, 0x78, -0x77, 0x69, 0x74, 0x68, 0xd83d, 0xddf3, 0x3a, 0x62, 0x61, 0x6c, 0x6c, 0x6f, -0x74, 0x5f, 0x62, 0x6f, 0x78, 0x3a, 0x62, 0x61, 0x6c, 0x6c, 0x6f, 0x74, -0x62, 0x6f, 0x78, 0xd83d, 0xddc4, 0x3a, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x63, -0x61, 0x62, 0x69, 0x6e, 0x65, 0x74, 0x3a, 0x63, 0x61, 0x62, 0x69, 0x6e, -0x65, 0x74, 0x66, 0x69, 0x6c, 0x65, 0xd83d, 0xdccb, 0x3a, 0x63, 0x6c, 0x69, -0x70, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x3a, 0x63, 0x6c, 0x69, 0x70, 0x62, -0x6f, 0x61, 0x72, 0x64, 0xd83d, 0xdcc1, 0x3a, 0x66, 0x69, 0x6c, 0x65, 0x5f, -0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x3a, 0x66, 0x69, 0x6c, 0x65, 0x66, -0x6f, 0x6c, 0x64, 0x65, 0x72, 0xd83d, 0xdcc2, 0x3a, 0x6f, 0x70, 0x65, 0x6e, -0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, -0x3a, 0x66, 0x69, 0x6c, 0x65, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x6f, -0x70, 0x65, 0x6e, 0xd83d, 0xddc2, 0x3a, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x69, -0x6e, 0x64, 0x65, 0x78, 0x5f, 0x64, 0x69, 0x76, 0x69, 0x64, 0x65, 0x72, -0x73, 0x3a, 0x63, 0x61, 0x72, 0x64, 0x64, 0x69, 0x76, 0x69, 0x64, 0x65, -0x72, 0x73, 0x69, 0x6e, 0x64, 0x65, 0x78, 0xd83d, 0xddc2, 0x3a, 0x64, 0x69, -0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x3a, 0x64, 0x69, 0x76, 0x69, 0x64, -0x65, 0x72, 0x73, 0xd83d, 0xddde, 0x3a, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x64, -0x5f, 0x75, 0x70, 0x5f, 0x6e, 0x65, 0x77, 0x73, 0x70, 0x61, 0x70, 0x65, -0x72, 0x3a, 0x6e, 0x65, 0x77, 0x73, 0x70, 0x61, 0x70, 0x65, 0x72, 0x72, -0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x75, 0x70, 0xd83d, 0xddde, 0x3a, 0x6e, 0x65, -0x77, 0x73, 0x70, 0x61, 0x70, 0x65, 0x72, 0x32, 0x3a, 0x6e, 0x65, 0x77, -0x73, 0x70, 0x61, 0x70, 0x65, 0x72, 0x32, 0xd83d, 0xdcf0, 0x3a, 0x6e, 0x65, -0x77, 0x73, 0x70, 0x61, 0x70, 0x65, 0x72, 0x3a, 0x6e, 0x65, 0x77, 0x73, -0x70, 0x61, 0x70, 0x65, 0x72, 0xd83d, 0xdcd3, 0x3a, 0x6e, 0x6f, 0x74, 0x65, -0x62, 0x6f, 0x6f, 0x6b, 0x3a, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, -0x6b, 0xd83d, 0xdcd4, 0x3a, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, -0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x64, 0x65, 0x63, 0x6f, 0x72, 0x61, -0x74, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x3a, 0x63, -0x6f, 0x76, 0x65, 0x72, 0x64, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x69, -0x76, 0x65, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x77, 0x69, -0x74, 0x68, 0xd83d, 0xdcd2, 0x3a, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x3a, -0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0xd83d, 0xdcd5, 0x3a, 0x63, 0x6c, 0x6f, -0x73, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x6f, 0x6b, 0x3a, 0x62, 0x6f, 0x6f, -0x6b, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0xd83d, 0xdcd7, 0x3a, 0x67, 0x72, -0x65, 0x65, 0x6e, 0x5f, 0x62, 0x6f, 0x6f, 0x6b, 0x3a, 0x62, 0x6f, 0x6f, -0x6b, 0x67, 0x72, 0x65, 0x65, 0x6e, 0xd83d, 0xdcd8, 0x3a, 0x62, 0x6c, 0x75, -0x65, 0x5f, 0x62, 0x6f, 0x6f, 0x6b, 0x3a, 0x62, 0x6c, 0x75, 0x65, 0x62, -0x6f, 0x6f, 0x6b, 0xd83d, 0xdcd9, 0x3a, 0x6f, 0x72, 0x61, 0x6e, 0x67, 0x65, -0x5f, 0x62, 0x6f, 0x6f, 0x6b, 0x3a, 0x62, 0x6f, 0x6f, 0x6b, 0x6f, 0x72, -0x61, 0x6e, 0x67, 0x65, 0xd83d, 0xdcda, 0x3a, 0x62, 0x6f, 0x6f, 0x6b, 0x73, -0x3a, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0xd83d, 0xdcd6, 0x3a, 0x62, 0x6f, 0x6f, -0x6b, 0x3a, 0x62, 0x6f, 0x6f, 0x6b, 0xd83d, 0xdd16, 0x3a, 0x62, 0x6f, 0x6f, -0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x3a, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, -0x72, 0x6b, 0xd83d, 0xdd17, 0x3a, 0x6c, 0x69, 0x6e, 0x6b, 0x3a, 0x6c, 0x69, -0x6e, 0x6b, 0xd83d, 0xdcce, 0x3a, 0x70, 0x61, 0x70, 0x65, 0x72, 0x63, 0x6c, -0x69, 0x70, 0x3a, 0x70, 0x61, 0x70, 0x65, 0x72, 0x63, 0x6c, 0x69, 0x70, -0xd83d, 0xdd87, 0x3a, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x5f, 0x70, 0x61, -0x70, 0x65, 0x72, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x3a, 0x6c, 0x69, 0x6e, -0x6b, 0x65, 0x64, 0x70, 0x61, 0x70, 0x65, 0x72, 0x63, 0x6c, 0x69, 0x70, -0x73, 0xd83d, 0xdd87, 0x3a, 0x70, 0x61, 0x70, 0x65, 0x72, 0x63, 0x6c, 0x69, -0x70, 0x73, 0x3a, 0x70, 0x61, 0x70, 0x65, 0x72, 0x63, 0x6c, 0x69, 0x70, -0x73, 0xd83d, 0xdcd0, 0x3a, 0x74, 0x72, 0x69, 0x61, 0x6e, 0x67, 0x75, 0x6c, -0x61, 0x72, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x3a, 0x72, 0x75, 0x6c, -0x65, 0x72, 0x74, 0x72, 0x69, 0x61, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, -0xd83d, 0xdccf, 0x3a, 0x73, 0x74, 0x72, 0x61, 0x69, 0x67, 0x68, 0x74, 0x5f, -0x72, 0x75, 0x6c, 0x65, 0x72, 0x3a, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x73, -0x74, 0x72, 0x61, 0x69, 0x67, 0x68, 0x74, 0xd83d, 0xdccc, 0x3a, 0x70, 0x75, -0x73, 0x68, 0x70, 0x69, 0x6e, 0x3a, 0x70, 0x75, 0x73, 0x68, 0x70, 0x69, -0x6e, 0xd83d, 0xdccd, 0x3a, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x70, 0x75, -0x73, 0x68, 0x70, 0x69, 0x6e, 0x3a, 0x70, 0x75, 0x73, 0x68, 0x70, 0x69, -0x6e, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x2702, 0xfe0f, 0x3a, 0x73, 0x63, 0x69, -0x73, 0x73, 0x6f, 0x72, 0x73, 0x3a, 0x73, 0x63, 0x69, 0x73, 0x73, 0x6f, -0x72, 0x73, 0xd83d, 0xdd8a, 0x3a, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x6c, -0x65, 0x66, 0x74, 0x5f, 0x62, 0x61, 0x6c, 0x6c, 0x70, 0x6f, 0x69, 0x6e, -0x74, 0x5f, 0x70, 0x65, 0x6e, 0x3a, 0x62, 0x61, 0x6c, 0x6c, 0x70, 0x6f, -0x69, 0x6e, 0x74, 0x6c, 0x65, 0x66, 0x74, 0x6c, 0x6f, 0x77, 0x65, 0x72, -0x70, 0x65, 0x6e, 0xd83d, 0xdd8a, 0x3a, 0x70, 0x65, 0x6e, 0x5f, 0x62, 0x61, -0x6c, 0x6c, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3a, 0x62, 0x61, 0x6c, 0x6c, -0x70, 0x6f, 0x69, 0x6e, 0x74, 0x70, 0x65, 0x6e, 0xd83d, 0xdd8b, 0x3a, 0x6c, -0x6f, 0x77, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x66, 0x6f, -0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x5f, 0x70, 0x65, 0x6e, 0x3a, 0x66, -0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x6c, 0x65, 0x66, 0x74, 0x6c, -0x6f, 0x77, 0x65, 0x72, 0x70, 0x65, 0x6e, 0xd83d, 0xdd8b, 0x3a, 0x70, 0x65, -0x6e, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3a, 0x66, -0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x70, 0x65, 0x6e, 0x2712, 0xfe0f, -0x3a, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x69, 0x62, 0x3a, 0x62, -0x6c, 0x61, 0x63, 0x6b, 0x6e, 0x69, 0x62, 0xd83d, 0xdd8c, 0x3a, 0x6c, 0x6f, -0x77, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x70, 0x61, 0x69, -0x6e, 0x74, 0x62, 0x72, 0x75, 0x73, 0x68, 0x3a, 0x6c, 0x65, 0x66, 0x74, -0x6c, 0x6f, 0x77, 0x65, 0x72, 0x70, 0x61, 0x69, 0x6e, 0x74, 0x62, 0x72, -0x75, 0x73, 0x68, 0xd83d, 0xdd8c, 0x3a, 0x70, 0x61, 0x69, 0x6e, 0x74, 0x62, -0x72, 0x75, 0x73, 0x68, 0x3a, 0x70, 0x61, 0x69, 0x6e, 0x74, 0x62, 0x72, -0x75, 0x73, 0x68, 0xd83d, 0xdd8d, 0x3a, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, -0x6c, 0x65, 0x66, 0x74, 0x5f, 0x63, 0x72, 0x61, 0x79, 0x6f, 0x6e, 0x3a, -0x63, 0x72, 0x61, 0x79, 0x6f, 0x6e, 0x6c, 0x65, 0x66, 0x74, 0x6c, 0x6f, -0x77, 0x65, 0x72, 0xd83d, 0xdd8d, 0x3a, 0x63, 0x72, 0x61, 0x79, 0x6f, 0x6e, -0x3a, 0x63, 0x72, 0x61, 0x79, 0x6f, 0x6e, 0xd83d, 0xdcdd, 0x3a, 0x6d, 0x65, -0x6d, 0x6f, 0x3a, 0x6d, 0x65, 0x6d, 0x6f, 0xd83d, 0xdcdd, 0x3a, 0x70, 0x65, -0x6e, 0x63, 0x69, 0x6c, 0x3a, 0x70, 0x65, 0x6e, 0x63, 0x69, 0x6c, 0x270f, -0xfe0f, 0x3a, 0x70, 0x65, 0x6e, 0x63, 0x69, 0x6c, 0x32, 0x3a, 0x70, 0x65, -0x6e, 0x63, 0x69, 0x6c, 0x32, 0xd83d, 0xdd0d, 0x3a, 0x6d, 0x61, 0x67, 0x3a, -0x6d, 0x61, 0x67, 0xd83d, 0xdd0e, 0x3a, 0x6d, 0x61, 0x67, 0x5f, 0x72, 0x69, -0x67, 0x68, 0x74, 0x3a, 0x6d, 0x61, 0x67, 0x72, 0x69, 0x67, 0x68, 0x74, -0xd83d, 0xdd0f, 0x3a, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x77, 0x69, 0x74, 0x68, -0x5f, 0x69, 0x6e, 0x6b, 0x5f, 0x70, 0x65, 0x6e, 0x3a, 0x69, 0x6e, 0x6b, -0x6c, 0x6f, 0x63, 0x6b, 0x70, 0x65, 0x6e, 0x77, 0x69, 0x74, 0x68, 0xd83d, -0xdd10, 0x3a, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x63, -0x6b, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6b, 0x65, 0x79, 0x3a, 0x63, -0x6c, 0x6f, 0x73, 0x65, 0x64, 0x6b, 0x65, 0x79, 0x6c, 0x6f, 0x63, 0x6b, -0x77, 0x69, 0x74, 0x68, 0xd83d, 0xdd12, 0x3a, 0x6c, 0x6f, 0x63, 0x6b, 0x3a, -0x6c, 0x6f, 0x63, 0x6b, 0xd83d, 0xdd13, 0x3a, 0x75, 0x6e, 0x6c, 0x6f, 0x63, -0x6b, 0x3a, 0x75, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x2764, 0xfe0f, 0x3a, 0x68, -0x65, 0x61, 0x72, 0x74, 0x3a, 0x68, 0x65, 0x61, 0x72, 0x74, 0xd83d, 0xdc9b, -0x3a, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x68, 0x65, 0x61, 0x72, -0x74, 0x3a, 0x68, 0x65, 0x61, 0x72, 0x74, 0x79, 0x65, 0x6c, 0x6c, 0x6f, -0x77, 0xd83d, 0xdc9a, 0x3a, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x68, 0x65, -0x61, 0x72, 0x74, 0x3a, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x68, 0x65, 0x61, -0x72, 0x74, 0xd83d, 0xdc99, 0x3a, 0x62, 0x6c, 0x75, 0x65, 0x5f, 0x68, 0x65, -0x61, 0x72, 0x74, 0x3a, 0x62, 0x6c, 0x75, 0x65, 0x68, 0x65, 0x61, 0x72, -0x74, 0xd83d, 0xdc9c, 0x3a, 0x70, 0x75, 0x72, 0x70, 0x6c, 0x65, 0x5f, 0x68, -0x65, 0x61, 0x72, 0x74, 0x3a, 0x68, 0x65, 0x61, 0x72, 0x74, 0x70, 0x75, -0x72, 0x70, 0x6c, 0x65, 0xd83d, 0xdda4, 0x3a, 0x62, 0x6c, 0x61, 0x63, 0x6b, -0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x3a, 0x62, 0x6c, 0x61, 0x63, 0x6b, -0x68, 0x65, 0x61, 0x72, 0x74, 0xd83d, 0xdc94, 0x3a, 0x62, 0x72, 0x6f, 0x6b, -0x65, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x3a, 0x62, 0x72, 0x6f, -0x6b, 0x65, 0x6e, 0x68, 0x65, 0x61, 0x72, 0x74, 0x2763, 0xfe0f, 0x3a, 0x68, -0x65, 0x61, 0x76, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x5f, 0x65, -0x78, 0x63, 0x6c, 0x61, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, -0x61, 0x72, 0x6b, 0x5f, 0x6f, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, -0x3a, 0x65, 0x78, 0x63, 0x6c, 0x61, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, -0x68, 0x65, 0x61, 0x72, 0x74, 0x68, 0x65, 0x61, 0x76, 0x79, 0x6d, 0x61, -0x72, 0x6b, 0x6f, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x2763, 0xfe0f, -0x3a, 0x68, 0x65, 0x61, 0x72, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x61, -0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x65, 0x78, 0x63, 0x6c, 0x61, -0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x68, 0x65, 0x61, 0x72, 0x74, 0xd83d, -0xdc95, 0x3a, 0x74, 0x77, 0x6f, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x73, -0x3a, 0x68, 0x65, 0x61, 0x72, 0x74, 0x73, 0x74, 0x77, 0x6f, 0xd83d, 0xdc9e, -0x3a, 0x72, 0x65, 0x76, 0x6f, 0x6c, 0x76, 0x69, 0x6e, 0x67, 0x5f, 0x68, -0x65, 0x61, 0x72, 0x74, 0x73, 0x3a, 0x68, 0x65, 0x61, 0x72, 0x74, 0x73, -0x72, 0x65, 0x76, 0x6f, 0x6c, 0x76, 0x69, 0x6e, 0x67, 0xd83d, 0xdc93, 0x3a, -0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x3a, 0x68, 0x65, -0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0xd83d, 0xdc97, 0x3a, 0x68, 0x65, -0x61, 0x72, 0x74, 0x70, 0x75, 0x6c, 0x73, 0x65, 0x3a, 0x68, 0x65, 0x61, -0x72, 0x74, 0x70, 0x75, 0x6c, 0x73, 0x65, 0xd83d, 0xdc96, 0x3a, 0x73, 0x70, -0x61, 0x72, 0x6b, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x65, 0x61, 0x72, -0x74, 0x3a, 0x68, 0x65, 0x61, 0x72, 0x74, 0x73, 0x70, 0x61, 0x72, 0x6b, -0x6c, 0x69, 0x6e, 0x67, 0xd83d, 0xdc98, 0x3a, 0x63, 0x75, 0x70, 0x69, 0x64, -0x3a, 0x63, 0x75, 0x70, 0x69, 0x64, 0xd83d, 0xdc9d, 0x3a, 0x67, 0x69, 0x66, -0x74, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x3a, 0x67, 0x69, 0x66, 0x74, -0x68, 0x65, 0x61, 0x72, 0x74, 0xd83d, 0xdc9f, 0x3a, 0x68, 0x65, 0x61, 0x72, -0x74, 0x5f, 0x64, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, -0x3a, 0x64, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x68, -0x65, 0x61, 0x72, 0x74, 0x262e, 0xfe0f, 0x3a, 0x70, 0x65, 0x61, 0x63, 0x65, -0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x3a, 0x70, 0x65, 0x61, 0x63, -0x65, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x262e, 0xfe0f, 0x3a, 0x70, 0x65, -0x61, 0x63, 0x65, 0x3a, 0x70, 0x65, 0x61, 0x63, 0x65, 0x271d, 0xfe0f, 0x3a, -0x6c, 0x61, 0x74, 0x69, 0x6e, 0x5f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x3a, -0x63, 0x72, 0x6f, 0x73, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6e, 0x271d, 0xfe0f, -0x3a, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x3a, 0x63, 0x72, 0x6f, 0x73, 0x73, -0x262a, 0xfe0f, 0x3a, 0x73, 0x74, 0x61, 0x72, 0x5f, 0x61, 0x6e, 0x64, 0x5f, -0x63, 0x72, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x74, 0x3a, 0x61, 0x6e, 0x64, -0x63, 0x72, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x74, 0x73, 0x74, 0x61, 0x72, -0xd83d, 0xdd49, 0x3a, 0x6f, 0x6d, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, -0x3a, 0x6f, 0x6d, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x2638, 0xfe0f, 0x3a, -0x77, 0x68, 0x65, 0x65, 0x6c, 0x5f, 0x6f, 0x66, 0x5f, 0x64, 0x68, 0x61, -0x72, 0x6d, 0x61, 0x3a, 0x64, 0x68, 0x61, 0x72, 0x6d, 0x61, 0x6f, 0x66, -0x77, 0x68, 0x65, 0x65, 0x6c, 0x2721, 0xfe0f, 0x3a, 0x73, 0x74, 0x61, 0x72, -0x5f, 0x6f, 0x66, 0x5f, 0x64, 0x61, 0x76, 0x69, 0x64, 0x3a, 0x64, 0x61, -0x76, 0x69, 0x64, 0x6f, 0x66, 0x73, 0x74, 0x61, 0x72, 0xd83d, 0xdd2f, 0x3a, -0x73, 0x69, 0x78, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x5f, -0x73, 0x74, 0x61, 0x72, 0x3a, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x64, -0x73, 0x69, 0x78, 0x73, 0x74, 0x61, 0x72, 0xd83d, 0xdd4e, 0x3a, 0x6d, 0x65, -0x6e, 0x6f, 0x72, 0x61, 0x68, 0x3a, 0x6d, 0x65, 0x6e, 0x6f, 0x72, 0x61, -0x68, 0x262f, 0xfe0f, 0x3a, 0x79, 0x69, 0x6e, 0x5f, 0x79, 0x61, 0x6e, 0x67, -0x3a, 0x79, 0x61, 0x6e, 0x67, 0x79, 0x69, 0x6e, 0x2626, 0xfe0f, 0x3a, 0x6f, -0x72, 0x74, 0x68, 0x6f, 0x64, 0x6f, 0x78, 0x5f, 0x63, 0x72, 0x6f, 0x73, -0x73, 0x3a, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x6f, 0x72, 0x74, 0x68, 0x6f, -0x64, 0x6f, 0x78, 0xd83d, 0xded0, 0x3a, 0x77, 0x6f, 0x72, 0x73, 0x68, 0x69, -0x70, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x3a, 0x73, 0x79, 0x6d, -0x62, 0x6f, 0x6c, 0x77, 0x6f, 0x72, 0x73, 0x68, 0x69, 0x70, 0xd83d, 0xded0, -0x3a, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x5f, 0x6f, 0x66, 0x5f, 0x77, 0x6f, -0x72, 0x73, 0x68, 0x69, 0x70, 0x3a, 0x6f, 0x66, 0x70, 0x6c, 0x61, 0x63, -0x65, 0x77, 0x6f, 0x72, 0x73, 0x68, 0x69, 0x70, 0x26ce, 0x3a, 0x6f, 0x70, -0x68, 0x69, 0x75, 0x63, 0x68, 0x75, 0x73, 0x3a, 0x6f, 0x70, 0x68, 0x69, -0x75, 0x63, 0x68, 0x75, 0x73, 0x2648, 0xfe0f, 0x3a, 0x61, 0x72, 0x69, 0x65, -0x73, 0x3a, 0x61, 0x72, 0x69, 0x65, 0x73, 0x2649, 0xfe0f, 0x3a, 0x74, 0x61, -0x75, 0x72, 0x75, 0x73, 0x3a, 0x74, 0x61, 0x75, 0x72, 0x75, 0x73, 0x264a, -0xfe0f, 0x3a, 0x67, 0x65, 0x6d, 0x69, 0x6e, 0x69, 0x3a, 0x67, 0x65, 0x6d, -0x69, 0x6e, 0x69, 0x264b, 0xfe0f, 0x3a, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x72, -0x3a, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x264c, 0xfe0f, 0x3a, 0x6c, 0x65, -0x6f, 0x3a, 0x6c, 0x65, 0x6f, 0x264d, 0xfe0f, 0x3a, 0x76, 0x69, 0x72, 0x67, -0x6f, 0x3a, 0x76, 0x69, 0x72, 0x67, 0x6f, 0x264e, 0xfe0f, 0x3a, 0x6c, 0x69, -0x62, 0x72, 0x61, 0x3a, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x264f, 0xfe0f, 0x3a, -0x73, 0x63, 0x6f, 0x72, 0x70, 0x69, 0x75, 0x73, 0x3a, 0x73, 0x63, 0x6f, -0x72, 0x70, 0x69, 0x75, 0x73, 0x2650, 0xfe0f, 0x3a, 0x73, 0x61, 0x67, 0x69, -0x74, 0x74, 0x61, 0x72, 0x69, 0x75, 0x73, 0x3a, 0x73, 0x61, 0x67, 0x69, -0x74, 0x74, 0x61, 0x72, 0x69, 0x75, 0x73, 0x2651, 0xfe0f, 0x3a, 0x63, 0x61, -0x70, 0x72, 0x69, 0x63, 0x6f, 0x72, 0x6e, 0x3a, 0x63, 0x61, 0x70, 0x72, -0x69, 0x63, 0x6f, 0x72, 0x6e, 0x2652, 0xfe0f, 0x3a, 0x61, 0x71, 0x75, 0x61, -0x72, 0x69, 0x75, 0x73, 0x3a, 0x61, 0x71, 0x75, 0x61, 0x72, 0x69, 0x75, -0x73, 0x2653, 0xfe0f, 0x3a, 0x70, 0x69, 0x73, 0x63, 0x65, 0x73, 0x3a, 0x70, -0x69, 0x73, 0x63, 0x65, 0x73, 0xd83c, 0xdd94, 0x3a, 0x69, 0x64, 0x3a, 0x69, -0x64, 0x269b, 0xfe0f, 0x3a, 0x61, 0x74, 0x6f, 0x6d, 0x5f, 0x73, 0x79, 0x6d, -0x62, 0x6f, 0x6c, 0x3a, 0x61, 0x74, 0x6f, 0x6d, 0x73, 0x79, 0x6d, 0x62, -0x6f, 0x6c, 0x269b, 0xfe0f, 0x3a, 0x61, 0x74, 0x6f, 0x6d, 0x3a, 0x61, 0x74, -0x6f, 0x6d, 0xd83c, 0xde51, 0x3a, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x3a, -0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x2622, 0xfe0f, 0x3a, 0x72, 0x61, 0x64, -0x69, 0x6f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x69, 0x67, -0x6e, 0x3a, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x61, 0x63, 0x74, 0x69, 0x76, -0x65, 0x73, 0x69, 0x67, 0x6e, 0x2622, 0xfe0f, 0x3a, 0x72, 0x61, 0x64, 0x69, -0x6f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x3a, 0x72, 0x61, 0x64, 0x69, -0x6f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x2623, 0xfe0f, 0x3a, 0x62, 0x69, -0x6f, 0x68, 0x61, 0x7a, 0x61, 0x72, 0x64, 0x5f, 0x73, 0x69, 0x67, 0x6e, -0x3a, 0x62, 0x69, 0x6f, 0x68, 0x61, 0x7a, 0x61, 0x72, 0x64, 0x73, 0x69, -0x67, 0x6e, 0x2623, 0xfe0f, 0x3a, 0x62, 0x69, 0x6f, 0x68, 0x61, 0x7a, 0x61, -0x72, 0x64, 0x3a, 0x62, 0x69, 0x6f, 0x68, 0x61, 0x7a, 0x61, 0x72, 0x64, -0xd83d, 0xdcf4, 0x3a, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x68, -0x6f, 0x6e, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x3a, 0x6d, 0x6f, 0x62, 0x69, -0x6c, 0x65, 0x6f, 0x66, 0x66, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0xd83d, 0xdcf3, -0x3a, 0x76, 0x69, 0x62, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, -0x6f, 0x64, 0x65, 0x3a, 0x6d, 0x6f, 0x64, 0x65, 0x76, 0x69, 0x62, 0x72, -0x61, 0x74, 0x69, 0x6f, 0x6e, 0xd83c, 0xde36, 0x3a, 0x75, 0x36, 0x37, 0x30, -0x39, 0x3a, 0x75, 0x36, 0x37, 0x30, 0x39, 0xd83c, 0xde1a, 0xfe0f, 0x3a, 0x75, -0x37, 0x31, 0x32, 0x31, 0x3a, 0x75, 0x37, 0x31, 0x32, 0x31, 0xd83c, 0xde38, -0x3a, 0x75, 0x37, 0x35, 0x33, 0x33, 0x3a, 0x75, 0x37, 0x35, 0x33, 0x33, -0xd83c, 0xde3a, 0x3a, 0x75, 0x35, 0x35, 0x62, 0x36, 0x3a, 0x75, 0x35, 0x35, -0x62, 0x36, 0xd83c, 0xde37, 0x3a, 0x75, 0x36, 0x37, 0x30, 0x38, 0x3a, 0x75, -0x36, 0x37, 0x30, 0x38, 0x2734, 0xfe0f, 0x3a, 0x65, 0x69, 0x67, 0x68, 0x74, -0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x61, -0x63, 0x6b, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x3a, 0x62, 0x6c, 0x61, 0x63, -0x6b, 0x65, 0x69, 0x67, 0x68, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, -0x64, 0x73, 0x74, 0x61, 0x72, 0xd83c, 0xdd9a, 0x3a, 0x76, 0x73, 0x3a, 0x76, -0x73, 0xd83d, 0xdcae, 0x3a, 0x77, 0x68, 0x69, 0x74, 0x65, 0x5f, 0x66, 0x6c, -0x6f, 0x77, 0x65, 0x72, 0x3a, 0x66, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x77, -0x68, 0x69, 0x74, 0x65, 0xd83c, 0xde50, 0x3a, 0x69, 0x64, 0x65, 0x6f, 0x67, -0x72, 0x61, 0x70, 0x68, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x74, 0x61, -0x67, 0x65, 0x3a, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x74, 0x61, 0x67, 0x65, -0x69, 0x64, 0x65, 0x6f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x3299, 0xfe0f, 0x3a, -0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x3a, 0x73, 0x65, 0x63, 0x72, 0x65, -0x74, 0x3297, 0xfe0f, 0x3a, 0x63, 0x6f, 0x6e, 0x67, 0x72, 0x61, 0x74, 0x75, -0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x63, 0x6f, 0x6e, 0x67, -0x72, 0x61, 0x74, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0xd83c, -0xde34, 0x3a, 0x75, 0x35, 0x34, 0x30, 0x38, 0x3a, 0x75, 0x35, 0x34, 0x30, -0x38, 0xd83c, 0xde35, 0x3a, 0x75, 0x36, 0x65, 0x38, 0x30, 0x3a, 0x75, 0x36, -0x65, 0x38, 0x30, 0xd83c, 0xde39, 0x3a, 0x75, 0x35, 0x32, 0x37, 0x32, 0x3a, -0x75, 0x35, 0x32, 0x37, 0x32, 0xd83c, 0xde32, 0x3a, 0x75, 0x37, 0x39, 0x38, -0x31, 0x3a, 0x75, 0x37, 0x39, 0x38, 0x31, 0xd83c, 0xdd70, 0xfe0f, 0x3a, 0x61, -0x3a, 0x61, 0xd83c, 0xdd71, 0xfe0f, 0x3a, 0x62, 0x3a, 0x62, 0xd83c, 0xdd8e, 0x3a, -0x61, 0x62, 0x3a, 0x61, 0x62, 0xd83c, 0xdd91, 0x3a, 0x63, 0x6c, 0x3a, 0x63, -0x6c, 0xd83c, 0xdd7e, 0xfe0f, 0x3a, 0x6f, 0x32, 0x3a, 0x6f, 0x32, 0xd83c, 0xdd98, -0x3a, 0x73, 0x6f, 0x73, 0x3a, 0x73, 0x6f, 0x73, 0x274c, 0x3a, 0x78, 0x3a, -0x78, 0x2b55, 0xfe0f, 0x3a, 0x6f, 0x3a, 0x6f, 0xd83d, 0xded1, 0x3a, 0x73, 0x74, -0x6f, 0x70, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x3a, 0x73, 0x69, 0x67, 0x6e, -0x73, 0x74, 0x6f, 0x70, 0xd83d, 0xded1, 0x3a, 0x6f, 0x63, 0x74, 0x61, 0x67, -0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x3a, 0x6f, 0x63, -0x74, 0x61, 0x67, 0x6f, 0x6e, 0x61, 0x6c, 0x73, 0x69, 0x67, 0x6e, 0x26d4, -0xfe0f, 0x3a, 0x6e, 0x6f, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x3a, 0x65, -0x6e, 0x74, 0x72, 0x79, 0x6e, 0x6f, 0xd83d, 0xdcdb, 0x3a, 0x6e, 0x61, 0x6d, -0x65, 0x5f, 0x62, 0x61, 0x64, 0x67, 0x65, 0x3a, 0x62, 0x61, 0x64, 0x67, -0x65, 0x6e, 0x61, 0x6d, 0x65, 0xd83d, 0xdeab, 0x3a, 0x6e, 0x6f, 0x5f, 0x65, -0x6e, 0x74, 0x72, 0x79, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x3a, 0x65, 0x6e, -0x74, 0x72, 0x79, 0x6e, 0x6f, 0x73, 0x69, 0x67, 0x6e, 0xd83d, 0xdcaf, 0x3a, -0x31, 0x30, 0x30, 0x3a, 0x31, 0x30, 0x30, 0xd83d, 0xdca2, 0x3a, 0x61, 0x6e, -0x67, 0x65, 0x72, 0x3a, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2668, 0xfe0f, 0x3a, -0x68, 0x6f, 0x74, 0x73, 0x70, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x68, -0x6f, 0x74, 0x73, 0x70, 0x72, 0x69, 0x6e, 0x67, 0x73, 0xd83d, 0xdeb7, 0x3a, -0x6e, 0x6f, 0x5f, 0x70, 0x65, 0x64, 0x65, 0x73, 0x74, 0x72, 0x69, 0x61, -0x6e, 0x73, 0x3a, 0x6e, 0x6f, 0x70, 0x65, 0x64, 0x65, 0x73, 0x74, 0x72, -0x69, 0x61, 0x6e, 0x73, 0xd83d, 0xdeaf, 0x3a, 0x64, 0x6f, 0x5f, 0x6e, 0x6f, -0x74, 0x5f, 0x6c, 0x69, 0x74, 0x74, 0x65, 0x72, 0x3a, 0x64, 0x6f, 0x6c, -0x69, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x6f, 0x74, 0xd83d, 0xdeb3, 0x3a, 0x6e, -0x6f, 0x5f, 0x62, 0x69, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x73, 0x3a, 0x62, -0x69, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x73, 0x6e, 0x6f, 0xd83d, 0xdeb1, 0x3a, -0x6e, 0x6f, 0x6e, 0x2d, 0x70, 0x6f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, -0x77, 0x61, 0x74, 0x65, 0x72, 0x3a, 0x6e, 0x6f, 0x6e, 0x70, 0x6f, 0x74, -0x61, 0x62, 0x6c, 0x65, 0x77, 0x61, 0x74, 0x65, 0x72, 0xd83d, 0xdd1e, 0x3a, -0x75, 0x6e, 0x64, 0x65, 0x72, 0x61, 0x67, 0x65, 0x3a, 0x75, 0x6e, 0x64, -0x65, 0x72, 0x61, 0x67, 0x65, 0xd83d, 0xdcf5, 0x3a, 0x6e, 0x6f, 0x5f, 0x6d, -0x6f, 0x62, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x73, -0x3a, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x6e, 0x6f, 0x70, 0x68, 0x6f, -0x6e, 0x65, 0x73, 0xd83d, 0xdead, 0x3a, 0x6e, 0x6f, 0x5f, 0x73, 0x6d, 0x6f, -0x6b, 0x69, 0x6e, 0x67, 0x3a, 0x6e, 0x6f, 0x73, 0x6d, 0x6f, 0x6b, 0x69, -0x6e, 0x67, 0x2757, 0xfe0f, 0x3a, 0x65, 0x78, 0x63, 0x6c, 0x61, 0x6d, 0x61, -0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x65, 0x78, 0x63, 0x6c, 0x61, 0x6d, 0x61, -0x74, 0x69, 0x6f, 0x6e, 0x2755, 0x3a, 0x67, 0x72, 0x65, 0x79, 0x5f, 0x65, -0x78, 0x63, 0x6c, 0x61, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x65, -0x78, 0x63, 0x6c, 0x61, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x67, 0x72, -0x65, 0x79, 0x2753, 0x3a, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, -0x3a, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x2754, 0x3a, 0x67, -0x72, 0x65, 0x79, 0x5f, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, -0x3a, 0x67, 0x72, 0x65, 0x79, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, -0x6e, 0x203c, 0xfe0f, 0x3a, 0x62, 0x61, 0x6e, 0x67, 0x62, 0x61, 0x6e, 0x67, -0x3a, 0x62, 0x61, 0x6e, 0x67, 0x62, 0x61, 0x6e, 0x67, 0x2049, 0xfe0f, 0x3a, -0x69, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x6f, 0x62, 0x61, 0x6e, 0x67, 0x3a, -0x69, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x6f, 0x62, 0x61, 0x6e, 0x67, 0xd83d, -0xdd05, 0x3a, 0x6c, 0x6f, 0x77, 0x5f, 0x62, 0x72, 0x69, 0x67, 0x68, 0x74, -0x6e, 0x65, 0x73, 0x73, 0x3a, 0x62, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, -0x65, 0x73, 0x73, 0x6c, 0x6f, 0x77, 0xd83d, 0xdd06, 0x3a, 0x68, 0x69, 0x67, -0x68, 0x5f, 0x62, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, -0x3a, 0x62, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x68, -0x69, 0x67, 0x68, 0x303d, 0xfe0f, 0x3a, 0x70, 0x61, 0x72, 0x74, 0x5f, 0x61, -0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, -0x61, 0x72, 0x6b, 0x3a, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, -0x69, 0x6f, 0x6e, 0x6d, 0x61, 0x72, 0x6b, 0x70, 0x61, 0x72, 0x74, 0x26a0, -0xfe0f, 0x3a, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x3a, 0x77, 0x61, -0x72, 0x6e, 0x69, 0x6e, 0x67, 0xd83d, 0xdeb8, 0x3a, 0x63, 0x68, 0x69, 0x6c, -0x64, 0x72, 0x65, 0x6e, 0x5f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x69, 0x6e, -0x67, 0x3a, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x63, 0x72, -0x6f, 0x73, 0x73, 0x69, 0x6e, 0x67, 0xd83d, 0xdd31, 0x3a, 0x74, 0x72, 0x69, -0x64, 0x65, 0x6e, 0x74, 0x3a, 0x74, 0x72, 0x69, 0x64, 0x65, 0x6e, 0x74, -0x269c, 0xfe0f, 0x3a, 0x66, 0x6c, 0x65, 0x75, 0x72, 0x2d, 0x64, 0x65, 0x2d, -0x6c, 0x69, 0x73, 0x3a, 0x64, 0x65, 0x66, 0x6c, 0x65, 0x75, 0x72, 0x6c, -0x69, 0x73, 0xd83d, 0xdd30, 0x3a, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x6e, 0x65, -0x72, 0x3a, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x267b, 0xfe0f, -0x3a, 0x72, 0x65, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x3a, 0x72, 0x65, 0x63, -0x79, 0x63, 0x6c, 0x65, 0x2705, 0x3a, 0x77, 0x68, 0x69, 0x74, 0x65, 0x5f, -0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x3a, 0x63, -0x68, 0x65, 0x63, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x77, 0x68, 0x69, 0x74, -0x65, 0xd83c, 0xde2f, 0xfe0f, 0x3a, 0x75, 0x36, 0x33, 0x30, 0x37, 0x3a, 0x75, -0x36, 0x33, 0x30, 0x37, 0xd83d, 0xdcb9, 0x3a, 0x63, 0x68, 0x61, 0x72, 0x74, -0x3a, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2747, 0xfe0f, 0x3a, 0x73, 0x70, 0x61, -0x72, 0x6b, 0x6c, 0x65, 0x3a, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x6c, 0x65, -0x2733, 0xfe0f, 0x3a, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x73, 0x70, 0x6f, -0x6b, 0x65, 0x64, 0x5f, 0x61, 0x73, 0x74, 0x65, 0x72, 0x69, 0x73, 0x6b, -0x3a, 0x61, 0x73, 0x74, 0x65, 0x72, 0x69, 0x73, 0x6b, 0x65, 0x69, 0x67, -0x68, 0x74, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x64, 0x274e, 0x3a, 0x6e, 0x65, -0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x71, 0x75, 0x61, 0x72, -0x65, 0x64, 0x5f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x5f, 0x6d, 0x61, 0x72, -0x6b, 0x3a, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x6d, 0x61, 0x72, 0x6b, 0x6e, -0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x73, 0x71, 0x75, 0x61, 0x72, -0x65, 0x64, 0xd83c, 0xdf10, 0x3a, 0x67, 0x6c, 0x6f, 0x62, 0x65, 0x5f, 0x77, -0x69, 0x74, 0x68, 0x5f, 0x6d, 0x65, 0x72, 0x69, 0x64, 0x69, 0x61, 0x6e, -0x73, 0x3a, 0x67, 0x6c, 0x6f, 0x62, 0x65, 0x6d, 0x65, 0x72, 0x69, 0x64, -0x69, 0x61, 0x6e, 0x73, 0x77, 0x69, 0x74, 0x68, 0xd83d, 0xdca0, 0x3a, 0x64, -0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x5f, 0x73, 0x68, 0x61, 0x70, 0x65, -0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x61, 0x5f, 0x64, 0x6f, 0x74, 0x5f, -0x69, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x3a, 0x61, 0x64, 0x69, 0x61, 0x6d, -0x6f, 0x6e, 0x64, 0x64, 0x6f, 0x74, 0x69, 0x6e, 0x73, 0x69, 0x64, 0x65, -0x73, 0x68, 0x61, 0x70, 0x65, 0x77, 0x69, 0x74, 0x68, 0x24c2, 0xfe0f, 0x3a, -0x6d, 0x3a, 0x6d, 0xd83c, 0xdf00, 0x3a, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, -0x65, 0x3a, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0xd83d, 0xdca4, 0x3a, -0x7a, 0x7a, 0x7a, 0x3a, 0x7a, 0x7a, 0x7a, 0xd83c, 0xdfe7, 0x3a, 0x61, 0x74, -0x6d, 0x3a, 0x61, 0x74, 0x6d, 0xd83d, 0xdebe, 0x3a, 0x77, 0x63, 0x3a, 0x77, -0x63, 0x267f, 0xfe0f, 0x3a, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x63, 0x68, 0x61, -0x69, 0x72, 0x3a, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x63, 0x68, 0x61, 0x69, -0x72, 0xd83c, 0xdd7f, 0xfe0f, 0x3a, 0x70, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, -0x3a, 0x70, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0xd83c, 0xde33, 0x3a, 0x75, -0x37, 0x61, 0x37, 0x61, 0x3a, 0x75, 0x37, 0x61, 0x37, 0x61, 0xd83c, 0xde02, -0x3a, 0x73, 0x61, 0x3a, 0x73, 0x61, 0xd83d, 0xdec2, 0x3a, 0x70, 0x61, 0x73, -0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, -0x6c, 0x3a, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x70, 0x61, 0x73, -0x73, 0x70, 0x6f, 0x72, 0x74, 0xd83d, 0xdec3, 0x3a, 0x63, 0x75, 0x73, 0x74, -0x6f, 0x6d, 0x73, 0x3a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x73, 0xd83d, -0xdec4, 0x3a, 0x62, 0x61, 0x67, 0x67, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, -0x61, 0x69, 0x6d, 0x3a, 0x62, 0x61, 0x67, 0x67, 0x61, 0x67, 0x65, 0x63, -0x6c, 0x61, 0x69, 0x6d, 0xd83d, 0xdec5, 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x5f, -0x6c, 0x75, 0x67, 0x67, 0x61, 0x67, 0x65, 0x3a, 0x6c, 0x65, 0x66, 0x74, -0x6c, 0x75, 0x67, 0x67, 0x61, 0x67, 0x65, 0xd83d, 0xdeb9, 0x3a, 0x6d, 0x65, -0x6e, 0x73, 0x3a, 0x6d, 0x65, 0x6e, 0x73, 0xd83d, 0xdeba, 0x3a, 0x77, 0x6f, -0x6d, 0x65, 0x6e, 0x73, 0x3a, 0x77, 0x6f, 0x6d, 0x65, 0x6e, 0x73, 0xd83d, -0xdebc, 0x3a, 0x62, 0x61, 0x62, 0x79, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, -0x6c, 0x3a, 0x62, 0x61, 0x62, 0x79, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, -0xd83d, 0xdebb, 0x3a, 0x72, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x6f, 0x6d, 0x3a, -0x72, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x6f, 0x6d, 0xd83d, 0xdeae, 0x3a, 0x70, -0x75, 0x74, 0x5f, 0x6c, 0x69, 0x74, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x6e, -0x5f, 0x69, 0x74, 0x73, 0x5f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x3a, 0x69, -0x6e, 0x69, 0x74, 0x73, 0x6c, 0x69, 0x74, 0x74, 0x65, 0x72, 0x70, 0x6c, -0x61, 0x63, 0x65, 0x70, 0x75, 0x74, 0xd83c, 0xdfa6, 0x3a, 0x63, 0x69, 0x6e, -0x65, 0x6d, 0x61, 0x3a, 0x63, 0x69, 0x6e, 0x65, 0x6d, 0x61, 0xd83d, 0xdcf6, -0x3a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x65, -0x6e, 0x67, 0x74, 0x68, 0x3a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x73, -0x74, 0x72, 0x65, 0x6e, 0x67, 0x74, 0x68, 0xd83c, 0xde01, 0x3a, 0x6b, 0x6f, -0x6b, 0x6f, 0x3a, 0x6b, 0x6f, 0x6b, 0x6f, 0xd83d, 0xdd23, 0x3a, 0x73, 0x79, -0x6d, 0x62, 0x6f, 0x6c, 0x73, 0x3a, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, -0x73, 0x2139, 0xfe0f, 0x3a, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, -0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x3a, 0x69, -0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x6f, -0x75, 0x72, 0x63, 0x65, 0xd83d, 0xdd24, 0x3a, 0x61, 0x62, 0x63, 0x3a, 0x61, -0x62, 0x63, 0xd83d, 0xdd21, 0x3a, 0x61, 0x62, 0x63, 0x64, 0x3a, 0x61, 0x62, -0x63, 0x64, 0xd83d, 0xdd20, 0x3a, 0x63, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, -0x5f, 0x61, 0x62, 0x63, 0x64, 0x3a, 0x61, 0x62, 0x63, 0x64, 0x63, 0x61, -0x70, 0x69, 0x74, 0x61, 0x6c, 0xd83c, 0xdd96, 0x3a, 0x6e, 0x67, 0x3a, 0x6e, -0x67, 0xd83c, 0xdd97, 0x3a, 0x6f, 0x6b, 0x3a, 0x6f, 0x6b, 0xd83c, 0xdd99, 0x3a, -0x75, 0x70, 0x3a, 0x75, 0x70, 0xd83c, 0xdd92, 0x3a, 0x63, 0x6f, 0x6f, 0x6c, -0x3a, 0x63, 0x6f, 0x6f, 0x6c, 0xd83c, 0xdd95, 0x3a, 0x6e, 0x65, 0x77, 0x3a, -0x6e, 0x65, 0x77, 0xd83c, 0xdd93, 0x3a, 0x66, 0x72, 0x65, 0x65, 0x3a, 0x66, -0x72, 0x65, 0x65, 0x30, 0xfe0f, 0x20e3, 0x3a, 0x7a, 0x65, 0x72, 0x6f, 0x3a, -0x7a, 0x65, 0x72, 0x6f, 0x31, 0xfe0f, 0x20e3, 0x3a, 0x6f, 0x6e, 0x65, 0x3a, -0x6f, 0x6e, 0x65, 0x32, 0xfe0f, 0x20e3, 0x3a, 0x74, 0x77, 0x6f, 0x3a, 0x74, -0x77, 0x6f, 0x33, 0xfe0f, 0x20e3, 0x3a, 0x74, 0x68, 0x72, 0x65, 0x65, 0x3a, -0x74, 0x68, 0x72, 0x65, 0x65, 0x34, 0xfe0f, 0x20e3, 0x3a, 0x66, 0x6f, 0x75, -0x72, 0x3a, 0x66, 0x6f, 0x75, 0x72, 0x35, 0xfe0f, 0x20e3, 0x3a, 0x66, 0x69, -0x76, 0x65, 0x3a, 0x66, 0x69, 0x76, 0x65, 0x36, 0xfe0f, 0x20e3, 0x3a, 0x73, -0x69, 0x78, 0x3a, 0x73, 0x69, 0x78, 0x37, 0xfe0f, 0x20e3, 0x3a, 0x73, 0x65, -0x76, 0x65, 0x6e, 0x3a, 0x73, 0x65, 0x76, 0x65, 0x6e, 0x38, 0xfe0f, 0x20e3, -0x3a, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x65, 0x69, 0x67, 0x68, 0x74, -0x39, 0xfe0f, 0x20e3, 0x3a, 0x6e, 0x69, 0x6e, 0x65, 0x3a, 0x6e, 0x69, 0x6e, -0x65, 0xd83d, 0xdd1f, 0x3a, 0x6b, 0x65, 0x79, 0x63, 0x61, 0x70, 0x5f, 0x74, -0x65, 0x6e, 0x3a, 0x6b, 0x65, 0x79, 0x63, 0x61, 0x70, 0x74, 0x65, 0x6e, -0xd83d, 0xdd22, 0x3a, 0x31, 0x32, 0x33, 0x34, 0x3a, 0x31, 0x32, 0x33, 0x34, -0x23, 0xfe0f, 0x20e3, 0x3a, 0x68, 0x61, 0x73, 0x68, 0x3a, 0x68, 0x61, 0x73, -0x68, 0x2a, 0xfe0f, 0x20e3, 0x3a, 0x6b, 0x65, 0x79, 0x63, 0x61, 0x70, 0x5f, -0x61, 0x73, 0x74, 0x65, 0x72, 0x69, 0x73, 0x6b, 0x3a, 0x61, 0x73, 0x74, -0x65, 0x72, 0x69, 0x73, 0x6b, 0x6b, 0x65, 0x79, 0x63, 0x61, 0x70, 0x2a, -0xfe0f, 0x20e3, 0x3a, 0x61, 0x73, 0x74, 0x65, 0x72, 0x69, 0x73, 0x6b, 0x3a, -0x61, 0x73, 0x74, 0x65, 0x72, 0x69, 0x73, 0x6b, 0x25b6, 0xfe0f, 0x3a, 0x61, -0x72, 0x72, 0x6f, 0x77, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, -0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, -0x64, 0x23f8, 0x3a, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, -0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x62, 0x61, 0x72, 0x3a, 0x62, -0x61, 0x72, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x76, 0x65, 0x72, 0x74, -0x69, 0x63, 0x61, 0x6c, 0x23f8, 0x3a, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, -0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3a, 0x62, 0x75, 0x74, 0x74, 0x6f, -0x6e, 0x70, 0x61, 0x75, 0x73, 0x65, 0x23ef, 0x3a, 0x70, 0x6c, 0x61, 0x79, -0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x3a, 0x70, 0x61, 0x75, 0x73, 0x65, -0x70, 0x6c, 0x61, 0x79, 0x23f9, 0x3a, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x62, -0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3a, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, -0x73, 0x74, 0x6f, 0x70, 0x23fa, 0x3a, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, -0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3a, 0x62, 0x75, 0x74, 0x74, -0x6f, 0x6e, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x23ed, 0x3a, 0x6e, 0x65, -0x78, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x3a, 0x6e, 0x65, 0x78, -0x74, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x23ed, 0x3a, 0x74, 0x72, 0x61, 0x63, -0x6b, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x3a, 0x6e, 0x65, 0x78, 0x74, 0x74, -0x72, 0x61, 0x63, 0x6b, 0x23ee, 0x3a, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, -0x75, 0x73, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x3a, 0x70, 0x72, 0x65, -0x76, 0x69, 0x6f, 0x75, 0x73, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x23ee, 0x3a, -0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, -0x75, 0x73, 0x3a, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x74, -0x72, 0x61, 0x63, 0x6b, 0x23e9, 0x3a, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x66, -0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x3a, 0x66, 0x61, 0x73, 0x74, 0x66, -0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x23ea, 0x3a, 0x72, 0x65, 0x77, 0x69, -0x6e, 0x64, 0x3a, 0x72, 0x65, 0x77, 0x69, 0x6e, 0x64, 0x23eb, 0x3a, 0x61, -0x72, 0x72, 0x6f, 0x77, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, -0x75, 0x70, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x64, 0x6f, 0x75, 0x62, -0x6c, 0x65, 0x75, 0x70, 0x23ec, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, -0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x3a, -0x61, 0x72, 0x72, 0x6f, 0x77, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x64, -0x6f, 0x77, 0x6e, 0x25c0, 0xfe0f, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, -0x62, 0x61, 0x63, 0x6b, 0x77, 0x61, 0x72, 0x64, 0x3a, 0x61, 0x72, 0x72, -0x6f, 0x77, 0x62, 0x61, 0x63, 0x6b, 0x77, 0x61, 0x72, 0x64, 0xd83d, 0xdd3c, -0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, 0x75, 0x70, 0x5f, 0x73, 0x6d, -0x61, 0x6c, 0x6c, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x73, 0x6d, 0x61, -0x6c, 0x6c, 0x75, 0x70, 0xd83d, 0xdd3d, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, -0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x3a, -0x61, 0x72, 0x72, 0x6f, 0x77, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x6d, 0x61, -0x6c, 0x6c, 0x27a1, 0xfe0f, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, 0x72, -0x69, 0x67, 0x68, 0x74, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x72, 0x69, -0x67, 0x68, 0x74, 0x2b05, 0xfe0f, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, -0x6c, 0x65, 0x66, 0x74, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x6c, 0x65, -0x66, 0x74, 0x2b06, 0xfe0f, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, 0x75, -0x70, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x75, 0x70, 0x2b07, 0xfe0f, 0x3a, -0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x3a, 0x61, -0x72, 0x72, 0x6f, 0x77, 0x64, 0x6f, 0x77, 0x6e, 0x2197, 0xfe0f, 0x3a, 0x61, -0x72, 0x72, 0x6f, 0x77, 0x5f, 0x75, 0x70, 0x70, 0x65, 0x72, 0x5f, 0x72, -0x69, 0x67, 0x68, 0x74, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x72, 0x69, -0x67, 0x68, 0x74, 0x75, 0x70, 0x70, 0x65, 0x72, 0x2198, 0xfe0f, 0x3a, 0x61, -0x72, 0x72, 0x6f, 0x77, 0x5f, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x72, -0x69, 0x67, 0x68, 0x74, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x6c, 0x6f, -0x77, 0x65, 0x72, 0x72, 0x69, 0x67, 0x68, 0x74, 0x2199, 0xfe0f, 0x3a, 0x61, -0x72, 0x72, 0x6f, 0x77, 0x5f, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x6c, -0x65, 0x66, 0x74, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x6c, 0x65, 0x66, -0x74, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x2196, 0xfe0f, 0x3a, 0x61, 0x72, 0x72, -0x6f, 0x77, 0x5f, 0x75, 0x70, 0x70, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x66, -0x74, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x6c, 0x65, 0x66, 0x74, 0x75, -0x70, 0x70, 0x65, 0x72, 0x2195, 0xfe0f, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, -0x5f, 0x75, 0x70, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x3a, 0x61, 0x72, 0x72, -0x6f, 0x77, 0x64, 0x6f, 0x77, 0x6e, 0x75, 0x70, 0x2194, 0xfe0f, 0x3a, 0x6c, -0x65, 0x66, 0x74, 0x5f, 0x72, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x61, 0x72, -0x72, 0x6f, 0x77, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x6c, 0x65, 0x66, -0x74, 0x72, 0x69, 0x67, 0x68, 0x74, 0x21aa, 0xfe0f, 0x3a, 0x61, 0x72, 0x72, -0x6f, 0x77, 0x5f, 0x72, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x68, 0x6f, 0x6f, -0x6b, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x68, 0x6f, 0x6f, 0x6b, 0x72, -0x69, 0x67, 0x68, 0x74, 0x21a9, 0xfe0f, 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x77, -0x61, 0x72, 0x64, 0x73, 0x5f, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, 0x77, -0x69, 0x74, 0x68, 0x5f, 0x68, 0x6f, 0x6f, 0x6b, 0x3a, 0x61, 0x72, 0x72, -0x6f, 0x77, 0x68, 0x6f, 0x6f, 0x6b, 0x6c, 0x65, 0x66, 0x74, 0x77, 0x61, -0x72, 0x64, 0x73, 0x77, 0x69, 0x74, 0x68, 0x2934, 0xfe0f, 0x3a, 0x61, 0x72, -0x72, 0x6f, 0x77, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, -0x75, 0x70, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x68, 0x65, 0x61, 0x64, -0x69, 0x6e, 0x67, 0x75, 0x70, 0x2935, 0xfe0f, 0x3a, 0x61, 0x72, 0x72, 0x6f, -0x77, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x6f, -0x77, 0x6e, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x64, 0x6f, 0x77, 0x6e, -0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0xd83d, 0xdd00, 0x3a, 0x74, 0x77, -0x69, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x69, 0x67, 0x68, 0x74, 0x77, -0x61, 0x72, 0x64, 0x73, 0x5f, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x73, 0x3a, -0x61, 0x72, 0x72, 0x6f, 0x77, 0x73, 0x72, 0x69, 0x67, 0x68, 0x74, 0x77, -0x61, 0x72, 0x64, 0x73, 0x74, 0x77, 0x69, 0x73, 0x74, 0x65, 0x64, 0xd83d, -0xdd01, 0x3a, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x3a, 0x72, 0x65, 0x70, -0x65, 0x61, 0x74, 0xd83d, 0xdd02, 0x3a, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, -0x5f, 0x6f, 0x6e, 0x65, 0x3a, 0x6f, 0x6e, 0x65, 0x72, 0x65, 0x70, 0x65, -0x61, 0x74, 0xd83d, 0xdd04, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x73, 0x5f, -0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6c, 0x6f, 0x63, 0x6b, -0x77, 0x69, 0x73, 0x65, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x73, 0x63, -0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x77, -0x69, 0x73, 0x65, 0xd83d, 0xdd03, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x73, -0x5f, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x77, 0x69, 0x73, 0x65, 0x3a, 0x61, -0x72, 0x72, 0x6f, 0x77, 0x73, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x77, 0x69, -0x73, 0x65, 0xd83c, 0xdfb5, 0x3a, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x61, 0x6c, -0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x3a, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x61, -0x6c, 0x6e, 0x6f, 0x74, 0x65, 0xd83c, 0xdfb6, 0x3a, 0x6e, 0x6f, 0x74, 0x65, -0x73, 0x3a, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x2795, 0x3a, 0x68, 0x65, 0x61, -0x76, 0x79, 0x5f, 0x70, 0x6c, 0x75, 0x73, 0x5f, 0x73, 0x69, 0x67, 0x6e, -0x3a, 0x68, 0x65, 0x61, 0x76, 0x79, 0x70, 0x6c, 0x75, 0x73, 0x73, 0x69, -0x67, 0x6e, 0x2796, 0x3a, 0x68, 0x65, 0x61, 0x76, 0x79, 0x5f, 0x6d, 0x69, -0x6e, 0x75, 0x73, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x3a, 0x68, 0x65, 0x61, -0x76, 0x79, 0x6d, 0x69, 0x6e, 0x75, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x2797, -0x3a, 0x68, 0x65, 0x61, 0x76, 0x79, 0x5f, 0x64, 0x69, 0x76, 0x69, 0x73, -0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x3a, 0x64, 0x69, 0x76, -0x69, 0x73, 0x69, 0x6f, 0x6e, 0x68, 0x65, 0x61, 0x76, 0x79, 0x73, 0x69, -0x67, 0x6e, 0x2716, 0xfe0f, 0x3a, 0x68, 0x65, 0x61, 0x76, 0x79, 0x5f, 0x6d, -0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, -0x6e, 0x5f, 0x78, 0x3a, 0x68, 0x65, 0x61, 0x76, 0x79, 0x6d, 0x75, 0x6c, -0x74, 0x69, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x78, -0xd83d, 0xdcb2, 0x3a, 0x68, 0x65, 0x61, 0x76, 0x79, 0x5f, 0x64, 0x6f, 0x6c, -0x6c, 0x61, 0x72, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x3a, 0x64, 0x6f, 0x6c, -0x6c, 0x61, 0x72, 0x68, 0x65, 0x61, 0x76, 0x79, 0x73, 0x69, 0x67, 0x6e, -0xd83d, 0xdcb1, 0x3a, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x5f, -0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x3a, 0x63, 0x75, 0x72, -0x72, 0x65, 0x6e, 0x63, 0x79, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, -0x65, 0x2122, 0x3a, 0x74, 0x6d, 0x3a, 0x74, 0x6d, 0xa9, 0x3a, 0x63, 0x6f, -0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x63, 0x6f, 0x70, 0x79, -0x72, 0x69, 0x67, 0x68, 0x74, 0xae, 0x3a, 0x72, 0x65, 0x67, 0x69, 0x73, -0x74, 0x65, 0x72, 0x65, 0x64, 0x3a, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, -0x65, 0x72, 0x65, 0x64, 0x3030, 0x3a, 0x77, 0x61, 0x76, 0x79, 0x5f, 0x64, -0x61, 0x73, 0x68, 0x3a, 0x64, 0x61, 0x73, 0x68, 0x77, 0x61, 0x76, 0x79, -0x27b0, 0x3a, 0x63, 0x75, 0x72, 0x6c, 0x79, 0x5f, 0x6c, 0x6f, 0x6f, 0x70, -0x3a, 0x63, 0x75, 0x72, 0x6c, 0x79, 0x6c, 0x6f, 0x6f, 0x70, 0x27bf, 0x3a, -0x6c, 0x6f, 0x6f, 0x70, 0x3a, 0x6c, 0x6f, 0x6f, 0x70, 0xd83d, 0xdd1a, 0x3a, -0x65, 0x6e, 0x64, 0x3a, 0x65, 0x6e, 0x64, 0xd83d, 0xdd19, 0x3a, 0x62, 0x61, -0x63, 0x6b, 0x3a, 0x62, 0x61, 0x63, 0x6b, 0xd83d, 0xdd1b, 0x3a, 0x6f, 0x6e, -0x3a, 0x6f, 0x6e, 0xd83d, 0xdd1d, 0x3a, 0x74, 0x6f, 0x70, 0x3a, 0x74, 0x6f, -0x70, 0xd83d, 0xdd1c, 0x3a, 0x73, 0x6f, 0x6f, 0x6e, 0x3a, 0x73, 0x6f, 0x6f, -0x6e, 0x2714, 0xfe0f, 0x3a, 0x68, 0x65, 0x61, 0x76, 0x79, 0x5f, 0x63, 0x68, -0x65, 0x63, 0x6b, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x3a, 0x63, 0x68, 0x65, -0x63, 0x6b, 0x68, 0x65, 0x61, 0x76, 0x79, 0x6d, 0x61, 0x72, 0x6b, 0x2611, -0xfe0f, 0x3a, 0x62, 0x61, 0x6c, 0x6c, 0x6f, 0x74, 0x5f, 0x62, 0x6f, 0x78, -0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x3a, -0x62, 0x61, 0x6c, 0x6c, 0x6f, 0x74, 0x62, 0x6f, 0x78, 0x63, 0x68, 0x65, -0x63, 0x6b, 0x77, 0x69, 0x74, 0x68, 0xd83d, 0xdd18, 0x3a, 0x72, 0x61, 0x64, -0x69, 0x6f, 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3a, 0x62, 0x75, -0x74, 0x74, 0x6f, 0x6e, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x26aa, 0xfe0f, 0x3a, -0x77, 0x68, 0x69, 0x74, 0x65, 0x5f, 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, -0x3a, 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x77, 0x68, 0x69, 0x74, 0x65, -0x26ab, 0xfe0f, 0x3a, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x5f, 0x63, 0x69, 0x72, -0x63, 0x6c, 0x65, 0x3a, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x63, 0x69, 0x72, -0x63, 0x6c, 0x65, 0xd83d, 0xdd34, 0x3a, 0x72, 0x65, 0x64, 0x5f, 0x63, 0x69, -0x72, 0x63, 0x6c, 0x65, 0x3a, 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x72, -0x65, 0x64, 0xd83d, 0xdd35, 0x3a, 0x62, 0x6c, 0x75, 0x65, 0x5f, 0x63, 0x69, -0x72, 0x63, 0x6c, 0x65, 0x3a, 0x62, 0x6c, 0x75, 0x65, 0x63, 0x69, 0x72, -0x63, 0x6c, 0x65, 0xd83d, 0xdd3a, 0x3a, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x5f, -0x72, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6e, 0x67, 0x6c, 0x65, -0x3a, 0x72, 0x65, 0x64, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x74, 0x72, 0x69, -0x61, 0x6e, 0x67, 0x6c, 0x65, 0xd83d, 0xdd3b, 0x3a, 0x73, 0x6d, 0x61, 0x6c, -0x6c, 0x5f, 0x72, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6e, 0x67, -0x6c, 0x65, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x3a, 0x64, 0x6f, 0x77, 0x6e, -0x72, 0x65, 0x64, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x74, 0x72, 0x69, 0x61, -0x6e, 0x67, 0x6c, 0x65, 0xd83d, 0xdd38, 0x3a, 0x73, 0x6d, 0x61, 0x6c, 0x6c, -0x5f, 0x6f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x69, 0x61, 0x6d, -0x6f, 0x6e, 0x64, 0x3a, 0x64, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x6f, -0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0xd83d, 0xdd39, -0x3a, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x5f, 0x62, 0x6c, 0x75, 0x65, 0x5f, -0x64, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x3a, 0x62, 0x6c, 0x75, 0x65, -0x64, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x73, 0x6d, 0x61, 0x6c, 0x6c, -0xd83d, 0xdd36, 0x3a, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x5f, 0x6f, 0x72, 0x61, -0x6e, 0x67, 0x65, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x3a, -0x64, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x6c, 0x61, 0x72, 0x67, 0x65, -0x6f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0xd83d, 0xdd37, 0x3a, 0x6c, 0x61, 0x72, -0x67, 0x65, 0x5f, 0x62, 0x6c, 0x75, 0x65, 0x5f, 0x64, 0x69, 0x61, 0x6d, -0x6f, 0x6e, 0x64, 0x3a, 0x62, 0x6c, 0x75, 0x65, 0x64, 0x69, 0x61, 0x6d, -0x6f, 0x6e, 0x64, 0x6c, 0x61, 0x72, 0x67, 0x65, 0xd83d, 0xdd33, 0x3a, 0x77, -0x68, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x5f, -0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3a, 0x62, 0x75, 0x74, 0x74, 0x6f, -0x6e, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x77, 0x68, 0x69, 0x74, 0x65, -0xd83d, 0xdd32, 0x3a, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x5f, 0x73, 0x71, 0x75, -0x61, 0x72, 0x65, 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3a, 0x62, -0x6c, 0x61, 0x63, 0x6b, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x71, -0x75, 0x61, 0x72, 0x65, 0x25aa, 0xfe0f, 0x3a, 0x62, 0x6c, 0x61, 0x63, 0x6b, -0x5f, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x5f, 0x73, 0x71, 0x75, 0x61, 0x72, -0x65, 0x3a, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x73, 0x6d, 0x61, 0x6c, 0x6c, -0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x25ab, 0xfe0f, 0x3a, 0x77, 0x68, 0x69, -0x74, 0x65, 0x5f, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x5f, 0x73, 0x71, 0x75, -0x61, 0x72, 0x65, 0x3a, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x73, 0x71, 0x75, -0x61, 0x72, 0x65, 0x77, 0x68, 0x69, 0x74, 0x65, 0x25fe, 0xfe0f, 0x3a, 0x62, -0x6c, 0x61, 0x63, 0x6b, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x5f, -0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x5f, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, -0x3a, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, -0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x25fd, -0xfe0f, 0x3a, 0x77, 0x68, 0x69, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x64, 0x69, -0x75, 0x6d, 0x5f, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x5f, 0x73, 0x71, 0x75, -0x61, 0x72, 0x65, 0x3a, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x73, 0x6d, -0x61, 0x6c, 0x6c, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x77, 0x68, 0x69, -0x74, 0x65, 0x25fc, 0xfe0f, 0x3a, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x5f, 0x6d, -0x65, 0x64, 0x69, 0x75, 0x6d, 0x5f, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, -0x3a, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, -0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x25fb, 0xfe0f, 0x3a, 0x77, 0x68, 0x69, -0x74, 0x65, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x5f, 0x73, 0x71, -0x75, 0x61, 0x72, 0x65, 0x3a, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x73, -0x71, 0x75, 0x61, 0x72, 0x65, 0x77, 0x68, 0x69, 0x74, 0x65, 0x2b1b, 0xfe0f, -0x3a, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x5f, 0x6c, 0x61, 0x72, 0x67, 0x65, -0x5f, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x3a, 0x62, 0x6c, 0x61, 0x63, -0x6b, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, -0x2b1c, 0xfe0f, 0x3a, 0x77, 0x68, 0x69, 0x74, 0x65, 0x5f, 0x6c, 0x61, 0x72, -0x67, 0x65, 0x5f, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x3a, 0x6c, 0x61, -0x72, 0x67, 0x65, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x77, 0x68, 0x69, -0x74, 0x65, 0xd83d, 0xdd08, 0x3a, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, -0x3a, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0xd83d, 0xdd07, 0x3a, 0x6d, -0x75, 0x74, 0x65, 0x3a, 0x6d, 0x75, 0x74, 0x65, 0xd83d, 0xdd09, 0x3a, 0x73, -0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0xd83d, 0xdd0a, -0x3a, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x3a, -0x6c, 0x6f, 0x75, 0x64, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0xd83d, 0xdd14, 0x3a, -0x62, 0x65, 0x6c, 0x6c, 0x3a, 0x62, 0x65, 0x6c, 0x6c, 0xd83d, 0xdd15, 0x3a, -0x6e, 0x6f, 0x5f, 0x62, 0x65, 0x6c, 0x6c, 0x3a, 0x62, 0x65, 0x6c, 0x6c, -0x6e, 0x6f, 0xd83d, 0xdce3, 0x3a, 0x6d, 0x65, 0x67, 0x61, 0x3a, 0x6d, 0x65, -0x67, 0x61, 0xd83d, 0xdce2, 0x3a, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x70, 0x65, -0x61, 0x6b, 0x65, 0x72, 0x3a, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x70, 0x65, -0x61, 0x6b, 0x65, 0x72, 0xd83d, 0xdde8, 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x5f, -0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x5f, 0x62, 0x75, 0x62, 0x62, 0x6c, -0x65, 0x3a, 0x62, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x6c, 0x65, 0x66, 0x74, -0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0xd83d, 0xdde8, 0x3a, 0x73, 0x70, 0x65, -0x65, 0x63, 0x68, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x6c, 0x65, 0x66, -0x74, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0xd83d, 0xdc41, 0x200d, 0xd83d, 0xdde8, -0x3a, 0x65, 0x79, 0x65, 0x5f, 0x69, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x65, -0x63, 0x68, 0x5f, 0x62, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x3a, 0x62, 0x75, -0x62, 0x62, 0x6c, 0x65, 0x65, 0x79, 0x65, 0x69, 0x6e, 0x73, 0x70, 0x65, -0x65, 0x63, 0x68, 0xd83d, 0xdcac, 0x3a, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, -0x5f, 0x62, 0x61, 0x6c, 0x6c, 0x6f, 0x6f, 0x6e, 0x3a, 0x62, 0x61, 0x6c, -0x6c, 0x6f, 0x6f, 0x6e, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0xd83d, 0xdcad, -0x3a, 0x74, 0x68, 0x6f, 0x75, 0x67, 0x68, 0x74, 0x5f, 0x62, 0x61, 0x6c, -0x6c, 0x6f, 0x6f, 0x6e, 0x3a, 0x62, 0x61, 0x6c, 0x6c, 0x6f, 0x6f, 0x6e, -0x74, 0x68, 0x6f, 0x75, 0x67, 0x68, 0x74, 0xd83d, 0xddef, 0x3a, 0x72, 0x69, -0x67, 0x68, 0x74, 0x5f, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x5f, 0x62, 0x75, -0x62, 0x62, 0x6c, 0x65, 0x3a, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x62, 0x75, -0x62, 0x62, 0x6c, 0x65, 0x72, 0x69, 0x67, 0x68, 0x74, 0xd83d, 0xddef, 0x3a, -0x61, 0x6e, 0x67, 0x65, 0x72, 0x5f, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, -0x61, 0x6e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x67, 0x68, 0x74, 0x2660, 0xfe0f, -0x3a, 0x73, 0x70, 0x61, 0x64, 0x65, 0x73, 0x3a, 0x73, 0x70, 0x61, 0x64, -0x65, 0x73, 0x2663, 0xfe0f, 0x3a, 0x63, 0x6c, 0x75, 0x62, 0x73, 0x3a, 0x63, -0x6c, 0x75, 0x62, 0x73, 0x2665, 0xfe0f, 0x3a, 0x68, 0x65, 0x61, 0x72, 0x74, -0x73, 0x3a, 0x68, 0x65, 0x61, 0x72, 0x74, 0x73, 0x2666, 0xfe0f, 0x3a, 0x64, -0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x73, 0x3a, 0x64, 0x69, 0x61, 0x6d, -0x6f, 0x6e, 0x64, 0x73, 0xd83c, 0xdccf, 0x3a, 0x62, 0x6c, 0x61, 0x63, 0x6b, -0x5f, 0x6a, 0x6f, 0x6b, 0x65, 0x72, 0x3a, 0x62, 0x6c, 0x61, 0x63, 0x6b, -0x6a, 0x6f, 0x6b, 0x65, 0x72, 0xd83c, 0xdfb4, 0x3a, 0x66, 0x6c, 0x6f, 0x77, -0x65, 0x72, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x69, 0x6e, 0x67, 0x5f, 0x63, -0x61, 0x72, 0x64, 0x73, 0x3a, 0x63, 0x61, 0x72, 0x64, 0x73, 0x66, 0x6c, -0x6f, 0x77, 0x65, 0x72, 0x70, 0x6c, 0x61, 0x79, 0x69, 0x6e, 0x67, 0xd83c, -0xdc04, 0xfe0f, 0x3a, 0x6d, 0x61, 0x68, 0x6a, 0x6f, 0x6e, 0x67, 0x3a, 0x6d, -0x61, 0x68, 0x6a, 0x6f, 0x6e, 0x67, 0xd83d, 0xdd50, 0x3a, 0x63, 0x6c, 0x6f, -0x63, 0x6b, 0x31, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x31, 0xd83d, 0xdd51, -0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x32, 0x3a, 0x63, 0x6c, 0x6f, 0x63, -0x6b, 0x32, 0xd83d, 0xdd52, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x33, 0x3a, -0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x33, 0xd83d, 0xdd53, 0x3a, 0x63, 0x6c, 0x6f, -0x63, 0x6b, 0x34, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x34, 0xd83d, 0xdd54, -0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x35, 0x3a, 0x63, 0x6c, 0x6f, 0x63, -0x6b, 0x35, 0xd83d, 0xdd55, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x36, 0x3a, -0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x36, 0xd83d, 0xdd56, 0x3a, 0x63, 0x6c, 0x6f, -0x63, 0x6b, 0x37, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x37, 0xd83d, 0xdd57, -0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x38, 0x3a, 0x63, 0x6c, 0x6f, 0x63, -0x6b, 0x38, 0xd83d, 0xdd58, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x39, 0x3a, -0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x39, 0xd83d, 0xdd59, 0x3a, 0x63, 0x6c, 0x6f, -0x63, 0x6b, 0x31, 0x30, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x31, 0x30, -0xd83d, 0xdd5a, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x31, 0x31, 0x3a, 0x63, -0x6c, 0x6f, 0x63, 0x6b, 0x31, 0x31, 0xd83d, 0xdd5b, 0x3a, 0x63, 0x6c, 0x6f, -0x63, 0x6b, 0x31, 0x32, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x31, 0x32, -0xd83d, 0xdd5c, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x31, 0x33, 0x30, 0x3a, -0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x31, 0x33, 0x30, 0xd83d, 0xdd5d, 0x3a, 0x63, -0x6c, 0x6f, 0x63, 0x6b, 0x32, 0x33, 0x30, 0x3a, 0x63, 0x6c, 0x6f, 0x63, -0x6b, 0x32, 0x33, 0x30, 0xd83d, 0xdd5e, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, -0x33, 0x33, 0x30, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x33, 0x33, 0x30, -0xd83d, 0xdd5f, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x34, 0x33, 0x30, 0x3a, -0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x34, 0x33, 0x30, 0xd83d, 0xdd60, 0x3a, 0x63, -0x6c, 0x6f, 0x63, 0x6b, 0x35, 0x33, 0x30, 0x3a, 0x63, 0x6c, 0x6f, 0x63, -0x6b, 0x35, 0x33, 0x30, 0xd83d, 0xdd61, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, -0x36, 0x33, 0x30, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x36, 0x33, 0x30, -0xd83d, 0xdd62, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x37, 0x33, 0x30, 0x3a, -0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x37, 0x33, 0x30, 0xd83d, 0xdd63, 0x3a, 0x63, -0x6c, 0x6f, 0x63, 0x6b, 0x38, 0x33, 0x30, 0x3a, 0x63, 0x6c, 0x6f, 0x63, -0x6b, 0x38, 0x33, 0x30, 0xd83d, 0xdd64, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, -0x39, 0x33, 0x30, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x39, 0x33, 0x30, -0xd83d, 0xdd65, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x31, 0x30, 0x33, 0x30, -0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x31, 0x30, 0x33, 0x30, 0xd83d, 0xdd66, -0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x31, 0x31, 0x33, 0x30, 0x3a, 0x63, -0x6c, 0x6f, 0x63, 0x6b, 0x31, 0x31, 0x33, 0x30, 0xd83d, 0xdd67, 0x3a, 0x63, -0x6c, 0x6f, 0x63, 0x6b, 0x31, 0x32, 0x33, 0x30, 0x3a, 0x63, 0x6c, 0x6f, -0x63, 0x6b, 0x31, 0x32, 0x33, 0x30, 0xd83c, 0xdff3, 0x3a, 0x77, 0x61, 0x76, -0x69, 0x6e, 0x67, 0x5f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x5f, 0x66, 0x6c, -0x61, 0x67, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x77, 0x61, 0x76, 0x69, 0x6e, -0x67, 0x77, 0x68, 0x69, 0x74, 0x65, 0xd83c, 0xdff3, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x5f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x77, 0x68, 0x69, 0x74, 0x65, 0xd83c, 0xdff4, 0x3a, 0x77, 0x61, 0x76, 0x69, -0x6e, 0x67, 0x5f, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x5f, 0x66, 0x6c, 0x61, -0x67, 0x3a, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x66, 0x6c, 0x61, 0x67, 0x77, -0x61, 0x76, 0x69, 0x6e, 0x67, 0xd83c, 0xdff4, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x5f, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x3a, 0x62, 0x6c, 0x61, 0x63, 0x6b, -0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdfc1, 0x3a, 0x63, 0x68, 0x65, 0x63, 0x6b, -0x65, 0x72, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x3a, 0x63, 0x68, -0x65, 0x63, 0x6b, 0x65, 0x72, 0x65, 0x64, 0x66, 0x6c, 0x61, 0x67, 0xd83d, -0xdea9, 0x3a, 0x74, 0x72, 0x69, 0x61, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, -0x5f, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x73, -0x74, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6f, 0x6e, 0x70, 0x6f, 0x73, 0x74, -0x74, 0x72, 0x69, 0x61, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0xd83c, 0xdff3, -0xfe0f, 0x200d, 0xd83c, 0xdf08, 0x3a, 0x67, 0x61, 0x79, 0x5f, 0x70, 0x72, 0x69, -0x64, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x67, 0x61, 0x79, 0x70, 0x72, 0x69, 0x64, 0x65, 0xd83c, 0xdff3, 0xfe0f, 0x200d, -0xd83c, 0xdf08, 0x3a, 0x72, 0x61, 0x69, 0x6e, 0x62, 0x6f, 0x77, 0x5f, 0x66, -0x6c, 0x61, 0x67, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x72, 0x61, 0x69, 0x6e, -0x62, 0x6f, 0x77, 0xd83c, 0xdde6, 0xd83c, 0xddeb, 0x3a, 0x61, 0x66, 0x3a, 0x61, -0x66, 0xd83c, 0xdde6, 0xd83c, 0xddeb, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x61, -0x66, 0x3a, 0x61, 0x66, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde6, 0xd83c, 0xddfd, -0x3a, 0x61, 0x78, 0x3a, 0x61, 0x78, 0xd83c, 0xdde6, 0xd83c, 0xddfd, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x5f, 0x61, 0x78, 0x3a, 0x61, 0x78, 0x66, 0x6c, 0x61, -0x67, 0xd83c, 0xdde6, 0xd83c, 0xddf1, 0x3a, 0x61, 0x6c, 0x3a, 0x61, 0x6c, 0xd83c, -0xdde6, 0xd83c, 0xddf1, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x61, 0x6c, 0x3a, -0x61, 0x6c, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde9, 0xd83c, 0xddff, 0x3a, 0x64, -0x7a, 0x3a, 0x64, 0x7a, 0xd83c, 0xdde9, 0xd83c, 0xddff, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x5f, 0x64, 0x7a, 0x3a, 0x64, 0x7a, 0x66, 0x6c, 0x61, 0x67, 0xd83c, -0xdde6, 0xd83c, 0xddf8, 0x3a, 0x61, 0x73, 0x3a, 0x61, 0x73, 0xd83c, 0xdde6, 0xd83c, -0xddf8, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x61, 0x73, 0x3a, 0x61, 0x73, -0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde6, 0xd83c, 0xdde9, 0x3a, 0x61, 0x64, 0x3a, -0x61, 0x64, 0xd83c, 0xdde6, 0xd83c, 0xdde9, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, -0x61, 0x64, 0x3a, 0x61, 0x64, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde6, 0xd83c, -0xddf4, 0x3a, 0x61, 0x6f, 0x3a, 0x61, 0x6f, 0xd83c, 0xdde6, 0xd83c, 0xddf4, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x5f, 0x61, 0x6f, 0x3a, 0x61, 0x6f, 0x66, 0x6c, -0x61, 0x67, 0xd83c, 0xdde6, 0xd83c, 0xddee, 0x3a, 0x61, 0x69, 0x3a, 0x61, 0x69, -0xd83c, 0xdde6, 0xd83c, 0xddee, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x61, 0x69, -0x3a, 0x61, 0x69, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde6, 0xd83c, 0xddf6, 0x3a, -0x61, 0x71, 0x3a, 0x61, 0x71, 0xd83c, 0xdde6, 0xd83c, 0xddf6, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x5f, 0x61, 0x71, 0x3a, 0x61, 0x71, 0x66, 0x6c, 0x61, 0x67, -0xd83c, 0xdde6, 0xd83c, 0xddec, 0x3a, 0x61, 0x67, 0x3a, 0x61, 0x67, 0xd83c, 0xdde6, -0xd83c, 0xddec, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x61, 0x67, 0x3a, 0x61, -0x67, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde6, 0xd83c, 0xddf7, 0x3a, 0x61, 0x72, -0x3a, 0x61, 0x72, 0xd83c, 0xdde6, 0xd83c, 0xddf7, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x5f, 0x61, 0x72, 0x3a, 0x61, 0x72, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde6, -0xd83c, 0xddf2, 0x3a, 0x61, 0x6d, 0x3a, 0x61, 0x6d, 0xd83c, 0xdde6, 0xd83c, 0xddf2, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x61, 0x6d, 0x3a, 0x61, 0x6d, 0x66, -0x6c, 0x61, 0x67, 0xd83c, 0xdde6, 0xd83c, 0xddfc, 0x3a, 0x61, 0x77, 0x3a, 0x61, -0x77, 0xd83c, 0xdde6, 0xd83c, 0xddfc, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x61, -0x77, 0x3a, 0x61, 0x77, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde6, 0xd83c, 0xddfa, -0x3a, 0x68, 0x6d, 0x3a, 0x68, 0x6d, 0xd83c, 0xdde6, 0xd83c, 0xddfa, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x5f, 0x68, 0x6d, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x68, -0x6d, 0xd83c, 0xdde6, 0xd83c, 0xddfa, 0x3a, 0x61, 0x75, 0x3a, 0x61, 0x75, 0xd83c, -0xdde6, 0xd83c, 0xddfa, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x61, 0x75, 0x3a, -0x61, 0x75, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde6, 0xd83c, 0xddf9, 0x3a, 0x61, -0x74, 0x3a, 0x61, 0x74, 0xd83c, 0xdde6, 0xd83c, 0xddf9, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x5f, 0x61, 0x74, 0x3a, 0x61, 0x74, 0x66, 0x6c, 0x61, 0x67, 0xd83c, -0xdde6, 0xd83c, 0xddff, 0x3a, 0x61, 0x7a, 0x3a, 0x61, 0x7a, 0xd83c, 0xdde6, 0xd83c, -0xddff, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x61, 0x7a, 0x3a, 0x61, 0x7a, -0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde7, 0xd83c, 0xddf8, 0x3a, 0x62, 0x73, 0x3a, -0x62, 0x73, 0xd83c, 0xdde7, 0xd83c, 0xddf8, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, -0x62, 0x73, 0x3a, 0x62, 0x73, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde7, 0xd83c, -0xdded, 0x3a, 0x62, 0x68, 0x3a, 0x62, 0x68, 0xd83c, 0xdde7, 0xd83c, 0xdded, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x5f, 0x62, 0x68, 0x3a, 0x62, 0x68, 0x66, 0x6c, -0x61, 0x67, 0xd83c, 0xdde7, 0xd83c, 0xdde9, 0x3a, 0x62, 0x64, 0x3a, 0x62, 0x64, -0xd83c, 0xdde7, 0xd83c, 0xdde9, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x62, 0x64, -0x3a, 0x62, 0x64, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde7, 0xd83c, 0xdde7, 0x3a, -0x62, 0x62, 0x3a, 0x62, 0x62, 0xd83c, 0xdde7, 0xd83c, 0xdde7, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x5f, 0x62, 0x62, 0x3a, 0x62, 0x62, 0x66, 0x6c, 0x61, 0x67, -0xd83c, 0xdde7, 0xd83c, 0xddfe, 0x3a, 0x62, 0x79, 0x3a, 0x62, 0x79, 0xd83c, 0xdde7, -0xd83c, 0xddfe, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x62, 0x79, 0x3a, 0x62, -0x79, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde7, 0xd83c, 0xddea, 0x3a, 0x62, 0x65, -0x3a, 0x62, 0x65, 0xd83c, 0xdde7, 0xd83c, 0xddea, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x5f, 0x62, 0x65, 0x3a, 0x62, 0x65, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde7, -0xd83c, 0xddff, 0x3a, 0x62, 0x7a, 0x3a, 0x62, 0x7a, 0xd83c, 0xdde7, 0xd83c, 0xddff, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x62, 0x7a, 0x3a, 0x62, 0x7a, 0x66, -0x6c, 0x61, 0x67, 0xd83c, 0xdde7, 0xd83c, 0xddef, 0x3a, 0x62, 0x6a, 0x3a, 0x62, -0x6a, 0xd83c, 0xdde7, 0xd83c, 0xddef, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x62, -0x6a, 0x3a, 0x62, 0x6a, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde7, 0xd83c, 0xddf2, -0x3a, 0x62, 0x6d, 0x3a, 0x62, 0x6d, 0xd83c, 0xdde7, 0xd83c, 0xddf2, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x5f, 0x62, 0x6d, 0x3a, 0x62, 0x6d, 0x66, 0x6c, 0x61, -0x67, 0xd83c, 0xdde7, 0xd83c, 0xddf9, 0x3a, 0x62, 0x74, 0x3a, 0x62, 0x74, 0xd83c, -0xdde7, 0xd83c, 0xddf9, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x62, 0x74, 0x3a, -0x62, 0x74, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde7, 0xd83c, 0xddf4, 0x3a, 0x62, -0x6f, 0x3a, 0x62, 0x6f, 0xd83c, 0xdde7, 0xd83c, 0xddf4, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x5f, 0x62, 0x6f, 0x3a, 0x62, 0x6f, 0x66, 0x6c, 0x61, 0x67, 0xd83c, -0xdde7, 0xd83c, 0xdde6, 0x3a, 0x62, 0x61, 0x3a, 0x62, 0x61, 0xd83c, 0xdde7, 0xd83c, -0xdde6, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x62, 0x61, 0x3a, 0x62, 0x61, -0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde7, 0xd83c, 0xddfc, 0x3a, 0x62, 0x77, 0x3a, -0x62, 0x77, 0xd83c, 0xdde7, 0xd83c, 0xddfc, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, -0x62, 0x77, 0x3a, 0x62, 0x77, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde7, 0xd83c, -0xddf7, 0x3a, 0x62, 0x72, 0x3a, 0x62, 0x72, 0xd83c, 0xdde7, 0xd83c, 0xddf7, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x5f, 0x62, 0x72, 0x3a, 0x62, 0x72, 0x66, 0x6c, -0x61, 0x67, 0xd83c, 0xddee, 0xd83c, 0xddf4, 0x3a, 0x69, 0x6f, 0x3a, 0x69, 0x6f, -0xd83c, 0xddee, 0xd83c, 0xddf4, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x69, 0x6f, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x69, 0x6f, 0xd83c, 0xddee, 0xd83c, 0xddf4, 0x3a, -0x64, 0x67, 0x3a, 0x64, 0x67, 0xd83c, 0xddee, 0xd83c, 0xddf4, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x5f, 0x64, 0x67, 0x3a, 0x64, 0x67, 0x66, 0x6c, 0x61, 0x67, -0xd83c, 0xddfb, 0xd83c, 0xddec, 0x3a, 0x76, 0x67, 0x3a, 0x76, 0x67, 0xd83c, 0xddfb, -0xd83c, 0xddec, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x76, 0x67, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x76, 0x67, 0xd83c, 0xdde7, 0xd83c, 0xddf3, 0x3a, 0x62, 0x6e, -0x3a, 0x62, 0x6e, 0xd83c, 0xdde7, 0xd83c, 0xddf3, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x5f, 0x62, 0x6e, 0x3a, 0x62, 0x6e, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde7, -0xd83c, 0xddec, 0x3a, 0x62, 0x67, 0x3a, 0x62, 0x67, 0xd83c, 0xdde7, 0xd83c, 0xddec, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x62, 0x67, 0x3a, 0x62, 0x67, 0x66, -0x6c, 0x61, 0x67, 0xd83c, 0xdde7, 0xd83c, 0xddeb, 0x3a, 0x62, 0x66, 0x3a, 0x62, -0x66, 0xd83c, 0xdde7, 0xd83c, 0xddeb, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x62, -0x66, 0x3a, 0x62, 0x66, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde7, 0xd83c, 0xddee, -0x3a, 0x62, 0x69, 0x3a, 0x62, 0x69, 0xd83c, 0xdde7, 0xd83c, 0xddee, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x5f, 0x62, 0x69, 0x3a, 0x62, 0x69, 0x66, 0x6c, 0x61, -0x67, 0xd83c, 0xddf0, 0xd83c, 0xdded, 0x3a, 0x6b, 0x68, 0x3a, 0x6b, 0x68, 0xd83c, -0xddf0, 0xd83c, 0xdded, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6b, 0x68, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x6b, 0x68, 0xd83c, 0xdde8, 0xd83c, 0xddf2, 0x3a, 0x63, -0x6d, 0x3a, 0x63, 0x6d, 0xd83c, 0xdde8, 0xd83c, 0xddf2, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x5f, 0x63, 0x6d, 0x3a, 0x63, 0x6d, 0x66, 0x6c, 0x61, 0x67, 0xd83c, -0xdde8, 0xd83c, 0xdde6, 0x3a, 0x63, 0x61, 0x3a, 0x63, 0x61, 0xd83c, 0xdde8, 0xd83c, -0xdde6, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x63, 0x61, 0x3a, 0x63, 0x61, -0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xddee, 0xd83c, 0xdde8, 0x3a, 0x69, 0x63, 0x3a, -0x69, 0x63, 0xd83c, 0xddee, 0xd83c, 0xdde8, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, -0x69, 0x63, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x69, 0x63, 0xd83c, 0xdde8, 0xd83c, -0xddfb, 0x3a, 0x63, 0x76, 0x3a, 0x63, 0x76, 0xd83c, 0xdde8, 0xd83c, 0xddfb, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x5f, 0x63, 0x76, 0x3a, 0x63, 0x76, 0x66, 0x6c, -0x61, 0x67, 0xd83c, 0xdde7, 0xd83c, 0xddf6, 0x3a, 0x62, 0x71, 0x3a, 0x62, 0x71, -0xd83c, 0xdde7, 0xd83c, 0xddf6, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x62, 0x71, -0x3a, 0x62, 0x71, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xddf0, 0xd83c, 0xddfe, 0x3a, -0x6b, 0x79, 0x3a, 0x6b, 0x79, 0xd83c, 0xddf0, 0xd83c, 0xddfe, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x5f, 0x6b, 0x79, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6b, 0x79, -0xd83c, 0xdde8, 0xd83c, 0xddeb, 0x3a, 0x63, 0x66, 0x3a, 0x63, 0x66, 0xd83c, 0xdde8, -0xd83c, 0xddeb, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x63, 0x66, 0x3a, 0x63, -0x66, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xddf9, 0xd83c, 0xdde9, 0x3a, 0x74, 0x64, -0x3a, 0x74, 0x64, 0xd83c, 0xddf9, 0xd83c, 0xdde9, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x5f, 0x74, 0x64, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x74, 0x64, 0xd83c, 0xdde8, -0xd83c, 0xddf1, 0x3a, 0x63, 0x68, 0x69, 0x6c, 0x65, 0x3a, 0x63, 0x68, 0x69, -0x6c, 0x65, 0xd83c, 0xdde8, 0xd83c, 0xddf1, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, -0x63, 0x6c, 0x3a, 0x63, 0x6c, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde8, 0xd83c, -0xddf3, 0x3a, 0x63, 0x6e, 0x3a, 0x63, 0x6e, 0xd83c, 0xdde8, 0xd83c, 0xddf3, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x5f, 0x63, 0x6e, 0x3a, 0x63, 0x6e, 0x66, 0x6c, -0x61, 0x67, 0xd83c, 0xdde8, 0xd83c, 0xddfd, 0x3a, 0x63, 0x78, 0x3a, 0x63, 0x78, -0xd83c, 0xdde8, 0xd83c, 0xddfd, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x63, 0x78, -0x3a, 0x63, 0x78, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde8, 0xd83c, 0xdde8, 0x3a, -0x63, 0x63, 0x3a, 0x63, 0x63, 0xd83c, 0xdde8, 0xd83c, 0xdde8, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x5f, 0x63, 0x63, 0x3a, 0x63, 0x63, 0x66, 0x6c, 0x61, 0x67, -0xd83c, 0xdde8, 0xd83c, 0xddf4, 0x3a, 0x63, 0x6f, 0x3a, 0x63, 0x6f, 0xd83c, 0xdde8, -0xd83c, 0xddf4, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x63, 0x6f, 0x3a, 0x63, -0x6f, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xddf0, 0xd83c, 0xddf2, 0x3a, 0x6b, 0x6d, -0x3a, 0x6b, 0x6d, 0xd83c, 0xddf0, 0xd83c, 0xddf2, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x5f, 0x6b, 0x6d, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6b, 0x6d, 0xd83c, 0xdde8, -0xd83c, 0xddec, 0x3a, 0x63, 0x67, 0x3a, 0x63, 0x67, 0xd83c, 0xdde8, 0xd83c, 0xddec, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x63, 0x67, 0x3a, 0x63, 0x67, 0x66, -0x6c, 0x61, 0x67, 0xd83c, 0xdde8, 0xd83c, 0xdde9, 0x3a, 0x63, 0x6f, 0x6e, 0x67, -0x6f, 0x3a, 0x63, 0x6f, 0x6e, 0x67, 0x6f, 0xd83c, 0xdde8, 0xd83c, 0xdde9, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x5f, 0x63, 0x64, 0x3a, 0x63, 0x64, 0x66, 0x6c, -0x61, 0x67, 0xd83c, 0xdde8, 0xd83c, 0xddf0, 0x3a, 0x63, 0x6b, 0x3a, 0x63, 0x6b, -0xd83c, 0xdde8, 0xd83c, 0xddf0, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x63, 0x6b, -0x3a, 0x63, 0x6b, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde8, 0xd83c, 0xddf7, 0x3a, -0x63, 0x72, 0x3a, 0x63, 0x72, 0xd83c, 0xdde8, 0xd83c, 0xddf7, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x5f, 0x63, 0x72, 0x3a, 0x63, 0x72, 0x66, 0x6c, 0x61, 0x67, -0xd83c, 0xdde8, 0xd83c, 0xddee, 0x3a, 0x63, 0x69, 0x3a, 0x63, 0x69, 0xd83c, 0xdde8, -0xd83c, 0xddee, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x63, 0x69, 0x3a, 0x63, -0x69, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdded, 0xd83c, 0xddf7, 0x3a, 0x68, 0x72, -0x3a, 0x68, 0x72, 0xd83c, 0xdded, 0xd83c, 0xddf7, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x5f, 0x68, 0x72, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x68, 0x72, 0xd83c, 0xdde8, -0xd83c, 0xddfa, 0x3a, 0x63, 0x75, 0x3a, 0x63, 0x75, 0xd83c, 0xdde8, 0xd83c, 0xddfa, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x63, 0x75, 0x3a, 0x63, 0x75, 0x66, -0x6c, 0x61, 0x67, 0xd83c, 0xdde8, 0xd83c, 0xddfc, 0x3a, 0x63, 0x77, 0x3a, 0x63, -0x77, 0xd83c, 0xdde8, 0xd83c, 0xddfc, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x63, -0x77, 0x3a, 0x63, 0x77, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde8, 0xd83c, 0xddfe, -0x3a, 0x63, 0x79, 0x3a, 0x63, 0x79, 0xd83c, 0xdde8, 0xd83c, 0xddfe, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x5f, 0x63, 0x79, 0x3a, 0x63, 0x79, 0x66, 0x6c, 0x61, -0x67, 0xd83c, 0xdde8, 0xd83c, 0xddff, 0x3a, 0x63, 0x7a, 0x3a, 0x63, 0x7a, 0xd83c, -0xdde8, 0xd83c, 0xddff, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x63, 0x7a, 0x3a, -0x63, 0x7a, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde9, 0xd83c, 0xddf0, 0x3a, 0x64, -0x6b, 0x3a, 0x64, 0x6b, 0xd83c, 0xdde9, 0xd83c, 0xddf0, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x5f, 0x64, 0x6b, 0x3a, 0x64, 0x6b, 0x66, 0x6c, 0x61, 0x67, 0xd83c, -0xdde9, 0xd83c, 0xddef, 0x3a, 0x64, 0x6a, 0x3a, 0x64, 0x6a, 0xd83c, 0xdde9, 0xd83c, -0xddef, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x6a, 0x3a, 0x64, 0x6a, -0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde9, 0xd83c, 0xddf2, 0x3a, 0x64, 0x6d, 0x3a, -0x64, 0x6d, 0xd83c, 0xdde9, 0xd83c, 0xddf2, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, -0x64, 0x6d, 0x3a, 0x64, 0x6d, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde9, 0xd83c, -0xddf4, 0x3a, 0x64, 0x6f, 0x3a, 0x64, 0x6f, 0xd83c, 0xdde9, 0xd83c, 0xddf4, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x6f, 0x3a, 0x64, 0x6f, 0x66, 0x6c, -0x61, 0x67, 0xd83c, 0xddea, 0xd83c, 0xdde8, 0x3a, 0x65, 0x63, 0x3a, 0x65, 0x63, -0xd83c, 0xddea, 0xd83c, 0xdde8, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x65, 0x63, -0x3a, 0x65, 0x63, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xddea, 0xd83c, 0xddec, 0x3a, -0x65, 0x67, 0x3a, 0x65, 0x67, 0xd83c, 0xddea, 0xd83c, 0xddec, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x5f, 0x65, 0x67, 0x3a, 0x65, 0x67, 0x66, 0x6c, 0x61, 0x67, -0xd83c, 0xddf8, 0xd83c, 0xddfb, 0x3a, 0x73, 0x76, 0x3a, 0x73, 0x76, 0xd83c, 0xddf8, -0xd83c, 0xddfb, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x76, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x73, 0x76, 0xd83c, 0xddec, 0xd83c, 0xddf6, 0x3a, 0x67, 0x71, -0x3a, 0x67, 0x71, 0xd83c, 0xddec, 0xd83c, 0xddf6, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x5f, 0x67, 0x71, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x67, 0x71, 0xd83c, 0xddea, -0xd83c, 0xddf7, 0x3a, 0x65, 0x72, 0x3a, 0x65, 0x72, 0xd83c, 0xddea, 0xd83c, 0xddf7, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x65, 0x72, 0x3a, 0x65, 0x72, 0x66, -0x6c, 0x61, 0x67, 0xd83c, 0xddea, 0xd83c, 0xddea, 0x3a, 0x65, 0x65, 0x3a, 0x65, -0x65, 0xd83c, 0xddea, 0xd83c, 0xddea, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x65, -0x65, 0x3a, 0x65, 0x65, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xddea, 0xd83c, 0xddf9, -0x3a, 0x65, 0x74, 0x3a, 0x65, 0x74, 0xd83c, 0xddea, 0xd83c, 0xddf9, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x5f, 0x65, 0x74, 0x3a, 0x65, 0x74, 0x66, 0x6c, 0x61, -0x67, 0xd83c, 0xddea, 0xd83c, 0xddfa, 0x3a, 0x65, 0x75, 0x3a, 0x65, 0x75, 0xd83c, -0xddea, 0xd83c, 0xddfa, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x65, 0x75, 0x3a, -0x65, 0x75, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xddeb, 0xd83c, 0xddf0, 0x3a, 0x66, -0x6b, 0x3a, 0x66, 0x6b, 0xd83c, 0xddeb, 0xd83c, 0xddf0, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x5f, 0x66, 0x6b, 0x3a, 0x66, 0x6b, 0x66, 0x6c, 0x61, 0x67, 0xd83c, -0xddeb, 0xd83c, 0xddf4, 0x3a, 0x66, 0x6f, 0x3a, 0x66, 0x6f, 0xd83c, 0xddeb, 0xd83c, -0xddf4, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x66, 0x6f, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x66, 0x6f, 0xd83c, 0xddeb, 0xd83c, 0xddef, 0x3a, 0x66, 0x6a, 0x3a, -0x66, 0x6a, 0xd83c, 0xddeb, 0xd83c, 0xddef, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, -0x66, 0x6a, 0x3a, 0x66, 0x6a, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xddeb, 0xd83c, -0xddee, 0x3a, 0x66, 0x69, 0x3a, 0x66, 0x69, 0xd83c, 0xddeb, 0xd83c, 0xddee, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x5f, 0x66, 0x69, 0x3a, 0x66, 0x69, 0x66, 0x6c, -0x61, 0x67, 0xd83c, 0xddeb, 0xd83c, 0xddf7, 0x3a, 0x6d, 0x66, 0x3a, 0x6d, 0x66, -0xd83c, 0xddeb, 0xd83c, 0xddf7, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x66, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6d, 0x66, 0xd83c, 0xddeb, 0xd83c, 0xddf7, 0x3a, -0x66, 0x72, 0x3a, 0x66, 0x72, 0xd83c, 0xddeb, 0xd83c, 0xddf7, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x5f, 0x66, 0x72, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x66, 0x72, -0xd83c, 0xddeb, 0xd83c, 0xddf7, 0x3a, 0x63, 0x70, 0x3a, 0x63, 0x70, 0xd83c, 0xddeb, -0xd83c, 0xddf7, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x63, 0x70, 0x3a, 0x63, -0x70, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xddec, 0xd83c, 0xddeb, 0x3a, 0x67, 0x66, -0x3a, 0x67, 0x66, 0xd83c, 0xddec, 0xd83c, 0xddeb, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x5f, 0x67, 0x66, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x67, 0x66, 0xd83c, 0xddf5, -0xd83c, 0xddeb, 0x3a, 0x70, 0x66, 0x3a, 0x70, 0x66, 0xd83c, 0xddf5, 0xd83c, 0xddeb, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x70, 0x66, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x70, 0x66, 0xd83c, 0xddf9, 0xd83c, 0xddeb, 0x3a, 0x74, 0x66, 0x3a, 0x74, -0x66, 0xd83c, 0xddf9, 0xd83c, 0xddeb, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, -0x66, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x74, 0x66, 0xd83c, 0xddec, 0xd83c, 0xdde6, -0x3a, 0x67, 0x61, 0x3a, 0x67, 0x61, 0xd83c, 0xddec, 0xd83c, 0xdde6, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x5f, 0x67, 0x61, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x67, -0x61, 0xd83c, 0xddec, 0xd83c, 0xddf2, 0x3a, 0x67, 0x6d, 0x3a, 0x67, 0x6d, 0xd83c, -0xddec, 0xd83c, 0xddf2, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x67, 0x6d, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x67, 0x6d, 0xd83c, 0xddec, 0xd83c, 0xddea, 0x3a, 0x67, -0x65, 0x3a, 0x67, 0x65, 0xd83c, 0xddec, 0xd83c, 0xddea, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x5f, 0x67, 0x65, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x67, 0x65, 0xd83c, -0xdde9, 0xd83c, 0xddea, 0x3a, 0x64, 0x65, 0x3a, 0x64, 0x65, 0xd83c, 0xdde9, 0xd83c, -0xddea, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x65, 0x3a, 0x64, 0x65, -0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xddec, 0xd83c, 0xdded, 0x3a, 0x67, 0x68, 0x3a, -0x67, 0x68, 0xd83c, 0xddec, 0xd83c, 0xdded, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, -0x67, 0x68, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x67, 0x68, 0xd83c, 0xddec, 0xd83c, -0xddee, 0x3a, 0x67, 0x69, 0x3a, 0x67, 0x69, 0xd83c, 0xddec, 0xd83c, 0xddee, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x5f, 0x67, 0x69, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x67, 0x69, 0xd83c, 0xddec, 0xd83c, 0xddf7, 0x3a, 0x67, 0x72, 0x3a, 0x67, 0x72, -0xd83c, 0xddec, 0xd83c, 0xddf7, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x67, 0x72, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x67, 0x72, 0xd83c, 0xddec, 0xd83c, 0xddf1, 0x3a, -0x67, 0x6c, 0x3a, 0x67, 0x6c, 0xd83c, 0xddec, 0xd83c, 0xddf1, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x5f, 0x67, 0x6c, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x67, 0x6c, -0xd83c, 0xddec, 0xd83c, 0xdde9, 0x3a, 0x67, 0x64, 0x3a, 0x67, 0x64, 0xd83c, 0xddec, -0xd83c, 0xdde9, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x67, 0x64, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x67, 0x64, 0xd83c, 0xddec, 0xd83c, 0xddf5, 0x3a, 0x67, 0x70, -0x3a, 0x67, 0x70, 0xd83c, 0xddec, 0xd83c, 0xddf5, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x5f, 0x67, 0x70, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x67, 0x70, 0xd83c, 0xddec, -0xd83c, 0xddfa, 0x3a, 0x67, 0x75, 0x3a, 0x67, 0x75, 0xd83c, 0xddec, 0xd83c, 0xddfa, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x67, 0x75, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x67, 0x75, 0xd83c, 0xddec, 0xd83c, 0xddf9, 0x3a, 0x67, 0x74, 0x3a, 0x67, -0x74, 0xd83c, 0xddec, 0xd83c, 0xddf9, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x67, -0x74, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x67, 0x74, 0xd83c, 0xddec, 0xd83c, 0xddec, -0x3a, 0x67, 0x67, 0x3a, 0x67, 0x67, 0xd83c, 0xddec, 0xd83c, 0xddec, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x5f, 0x67, 0x67, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x67, -0x67, 0xd83c, 0xddec, 0xd83c, 0xddf3, 0x3a, 0x67, 0x6e, 0x3a, 0x67, 0x6e, 0xd83c, -0xddec, 0xd83c, 0xddf3, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x67, 0x6e, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x67, 0x6e, 0xd83c, 0xddec, 0xd83c, 0xddfc, 0x3a, 0x67, -0x77, 0x3a, 0x67, 0x77, 0xd83c, 0xddec, 0xd83c, 0xddfc, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x5f, 0x67, 0x77, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x67, 0x77, 0xd83c, -0xddec, 0xd83c, 0xddfe, 0x3a, 0x67, 0x79, 0x3a, 0x67, 0x79, 0xd83c, 0xddec, 0xd83c, -0xddfe, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x67, 0x79, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x67, 0x79, 0xd83c, 0xdded, 0xd83c, 0xddf9, 0x3a, 0x68, 0x74, 0x3a, -0x68, 0x74, 0xd83c, 0xdded, 0xd83c, 0xddf9, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, -0x68, 0x74, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x68, 0x74, 0xd83c, 0xdded, 0xd83c, -0xddf3, 0x3a, 0x68, 0x6e, 0x3a, 0x68, 0x6e, 0xd83c, 0xdded, 0xd83c, 0xddf3, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x5f, 0x68, 0x6e, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x68, 0x6e, 0xd83c, 0xdded, 0xd83c, 0xddf0, 0x3a, 0x68, 0x6b, 0x3a, 0x68, 0x6b, -0xd83c, 0xdded, 0xd83c, 0xddf0, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x68, 0x6b, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x68, 0x6b, 0xd83c, 0xdded, 0xd83c, 0xddfa, 0x3a, -0x68, 0x75, 0x3a, 0x68, 0x75, 0xd83c, 0xdded, 0xd83c, 0xddfa, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x5f, 0x68, 0x75, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x68, 0x75, -0xd83c, 0xddee, 0xd83c, 0xddf8, 0x3a, 0x69, 0x73, 0x3a, 0x69, 0x73, 0xd83c, 0xddee, -0xd83c, 0xddf8, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x69, 0x73, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x69, 0x73, 0xd83c, 0xddee, 0xd83c, 0xddf3, 0x3a, 0x69, 0x6e, -0x3a, 0x69, 0x6e, 0xd83c, 0xddee, 0xd83c, 0xddf3, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x5f, 0x69, 0x6e, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x69, 0x6e, 0xd83c, 0xddee, -0xd83c, 0xdde9, 0x3a, 0x69, 0x6e, 0x64, 0x6f, 0x6e, 0x65, 0x73, 0x69, 0x61, -0x3a, 0x69, 0x6e, 0x64, 0x6f, 0x6e, 0x65, 0x73, 0x69, 0x61, 0xd83c, 0xddee, -0xd83c, 0xdde9, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x69, 0x64, 0xd83c, 0xddee, 0xd83c, 0xddf7, 0x3a, 0x69, 0x72, -0x3a, 0x69, 0x72, 0xd83c, 0xddee, 0xd83c, 0xddf7, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x5f, 0x69, 0x72, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x69, 0x72, 0xd83c, 0xddee, -0xd83c, 0xddf6, 0x3a, 0x69, 0x71, 0x3a, 0x69, 0x71, 0xd83c, 0xddee, 0xd83c, 0xddf6, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x69, 0x71, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x69, 0x71, 0xd83c, 0xddee, 0xd83c, 0xddea, 0x3a, 0x69, 0x65, 0x3a, 0x69, -0x65, 0xd83c, 0xddee, 0xd83c, 0xddea, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x69, -0x65, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x69, 0x65, 0xd83c, 0xddee, 0xd83c, 0xddf2, -0x3a, 0x69, 0x6d, 0x3a, 0x69, 0x6d, 0xd83c, 0xddee, 0xd83c, 0xddf2, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x5f, 0x69, 0x6d, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x69, -0x6d, 0xd83c, 0xddee, 0xd83c, 0xddf1, 0x3a, 0x69, 0x6c, 0x3a, 0x69, 0x6c, 0xd83c, -0xddee, 0xd83c, 0xddf1, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x69, 0x6c, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x69, 0x6c, 0xd83c, 0xddee, 0xd83c, 0xddf9, 0x3a, 0x69, -0x74, 0x3a, 0x69, 0x74, 0xd83c, 0xddee, 0xd83c, 0xddf9, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x5f, 0x69, 0x74, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x69, 0x74, 0xd83c, -0xddef, 0xd83c, 0xddf2, 0x3a, 0x6a, 0x6d, 0x3a, 0x6a, 0x6d, 0xd83c, 0xddef, 0xd83c, -0xddf2, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6a, 0x6d, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x6a, 0x6d, 0xd83c, 0xddef, 0xd83c, 0xddf5, 0x3a, 0x6a, 0x70, 0x3a, -0x6a, 0x70, 0xd83c, 0xddef, 0xd83c, 0xddf5, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, -0x6a, 0x70, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6a, 0x70, 0xd83c, 0xdf8c, 0x3a, -0x63, 0x72, 0x6f, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x61, 0x67, -0x73, 0x3a, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x65, 0x64, 0x66, 0x6c, 0x61, -0x67, 0x73, 0xd83c, 0xddef, 0xd83c, 0xddea, 0x3a, 0x6a, 0x65, 0x3a, 0x6a, 0x65, -0xd83c, 0xddef, 0xd83c, 0xddea, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6a, 0x65, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6a, 0x65, 0xd83c, 0xddef, 0xd83c, 0xddf4, 0x3a, -0x6a, 0x6f, 0x3a, 0x6a, 0x6f, 0xd83c, 0xddef, 0xd83c, 0xddf4, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x5f, 0x6a, 0x6f, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6a, 0x6f, -0xd83c, 0xddf0, 0xd83c, 0xddff, 0x3a, 0x6b, 0x7a, 0x3a, 0x6b, 0x7a, 0xd83c, 0xddf0, -0xd83c, 0xddff, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6b, 0x7a, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x6b, 0x7a, 0xd83c, 0xddf0, 0xd83c, 0xddea, 0x3a, 0x6b, 0x65, -0x3a, 0x6b, 0x65, 0xd83c, 0xddf0, 0xd83c, 0xddea, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x5f, 0x6b, 0x65, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6b, 0x65, 0xd83c, 0xddf0, -0xd83c, 0xddee, 0x3a, 0x6b, 0x69, 0x3a, 0x6b, 0x69, 0xd83c, 0xddf0, 0xd83c, 0xddee, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6b, 0x69, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x6b, 0x69, 0xd83c, 0xddfd, 0xd83c, 0xddf0, 0x3a, 0x78, 0x6b, 0x3a, 0x78, -0x6b, 0xd83c, 0xddfd, 0xd83c, 0xddf0, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x78, -0x6b, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x78, 0x6b, 0xd83c, 0xddf0, 0xd83c, 0xddfc, -0x3a, 0x6b, 0x77, 0x3a, 0x6b, 0x77, 0xd83c, 0xddf0, 0xd83c, 0xddfc, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x5f, 0x6b, 0x77, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6b, -0x77, 0xd83c, 0xddf0, 0xd83c, 0xddec, 0x3a, 0x6b, 0x67, 0x3a, 0x6b, 0x67, 0xd83c, -0xddf0, 0xd83c, 0xddec, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6b, 0x67, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x6b, 0x67, 0xd83c, 0xddf1, 0xd83c, 0xdde6, 0x3a, 0x6c, -0x61, 0x3a, 0x6c, 0x61, 0xd83c, 0xddf1, 0xd83c, 0xdde6, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x5f, 0x6c, 0x61, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6c, 0x61, 0xd83c, -0xddf1, 0xd83c, 0xddfb, 0x3a, 0x6c, 0x76, 0x3a, 0x6c, 0x76, 0xd83c, 0xddf1, 0xd83c, -0xddfb, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6c, 0x76, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x6c, 0x76, 0xd83c, 0xddf1, 0xd83c, 0xdde7, 0x3a, 0x6c, 0x62, 0x3a, -0x6c, 0x62, 0xd83c, 0xddf1, 0xd83c, 0xdde7, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, -0x6c, 0x62, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6c, 0x62, 0xd83c, 0xddf1, 0xd83c, -0xddf8, 0x3a, 0x6c, 0x73, 0x3a, 0x6c, 0x73, 0xd83c, 0xddf1, 0xd83c, 0xddf8, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6c, 0x73, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x6c, 0x73, 0xd83c, 0xddf1, 0xd83c, 0xddf7, 0x3a, 0x6c, 0x72, 0x3a, 0x6c, 0x72, -0xd83c, 0xddf1, 0xd83c, 0xddf7, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6c, 0x72, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6c, 0x72, 0xd83c, 0xddf1, 0xd83c, 0xddfe, 0x3a, -0x6c, 0x79, 0x3a, 0x6c, 0x79, 0xd83c, 0xddf1, 0xd83c, 0xddfe, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x5f, 0x6c, 0x79, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6c, 0x79, -0xd83c, 0xddf1, 0xd83c, 0xddee, 0x3a, 0x6c, 0x69, 0x3a, 0x6c, 0x69, 0xd83c, 0xddf1, -0xd83c, 0xddee, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6c, 0x69, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x6c, 0x69, 0xd83c, 0xddf1, 0xd83c, 0xddf9, 0x3a, 0x6c, 0x74, -0x3a, 0x6c, 0x74, 0xd83c, 0xddf1, 0xd83c, 0xddf9, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x5f, 0x6c, 0x74, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6c, 0x74, 0xd83c, 0xddf1, -0xd83c, 0xddfa, 0x3a, 0x6c, 0x75, 0x3a, 0x6c, 0x75, 0xd83c, 0xddf1, 0xd83c, 0xddfa, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6c, 0x75, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x6c, 0x75, 0xd83c, 0xddf2, 0xd83c, 0xddf4, 0x3a, 0x6d, 0x6f, 0x3a, 0x6d, -0x6f, 0xd83c, 0xddf2, 0xd83c, 0xddf4, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6d, -0x6f, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6d, 0x6f, 0xd83c, 0xddf2, 0xd83c, 0xddf0, -0x3a, 0x6d, 0x6b, 0x3a, 0x6d, 0x6b, 0xd83c, 0xddf2, 0xd83c, 0xddf0, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x6b, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6d, -0x6b, 0xd83c, 0xddf2, 0xd83c, 0xddec, 0x3a, 0x6d, 0x67, 0x3a, 0x6d, 0x67, 0xd83c, -0xddf2, 0xd83c, 0xddec, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x67, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x6d, 0x67, 0xd83c, 0xddf2, 0xd83c, 0xddfc, 0x3a, 0x6d, -0x77, 0x3a, 0x6d, 0x77, 0xd83c, 0xddf2, 0xd83c, 0xddfc, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x5f, 0x6d, 0x77, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6d, 0x77, 0xd83c, -0xddf2, 0xd83c, 0xddfe, 0x3a, 0x6d, 0x79, 0x3a, 0x6d, 0x79, 0xd83c, 0xddf2, 0xd83c, -0xddfe, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x79, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x6d, 0x79, 0xd83c, 0xddf2, 0xd83c, 0xddfb, 0x3a, 0x6d, 0x76, 0x3a, -0x6d, 0x76, 0xd83c, 0xddf2, 0xd83c, 0xddfb, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, -0x6d, 0x76, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6d, 0x76, 0xd83c, 0xddf2, 0xd83c, -0xddf1, 0x3a, 0x6d, 0x6c, 0x3a, 0x6d, 0x6c, 0xd83c, 0xddf2, 0xd83c, 0xddf1, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x6c, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x6d, 0x6c, 0xd83c, 0xddf2, 0xd83c, 0xddf9, 0x3a, 0x6d, 0x74, 0x3a, 0x6d, 0x74, -0xd83c, 0xddf2, 0xd83c, 0xddf9, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x74, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6d, 0x74, 0xd83c, 0xddf2, 0xd83c, 0xdded, 0x3a, -0x6d, 0x68, 0x3a, 0x6d, 0x68, 0xd83c, 0xddf2, 0xd83c, 0xdded, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x5f, 0x6d, 0x68, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6d, 0x68, -0xd83c, 0xddf2, 0xd83c, 0xddf6, 0x3a, 0x6d, 0x71, 0x3a, 0x6d, 0x71, 0xd83c, 0xddf2, -0xd83c, 0xddf6, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x71, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x6d, 0x71, 0xd83c, 0xddf2, 0xd83c, 0xddf7, 0x3a, 0x6d, 0x72, -0x3a, 0x6d, 0x72, 0xd83c, 0xddf2, 0xd83c, 0xddf7, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x5f, 0x6d, 0x72, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6d, 0x72, 0xd83c, 0xddf2, -0xd83c, 0xddfa, 0x3a, 0x6d, 0x75, 0x3a, 0x6d, 0x75, 0xd83c, 0xddf2, 0xd83c, 0xddfa, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x75, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x6d, 0x75, 0xd83c, 0xddfe, 0xd83c, 0xddf9, 0x3a, 0x79, 0x74, 0x3a, 0x79, -0x74, 0xd83c, 0xddfe, 0xd83c, 0xddf9, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x79, -0x74, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x79, 0x74, 0xd83c, 0xddf2, 0xd83c, 0xddfd, -0x3a, 0x6d, 0x78, 0x3a, 0x6d, 0x78, 0xd83c, 0xddf2, 0xd83c, 0xddfd, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x78, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6d, -0x78, 0xd83c, 0xddeb, 0xd83c, 0xddf2, 0x3a, 0x66, 0x6d, 0x3a, 0x66, 0x6d, 0xd83c, -0xddeb, 0xd83c, 0xddf2, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x66, 0x6d, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x66, 0x6d, 0xd83c, 0xddf2, 0xd83c, 0xdde9, 0x3a, 0x6d, -0x64, 0x3a, 0x6d, 0x64, 0xd83c, 0xddf2, 0xd83c, 0xdde9, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x5f, 0x6d, 0x64, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6d, 0x64, 0xd83c, -0xddf2, 0xd83c, 0xdde8, 0x3a, 0x6d, 0x63, 0x3a, 0x6d, 0x63, 0xd83c, 0xddf2, 0xd83c, -0xdde8, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x63, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x6d, 0x63, 0xd83c, 0xddf2, 0xd83c, 0xddf3, 0x3a, 0x6d, 0x6e, 0x3a, -0x6d, 0x6e, 0xd83c, 0xddf2, 0xd83c, 0xddf3, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, -0x6d, 0x6e, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6d, 0x6e, 0xd83c, 0xddf2, 0xd83c, -0xddea, 0x3a, 0x6d, 0x65, 0x3a, 0x6d, 0x65, 0xd83c, 0xddf2, 0xd83c, 0xddea, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x6d, 0x65, 0xd83c, 0xddf2, 0xd83c, 0xddf8, 0x3a, 0x6d, 0x73, 0x3a, 0x6d, 0x73, -0xd83c, 0xddf2, 0xd83c, 0xddf8, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x73, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6d, 0x73, 0xd83c, 0xddf2, 0xd83c, 0xdde6, 0x3a, -0x6d, 0x61, 0x3a, 0x6d, 0x61, 0xd83c, 0xddf2, 0xd83c, 0xdde6, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x5f, 0x6d, 0x61, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6d, 0x61, -0xd83c, 0xddf2, 0xd83c, 0xddff, 0x3a, 0x6d, 0x7a, 0x3a, 0x6d, 0x7a, 0xd83c, 0xddf2, -0xd83c, 0xddff, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x7a, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x6d, 0x7a, 0xd83c, 0xddf2, 0xd83c, 0xddf2, 0x3a, 0x6d, 0x6d, -0x3a, 0x6d, 0x6d, 0xd83c, 0xddf2, 0xd83c, 0xddf2, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x5f, 0x6d, 0x6d, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6d, 0x6d, 0xd83c, 0xddf3, -0xd83c, 0xdde6, 0x3a, 0x6e, 0x61, 0x3a, 0x6e, 0x61, 0xd83c, 0xddf3, 0xd83c, 0xdde6, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x6e, 0x61, 0xd83c, 0xddf3, 0xd83c, 0xddf7, 0x3a, 0x6e, 0x72, 0x3a, 0x6e, -0x72, 0xd83c, 0xddf3, 0xd83c, 0xddf7, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6e, -0x72, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6e, 0x72, 0xd83c, 0xddf3, 0xd83c, 0xddf5, -0x3a, 0x6e, 0x70, 0x3a, 0x6e, 0x70, 0xd83c, 0xddf3, 0xd83c, 0xddf5, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x70, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6e, -0x70, 0xd83c, 0xddf3, 0xd83c, 0xddf1, 0x3a, 0x6e, 0x6c, 0x3a, 0x6e, 0x6c, 0xd83c, -0xddf3, 0xd83c, 0xddf1, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x6c, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x6e, 0x6c, 0xd83c, 0xddf3, 0xd83c, 0xdde8, 0x3a, 0x6e, -0x63, 0x3a, 0x6e, 0x63, 0xd83c, 0xddf3, 0xd83c, 0xdde8, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x5f, 0x6e, 0x63, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6e, 0x63, 0xd83c, -0xddf3, 0xd83c, 0xddff, 0x3a, 0x6e, 0x7a, 0x3a, 0x6e, 0x7a, 0xd83c, 0xddf3, 0xd83c, -0xddff, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x7a, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x6e, 0x7a, 0xd83c, 0xddf3, 0xd83c, 0xddee, 0x3a, 0x6e, 0x69, 0x3a, -0x6e, 0x69, 0xd83c, 0xddf3, 0xd83c, 0xddee, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, -0x6e, 0x69, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6e, 0x69, 0xd83c, 0xddf3, 0xd83c, -0xddea, 0x3a, 0x6e, 0x65, 0x3a, 0x6e, 0x65, 0xd83c, 0xddf3, 0xd83c, 0xddea, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x65, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x6e, 0x65, 0xd83c, 0xddf3, 0xd83c, 0xddec, 0x3a, 0x6e, 0x69, 0x67, 0x65, 0x72, -0x69, 0x61, 0x3a, 0x6e, 0x69, 0x67, 0x65, 0x72, 0x69, 0x61, 0xd83c, 0xddf3, -0xd83c, 0xddec, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x67, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x6e, 0x67, 0xd83c, 0xddf3, 0xd83c, 0xddfa, 0x3a, 0x6e, 0x75, -0x3a, 0x6e, 0x75, 0xd83c, 0xddf3, 0xd83c, 0xddfa, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x5f, 0x6e, 0x75, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6e, 0x75, 0xd83c, 0xddf3, -0xd83c, 0xddeb, 0x3a, 0x6e, 0x66, 0x3a, 0x6e, 0x66, 0xd83c, 0xddf3, 0xd83c, 0xddeb, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x66, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x6e, 0x66, 0xd83c, 0xddf0, 0xd83c, 0xddf5, 0x3a, 0x6b, 0x70, 0x3a, 0x6b, -0x70, 0xd83c, 0xddf0, 0xd83c, 0xddf5, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6b, -0x70, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6b, 0x70, 0xd83c, 0xddf2, 0xd83c, 0xddf5, -0x3a, 0x6d, 0x70, 0x3a, 0x6d, 0x70, 0xd83c, 0xddf2, 0xd83c, 0xddf5, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x70, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6d, -0x70, 0xd83c, 0xddf3, 0xd83c, 0xddf4, 0x3a, 0x73, 0x6a, 0x3a, 0x73, 0x6a, 0xd83c, -0xddf3, 0xd83c, 0xddf4, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x6a, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x73, 0x6a, 0xd83c, 0xddf3, 0xd83c, 0xddf4, 0x3a, 0x6e, -0x6f, 0x3a, 0x6e, 0x6f, 0xd83c, 0xddf3, 0xd83c, 0xddf4, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x5f, 0x6e, 0x6f, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6e, 0x6f, 0xd83c, -0xddf3, 0xd83c, 0xddf4, 0x3a, 0x62, 0x76, 0x3a, 0x62, 0x76, 0xd83c, 0xddf3, 0xd83c, -0xddf4, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x62, 0x76, 0x3a, 0x62, 0x76, -0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xddf4, 0xd83c, 0xddf2, 0x3a, 0x6f, 0x6d, 0x3a, -0x6f, 0x6d, 0xd83c, 0xddf4, 0xd83c, 0xddf2, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, -0x6f, 0x6d, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6f, 0x6d, 0xd83c, 0xddf5, 0xd83c, -0xddf0, 0x3a, 0x70, 0x6b, 0x3a, 0x70, 0x6b, 0xd83c, 0xddf5, 0xd83c, 0xddf0, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x5f, 0x70, 0x6b, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x70, 0x6b, 0xd83c, 0xddf5, 0xd83c, 0xddfc, 0x3a, 0x70, 0x77, 0x3a, 0x70, 0x77, -0xd83c, 0xddf5, 0xd83c, 0xddfc, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x70, 0x77, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x70, 0x77, 0xd83c, 0xddf5, 0xd83c, 0xddf8, 0x3a, -0x70, 0x73, 0x3a, 0x70, 0x73, 0xd83c, 0xddf5, 0xd83c, 0xddf8, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x5f, 0x70, 0x73, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x70, 0x73, -0xd83c, 0xddf5, 0xd83c, 0xdde6, 0x3a, 0x70, 0x61, 0x3a, 0x70, 0x61, 0xd83c, 0xddf5, -0xd83c, 0xdde6, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x70, 0x61, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x70, 0x61, 0xd83c, 0xddf5, 0xd83c, 0xddec, 0x3a, 0x70, 0x67, -0x3a, 0x70, 0x67, 0xd83c, 0xddf5, 0xd83c, 0xddec, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x5f, 0x70, 0x67, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x70, 0x67, 0xd83c, 0xddf5, -0xd83c, 0xddfe, 0x3a, 0x70, 0x79, 0x3a, 0x70, 0x79, 0xd83c, 0xddf5, 0xd83c, 0xddfe, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x70, 0x79, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x70, 0x79, 0xd83c, 0xddf5, 0xd83c, 0xddea, 0x3a, 0x70, 0x65, 0x3a, 0x70, -0x65, 0xd83c, 0xddf5, 0xd83c, 0xddea, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x70, -0x65, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x70, 0x65, 0xd83c, 0xddf5, 0xd83c, 0xdded, -0x3a, 0x70, 0x68, 0x3a, 0x70, 0x68, 0xd83c, 0xddf5, 0xd83c, 0xdded, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x5f, 0x70, 0x68, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x70, -0x68, 0xd83c, 0xddf5, 0xd83c, 0xddf3, 0x3a, 0x70, 0x6e, 0x3a, 0x70, 0x6e, 0xd83c, -0xddf5, 0xd83c, 0xddf3, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x70, 0x6e, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x70, 0x6e, 0xd83c, 0xddf5, 0xd83c, 0xddf1, 0x3a, 0x70, -0x6c, 0x3a, 0x70, 0x6c, 0xd83c, 0xddf5, 0xd83c, 0xddf1, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x5f, 0x70, 0x6c, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x70, 0x6c, 0xd83c, -0xddf5, 0xd83c, 0xddf9, 0x3a, 0x70, 0x74, 0x3a, 0x70, 0x74, 0xd83c, 0xddf5, 0xd83c, -0xddf9, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x70, 0x74, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x70, 0x74, 0xd83c, 0xddf5, 0xd83c, 0xddf7, 0x3a, 0x70, 0x72, 0x3a, -0x70, 0x72, 0xd83c, 0xddf5, 0xd83c, 0xddf7, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, -0x70, 0x72, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x70, 0x72, 0xd83c, 0xddf6, 0xd83c, -0xdde6, 0x3a, 0x71, 0x61, 0x3a, 0x71, 0x61, 0xd83c, 0xddf6, 0xd83c, 0xdde6, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x5f, 0x71, 0x61, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x71, 0x61, 0xd83c, 0xddf7, 0xd83c, 0xddea, 0x3a, 0x72, 0x65, 0x3a, 0x72, 0x65, -0xd83c, 0xddf7, 0xd83c, 0xddea, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x72, 0x65, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x72, 0x65, 0xd83c, 0xddf7, 0xd83c, 0xddf4, 0x3a, -0x72, 0x6f, 0x3a, 0x72, 0x6f, 0xd83c, 0xddf7, 0xd83c, 0xddf4, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x5f, 0x72, 0x6f, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x72, 0x6f, -0xd83c, 0xddf7, 0xd83c, 0xddfa, 0x3a, 0x72, 0x75, 0x3a, 0x72, 0x75, 0xd83c, 0xddf7, -0xd83c, 0xddfa, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x72, 0x75, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x72, 0x75, 0xd83c, 0xddf7, 0xd83c, 0xddfc, 0x3a, 0x72, 0x77, -0x3a, 0x72, 0x77, 0xd83c, 0xddf7, 0xd83c, 0xddfc, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x5f, 0x72, 0x77, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x72, 0x77, 0xd83c, 0xddfc, -0xd83c, 0xddf8, 0x3a, 0x77, 0x73, 0x3a, 0x77, 0x73, 0xd83c, 0xddfc, 0xd83c, 0xddf8, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x77, 0x73, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x77, 0x73, 0xd83c, 0xddf8, 0xd83c, 0xddf2, 0x3a, 0x73, 0x6d, 0x3a, 0x73, -0x6d, 0xd83c, 0xddf8, 0xd83c, 0xddf2, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, -0x6d, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x6d, 0xd83c, 0xddf8, 0xd83c, 0xddf9, -0x3a, 0x73, 0x74, 0x3a, 0x73, 0x74, 0xd83c, 0xddf8, 0xd83c, 0xddf9, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x5f, 0x73, 0x74, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x73, -0x74, 0xd83c, 0xddf8, 0xd83c, 0xdde6, 0x3a, 0x73, 0x61, 0x75, 0x64, 0x69, 0x3a, -0x73, 0x61, 0x75, 0x64, 0x69, 0xd83c, 0xddf8, 0xd83c, 0xdde6, 0x3a, 0x73, 0x61, -0x75, 0x64, 0x69, 0x61, 0x72, 0x61, 0x62, 0x69, 0x61, 0x3a, 0x73, 0x61, -0x75, 0x64, 0x69, 0x61, 0x72, 0x61, 0x62, 0x69, 0x61, 0xd83c, 0xddf8, 0xd83c, -0xdde6, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x61, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x73, 0x61, 0xd83c, 0xddf8, 0xd83c, 0xddf3, 0x3a, 0x73, 0x6e, 0x3a, -0x73, 0x6e, 0xd83c, 0xddf8, 0xd83c, 0xddf3, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, -0x73, 0x6e, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x6e, 0xd83c, 0xddf7, 0xd83c, -0xddf8, 0x3a, 0x72, 0x73, 0x3a, 0x72, 0x73, 0xd83c, 0xddf7, 0xd83c, 0xddf8, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x5f, 0x72, 0x73, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x72, 0x73, 0xd83c, 0xddf8, 0xd83c, 0xdde8, 0x3a, 0x73, 0x63, 0x3a, 0x73, 0x63, -0xd83c, 0xddf8, 0xd83c, 0xdde8, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x63, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x63, 0xd83c, 0xddf8, 0xd83c, 0xddf1, 0x3a, -0x73, 0x6c, 0x3a, 0x73, 0x6c, 0xd83c, 0xddf8, 0xd83c, 0xddf1, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x5f, 0x73, 0x6c, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x6c, -0xd83c, 0xddf8, 0xd83c, 0xddec, 0x3a, 0x73, 0x67, 0x3a, 0x73, 0x67, 0xd83c, 0xddf8, -0xd83c, 0xddec, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x67, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x73, 0x67, 0xd83c, 0xddf8, 0xd83c, 0xddfd, 0x3a, 0x73, 0x78, -0x3a, 0x73, 0x78, 0xd83c, 0xddf8, 0xd83c, 0xddfd, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x5f, 0x73, 0x78, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x78, 0xd83c, 0xddf8, -0xd83c, 0xddf0, 0x3a, 0x73, 0x6b, 0x3a, 0x73, 0x6b, 0xd83c, 0xddf8, 0xd83c, 0xddf0, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x6b, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x73, 0x6b, 0xd83c, 0xddf8, 0xd83c, 0xddee, 0x3a, 0x73, 0x69, 0x3a, 0x73, -0x69, 0xd83c, 0xddf8, 0xd83c, 0xddee, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, -0x69, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x69, 0xd83c, 0xddec, 0xd83c, 0xddf8, -0x3a, 0x67, 0x73, 0x3a, 0x67, 0x73, 0xd83c, 0xddec, 0xd83c, 0xddf8, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x5f, 0x67, 0x73, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x67, -0x73, 0xd83c, 0xddf8, 0xd83c, 0xdde7, 0x3a, 0x73, 0x62, 0x3a, 0x73, 0x62, 0xd83c, -0xddf8, 0xd83c, 0xdde7, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x62, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x73, 0x62, 0xd83c, 0xddf8, 0xd83c, 0xddf4, 0x3a, 0x73, -0x6f, 0x3a, 0x73, 0x6f, 0xd83c, 0xddf8, 0xd83c, 0xddf4, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x5f, 0x73, 0x6f, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x6f, 0xd83c, -0xddff, 0xd83c, 0xdde6, 0x3a, 0x7a, 0x61, 0x3a, 0x7a, 0x61, 0xd83c, 0xddff, 0xd83c, -0xdde6, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x7a, 0x61, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x7a, 0x61, 0xd83c, 0xddf0, 0xd83c, 0xddf7, 0x3a, 0x6b, 0x72, 0x3a, -0x6b, 0x72, 0xd83c, 0xddf0, 0xd83c, 0xddf7, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, -0x6b, 0x72, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6b, 0x72, 0xd83c, 0xddf8, 0xd83c, -0xddf8, 0x3a, 0x73, 0x73, 0x3a, 0x73, 0x73, 0xd83c, 0xddf8, 0xd83c, 0xddf8, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x73, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x73, 0x73, 0xd83c, 0xddea, 0xd83c, 0xddf8, 0x3a, 0x65, 0x73, 0x3a, 0x65, 0x73, -0xd83c, 0xddea, 0xd83c, 0xddf8, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x65, 0x73, -0x3a, 0x65, 0x73, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xddea, 0xd83c, 0xddf8, 0x3a, -0x65, 0x61, 0x3a, 0x65, 0x61, 0xd83c, 0xddea, 0xd83c, 0xddf8, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x5f, 0x65, 0x61, 0x3a, 0x65, 0x61, 0x66, 0x6c, 0x61, 0x67, -0xd83c, 0xddf1, 0xd83c, 0xddf0, 0x3a, 0x6c, 0x6b, 0x3a, 0x6c, 0x6b, 0xd83c, 0xddf1, -0xd83c, 0xddf0, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6c, 0x6b, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x6c, 0x6b, 0xd83c, 0xdde7, 0xd83c, 0xddf1, 0x3a, 0x62, 0x6c, -0x3a, 0x62, 0x6c, 0xd83c, 0xdde7, 0xd83c, 0xddf1, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x5f, 0x62, 0x6c, 0x3a, 0x62, 0x6c, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xddf8, -0xd83c, 0xdded, 0x3a, 0x74, 0x61, 0x3a, 0x74, 0x61, 0xd83c, 0xddf8, 0xd83c, 0xdded, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x61, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x74, 0x61, 0xd83c, 0xddf8, 0xd83c, 0xdded, 0x3a, 0x73, 0x68, 0x3a, 0x73, -0x68, 0xd83c, 0xddf8, 0xd83c, 0xdded, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, -0x68, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x68, 0xd83c, 0xddf8, 0xd83c, 0xdded, -0x3a, 0x61, 0x63, 0x3a, 0x61, 0x63, 0xd83c, 0xddf8, 0xd83c, 0xdded, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x5f, 0x61, 0x63, 0x3a, 0x61, 0x63, 0x66, 0x6c, 0x61, -0x67, 0xd83c, 0xddf0, 0xd83c, 0xddf3, 0x3a, 0x6b, 0x6e, 0x3a, 0x6b, 0x6e, 0xd83c, -0xddf0, 0xd83c, 0xddf3, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6b, 0x6e, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x6b, 0x6e, 0xd83c, 0xddf1, 0xd83c, 0xdde8, 0x3a, 0x6c, -0x63, 0x3a, 0x6c, 0x63, 0xd83c, 0xddf1, 0xd83c, 0xdde8, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x5f, 0x6c, 0x63, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6c, 0x63, 0xd83c, -0xddf5, 0xd83c, 0xddf2, 0x3a, 0x70, 0x6d, 0x3a, 0x70, 0x6d, 0xd83c, 0xddf5, 0xd83c, -0xddf2, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x70, 0x6d, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x70, 0x6d, 0xd83c, 0xddfb, 0xd83c, 0xdde8, 0x3a, 0x76, 0x63, 0x3a, -0x76, 0x63, 0xd83c, 0xddfb, 0xd83c, 0xdde8, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, -0x76, 0x63, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x76, 0x63, 0xd83c, 0xddf8, 0xd83c, -0xdde9, 0x3a, 0x73, 0x64, 0x3a, 0x73, 0x64, 0xd83c, 0xddf8, 0xd83c, 0xdde9, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x64, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x73, 0x64, 0xd83c, 0xddf8, 0xd83c, 0xddf7, 0x3a, 0x73, 0x72, 0x3a, 0x73, 0x72, -0xd83c, 0xddf8, 0xd83c, 0xddf7, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x72, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x72, 0xd83c, 0xddf8, 0xd83c, 0xddff, 0x3a, -0x73, 0x7a, 0x3a, 0x73, 0x7a, 0xd83c, 0xddf8, 0xd83c, 0xddff, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x5f, 0x73, 0x7a, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x7a, -0xd83c, 0xddf8, 0xd83c, 0xddea, 0x3a, 0x73, 0x65, 0x3a, 0x73, 0x65, 0xd83c, 0xddf8, -0xd83c, 0xddea, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x65, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x73, 0x65, 0xd83c, 0xdde8, 0xd83c, 0xdded, 0x3a, 0x63, 0x68, -0x3a, 0x63, 0x68, 0xd83c, 0xdde8, 0xd83c, 0xdded, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x5f, 0x63, 0x68, 0x3a, 0x63, 0x68, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xddf8, -0xd83c, 0xddfe, 0x3a, 0x73, 0x79, 0x3a, 0x73, 0x79, 0xd83c, 0xddf8, 0xd83c, 0xddfe, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x79, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x73, 0x79, 0xd83c, 0xddf9, 0xd83c, 0xddfc, 0x3a, 0x74, 0x77, 0x3a, 0x74, -0x77, 0xd83c, 0xddf9, 0xd83c, 0xddfc, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, -0x77, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x74, 0x77, 0xd83c, 0xddf9, 0xd83c, 0xddef, -0x3a, 0x74, 0x6a, 0x3a, 0x74, 0x6a, 0xd83c, 0xddf9, 0xd83c, 0xddef, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x5f, 0x74, 0x6a, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x74, -0x6a, 0xd83c, 0xddf9, 0xd83c, 0xddff, 0x3a, 0x74, 0x7a, 0x3a, 0x74, 0x7a, 0xd83c, -0xddf9, 0xd83c, 0xddff, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x7a, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x74, 0x7a, 0xd83c, 0xddf9, 0xd83c, 0xdded, 0x3a, 0x74, -0x68, 0x3a, 0x74, 0x68, 0xd83c, 0xddf9, 0xd83c, 0xdded, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x5f, 0x74, 0x68, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x74, 0x68, 0xd83c, -0xddf9, 0xd83c, 0xddf1, 0x3a, 0x74, 0x6c, 0x3a, 0x74, 0x6c, 0xd83c, 0xddf9, 0xd83c, -0xddf1, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x6c, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x74, 0x6c, 0xd83c, 0xddf9, 0xd83c, 0xddec, 0x3a, 0x74, 0x67, 0x3a, -0x74, 0x67, 0xd83c, 0xddf9, 0xd83c, 0xddec, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, -0x74, 0x67, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x74, 0x67, 0xd83c, 0xddf9, 0xd83c, -0xddf0, 0x3a, 0x74, 0x6b, 0x3a, 0x74, 0x6b, 0xd83c, 0xddf9, 0xd83c, 0xddf0, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x6b, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x74, 0x6b, 0xd83c, 0xddf9, 0xd83c, 0xddf4, 0x3a, 0x74, 0x6f, 0x3a, 0x74, 0x6f, -0xd83c, 0xddf9, 0xd83c, 0xddf4, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x6f, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x74, 0x6f, 0xd83c, 0xddf9, 0xd83c, 0xddf9, 0x3a, -0x74, 0x74, 0x3a, 0x74, 0x74, 0xd83c, 0xddf9, 0xd83c, 0xddf9, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x5f, 0x74, 0x74, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x74, 0x74, -0xd83c, 0xddf9, 0xd83c, 0xddf3, 0x3a, 0x74, 0x6e, 0x3a, 0x74, 0x6e, 0xd83c, 0xddf9, -0xd83c, 0xddf3, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x6e, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x74, 0x6e, 0xd83c, 0xddf9, 0xd83c, 0xddf7, 0x3a, 0x74, 0x72, -0x3a, 0x74, 0x72, 0xd83c, 0xddf9, 0xd83c, 0xddf7, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x5f, 0x74, 0x72, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x74, 0x72, 0xd83c, 0xddf9, -0xd83c, 0xddf2, 0x3a, 0x74, 0x75, 0x72, 0x6b, 0x6d, 0x65, 0x6e, 0x69, 0x73, -0x74, 0x61, 0x6e, 0x3a, 0x74, 0x75, 0x72, 0x6b, 0x6d, 0x65, 0x6e, 0x69, -0x73, 0x74, 0x61, 0x6e, 0xd83c, 0xddf9, 0xd83c, 0xddf2, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x5f, 0x74, 0x6d, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x74, 0x6d, 0xd83c, -0xddf9, 0xd83c, 0xdde8, 0x3a, 0x74, 0x63, 0x3a, 0x74, 0x63, 0xd83c, 0xddf9, 0xd83c, -0xdde8, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x63, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x74, 0x63, 0xd83c, 0xddf9, 0xd83c, 0xddfb, 0x3a, 0x74, 0x75, 0x76, -0x61, 0x6c, 0x75, 0x3a, 0x74, 0x75, 0x76, 0x61, 0x6c, 0x75, 0xd83c, 0xddf9, -0xd83c, 0xddfb, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x76, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x74, 0x76, 0xd83c, 0xddfb, 0xd83c, 0xddee, 0x3a, 0x76, 0x69, -0x3a, 0x76, 0x69, 0xd83c, 0xddfb, 0xd83c, 0xddee, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x5f, 0x76, 0x69, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x76, 0x69, 0xd83c, 0xddfa, -0xd83c, 0xddec, 0x3a, 0x75, 0x67, 0x3a, 0x75, 0x67, 0xd83c, 0xddfa, 0xd83c, 0xddec, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x75, 0x67, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x75, 0x67, 0xd83c, 0xddfa, 0xd83c, 0xdde6, 0x3a, 0x75, 0x61, 0x3a, 0x75, -0x61, 0xd83c, 0xddfa, 0xd83c, 0xdde6, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x75, -0x61, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x75, 0x61, 0xd83c, 0xdde6, 0xd83c, 0xddea, -0x3a, 0x61, 0x65, 0x3a, 0x61, 0x65, 0xd83c, 0xdde6, 0xd83c, 0xddea, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x5f, 0x61, 0x65, 0x3a, 0x61, 0x65, 0x66, 0x6c, 0x61, -0x67, 0xd83c, 0xddec, 0xd83c, 0xdde7, 0x3a, 0x67, 0x62, 0x3a, 0x67, 0x62, 0xd83c, -0xddec, 0xd83c, 0xdde7, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x67, 0x62, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x67, 0x62, 0xd83c, 0xddfa, 0xd83c, 0xddf8, 0x3a, 0x75, -0x73, 0x3a, 0x75, 0x73, 0xd83c, 0xddfa, 0xd83c, 0xddf8, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x5f, 0x75, 0x73, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x75, 0x73, 0xd83c, -0xddfa, 0xd83c, 0xddf8, 0x3a, 0x75, 0x6d, 0x3a, 0x75, 0x6d, 0xd83c, 0xddfa, 0xd83c, -0xddf8, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x75, 0x6d, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x75, 0x6d, 0xd83c, 0xddfa, 0xd83c, 0xddfe, 0x3a, 0x75, 0x79, 0x3a, -0x75, 0x79, 0xd83c, 0xddfa, 0xd83c, 0xddfe, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, -0x75, 0x79, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x75, 0x79, 0xd83c, 0xddfa, 0xd83c, -0xddff, 0x3a, 0x75, 0x7a, 0x3a, 0x75, 0x7a, 0xd83c, 0xddfa, 0xd83c, 0xddff, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x5f, 0x75, 0x7a, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x75, 0x7a, 0xd83c, 0xddfb, 0xd83c, 0xddfa, 0x3a, 0x76, 0x75, 0x3a, 0x76, 0x75, -0xd83c, 0xddfb, 0xd83c, 0xddfa, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x76, 0x75, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x76, 0x75, 0xd83c, 0xddfb, 0xd83c, 0xdde6, 0x3a, -0x76, 0x61, 0x3a, 0x76, 0x61, 0xd83c, 0xddfb, 0xd83c, 0xdde6, 0x3a, 0x66, 0x6c, -0x61, 0x67, 0x5f, 0x76, 0x61, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x76, 0x61, -0xd83c, 0xddfb, 0xd83c, 0xddea, 0x3a, 0x76, 0x65, 0x3a, 0x76, 0x65, 0xd83c, 0xddfb, -0xd83c, 0xddea, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x76, 0x65, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x76, 0x65, 0xd83c, 0xddfb, 0xd83c, 0xddf3, 0x3a, 0x76, 0x6e, -0x3a, 0x76, 0x6e, 0xd83c, 0xddfb, 0xd83c, 0xddf3, 0x3a, 0x66, 0x6c, 0x61, 0x67, -0x5f, 0x76, 0x6e, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x76, 0x6e, 0xd83c, 0xddfc, -0xd83c, 0xddeb, 0x3a, 0x77, 0x66, 0x3a, 0x77, 0x66, 0xd83c, 0xddfc, 0xd83c, 0xddeb, -0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x77, 0x66, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x77, 0x66, 0xd83c, 0xddea, 0xd83c, 0xdded, 0x3a, 0x65, 0x68, 0x3a, 0x65, -0x68, 0xd83c, 0xddea, 0xd83c, 0xdded, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x65, -0x68, 0x3a, 0x65, 0x68, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xddfe, 0xd83c, 0xddea, -0x3a, 0x79, 0x65, 0x3a, 0x79, 0x65, 0xd83c, 0xddfe, 0xd83c, 0xddea, 0x3a, 0x66, -0x6c, 0x61, 0x67, 0x5f, 0x79, 0x65, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x79, -0x65, 0xd83c, 0xddff, 0xd83c, 0xddf2, 0x3a, 0x7a, 0x6d, 0x3a, 0x7a, 0x6d, 0xd83c, -0xddff, 0xd83c, 0xddf2, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x7a, 0x6d, 0x3a, -0x66, 0x6c, 0x61, 0x67, 0x7a, 0x6d, 0xd83c, 0xddff, 0xd83c, 0xddfc, 0x3a, 0x7a, -0x77, 0x3a, 0x7a, 0x77, 0xd83c, 0xddff, 0xd83c, 0xddfc, 0x3a, 0x66, 0x6c, 0x61, -0x67, 0x5f, 0x7a, 0x77, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x7a, 0x77 }; + 0xd83d, 0xde00, 0x3a, 0x67, 0x72, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x3a, + 0x67, 0x72, 0x69, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0xd83d, 0xde03, 0x3a, 0x73, + 0x6d, 0x69, 0x6c, 0x65, 0x79, 0x3a, 0x73, 0x6d, 0x69, 0x6c, 0x65, 0x79, + 0xd83d, 0xde04, 0x3a, 0x73, 0x6d, 0x69, 0x6c, 0x65, 0x3a, 0x73, 0x6d, 0x69, + 0x6c, 0x65, 0xd83d, 0xde01, 0x3a, 0x67, 0x72, 0x69, 0x6e, 0x3a, 0x67, 0x72, + 0x69, 0x6e, 0xd83d, 0xde06, 0x3a, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, + 0x65, 0x64, 0x3a, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x64, + 0xd83d, 0xde06, 0x3a, 0x6c, 0x61, 0x75, 0x67, 0x68, 0x69, 0x6e, 0x67, 0x3a, + 0x6c, 0x61, 0x75, 0x67, 0x68, 0x69, 0x6e, 0x67, 0xd83d, 0xde05, 0x3a, 0x73, + 0x77, 0x65, 0x61, 0x74, 0x5f, 0x73, 0x6d, 0x69, 0x6c, 0x65, 0x3a, 0x73, + 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x77, 0x65, 0x61, 0x74, 0xd83d, 0xde02, 0x3a, + 0x6a, 0x6f, 0x79, 0x3a, 0x6a, 0x6f, 0x79, 0xd83e, 0xdd23, 0x3a, 0x72, 0x6f, + 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x6e, 0x5f, 0x74, 0x68, 0x65, + 0x5f, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x5f, 0x6c, 0x61, 0x75, 0x67, 0x68, + 0x69, 0x6e, 0x67, 0x3a, 0x66, 0x6c, 0x6f, 0x6f, 0x72, 0x6c, 0x61, 0x75, + 0x67, 0x68, 0x69, 0x6e, 0x67, 0x6f, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0x69, + 0x6e, 0x67, 0x74, 0x68, 0x65, 0xd83e, 0xdd23, 0x3a, 0x72, 0x6f, 0x66, 0x6c, + 0x3a, 0x72, 0x6f, 0x66, 0x6c, 0x263a, 0xfe0f, 0x3a, 0x72, 0x65, 0x6c, 0x61, + 0x78, 0x65, 0x64, 0x3a, 0x72, 0x65, 0x6c, 0x61, 0x78, 0x65, 0x64, 0xd83d, + 0xde0a, 0x3a, 0x62, 0x6c, 0x75, 0x73, 0x68, 0x3a, 0x62, 0x6c, 0x75, 0x73, + 0x68, 0xd83d, 0xde07, 0x3a, 0x69, 0x6e, 0x6e, 0x6f, 0x63, 0x65, 0x6e, 0x74, + 0x3a, 0x69, 0x6e, 0x6e, 0x6f, 0x63, 0x65, 0x6e, 0x74, 0xd83d, 0xde42, 0x3a, + 0x73, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x6c, 0x79, 0x5f, 0x73, 0x6d, 0x69, + 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, + 0x63, 0x65, 0x73, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x6c, 0x79, 0x73, 0x6d, + 0x69, 0x6c, 0x69, 0x6e, 0x67, 0xd83d, 0xde42, 0x3a, 0x73, 0x6c, 0x69, 0x67, + 0x68, 0x74, 0x5f, 0x73, 0x6d, 0x69, 0x6c, 0x65, 0x3a, 0x73, 0x6c, 0x69, + 0x67, 0x68, 0x74, 0x73, 0x6d, 0x69, 0x6c, 0x65, 0xd83d, 0xde43, 0x3a, 0x75, + 0x70, 0x73, 0x69, 0x64, 0x65, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x5f, 0x66, + 0x61, 0x63, 0x65, 0x3a, 0x64, 0x6f, 0x77, 0x6e, 0x66, 0x61, 0x63, 0x65, + 0x75, 0x70, 0x73, 0x69, 0x64, 0x65, 0xd83d, 0xde43, 0x3a, 0x75, 0x70, 0x73, + 0x69, 0x64, 0x65, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x3a, 0x64, 0x6f, 0x77, + 0x6e, 0x75, 0x70, 0x73, 0x69, 0x64, 0x65, 0xd83d, 0xde09, 0x3a, 0x77, 0x69, + 0x6e, 0x6b, 0x3a, 0x77, 0x69, 0x6e, 0x6b, 0xd83d, 0xde0c, 0x3a, 0x72, 0x65, + 0x6c, 0x69, 0x65, 0x76, 0x65, 0x64, 0x3a, 0x72, 0x65, 0x6c, 0x69, 0x65, + 0x76, 0x65, 0x64, 0xd83d, 0xde0d, 0x3a, 0x68, 0x65, 0x61, 0x72, 0x74, 0x5f, + 0x65, 0x79, 0x65, 0x73, 0x3a, 0x65, 0x79, 0x65, 0x73, 0x68, 0x65, 0x61, + 0x72, 0x74, 0xd83d, 0xde18, 0x3a, 0x6b, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, + 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x3a, 0x68, 0x65, 0x61, 0x72, 0x74, + 0x6b, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0xd83d, 0xde17, 0x3a, 0x6b, 0x69, + 0x73, 0x73, 0x69, 0x6e, 0x67, 0x3a, 0x6b, 0x69, 0x73, 0x73, 0x69, 0x6e, + 0x67, 0xd83d, 0xde19, 0x3a, 0x6b, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, + 0x73, 0x6d, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x79, 0x65, 0x73, + 0x3a, 0x65, 0x79, 0x65, 0x73, 0x6b, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, + 0x73, 0x6d, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0xd83d, 0xde1a, 0x3a, 0x6b, 0x69, + 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, + 0x5f, 0x65, 0x79, 0x65, 0x73, 0x3a, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, + 0x65, 0x79, 0x65, 0x73, 0x6b, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0xd83d, + 0xde0b, 0x3a, 0x79, 0x75, 0x6d, 0x3a, 0x79, 0x75, 0x6d, 0xd83d, 0xde1b, 0x3a, + 0x73, 0x74, 0x75, 0x63, 0x6b, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x74, 0x6f, + 0x6e, 0x67, 0x75, 0x65, 0x3a, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x75, 0x63, + 0x6b, 0x74, 0x6f, 0x6e, 0x67, 0x75, 0x65, 0xd83d, 0xde1d, 0x3a, 0x73, 0x74, + 0x75, 0x63, 0x6b, 0x5f, 0x6f, 0x75, 0x74, 0x5f, 0x74, 0x6f, 0x6e, 0x67, + 0x75, 0x65, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x5f, 0x65, 0x79, + 0x65, 0x73, 0x3a, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x65, 0x79, 0x65, + 0x73, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x75, 0x63, 0x6b, 0x74, 0x6f, 0x6e, + 0x67, 0x75, 0x65, 0xd83d, 0xde1c, 0x3a, 0x73, 0x74, 0x75, 0x63, 0x6b, 0x5f, + 0x6f, 0x75, 0x74, 0x5f, 0x74, 0x6f, 0x6e, 0x67, 0x75, 0x65, 0x5f, 0x77, + 0x69, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x79, 0x65, 0x3a, 0x65, + 0x79, 0x65, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x75, 0x63, 0x6b, 0x74, 0x6f, + 0x6e, 0x67, 0x75, 0x65, 0x77, 0x69, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0xd83e, + 0xdd2a, 0x3a, 0x63, 0x72, 0x61, 0x7a, 0x79, 0x5f, 0x66, 0x61, 0x63, 0x65, + 0x3a, 0x63, 0x72, 0x61, 0x7a, 0x79, 0x66, 0x61, 0x63, 0x65, 0xd83e, 0xdd28, + 0x3a, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x72, + 0x61, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x65, 0x79, 0x65, 0x62, 0x72, 0x6f, + 0x77, 0x3a, 0x65, 0x79, 0x65, 0x62, 0x72, 0x6f, 0x77, 0x66, 0x61, 0x63, + 0x65, 0x72, 0x61, 0x69, 0x73, 0x65, 0x64, 0x77, 0x69, 0x74, 0x68, 0xd83e, + 0xddd0, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, + 0x6d, 0x6f, 0x6e, 0x6f, 0x63, 0x6c, 0x65, 0x3a, 0x66, 0x61, 0x63, 0x65, + 0x6d, 0x6f, 0x6e, 0x6f, 0x63, 0x6c, 0x65, 0x77, 0x69, 0x74, 0x68, 0xd83e, + 0xdd13, 0x3a, 0x6e, 0x65, 0x72, 0x64, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, + 0x66, 0x61, 0x63, 0x65, 0x6e, 0x65, 0x72, 0x64, 0xd83e, 0xdd13, 0x3a, 0x6e, + 0x65, 0x72, 0x64, 0x3a, 0x6e, 0x65, 0x72, 0x64, 0xd83d, 0xde0e, 0x3a, 0x73, + 0x75, 0x6e, 0x67, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x3a, 0x73, 0x75, + 0x6e, 0x67, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0xd83e, 0xdd29, 0x3a, 0x73, + 0x74, 0x61, 0x72, 0x5f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x6b, 0x3a, 0x73, + 0x74, 0x61, 0x72, 0x73, 0x74, 0x72, 0x75, 0x63, 0x6b, 0xd83d, 0xde0f, 0x3a, + 0x73, 0x6d, 0x69, 0x72, 0x6b, 0x3a, 0x73, 0x6d, 0x69, 0x72, 0x6b, 0xd83d, + 0xde12, 0x3a, 0x75, 0x6e, 0x61, 0x6d, 0x75, 0x73, 0x65, 0x64, 0x3a, 0x75, + 0x6e, 0x61, 0x6d, 0x75, 0x73, 0x65, 0x64, 0xd83d, 0xde1e, 0x3a, 0x64, 0x69, + 0x73, 0x61, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x3a, 0x64, + 0x69, 0x73, 0x61, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x64, 0xd83d, + 0xde14, 0x3a, 0x70, 0x65, 0x6e, 0x73, 0x69, 0x76, 0x65, 0x3a, 0x70, 0x65, + 0x6e, 0x73, 0x69, 0x76, 0x65, 0xd83d, 0xde1f, 0x3a, 0x77, 0x6f, 0x72, 0x72, + 0x69, 0x65, 0x64, 0x3a, 0x77, 0x6f, 0x72, 0x72, 0x69, 0x65, 0x64, 0xd83d, + 0xde15, 0x3a, 0x63, 0x6f, 0x6e, 0x66, 0x75, 0x73, 0x65, 0x64, 0x3a, 0x63, + 0x6f, 0x6e, 0x66, 0x75, 0x73, 0x65, 0x64, 0xd83d, 0xde41, 0x3a, 0x73, 0x6c, + 0x69, 0x67, 0x68, 0x74, 0x6c, 0x79, 0x5f, 0x66, 0x72, 0x6f, 0x77, 0x6e, + 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, 0x63, + 0x65, 0x66, 0x72, 0x6f, 0x77, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x6c, 0x69, + 0x67, 0x68, 0x74, 0x6c, 0x79, 0xd83d, 0xde41, 0x3a, 0x73, 0x6c, 0x69, 0x67, + 0x68, 0x74, 0x5f, 0x66, 0x72, 0x6f, 0x77, 0x6e, 0x3a, 0x66, 0x72, 0x6f, + 0x77, 0x6e, 0x73, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x2639, 0xfe0f, 0x3a, 0x77, + 0x68, 0x69, 0x74, 0x65, 0x5f, 0x66, 0x72, 0x6f, 0x77, 0x6e, 0x69, 0x6e, + 0x67, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x66, + 0x72, 0x6f, 0x77, 0x6e, 0x69, 0x6e, 0x67, 0x77, 0x68, 0x69, 0x74, 0x65, + 0x2639, 0xfe0f, 0x3a, 0x66, 0x72, 0x6f, 0x77, 0x6e, 0x69, 0x6e, 0x67, 0x32, + 0x3a, 0x66, 0x72, 0x6f, 0x77, 0x6e, 0x69, 0x6e, 0x67, 0x32, 0xd83d, 0xde23, + 0x3a, 0x70, 0x65, 0x72, 0x73, 0x65, 0x76, 0x65, 0x72, 0x65, 0x3a, 0x70, + 0x65, 0x72, 0x73, 0x65, 0x76, 0x65, 0x72, 0x65, 0xd83d, 0xde16, 0x3a, 0x63, + 0x6f, 0x6e, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0x3a, 0x63, 0x6f, + 0x6e, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x65, 0x64, 0xd83d, 0xde2b, 0x3a, 0x74, + 0x69, 0x72, 0x65, 0x64, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, + 0x63, 0x65, 0x74, 0x69, 0x72, 0x65, 0x64, 0xd83d, 0xde29, 0x3a, 0x77, 0x65, + 0x61, 0x72, 0x79, 0x3a, 0x77, 0x65, 0x61, 0x72, 0x79, 0xd83d, 0xde22, 0x3a, + 0x63, 0x72, 0x79, 0x3a, 0x63, 0x72, 0x79, 0xd83d, 0xde2d, 0x3a, 0x73, 0x6f, + 0x62, 0x3a, 0x73, 0x6f, 0x62, 0xd83d, 0xde24, 0x3a, 0x74, 0x72, 0x69, 0x75, + 0x6d, 0x70, 0x68, 0x3a, 0x74, 0x72, 0x69, 0x75, 0x6d, 0x70, 0x68, 0xd83d, + 0xde20, 0x3a, 0x61, 0x6e, 0x67, 0x72, 0x79, 0x3a, 0x61, 0x6e, 0x67, 0x72, + 0x79, 0xd83d, 0xde21, 0x3a, 0x72, 0x61, 0x67, 0x65, 0x3a, 0x72, 0x61, 0x67, + 0x65, 0xd83e, 0xdd2c, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x77, 0x69, 0x74, + 0x68, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x73, 0x5f, 0x6f, 0x76, + 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x75, 0x74, 0x68, 0x3a, 0x66, 0x61, 0x63, + 0x65, 0x6d, 0x6f, 0x75, 0x74, 0x68, 0x6f, 0x76, 0x65, 0x72, 0x73, 0x79, + 0x6d, 0x62, 0x6f, 0x6c, 0x73, 0x77, 0x69, 0x74, 0x68, 0xd83e, 0xdd2f, 0x3a, + 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x65, + 0x61, 0x64, 0x3a, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x64, 0x69, 0x6e, 0x67, + 0x68, 0x65, 0x61, 0x64, 0xd83d, 0xde33, 0x3a, 0x66, 0x6c, 0x75, 0x73, 0x68, + 0x65, 0x64, 0x3a, 0x66, 0x6c, 0x75, 0x73, 0x68, 0x65, 0x64, 0xd83d, 0xde31, + 0x3a, 0x73, 0x63, 0x72, 0x65, 0x61, 0x6d, 0x3a, 0x73, 0x63, 0x72, 0x65, + 0x61, 0x6d, 0xd83d, 0xde28, 0x3a, 0x66, 0x65, 0x61, 0x72, 0x66, 0x75, 0x6c, + 0x3a, 0x66, 0x65, 0x61, 0x72, 0x66, 0x75, 0x6c, 0xd83d, 0xde30, 0x3a, 0x63, + 0x6f, 0x6c, 0x64, 0x5f, 0x73, 0x77, 0x65, 0x61, 0x74, 0x3a, 0x63, 0x6f, + 0x6c, 0x64, 0x73, 0x77, 0x65, 0x61, 0x74, 0xd83d, 0xde25, 0x3a, 0x64, 0x69, + 0x73, 0x61, 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x5f, 0x72, + 0x65, 0x6c, 0x69, 0x65, 0x76, 0x65, 0x64, 0x3a, 0x64, 0x69, 0x73, 0x61, + 0x70, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x72, 0x65, 0x6c, 0x69, + 0x65, 0x76, 0x65, 0x64, 0xd83d, 0xde13, 0x3a, 0x73, 0x77, 0x65, 0x61, 0x74, + 0x3a, 0x73, 0x77, 0x65, 0x61, 0x74, 0xd83e, 0xdd17, 0x3a, 0x68, 0x75, 0x67, + 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, + 0x63, 0x65, 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0xd83e, 0xdd17, 0x3a, + 0x68, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x3a, 0x68, 0x75, 0x67, 0x67, + 0x69, 0x6e, 0x67, 0xd83e, 0xdd14, 0x3a, 0x68, 0x6d, 0x6d, 0x3a, 0x68, 0x6d, + 0x6d, 0xd83e, 0xdd14, 0x3a, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x69, 0x6e, 0x67, + 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x74, 0x68, + 0x69, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0xd83e, 0xdd14, 0x3a, 0x74, 0x68, 0x69, + 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x3a, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x69, + 0x6e, 0x67, 0xd83e, 0xdd2d, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x77, 0x69, + 0x74, 0x68, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x5f, 0x6f, 0x76, 0x65, 0x72, + 0x5f, 0x6d, 0x6f, 0x75, 0x74, 0x68, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x68, + 0x61, 0x6e, 0x64, 0x6d, 0x6f, 0x75, 0x74, 0x68, 0x6f, 0x76, 0x65, 0x72, + 0x77, 0x69, 0x74, 0x68, 0xd83e, 0xdd2b, 0x3a, 0x73, 0x68, 0x75, 0x73, 0x68, + 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, 0x63, + 0x65, 0x73, 0x68, 0x75, 0x73, 0x68, 0x69, 0x6e, 0x67, 0xd83e, 0xdd25, 0x3a, + 0x6c, 0x69, 0x61, 0x72, 0x3a, 0x6c, 0x69, 0x61, 0x72, 0xd83e, 0xdd25, 0x3a, + 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, + 0x61, 0x63, 0x65, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0xd83d, 0xde36, 0x3a, 0x6e, + 0x6f, 0x5f, 0x6d, 0x6f, 0x75, 0x74, 0x68, 0x3a, 0x6d, 0x6f, 0x75, 0x74, + 0x68, 0x6e, 0x6f, 0xd83d, 0xde10, 0x3a, 0x6e, 0x65, 0x75, 0x74, 0x72, 0x61, + 0x6c, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x6e, + 0x65, 0x75, 0x74, 0x72, 0x61, 0x6c, 0xd83d, 0xde11, 0x3a, 0x65, 0x78, 0x70, + 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x6c, 0x65, 0x73, 0x73, 0x3a, + 0x65, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x6c, 0x65, + 0x73, 0x73, 0xd83d, 0xde2c, 0x3a, 0x67, 0x72, 0x69, 0x6d, 0x61, 0x63, 0x69, + 0x6e, 0x67, 0x3a, 0x67, 0x72, 0x69, 0x6d, 0x61, 0x63, 0x69, 0x6e, 0x67, + 0xd83d, 0xde44, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x79, 0x65, + 0x73, 0x3a, 0x65, 0x79, 0x65, 0x73, 0x66, 0x61, 0x63, 0x65, 0x72, 0x6f, + 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x77, 0x69, 0x74, 0x68, 0xd83d, 0xde44, 0x3a, + 0x72, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x79, 0x65, 0x73, + 0x3a, 0x65, 0x79, 0x65, 0x73, 0x72, 0x6f, 0x6c, 0x6c, 0x69, 0x6e, 0x67, + 0xd83d, 0xde2f, 0x3a, 0x68, 0x75, 0x73, 0x68, 0x65, 0x64, 0x3a, 0x68, 0x75, + 0x73, 0x68, 0x65, 0x64, 0xd83d, 0xde26, 0x3a, 0x66, 0x72, 0x6f, 0x77, 0x6e, + 0x69, 0x6e, 0x67, 0x3a, 0x66, 0x72, 0x6f, 0x77, 0x6e, 0x69, 0x6e, 0x67, + 0xd83d, 0xde27, 0x3a, 0x61, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x64, + 0x3a, 0x61, 0x6e, 0x67, 0x75, 0x69, 0x73, 0x68, 0x65, 0x64, 0xd83d, 0xde2e, + 0x3a, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x6d, 0x6f, 0x75, 0x74, 0x68, 0x3a, + 0x6d, 0x6f, 0x75, 0x74, 0x68, 0x6f, 0x70, 0x65, 0x6e, 0xd83d, 0xde32, 0x3a, + 0x61, 0x73, 0x74, 0x6f, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x3a, 0x61, + 0x73, 0x74, 0x6f, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0xd83d, 0xde34, 0x3a, + 0x73, 0x6c, 0x65, 0x65, 0x70, 0x69, 0x6e, 0x67, 0x3a, 0x73, 0x6c, 0x65, + 0x65, 0x70, 0x69, 0x6e, 0x67, 0xd83e, 0xdd24, 0x3a, 0x64, 0x72, 0x6f, 0x6f, + 0x6c, 0x3a, 0x64, 0x72, 0x6f, 0x6f, 0x6c, 0xd83e, 0xdd24, 0x3a, 0x64, 0x72, + 0x6f, 0x6f, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, + 0x64, 0x72, 0x6f, 0x6f, 0x6c, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, + 0xd83d, 0xde2a, 0x3a, 0x73, 0x6c, 0x65, 0x65, 0x70, 0x79, 0x3a, 0x73, 0x6c, + 0x65, 0x65, 0x70, 0x79, 0xd83d, 0xde35, 0x3a, 0x64, 0x69, 0x7a, 0x7a, 0x79, + 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x64, 0x69, 0x7a, 0x7a, 0x79, 0x66, + 0x61, 0x63, 0x65, 0xd83e, 0xdd10, 0x3a, 0x7a, 0x69, 0x70, 0x70, 0x65, 0x72, + 0x5f, 0x6d, 0x6f, 0x75, 0x74, 0x68, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, + 0x66, 0x61, 0x63, 0x65, 0x6d, 0x6f, 0x75, 0x74, 0x68, 0x7a, 0x69, 0x70, + 0x70, 0x65, 0x72, 0xd83e, 0xdd10, 0x3a, 0x7a, 0x69, 0x70, 0x70, 0x65, 0x72, + 0x5f, 0x6d, 0x6f, 0x75, 0x74, 0x68, 0x3a, 0x6d, 0x6f, 0x75, 0x74, 0x68, + 0x7a, 0x69, 0x70, 0x70, 0x65, 0x72, 0xd83e, 0xdd22, 0x3a, 0x73, 0x69, 0x63, + 0x6b, 0x3a, 0x73, 0x69, 0x63, 0x6b, 0xd83e, 0xdd22, 0x3a, 0x6e, 0x61, 0x75, + 0x73, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, + 0x66, 0x61, 0x63, 0x65, 0x6e, 0x61, 0x75, 0x73, 0x65, 0x61, 0x74, 0x65, + 0x64, 0xd83e, 0xdd2e, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x76, 0x6f, 0x6d, + 0x69, 0x74, 0x69, 0x6e, 0x67, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x76, 0x6f, + 0x6d, 0x69, 0x74, 0x69, 0x6e, 0x67, 0xd83e, 0xdd27, 0x3a, 0x73, 0x6e, 0x65, + 0x65, 0x7a, 0x65, 0x3a, 0x73, 0x6e, 0x65, 0x65, 0x7a, 0x65, 0xd83e, 0xdd27, + 0x3a, 0x73, 0x6e, 0x65, 0x65, 0x7a, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, + 0x63, 0x65, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x73, 0x6e, 0x65, 0x65, 0x7a, + 0x69, 0x6e, 0x67, 0xd83d, 0xde37, 0x3a, 0x6d, 0x61, 0x73, 0x6b, 0x3a, 0x6d, + 0x61, 0x73, 0x6b, 0xd83e, 0xdd12, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x77, + 0x69, 0x74, 0x68, 0x5f, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x6f, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x74, 0x68, 0x65, 0x72, + 0x6d, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x77, 0x69, 0x74, 0x68, 0xd83e, + 0xdd12, 0x3a, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x6f, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x74, + 0x68, 0x65, 0x72, 0x6d, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0xd83e, 0xdd15, + 0x3a, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x68, + 0x65, 0x61, 0x64, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x61, 0x67, 0x65, 0x3a, + 0x62, 0x61, 0x6e, 0x64, 0x61, 0x67, 0x65, 0x66, 0x61, 0x63, 0x65, 0x68, + 0x65, 0x61, 0x64, 0x77, 0x69, 0x74, 0x68, 0xd83e, 0xdd15, 0x3a, 0x68, 0x65, + 0x61, 0x64, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x61, 0x67, 0x65, 0x3a, 0x62, + 0x61, 0x6e, 0x64, 0x61, 0x67, 0x65, 0x68, 0x65, 0x61, 0x64, 0xd83e, 0xdd11, + 0x3a, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x5f, 0x6d, 0x6f, 0x75, 0x74, 0x68, + 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x6d, 0x6f, + 0x6e, 0x65, 0x79, 0x6d, 0x6f, 0x75, 0x74, 0x68, 0xd83e, 0xdd11, 0x3a, 0x6d, + 0x6f, 0x6e, 0x65, 0x79, 0x5f, 0x6d, 0x6f, 0x75, 0x74, 0x68, 0x3a, 0x6d, + 0x6f, 0x6e, 0x65, 0x79, 0x6d, 0x6f, 0x75, 0x74, 0x68, 0xd83e, 0xdd20, 0x3a, + 0x66, 0x61, 0x63, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x63, 0x6f, + 0x77, 0x62, 0x6f, 0x79, 0x5f, 0x68, 0x61, 0x74, 0x3a, 0x63, 0x6f, 0x77, + 0x62, 0x6f, 0x79, 0x66, 0x61, 0x63, 0x65, 0x68, 0x61, 0x74, 0x77, 0x69, + 0x74, 0x68, 0xd83e, 0xdd20, 0x3a, 0x63, 0x6f, 0x77, 0x62, 0x6f, 0x79, 0x3a, + 0x63, 0x6f, 0x77, 0x62, 0x6f, 0x79, 0xd83d, 0xde08, 0x3a, 0x73, 0x6d, 0x69, + 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6d, 0x70, 0x3a, 0x69, 0x6d, 0x70, + 0x73, 0x6d, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0xd83d, 0xdc7f, 0x3a, 0x69, 0x6d, + 0x70, 0x3a, 0x69, 0x6d, 0x70, 0xd83d, 0xdc79, 0x3a, 0x6a, 0x61, 0x70, 0x61, + 0x6e, 0x65, 0x73, 0x65, 0x5f, 0x6f, 0x67, 0x72, 0x65, 0x3a, 0x6a, 0x61, + 0x70, 0x61, 0x6e, 0x65, 0x73, 0x65, 0x6f, 0x67, 0x72, 0x65, 0xd83d, 0xdc7a, + 0x3a, 0x6a, 0x61, 0x70, 0x61, 0x6e, 0x65, 0x73, 0x65, 0x5f, 0x67, 0x6f, + 0x62, 0x6c, 0x69, 0x6e, 0x3a, 0x67, 0x6f, 0x62, 0x6c, 0x69, 0x6e, 0x6a, + 0x61, 0x70, 0x61, 0x6e, 0x65, 0x73, 0x65, 0xd83e, 0xdd21, 0x3a, 0x63, 0x6c, + 0x6f, 0x77, 0x6e, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x63, 0x6c, 0x6f, + 0x77, 0x6e, 0x66, 0x61, 0x63, 0x65, 0xd83e, 0xdd21, 0x3a, 0x63, 0x6c, 0x6f, + 0x77, 0x6e, 0x3a, 0x63, 0x6c, 0x6f, 0x77, 0x6e, 0xd83d, 0xdca9, 0x3a, 0x70, + 0x6f, 0x6f, 0x3a, 0x70, 0x6f, 0x6f, 0xd83d, 0xdca9, 0x3a, 0x68, 0x61, 0x6e, + 0x6b, 0x65, 0x79, 0x3a, 0x68, 0x61, 0x6e, 0x6b, 0x65, 0x79, 0xd83d, 0xdca9, + 0x3a, 0x73, 0x68, 0x69, 0x74, 0x3a, 0x73, 0x68, 0x69, 0x74, 0xd83d, 0xdca9, + 0x3a, 0x70, 0x6f, 0x6f, 0x70, 0x3a, 0x70, 0x6f, 0x6f, 0x70, 0xd83d, 0xdc7b, + 0x3a, 0x67, 0x68, 0x6f, 0x73, 0x74, 0x3a, 0x67, 0x68, 0x6f, 0x73, 0x74, + 0xd83d, 0xdc80, 0x3a, 0x73, 0x6b, 0x65, 0x6c, 0x65, 0x74, 0x6f, 0x6e, 0x3a, + 0x73, 0x6b, 0x65, 0x6c, 0x65, 0x74, 0x6f, 0x6e, 0xd83d, 0xdc80, 0x3a, 0x73, + 0x6b, 0x75, 0x6c, 0x6c, 0x3a, 0x73, 0x6b, 0x75, 0x6c, 0x6c, 0x2620, 0xfe0f, + 0x3a, 0x73, 0x6b, 0x75, 0x6c, 0x6c, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x63, + 0x72, 0x6f, 0x73, 0x73, 0x62, 0x6f, 0x6e, 0x65, 0x73, 0x3a, 0x61, 0x6e, + 0x64, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x62, 0x6f, 0x6e, 0x65, 0x73, 0x73, + 0x6b, 0x75, 0x6c, 0x6c, 0x2620, 0xfe0f, 0x3a, 0x73, 0x6b, 0x75, 0x6c, 0x6c, + 0x5f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x62, 0x6f, 0x6e, 0x65, 0x73, 0x3a, + 0x63, 0x72, 0x6f, 0x73, 0x73, 0x62, 0x6f, 0x6e, 0x65, 0x73, 0x73, 0x6b, + 0x75, 0x6c, 0x6c, 0xd83d, 0xdc7d, 0x3a, 0x61, 0x6c, 0x69, 0x65, 0x6e, 0x3a, + 0x61, 0x6c, 0x69, 0x65, 0x6e, 0xd83d, 0xdc7e, 0x3a, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x5f, 0x69, 0x6e, 0x76, 0x61, 0x64, 0x65, 0x72, 0x3a, 0x69, 0x6e, + 0x76, 0x61, 0x64, 0x65, 0x72, 0x73, 0x70, 0x61, 0x63, 0x65, 0xd83e, 0xdd16, + 0x3a, 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, + 0x66, 0x61, 0x63, 0x65, 0x72, 0x6f, 0x62, 0x6f, 0x74, 0xd83e, 0xdd16, 0x3a, + 0x72, 0x6f, 0x62, 0x6f, 0x74, 0x3a, 0x72, 0x6f, 0x62, 0x6f, 0x74, 0xd83c, + 0xdf83, 0x3a, 0x6a, 0x61, 0x63, 0x6b, 0x5f, 0x6f, 0x5f, 0x6c, 0x61, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x3a, 0x6a, 0x61, 0x63, 0x6b, 0x6c, 0x61, 0x6e, + 0x74, 0x65, 0x72, 0x6e, 0x6f, 0xd83d, 0xde3a, 0x3a, 0x73, 0x6d, 0x69, 0x6c, + 0x65, 0x79, 0x5f, 0x63, 0x61, 0x74, 0x3a, 0x63, 0x61, 0x74, 0x73, 0x6d, + 0x69, 0x6c, 0x65, 0x79, 0xd83d, 0xde38, 0x3a, 0x73, 0x6d, 0x69, 0x6c, 0x65, + 0x5f, 0x63, 0x61, 0x74, 0x3a, 0x63, 0x61, 0x74, 0x73, 0x6d, 0x69, 0x6c, + 0x65, 0xd83d, 0xde39, 0x3a, 0x6a, 0x6f, 0x79, 0x5f, 0x63, 0x61, 0x74, 0x3a, + 0x63, 0x61, 0x74, 0x6a, 0x6f, 0x79, 0xd83d, 0xde3b, 0x3a, 0x68, 0x65, 0x61, + 0x72, 0x74, 0x5f, 0x65, 0x79, 0x65, 0x73, 0x5f, 0x63, 0x61, 0x74, 0x3a, + 0x63, 0x61, 0x74, 0x65, 0x79, 0x65, 0x73, 0x68, 0x65, 0x61, 0x72, 0x74, + 0xd83d, 0xde3c, 0x3a, 0x73, 0x6d, 0x69, 0x72, 0x6b, 0x5f, 0x63, 0x61, 0x74, + 0x3a, 0x63, 0x61, 0x74, 0x73, 0x6d, 0x69, 0x72, 0x6b, 0xd83d, 0xde3d, 0x3a, + 0x6b, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x61, 0x74, 0x3a, + 0x63, 0x61, 0x74, 0x6b, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0xd83d, 0xde40, + 0x3a, 0x73, 0x63, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x63, 0x61, 0x74, 0x3a, + 0x63, 0x61, 0x74, 0x73, 0x63, 0x72, 0x65, 0x61, 0x6d, 0xd83d, 0xde3f, 0x3a, + 0x63, 0x72, 0x79, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x61, 0x74, 0x5f, 0x66, + 0x61, 0x63, 0x65, 0x3a, 0x63, 0x61, 0x74, 0x63, 0x72, 0x79, 0x69, 0x6e, + 0x67, 0x66, 0x61, 0x63, 0x65, 0xd83d, 0xde3e, 0x3a, 0x70, 0x6f, 0x75, 0x74, + 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x61, 0x74, 0x3a, 0x63, 0x61, 0x74, 0x70, + 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0xd83e, 0xdd32, 0x3a, 0x70, 0x61, 0x6c, + 0x6d, 0x73, 0x5f, 0x75, 0x70, 0x5f, 0x74, 0x6f, 0x67, 0x65, 0x74, 0x68, + 0x65, 0x72, 0x3a, 0x70, 0x61, 0x6c, 0x6d, 0x73, 0x74, 0x6f, 0x67, 0x65, + 0x74, 0x68, 0x65, 0x72, 0x75, 0x70, 0xd83d, 0xdc50, 0x3a, 0x6f, 0x70, 0x65, + 0x6e, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x3a, 0x68, 0x61, 0x6e, 0x64, + 0x73, 0x6f, 0x70, 0x65, 0x6e, 0xd83d, 0xde4c, 0x3a, 0x72, 0x61, 0x69, 0x73, + 0x65, 0x64, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x3a, 0x68, 0x61, 0x6e, + 0x64, 0x73, 0x72, 0x61, 0x69, 0x73, 0x65, 0x64, 0xd83d, 0xdc4f, 0x3a, 0x63, + 0x6c, 0x61, 0x70, 0x3a, 0x63, 0x6c, 0x61, 0x70, 0xd83e, 0xdd1d, 0x3a, 0x73, + 0x68, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x73, + 0x3a, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x73, 0x68, 0x61, 0x6b, 0x69, 0x6e, + 0x67, 0xd83e, 0xdd1d, 0x3a, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, + 0x65, 0x3a, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x65, 0xd83d, + 0xdc4d, 0x3a, 0x6c, 0x69, 0x6b, 0x65, 0x3a, 0x6c, 0x69, 0x6b, 0x65, 0xd83d, + 0xdc4d, 0x3a, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x75, 0x70, 0x3a, 0x74, 0x68, + 0x75, 0x6d, 0x62, 0x75, 0x70, 0xd83d, 0xdc4d, 0x3a, 0x2b, 0x31, 0x3a, 0x2b, + 0x31, 0xd83d, 0xdc4d, 0x3a, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x73, 0x75, 0x70, + 0x3a, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x73, 0x75, 0x70, 0xd83d, 0xdc4e, 0x3a, + 0x64, 0x69, 0x73, 0x6c, 0x69, 0x6b, 0x65, 0x3a, 0x64, 0x69, 0x73, 0x6c, + 0x69, 0x6b, 0x65, 0xd83d, 0xdc4e, 0x3a, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x64, + 0x6f, 0x77, 0x6e, 0x3a, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x64, 0x6f, 0x77, + 0x6e, 0xd83d, 0xdc4e, 0x3a, 0x2d, 0x31, 0x3a, 0x2d, 0x31, 0xd83d, 0xdc4e, 0x3a, + 0x74, 0x68, 0x75, 0x6d, 0x62, 0x73, 0x64, 0x6f, 0x77, 0x6e, 0x3a, 0x74, + 0x68, 0x75, 0x6d, 0x62, 0x73, 0x64, 0x6f, 0x77, 0x6e, 0xd83d, 0xdc4a, 0x3a, + 0x70, 0x75, 0x6e, 0x63, 0x68, 0x3a, 0x70, 0x75, 0x6e, 0x63, 0x68, 0x270a, + 0x3a, 0x66, 0x69, 0x73, 0x74, 0x3a, 0x66, 0x69, 0x73, 0x74, 0xd83e, 0xdd1b, + 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x66, 0x69, 0x73, 0x74, 0x3a, 0x66, + 0x69, 0x73, 0x74, 0x6c, 0x65, 0x66, 0x74, 0xd83e, 0xdd1b, 0x3a, 0x6c, 0x65, + 0x66, 0x74, 0x5f, 0x66, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x69, + 0x73, 0x74, 0x3a, 0x66, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x66, 0x69, 0x73, + 0x74, 0x6c, 0x65, 0x66, 0x74, 0xd83e, 0xdd1c, 0x3a, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x5f, 0x66, 0x69, 0x73, 0x74, 0x3a, 0x66, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x67, 0x68, 0x74, 0xd83e, 0xdd1c, 0x3a, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x5f, 0x66, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x69, 0x73, 0x74, + 0x3a, 0x66, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x66, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x67, 0x68, 0x74, 0xd83e, 0xdd1e, 0x3a, 0x68, 0x61, 0x6e, 0x64, 0x5f, + 0x77, 0x69, 0x74, 0x68, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x61, + 0x6e, 0x64, 0x5f, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x5f, 0x66, 0x69, + 0x6e, 0x67, 0x65, 0x72, 0x5f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x65, 0x64, + 0x3a, 0x61, 0x6e, 0x64, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x65, 0x64, 0x66, + 0x69, 0x6e, 0x67, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x77, 0x69, 0x74, 0x68, + 0xd83e, 0xdd1e, 0x3a, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x5f, 0x63, + 0x72, 0x6f, 0x73, 0x73, 0x65, 0x64, 0x3a, 0x63, 0x72, 0x6f, 0x73, 0x73, + 0x65, 0x64, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x270c, 0xfe0f, 0x3a, + 0x76, 0x3a, 0x76, 0xd83e, 0xdd1f, 0x3a, 0x6c, 0x6f, 0x76, 0x65, 0x5f, 0x79, + 0x6f, 0x75, 0x5f, 0x67, 0x65, 0x73, 0x74, 0x75, 0x72, 0x65, 0x3a, 0x67, + 0x65, 0x73, 0x74, 0x75, 0x72, 0x65, 0x6c, 0x6f, 0x76, 0x65, 0x79, 0x6f, + 0x75, 0xd83e, 0xdd18, 0x3a, 0x73, 0x69, 0x67, 0x6e, 0x5f, 0x6f, 0x66, 0x5f, + 0x74, 0x68, 0x65, 0x5f, 0x68, 0x6f, 0x72, 0x6e, 0x73, 0x3a, 0x68, 0x6f, + 0x72, 0x6e, 0x73, 0x6f, 0x66, 0x73, 0x69, 0x67, 0x6e, 0x74, 0x68, 0x65, + 0xd83e, 0xdd18, 0x3a, 0x6d, 0x65, 0x74, 0x61, 0x6c, 0x3a, 0x6d, 0x65, 0x74, + 0x61, 0x6c, 0xd83d, 0xdc4c, 0x3a, 0x6f, 0x6b, 0x5f, 0x68, 0x61, 0x6e, 0x64, + 0x3a, 0x68, 0x61, 0x6e, 0x64, 0x6f, 0x6b, 0xd83d, 0xdc48, 0x3a, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x6c, 0x65, 0x66, + 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0xd83d, 0xdc49, 0x3a, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x5f, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x72, 0x69, 0x67, 0x68, 0x74, 0xd83d, 0xdc46, 0x3a, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x5f, 0x75, 0x70, 0x5f, 0x32, 0x3a, 0x32, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x75, 0x70, 0xd83d, 0xdc47, 0x3a, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x3a, 0x64, 0x6f, 0x77, 0x6e, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x261d, 0xfe0f, 0x3a, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x5f, 0x75, 0x70, 0x3a, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x75, 0x70, 0x270b, + 0x3a, 0x72, 0x61, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x6e, 0x64, + 0x3a, 0x68, 0x61, 0x6e, 0x64, 0x72, 0x61, 0x69, 0x73, 0x65, 0x64, 0xd83e, + 0xdd1a, 0x3a, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x6f, 0x66, 0x5f, 0x68, 0x61, + 0x6e, 0x64, 0x3a, 0x62, 0x61, 0x63, 0x6b, 0x68, 0x61, 0x6e, 0x64, 0x6f, + 0x66, 0xd83e, 0xdd1a, 0x3a, 0x72, 0x61, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x62, + 0x61, 0x63, 0x6b, 0x5f, 0x6f, 0x66, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x3a, + 0x62, 0x61, 0x63, 0x6b, 0x68, 0x61, 0x6e, 0x64, 0x6f, 0x66, 0x72, 0x61, + 0x69, 0x73, 0x65, 0x64, 0xd83d, 0xdd90, 0x3a, 0x72, 0x61, 0x69, 0x73, 0x65, + 0x64, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, + 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x5f, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x64, 0x3a, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x68, + 0x61, 0x6e, 0x64, 0x72, 0x61, 0x69, 0x73, 0x65, 0x64, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x64, 0x77, 0x69, 0x74, 0x68, 0xd83d, 0xdd90, 0x3a, 0x68, + 0x61, 0x6e, 0x64, 0x5f, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x3a, + 0x68, 0x61, 0x6e, 0x64, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x64, 0xd83d, + 0xdd96, 0x3a, 0x72, 0x61, 0x69, 0x73, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x6e, + 0x64, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x5f, + 0x62, 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x5f, 0x6d, 0x69, 0x64, 0x64, + 0x6c, 0x65, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x72, 0x69, 0x6e, 0x67, 0x5f, + 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x73, 0x3a, 0x61, 0x6e, 0x64, 0x62, + 0x65, 0x74, 0x77, 0x65, 0x65, 0x6e, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, + 0x73, 0x68, 0x61, 0x6e, 0x64, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x70, + 0x61, 0x72, 0x74, 0x72, 0x61, 0x69, 0x73, 0x65, 0x64, 0x72, 0x69, 0x6e, + 0x67, 0x77, 0x69, 0x74, 0x68, 0xd83d, 0xdd96, 0x3a, 0x76, 0x75, 0x6c, 0x63, + 0x61, 0x6e, 0x3a, 0x76, 0x75, 0x6c, 0x63, 0x61, 0x6e, 0xd83d, 0xdc4b, 0x3a, + 0x77, 0x61, 0x76, 0x65, 0x3a, 0x77, 0x61, 0x76, 0x65, 0xd83e, 0xdd19, 0x3a, + 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x6d, 0x65, 0x5f, 0x68, 0x61, 0x6e, 0x64, + 0x3a, 0x63, 0x61, 0x6c, 0x6c, 0x68, 0x61, 0x6e, 0x64, 0x6d, 0x65, 0xd83e, + 0xdd19, 0x3a, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x6d, 0x65, 0x3a, 0x63, 0x61, + 0x6c, 0x6c, 0x6d, 0x65, 0xd83d, 0xdcaa, 0x3a, 0x6d, 0x75, 0x73, 0x63, 0x6c, + 0x65, 0x3a, 0x6d, 0x75, 0x73, 0x63, 0x6c, 0x65, 0xd83d, 0xdd95, 0x3a, 0x72, + 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x64, 0x5f, 0x68, 0x61, 0x6e, 0x64, + 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, + 0x5f, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x65, 0x64, 0x3a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, + 0x64, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x68, 0x61, 0x6e, 0x64, 0x6d, + 0x69, 0x64, 0x64, 0x6c, 0x65, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, + 0x64, 0x77, 0x69, 0x74, 0x68, 0xd83d, 0xdd95, 0x3a, 0x6d, 0x69, 0x64, 0x64, + 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x3a, 0x66, 0x69, + 0x6e, 0x67, 0x65, 0x72, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x270d, 0xfe0f, + 0x3a, 0x77, 0x72, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x61, 0x6e, + 0x64, 0x3a, 0x68, 0x61, 0x6e, 0x64, 0x77, 0x72, 0x69, 0x74, 0x69, 0x6e, + 0x67, 0xd83d, 0xde4f, 0x3a, 0x70, 0x72, 0x61, 0x79, 0x3a, 0x70, 0x72, 0x61, + 0x79, 0xd83d, 0xdc84, 0x3a, 0x6c, 0x69, 0x70, 0x73, 0x74, 0x69, 0x63, 0x6b, + 0x3a, 0x6c, 0x69, 0x70, 0x73, 0x74, 0x69, 0x63, 0x6b, 0xd83d, 0xdc8b, 0x3a, + 0x6b, 0x69, 0x73, 0x73, 0x3a, 0x6b, 0x69, 0x73, 0x73, 0xd83d, 0xdc44, 0x3a, + 0x6c, 0x69, 0x70, 0x73, 0x3a, 0x6c, 0x69, 0x70, 0x73, 0xd83d, 0xdc45, 0x3a, + 0x74, 0x6f, 0x6e, 0x67, 0x75, 0x65, 0x3a, 0x74, 0x6f, 0x6e, 0x67, 0x75, + 0x65, 0xd83d, 0xdc42, 0x3a, 0x65, 0x61, 0x72, 0x3a, 0x65, 0x61, 0x72, 0xd83d, + 0xdc43, 0x3a, 0x6e, 0x6f, 0x73, 0x65, 0x3a, 0x6e, 0x6f, 0x73, 0x65, 0xd83d, + 0xdc63, 0x3a, 0x66, 0x6f, 0x6f, 0x74, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x73, + 0x3a, 0x66, 0x6f, 0x6f, 0x74, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x73, 0xd83d, + 0xdc41, 0x3a, 0x65, 0x79, 0x65, 0x3a, 0x65, 0x79, 0x65, 0xd83d, 0xdc40, 0x3a, + 0x65, 0x79, 0x65, 0x73, 0x3a, 0x65, 0x79, 0x65, 0x73, 0xd83e, 0xdde0, 0x3a, + 0x62, 0x72, 0x61, 0x69, 0x6e, 0x3a, 0x62, 0x72, 0x61, 0x69, 0x6e, 0xd83d, + 0xdde3, 0x3a, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x68, + 0x65, 0x61, 0x64, 0x5f, 0x69, 0x6e, 0x5f, 0x73, 0x69, 0x6c, 0x68, 0x6f, + 0x75, 0x65, 0x74, 0x74, 0x65, 0x3a, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, + 0x73, 0x69, 0x6c, 0x68, 0x6f, 0x75, 0x65, 0x74, 0x74, 0x65, 0x73, 0x70, + 0x65, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0xd83d, 0xdde3, 0x3a, 0x73, 0x70, 0x65, + 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x3a, 0x68, + 0x65, 0x61, 0x64, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0xd83d, + 0xdc64, 0x3a, 0x62, 0x75, 0x73, 0x74, 0x5f, 0x69, 0x6e, 0x5f, 0x73, 0x69, + 0x6c, 0x68, 0x6f, 0x75, 0x65, 0x74, 0x74, 0x65, 0x3a, 0x62, 0x75, 0x73, + 0x74, 0x69, 0x6e, 0x73, 0x69, 0x6c, 0x68, 0x6f, 0x75, 0x65, 0x74, 0x74, + 0x65, 0xd83d, 0xdc65, 0x3a, 0x62, 0x75, 0x73, 0x74, 0x73, 0x5f, 0x69, 0x6e, + 0x5f, 0x73, 0x69, 0x6c, 0x68, 0x6f, 0x75, 0x65, 0x74, 0x74, 0x65, 0x3a, + 0x62, 0x75, 0x73, 0x74, 0x73, 0x69, 0x6e, 0x73, 0x69, 0x6c, 0x68, 0x6f, + 0x75, 0x65, 0x74, 0x74, 0x65, 0xd83d, 0xdc76, 0x3a, 0x62, 0x61, 0x62, 0x79, + 0x3a, 0x62, 0x61, 0x62, 0x79, 0xd83d, 0xdc67, 0x3a, 0x67, 0x69, 0x72, 0x6c, + 0x3a, 0x67, 0x69, 0x72, 0x6c, 0xd83e, 0xddd2, 0x3a, 0x63, 0x68, 0x69, 0x6c, + 0x64, 0x3a, 0x63, 0x68, 0x69, 0x6c, 0x64, 0xd83d, 0xdc66, 0x3a, 0x62, 0x6f, + 0x79, 0x3a, 0x62, 0x6f, 0x79, 0xd83d, 0xdc69, 0x3a, 0x77, 0x6f, 0x6d, 0x61, + 0x6e, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83e, 0xddd1, 0x3a, 0x61, 0x64, + 0x75, 0x6c, 0x74, 0x3a, 0x61, 0x64, 0x75, 0x6c, 0x74, 0xd83d, 0xdc68, 0x3a, + 0x6d, 0x61, 0x6e, 0x3a, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc71, 0x200d, 0x2640, 0xfe0f, + 0x3a, 0x62, 0x6c, 0x6f, 0x6e, 0x64, 0x2d, 0x68, 0x61, 0x69, 0x72, 0x65, + 0x64, 0x5f, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x3a, 0x62, 0x6c, 0x6f, 0x6e, + 0x64, 0x68, 0x61, 0x69, 0x72, 0x65, 0x64, 0x77, 0x6f, 0x6d, 0x61, 0x6e, + 0xd83d, 0xdc71, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x62, 0x6c, 0x6f, 0x6e, 0x64, 0x2d, + 0x68, 0x61, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x61, 0x6e, 0x3a, 0x62, + 0x6c, 0x6f, 0x6e, 0x64, 0x68, 0x61, 0x69, 0x72, 0x65, 0x64, 0x6d, 0x61, + 0x6e, 0xd83d, 0xdc71, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, + 0x6e, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x62, 0x6c, 0x6f, 0x6e, 0x64, + 0x5f, 0x68, 0x61, 0x69, 0x72, 0x3a, 0x62, 0x6c, 0x6f, 0x6e, 0x64, 0x68, + 0x61, 0x69, 0x72, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x77, 0x69, 0x74, + 0x68, 0xd83d, 0xdc71, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x62, 0x6c, 0x6f, 0x6e, 0x64, + 0x5f, 0x68, 0x61, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x73, + 0x6f, 0x6e, 0x3a, 0x62, 0x6c, 0x6f, 0x6e, 0x64, 0x68, 0x61, 0x69, 0x72, + 0x65, 0x64, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0xd83e, 0xddd4, 0x3a, 0x62, + 0x65, 0x61, 0x72, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x73, 0x6f, + 0x6e, 0x3a, 0x62, 0x65, 0x61, 0x72, 0x64, 0x65, 0x64, 0x70, 0x65, 0x72, + 0x73, 0x6f, 0x6e, 0xd83d, 0xdc75, 0x3a, 0x67, 0x72, 0x61, 0x6e, 0x64, 0x6d, + 0x61, 0x3a, 0x67, 0x72, 0x61, 0x6e, 0x64, 0x6d, 0x61, 0xd83d, 0xdc75, 0x3a, + 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x3a, + 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83e, 0xddd3, + 0x3a, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x75, 0x6c, 0x74, + 0x3a, 0x61, 0x64, 0x75, 0x6c, 0x74, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0xd83d, + 0xdc74, 0x3a, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x6e, 0x3a, + 0x6d, 0x61, 0x6e, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0xd83d, 0xdc72, 0x3a, 0x6d, + 0x61, 0x6e, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x67, 0x75, 0x61, 0x5f, + 0x70, 0x69, 0x5f, 0x6d, 0x61, 0x6f, 0x3a, 0x67, 0x75, 0x61, 0x6d, 0x61, + 0x6e, 0x6d, 0x61, 0x6f, 0x70, 0x69, 0x77, 0x69, 0x74, 0x68, 0xd83d, 0xdc72, + 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x63, 0x68, + 0x69, 0x6e, 0x65, 0x73, 0x65, 0x5f, 0x63, 0x61, 0x70, 0x3a, 0x63, 0x61, + 0x70, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x77, + 0x69, 0x74, 0x68, 0xd83d, 0xdc73, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, + 0x61, 0x6e, 0x5f, 0x77, 0x65, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x74, + 0x75, 0x72, 0x62, 0x61, 0x6e, 0x3a, 0x74, 0x75, 0x72, 0x62, 0x61, 0x6e, + 0x77, 0x65, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x77, 0x6f, 0x6d, 0x61, 0x6e, + 0xd83d, 0xdc73, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x77, 0x65, + 0x61, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x75, 0x72, 0x62, 0x61, 0x6e, + 0x3a, 0x6d, 0x61, 0x6e, 0x74, 0x75, 0x72, 0x62, 0x61, 0x6e, 0x77, 0x65, + 0x61, 0x72, 0x69, 0x6e, 0x67, 0xd83d, 0xdc73, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, + 0x61, 0x6e, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x74, 0x75, 0x72, 0x62, + 0x61, 0x6e, 0x3a, 0x6d, 0x61, 0x6e, 0x74, 0x75, 0x72, 0x62, 0x61, 0x6e, + 0x77, 0x69, 0x74, 0x68, 0xd83d, 0xdc73, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x70, 0x65, + 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x77, 0x65, 0x61, 0x72, 0x69, 0x6e, 0x67, + 0x5f, 0x74, 0x75, 0x72, 0x62, 0x61, 0x6e, 0x3a, 0x70, 0x65, 0x72, 0x73, + 0x6f, 0x6e, 0x74, 0x75, 0x72, 0x62, 0x61, 0x6e, 0x77, 0x65, 0x61, 0x72, + 0x69, 0x6e, 0x67, 0xd83e, 0xddd5, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, + 0x77, 0x69, 0x74, 0x68, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, + 0x72, 0x66, 0x3a, 0x68, 0x65, 0x61, 0x64, 0x73, 0x63, 0x61, 0x72, 0x66, + 0x77, 0x69, 0x74, 0x68, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc6e, 0x200d, + 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x72, 0x3a, + 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x65, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc6e, 0x200d, 0x2642, 0xfe0f, 0x3a, + 0x6d, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x6f, + 0x66, 0x66, 0x69, 0x63, 0x65, 0x72, 0x3a, 0x6d, 0x61, 0x6e, 0x6f, 0x66, + 0x66, 0x69, 0x63, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0xd83d, + 0xdc6e, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x63, 0x6f, 0x70, 0x3a, 0x63, 0x6f, 0x70, + 0xd83d, 0xdc6e, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, + 0x5f, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x72, 0x3a, 0x6f, 0x66, 0x66, + 0x69, 0x63, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0xd83d, 0xdc77, + 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x77, + 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x3a, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, + 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x77, + 0x6f, 0x72, 0x6b, 0x65, 0x72, 0xd83d, 0xdc77, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, + 0x61, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x3a, 0x63, + 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x6d, + 0x61, 0x6e, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0xd83d, 0xdc77, 0x200d, 0x2642, + 0xfe0f, 0x3a, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x3a, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x77, 0x6f, + 0x72, 0x6b, 0x65, 0x72, 0xd83d, 0xdc82, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, + 0x6d, 0x61, 0x6e, 0x5f, 0x67, 0x75, 0x61, 0x72, 0x64, 0x3a, 0x67, 0x75, + 0x61, 0x72, 0x64, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc82, 0x200d, 0x2642, + 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x67, 0x75, 0x61, 0x72, 0x64, 0x3a, + 0x67, 0x75, 0x61, 0x72, 0x64, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc82, 0x200d, 0x2642, + 0xfe0f, 0x3a, 0x67, 0x75, 0x61, 0x72, 0x64, 0x73, 0x6d, 0x61, 0x6e, 0x3a, + 0x67, 0x75, 0x61, 0x72, 0x64, 0x73, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc82, 0x200d, + 0x2642, 0xfe0f, 0x3a, 0x67, 0x75, 0x61, 0x72, 0x64, 0x3a, 0x67, 0x75, 0x61, + 0x72, 0x64, 0xd83d, 0xdd75, 0xfe0f, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, + 0x61, 0x6e, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x3a, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x77, 0x6f, + 0x6d, 0x61, 0x6e, 0xd83d, 0xdd75, 0xfe0f, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, 0x61, + 0x6e, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x3a, + 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x6d, 0x61, 0x6e, + 0xd83d, 0xdd75, 0xfe0f, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x73, 0x6c, 0x65, 0x75, 0x74, + 0x68, 0x5f, 0x6f, 0x72, 0x5f, 0x73, 0x70, 0x79, 0x3a, 0x6f, 0x72, 0x73, + 0x6c, 0x65, 0x75, 0x74, 0x68, 0x73, 0x70, 0x79, 0xd83d, 0xdd75, 0xfe0f, 0x200d, + 0x2642, 0xfe0f, 0x3a, 0x73, 0x70, 0x79, 0x3a, 0x73, 0x70, 0x79, 0xd83d, 0xdd75, + 0xfe0f, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x3a, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, + 0xd83d, 0xdc69, 0x200d, 0x2695, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, + 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, + 0x72, 0x3a, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x77, 0x6f, 0x6d, 0x61, + 0x6e, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0xd83d, 0xdc68, 0x200d, 0x2695, 0xfe0f, + 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, + 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x3a, 0x68, 0x65, 0x61, 0x6c, 0x74, + 0x68, 0x6d, 0x61, 0x6e, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0xd83d, 0xdc69, + 0x200d, 0xd83c, 0xdf3e, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x66, 0x61, + 0x72, 0x6d, 0x65, 0x72, 0x3a, 0x66, 0x61, 0x72, 0x6d, 0x65, 0x72, 0x77, + 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc68, 0x200d, 0xd83c, 0xdf3e, 0x3a, 0x6d, 0x61, + 0x6e, 0x5f, 0x66, 0x61, 0x72, 0x6d, 0x65, 0x72, 0x3a, 0x66, 0x61, 0x72, + 0x6d, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc69, 0x200d, 0xd83c, 0xdf73, 0x3a, + 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x63, 0x6f, 0x6f, 0x6b, 0x3a, 0x63, + 0x6f, 0x6f, 0x6b, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc68, 0x200d, 0xd83c, + 0xdf73, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x63, 0x6f, 0x6f, 0x6b, 0x3a, 0x63, + 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc69, 0x200d, 0xd83c, 0xdf93, 0x3a, + 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x3a, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x77, 0x6f, 0x6d, + 0x61, 0x6e, 0xd83d, 0xdc68, 0x200d, 0xd83c, 0xdf93, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, + 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x3a, 0x6d, 0x61, 0x6e, 0x73, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0xd83d, 0xdc69, 0x200d, 0xd83c, 0xdfa4, 0x3a, + 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x73, 0x69, 0x6e, 0x67, 0x65, 0x72, + 0x3a, 0x73, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x77, 0x6f, 0x6d, 0x61, 0x6e, + 0xd83d, 0xdc68, 0x200d, 0xd83c, 0xdfa4, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x73, 0x69, + 0x6e, 0x67, 0x65, 0x72, 0x3a, 0x6d, 0x61, 0x6e, 0x73, 0x69, 0x6e, 0x67, + 0x65, 0x72, 0xd83d, 0xdc69, 0x200d, 0xd83c, 0xdfeb, 0x3a, 0x77, 0x6f, 0x6d, 0x61, + 0x6e, 0x5f, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x3a, 0x74, 0x65, + 0x61, 0x63, 0x68, 0x65, 0x72, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc68, + 0x200d, 0xd83c, 0xdfeb, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x74, 0x65, 0x61, 0x63, + 0x68, 0x65, 0x72, 0x3a, 0x6d, 0x61, 0x6e, 0x74, 0x65, 0x61, 0x63, 0x68, + 0x65, 0x72, 0xd83d, 0xdc69, 0x200d, 0xd83c, 0xdfed, 0x3a, 0x77, 0x6f, 0x6d, 0x61, + 0x6e, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x77, 0x6f, + 0x72, 0x6b, 0x65, 0x72, 0x3a, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, + 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0xd83d, + 0xdc68, 0x200d, 0xd83c, 0xdfed, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x66, 0x61, 0x63, + 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x3a, + 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x6d, 0x61, 0x6e, 0x77, 0x6f, + 0x72, 0x6b, 0x65, 0x72, 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xdcbb, 0x3a, 0x77, 0x6f, + 0x6d, 0x61, 0x6e, 0x5f, 0x74, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, 0x6f, + 0x67, 0x69, 0x73, 0x74, 0x3a, 0x74, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, + 0x6f, 0x67, 0x69, 0x73, 0x74, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc68, + 0x200d, 0xd83d, 0xdcbb, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x74, 0x65, 0x63, 0x68, + 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x73, 0x74, 0x3a, 0x6d, 0x61, 0x6e, + 0x74, 0x65, 0x63, 0x68, 0x6e, 0x6f, 0x6c, 0x6f, 0x67, 0x69, 0x73, 0x74, + 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xdcbc, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, + 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, + 0x72, 0x3a, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x77, 0x6f, 0x6d, 0x61, + 0x6e, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0xd83d, 0xdc68, 0x200d, 0xd83d, 0xdcbc, + 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x5f, + 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x3a, 0x6d, 0x61, 0x6e, 0x6f, 0x66, + 0x66, 0x69, 0x63, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0xd83d, 0xdc69, + 0x200d, 0xd83d, 0xdd27, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x6d, 0x65, + 0x63, 0x68, 0x61, 0x6e, 0x69, 0x63, 0x3a, 0x6d, 0x65, 0x63, 0x68, 0x61, + 0x6e, 0x69, 0x63, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc68, 0x200d, 0xd83d, + 0xdd27, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, + 0x69, 0x63, 0x3a, 0x6d, 0x61, 0x6e, 0x6d, 0x65, 0x63, 0x68, 0x61, 0x6e, + 0x69, 0x63, 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xdd2c, 0x3a, 0x77, 0x6f, 0x6d, 0x61, + 0x6e, 0x5f, 0x73, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x73, 0x74, 0x3a, + 0x73, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x73, 0x74, 0x77, 0x6f, 0x6d, + 0x61, 0x6e, 0xd83d, 0xdc68, 0x200d, 0xd83d, 0xdd2c, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, + 0x73, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x73, 0x74, 0x3a, 0x6d, 0x61, + 0x6e, 0x73, 0x63, 0x69, 0x65, 0x6e, 0x74, 0x69, 0x73, 0x74, 0xd83d, 0xdc69, + 0x200d, 0xd83c, 0xdfa8, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x61, 0x72, + 0x74, 0x69, 0x73, 0x74, 0x3a, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x77, + 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc68, 0x200d, 0xd83c, 0xdfa8, 0x3a, 0x6d, 0x61, + 0x6e, 0x5f, 0x61, 0x72, 0x74, 0x69, 0x73, 0x74, 0x3a, 0x61, 0x72, 0x74, + 0x69, 0x73, 0x74, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xde92, 0x3a, + 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x66, 0x69, 0x72, 0x65, 0x66, 0x69, + 0x67, 0x68, 0x74, 0x65, 0x72, 0x3a, 0x66, 0x69, 0x72, 0x65, 0x66, 0x69, + 0x67, 0x68, 0x74, 0x65, 0x72, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc68, + 0x200d, 0xd83d, 0xde92, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x66, 0x69, 0x72, 0x65, + 0x66, 0x69, 0x67, 0x68, 0x74, 0x65, 0x72, 0x3a, 0x66, 0x69, 0x72, 0x65, + 0x66, 0x69, 0x67, 0x68, 0x74, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc69, + 0x200d, 0x2708, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x70, 0x69, + 0x6c, 0x6f, 0x74, 0x3a, 0x70, 0x69, 0x6c, 0x6f, 0x74, 0x77, 0x6f, 0x6d, + 0x61, 0x6e, 0xd83d, 0xdc68, 0x200d, 0x2708, 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, + 0x70, 0x69, 0x6c, 0x6f, 0x74, 0x3a, 0x6d, 0x61, 0x6e, 0x70, 0x69, 0x6c, + 0x6f, 0x74, 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xde80, 0x3a, 0x77, 0x6f, 0x6d, 0x61, + 0x6e, 0x5f, 0x61, 0x73, 0x74, 0x72, 0x6f, 0x6e, 0x61, 0x75, 0x74, 0x3a, + 0x61, 0x73, 0x74, 0x72, 0x6f, 0x6e, 0x61, 0x75, 0x74, 0x77, 0x6f, 0x6d, + 0x61, 0x6e, 0xd83d, 0xdc68, 0x200d, 0xd83d, 0xde80, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, + 0x61, 0x73, 0x74, 0x72, 0x6f, 0x6e, 0x61, 0x75, 0x74, 0x3a, 0x61, 0x73, + 0x74, 0x72, 0x6f, 0x6e, 0x61, 0x75, 0x74, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc69, + 0x200d, 0x2696, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x6a, 0x75, + 0x64, 0x67, 0x65, 0x3a, 0x6a, 0x75, 0x64, 0x67, 0x65, 0x77, 0x6f, 0x6d, + 0x61, 0x6e, 0xd83d, 0xdc68, 0x200d, 0x2696, 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, + 0x6a, 0x75, 0x64, 0x67, 0x65, 0x3a, 0x6a, 0x75, 0x64, 0x67, 0x65, 0x6d, + 0x61, 0x6e, 0xd83d, 0xdc70, 0x3a, 0x62, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x77, + 0x69, 0x74, 0x68, 0x5f, 0x76, 0x65, 0x69, 0x6c, 0x3a, 0x62, 0x72, 0x69, + 0x64, 0x65, 0x76, 0x65, 0x69, 0x6c, 0x77, 0x69, 0x74, 0x68, 0xd83e, 0xdd35, + 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x74, 0x75, 0x78, 0x65, + 0x64, 0x6f, 0x3a, 0x69, 0x6e, 0x6d, 0x61, 0x6e, 0x74, 0x75, 0x78, 0x65, + 0x64, 0x6f, 0xd83d, 0xdc78, 0x3a, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x65, 0x73, + 0x73, 0x3a, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x65, 0x73, 0x73, 0xd83e, 0xdd34, + 0x3a, 0x70, 0x72, 0x69, 0x6e, 0x63, 0x65, 0x3a, 0x70, 0x72, 0x69, 0x6e, + 0x63, 0x65, 0xd83e, 0xdd36, 0x3a, 0x6d, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x5f, + 0x63, 0x68, 0x72, 0x69, 0x73, 0x74, 0x6d, 0x61, 0x73, 0x3a, 0x63, 0x68, + 0x72, 0x69, 0x73, 0x74, 0x6d, 0x61, 0x73, 0x6d, 0x6f, 0x74, 0x68, 0x65, + 0x72, 0xd83e, 0xdd36, 0x3a, 0x6d, 0x72, 0x73, 0x5f, 0x63, 0x6c, 0x61, 0x75, + 0x73, 0x3a, 0x63, 0x6c, 0x61, 0x75, 0x73, 0x6d, 0x72, 0x73, 0xd83c, 0xdf85, + 0x3a, 0x73, 0x61, 0x6e, 0x74, 0x61, 0x3a, 0x73, 0x61, 0x6e, 0x74, 0x61, + 0xd83e, 0xddd9, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, + 0x6d, 0x61, 0x67, 0x65, 0x3a, 0x6d, 0x61, 0x67, 0x65, 0x77, 0x6f, 0x6d, + 0x61, 0x6e, 0xd83e, 0xddd9, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x6d, 0x61, 0x67, 0x65, + 0x3a, 0x6d, 0x61, 0x67, 0x65, 0xd83e, 0xddd9, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, + 0x61, 0x6e, 0x5f, 0x6d, 0x61, 0x67, 0x65, 0x3a, 0x6d, 0x61, 0x67, 0x65, + 0x6d, 0x61, 0x6e, 0xd83e, 0xdddd, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, + 0x61, 0x6e, 0x5f, 0x65, 0x6c, 0x66, 0x3a, 0x65, 0x6c, 0x66, 0x77, 0x6f, + 0x6d, 0x61, 0x6e, 0xd83e, 0xdddd, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x65, 0x6c, 0x66, + 0x3a, 0x65, 0x6c, 0x66, 0xd83e, 0xdddd, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, 0x61, + 0x6e, 0x5f, 0x65, 0x6c, 0x66, 0x3a, 0x65, 0x6c, 0x66, 0x6d, 0x61, 0x6e, + 0xd83e, 0xdddb, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, + 0x76, 0x61, 0x6d, 0x70, 0x69, 0x72, 0x65, 0x3a, 0x76, 0x61, 0x6d, 0x70, + 0x69, 0x72, 0x65, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83e, 0xdddb, 0x200d, 0x2640, + 0xfe0f, 0x3a, 0x76, 0x61, 0x6d, 0x70, 0x69, 0x72, 0x65, 0x3a, 0x76, 0x61, + 0x6d, 0x70, 0x69, 0x72, 0x65, 0xd83e, 0xdddb, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, + 0x61, 0x6e, 0x5f, 0x76, 0x61, 0x6d, 0x70, 0x69, 0x72, 0x65, 0x3a, 0x6d, + 0x61, 0x6e, 0x76, 0x61, 0x6d, 0x70, 0x69, 0x72, 0x65, 0xd83e, 0xdddf, 0x200d, + 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x7a, 0x6f, 0x6d, + 0x62, 0x69, 0x65, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x7a, 0x6f, 0x6d, + 0x62, 0x69, 0x65, 0xd83e, 0xdddf, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x7a, 0x6f, 0x6d, + 0x62, 0x69, 0x65, 0x3a, 0x7a, 0x6f, 0x6d, 0x62, 0x69, 0x65, 0xd83e, 0xdddf, + 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x7a, 0x6f, 0x6d, 0x62, + 0x69, 0x65, 0x3a, 0x6d, 0x61, 0x6e, 0x7a, 0x6f, 0x6d, 0x62, 0x69, 0x65, + 0xd83e, 0xddde, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, + 0x67, 0x65, 0x6e, 0x69, 0x65, 0x3a, 0x67, 0x65, 0x6e, 0x69, 0x65, 0x77, + 0x6f, 0x6d, 0x61, 0x6e, 0xd83e, 0xddde, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x67, 0x65, + 0x6e, 0x69, 0x65, 0x3a, 0x67, 0x65, 0x6e, 0x69, 0x65, 0xd83e, 0xddde, 0x200d, + 0x2642, 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x67, 0x65, 0x6e, 0x69, 0x65, + 0x3a, 0x67, 0x65, 0x6e, 0x69, 0x65, 0x6d, 0x61, 0x6e, 0xd83e, 0xdddc, 0x200d, + 0x2640, 0xfe0f, 0x3a, 0x6d, 0x65, 0x72, 0x6d, 0x61, 0x69, 0x64, 0x3a, 0x6d, + 0x65, 0x72, 0x6d, 0x61, 0x69, 0x64, 0xd83e, 0xdddc, 0x200d, 0x2640, 0xfe0f, 0x3a, + 0x6d, 0x65, 0x72, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x3a, 0x6d, 0x65, + 0x72, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0xd83e, 0xdddc, 0x200d, 0x2642, 0xfe0f, + 0x3a, 0x6d, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x3a, 0x6d, 0x65, 0x72, 0x6d, + 0x61, 0x6e, 0xd83e, 0xddda, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, + 0x6e, 0x5f, 0x66, 0x61, 0x69, 0x72, 0x79, 0x3a, 0x66, 0x61, 0x69, 0x72, + 0x79, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83e, 0xddda, 0x200d, 0x2640, 0xfe0f, 0x3a, + 0x66, 0x61, 0x69, 0x72, 0x79, 0x3a, 0x66, 0x61, 0x69, 0x72, 0x79, 0xd83e, + 0xddda, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x66, 0x61, 0x69, + 0x72, 0x79, 0x3a, 0x66, 0x61, 0x69, 0x72, 0x79, 0x6d, 0x61, 0x6e, 0xd83d, + 0xdc7c, 0x3a, 0x61, 0x6e, 0x67, 0x65, 0x6c, 0x3a, 0x61, 0x6e, 0x67, 0x65, + 0x6c, 0xd83e, 0xdd30, 0x3a, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x69, 0x6e, + 0x67, 0x5f, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x3a, 0x65, 0x78, 0x70, 0x65, + 0x63, 0x74, 0x69, 0x6e, 0x67, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83e, 0xdd30, + 0x3a, 0x70, 0x72, 0x65, 0x67, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x77, 0x6f, + 0x6d, 0x61, 0x6e, 0x3a, 0x70, 0x72, 0x65, 0x67, 0x6e, 0x61, 0x6e, 0x74, + 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83e, 0xdd31, 0x3a, 0x62, 0x72, 0x65, 0x61, + 0x73, 0x74, 0x5f, 0x66, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x62, + 0x72, 0x65, 0x61, 0x73, 0x74, 0x66, 0x65, 0x65, 0x64, 0x69, 0x6e, 0x67, + 0xd83d, 0xde47, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, + 0x62, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x3a, 0x62, 0x6f, 0x77, 0x69, 0x6e, + 0x67, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xde47, 0x200d, 0x2642, 0xfe0f, 0x3a, + 0x6d, 0x61, 0x6e, 0x5f, 0x62, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x3a, 0x62, + 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x6d, 0x61, 0x6e, 0xd83d, 0xde47, 0x200d, 0x2642, + 0xfe0f, 0x3a, 0x62, 0x6f, 0x77, 0x3a, 0x62, 0x6f, 0x77, 0xd83d, 0xde47, 0x200d, + 0x2642, 0xfe0f, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x62, 0x6f, + 0x77, 0x69, 0x6e, 0x67, 0x3a, 0x62, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x70, + 0x65, 0x72, 0x73, 0x6f, 0x6e, 0xd83d, 0xdc81, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, + 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x74, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x3a, 0x68, 0x61, 0x6e, 0x64, 0x74, 0x69, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc81, + 0x200d, 0x2640, 0xfe0f, 0x3a, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x6b, 0x5f, 0x70, 0x65, 0x72, + 0x73, 0x6f, 0x6e, 0x3a, 0x64, 0x65, 0x73, 0x6b, 0x69, 0x6e, 0x66, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x70, 0x65, 0x72, 0x73, 0x6f, + 0x6e, 0xd83d, 0xdc81, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, + 0x6e, 0x5f, 0x74, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x61, + 0x6e, 0x64, 0x3a, 0x68, 0x61, 0x6e, 0x64, 0x70, 0x65, 0x72, 0x73, 0x6f, + 0x6e, 0x74, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0xd83d, 0xdc81, 0x200d, 0x2642, + 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x74, 0x69, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x3a, 0x68, 0x61, 0x6e, 0x64, 0x6d, + 0x61, 0x6e, 0x74, 0x69, 0x70, 0x70, 0x69, 0x6e, 0x67, 0xd83d, 0xde45, 0x200d, + 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x67, 0x65, 0x73, + 0x74, 0x75, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6e, 0x6f, 0x3a, 0x67, 0x65, + 0x73, 0x74, 0x75, 0x72, 0x69, 0x6e, 0x67, 0x6e, 0x6f, 0x77, 0x6f, 0x6d, + 0x61, 0x6e, 0xd83d, 0xde45, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x6e, 0x6f, 0x5f, 0x67, + 0x6f, 0x6f, 0x64, 0x3a, 0x67, 0x6f, 0x6f, 0x64, 0x6e, 0x6f, 0xd83d, 0xde45, + 0x200d, 0x2640, 0xfe0f, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x67, + 0x65, 0x73, 0x74, 0x75, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6e, 0x6f, 0x3a, + 0x67, 0x65, 0x73, 0x74, 0x75, 0x72, 0x69, 0x6e, 0x67, 0x6e, 0x6f, 0x70, + 0x65, 0x72, 0x73, 0x6f, 0x6e, 0xd83d, 0xde45, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, + 0x61, 0x6e, 0x5f, 0x67, 0x65, 0x73, 0x74, 0x75, 0x72, 0x69, 0x6e, 0x67, + 0x5f, 0x6e, 0x6f, 0x3a, 0x67, 0x65, 0x73, 0x74, 0x75, 0x72, 0x69, 0x6e, + 0x67, 0x6d, 0x61, 0x6e, 0x6e, 0x6f, 0xd83d, 0xde46, 0x200d, 0x2640, 0xfe0f, 0x3a, + 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x67, 0x65, 0x73, 0x74, 0x75, 0x72, + 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x6b, 0x3a, 0x67, 0x65, 0x73, 0x74, 0x75, + 0x72, 0x69, 0x6e, 0x67, 0x6f, 0x6b, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, + 0xde46, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x6f, 0x6b, 0x5f, 0x77, 0x6f, 0x6d, 0x61, + 0x6e, 0x3a, 0x6f, 0x6b, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xde46, 0x200d, + 0x2640, 0xfe0f, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x67, 0x65, + 0x73, 0x74, 0x75, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x6b, 0x3a, 0x67, + 0x65, 0x73, 0x74, 0x75, 0x72, 0x69, 0x6e, 0x67, 0x6f, 0x6b, 0x70, 0x65, + 0x72, 0x73, 0x6f, 0x6e, 0xd83d, 0xde46, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, 0x61, + 0x6e, 0x5f, 0x67, 0x65, 0x73, 0x74, 0x75, 0x72, 0x69, 0x6e, 0x67, 0x5f, + 0x6f, 0x6b, 0x3a, 0x67, 0x65, 0x73, 0x74, 0x75, 0x72, 0x69, 0x6e, 0x67, + 0x6d, 0x61, 0x6e, 0x6f, 0x6b, 0xd83d, 0xde4b, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, + 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x72, 0x61, 0x69, 0x73, 0x69, 0x6e, 0x67, + 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x3a, 0x68, 0x61, 0x6e, 0x64, 0x72, 0x61, + 0x69, 0x73, 0x69, 0x6e, 0x67, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xde4b, + 0x200d, 0x2640, 0xfe0f, 0x3a, 0x72, 0x61, 0x69, 0x73, 0x69, 0x6e, 0x67, 0x5f, + 0x68, 0x61, 0x6e, 0x64, 0x3a, 0x68, 0x61, 0x6e, 0x64, 0x72, 0x61, 0x69, + 0x73, 0x69, 0x6e, 0x67, 0xd83d, 0xde4b, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x70, 0x65, + 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x69, 0x73, 0x69, 0x6e, 0x67, + 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x3a, 0x68, 0x61, 0x6e, 0x64, 0x70, 0x65, + 0x72, 0x73, 0x6f, 0x6e, 0x72, 0x61, 0x69, 0x73, 0x69, 0x6e, 0x67, 0xd83d, + 0xde4b, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x72, 0x61, 0x69, + 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x3a, 0x68, 0x61, + 0x6e, 0x64, 0x6d, 0x61, 0x6e, 0x72, 0x61, 0x69, 0x73, 0x69, 0x6e, 0x67, + 0xd83e, 0xdd26, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, + 0x66, 0x61, 0x63, 0x65, 0x70, 0x61, 0x6c, 0x6d, 0x69, 0x6e, 0x67, 0x3a, + 0x66, 0x61, 0x63, 0x65, 0x70, 0x61, 0x6c, 0x6d, 0x69, 0x6e, 0x67, 0x77, + 0x6f, 0x6d, 0x61, 0x6e, 0xd83e, 0xdd26, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, 0x61, + 0x6e, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x70, 0x61, 0x6c, 0x6d, 0x69, 0x6e, + 0x67, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x70, 0x61, 0x6c, 0x6d, 0x69, 0x6e, + 0x67, 0x6d, 0x61, 0x6e, 0xd83e, 0xdd26, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x66, 0x61, + 0x63, 0x65, 0x70, 0x61, 0x6c, 0x6d, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x70, + 0x61, 0x6c, 0x6d, 0xd83e, 0xdd26, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x66, 0x61, 0x63, + 0x65, 0x5f, 0x70, 0x61, 0x6c, 0x6d, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x70, + 0x61, 0x6c, 0x6d, 0xd83e, 0xdd26, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x70, 0x65, 0x72, + 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x70, 0x61, 0x6c, 0x6d, + 0x69, 0x6e, 0x67, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x70, 0x61, 0x6c, 0x6d, + 0x69, 0x6e, 0x67, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0xd83e, 0xdd37, 0x200d, + 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x73, 0x68, 0x72, + 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x3a, 0x73, 0x68, 0x72, 0x75, 0x67, + 0x67, 0x69, 0x6e, 0x67, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83e, 0xdd37, 0x200d, + 0x2640, 0xfe0f, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x73, 0x68, + 0x72, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x3a, 0x70, 0x65, 0x72, 0x73, + 0x6f, 0x6e, 0x73, 0x68, 0x72, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0xd83e, + 0xdd37, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x73, 0x68, 0x72, + 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x3a, 0x6d, 0x61, 0x6e, 0x73, 0x68, + 0x72, 0x75, 0x67, 0x67, 0x69, 0x6e, 0x67, 0xd83d, 0xde4e, 0x200d, 0x2640, 0xfe0f, + 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x75, 0x74, 0x69, + 0x6e, 0x67, 0x3a, 0x70, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x77, 0x6f, + 0x6d, 0x61, 0x6e, 0xd83d, 0xde4e, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x70, 0x65, 0x72, + 0x73, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x70, 0x6f, 0x75, + 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, + 0x63, 0x65, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x70, 0x6f, 0x75, 0x74, + 0x69, 0x6e, 0x67, 0x77, 0x69, 0x74, 0x68, 0xd83d, 0xde4e, 0x200d, 0x2640, 0xfe0f, + 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, 0x75, 0x74, + 0x69, 0x6e, 0x67, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x70, 0x6f, + 0x75, 0x74, 0x69, 0x6e, 0x67, 0xd83d, 0xde4e, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, + 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x3a, 0x6d, + 0x61, 0x6e, 0x70, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0xd83d, 0xde4d, 0x200d, + 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x66, 0x72, 0x6f, + 0x77, 0x6e, 0x69, 0x6e, 0x67, 0x3a, 0x66, 0x72, 0x6f, 0x77, 0x6e, 0x69, + 0x6e, 0x67, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xde4d, 0x200d, 0x2640, 0xfe0f, + 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x72, 0x6f, 0x77, + 0x6e, 0x69, 0x6e, 0x67, 0x3a, 0x66, 0x72, 0x6f, 0x77, 0x6e, 0x69, 0x6e, + 0x67, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0xd83d, 0xde4d, 0x200d, 0x2642, 0xfe0f, + 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x66, 0x72, 0x6f, 0x77, 0x6e, 0x69, 0x6e, + 0x67, 0x3a, 0x66, 0x72, 0x6f, 0x77, 0x6e, 0x69, 0x6e, 0x67, 0x6d, 0x61, + 0x6e, 0xd83d, 0xdc87, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, + 0x5f, 0x67, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x61, 0x69, + 0x72, 0x63, 0x75, 0x74, 0x3a, 0x67, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x68, 0x61, 0x69, 0x72, 0x63, 0x75, 0x74, 0x77, 0x6f, 0x6d, 0x61, 0x6e, + 0xd83d, 0xdc87, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x68, 0x61, 0x69, 0x72, 0x63, 0x75, + 0x74, 0x3a, 0x68, 0x61, 0x69, 0x72, 0x63, 0x75, 0x74, 0xd83d, 0xdc87, 0x200d, + 0x2640, 0xfe0f, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x67, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x61, 0x69, 0x72, 0x63, 0x75, + 0x74, 0x3a, 0x67, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x68, 0x61, 0x69, + 0x72, 0x63, 0x75, 0x74, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0xd83d, 0xdc87, + 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x67, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x61, 0x69, 0x72, 0x63, 0x75, 0x74, 0x3a, + 0x67, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x68, 0x61, 0x69, 0x72, 0x63, + 0x75, 0x74, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc86, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, + 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x67, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x5f, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x67, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x6d, 0x61, 0x73, 0x73, 0x61, 0x67, 0x65, 0x77, 0x6f, 0x6d, 0x61, + 0x6e, 0xd83d, 0xdc86, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x6d, 0x61, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x3a, 0x6d, 0x61, 0x73, 0x73, 0x61, 0x67, 0x65, 0xd83d, 0xdc86, + 0x200d, 0x2640, 0xfe0f, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x67, + 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x61, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x3a, 0x67, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x6d, 0x61, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0xd83d, + 0xdc86, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x67, 0x65, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6d, 0x61, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x67, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x6d, 0x61, 0x6e, 0x6d, 0x61, 0x73, 0x73, + 0x61, 0x67, 0x65, 0xd83e, 0xddd6, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, + 0x61, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x79, + 0x5f, 0x72, 0x6f, 0x6f, 0x6d, 0x3a, 0x69, 0x6e, 0x72, 0x6f, 0x6f, 0x6d, + 0x73, 0x74, 0x65, 0x61, 0x6d, 0x79, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83e, + 0xddd6, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, + 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x79, 0x5f, 0x72, 0x6f, + 0x6f, 0x6d, 0x3a, 0x69, 0x6e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x72, + 0x6f, 0x6f, 0x6d, 0x73, 0x74, 0x65, 0x61, 0x6d, 0x79, 0xd83e, 0xddd6, 0x200d, + 0x2642, 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x73, 0x74, + 0x65, 0x61, 0x6d, 0x79, 0x5f, 0x72, 0x6f, 0x6f, 0x6d, 0x3a, 0x69, 0x6e, + 0x6d, 0x61, 0x6e, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x74, 0x65, 0x61, 0x6d, + 0x79, 0xd83d, 0xdc85, 0x3a, 0x6e, 0x61, 0x69, 0x6c, 0x5f, 0x63, 0x61, 0x72, + 0x65, 0x3a, 0x63, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x69, 0x6c, 0xd83e, 0xdd33, + 0x3a, 0x73, 0x65, 0x6c, 0x66, 0x69, 0x65, 0x3a, 0x73, 0x65, 0x6c, 0x66, + 0x69, 0x65, 0xd83d, 0xdc83, 0x3a, 0x64, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x3a, + 0x64, 0x61, 0x6e, 0x63, 0x65, 0x72, 0xd83d, 0xdd7a, 0x3a, 0x6d, 0x61, 0x6c, + 0x65, 0x5f, 0x64, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x3a, 0x64, 0x61, 0x6e, + 0x63, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x65, 0xd83d, 0xdd7a, 0x3a, 0x6d, 0x61, + 0x6e, 0x5f, 0x64, 0x61, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x64, 0x61, + 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc6f, 0x200d, 0x2640, + 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x65, 0x6e, 0x5f, 0x77, 0x69, 0x74, 0x68, + 0x5f, 0x62, 0x75, 0x6e, 0x6e, 0x79, 0x5f, 0x65, 0x61, 0x72, 0x73, 0x5f, + 0x70, 0x61, 0x72, 0x74, 0x79, 0x69, 0x6e, 0x67, 0x3a, 0x62, 0x75, 0x6e, + 0x6e, 0x79, 0x65, 0x61, 0x72, 0x73, 0x70, 0x61, 0x72, 0x74, 0x79, 0x69, + 0x6e, 0x67, 0x77, 0x69, 0x74, 0x68, 0x77, 0x6f, 0x6d, 0x65, 0x6e, 0xd83d, + 0xdc6f, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x64, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x73, + 0x3a, 0x64, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x73, 0xd83d, 0xdc6f, 0x200d, 0x2640, + 0xfe0f, 0x3a, 0x70, 0x65, 0x6f, 0x70, 0x6c, 0x65, 0x5f, 0x77, 0x69, 0x74, + 0x68, 0x5f, 0x62, 0x75, 0x6e, 0x6e, 0x79, 0x5f, 0x65, 0x61, 0x72, 0x73, + 0x5f, 0x70, 0x61, 0x72, 0x74, 0x79, 0x69, 0x6e, 0x67, 0x3a, 0x62, 0x75, + 0x6e, 0x6e, 0x79, 0x65, 0x61, 0x72, 0x73, 0x70, 0x61, 0x72, 0x74, 0x79, + 0x69, 0x6e, 0x67, 0x70, 0x65, 0x6f, 0x70, 0x6c, 0x65, 0x77, 0x69, 0x74, + 0x68, 0xd83d, 0xdc6f, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, 0x65, 0x6e, 0x5f, 0x77, + 0x69, 0x74, 0x68, 0x5f, 0x62, 0x75, 0x6e, 0x6e, 0x79, 0x5f, 0x65, 0x61, + 0x72, 0x73, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x79, 0x69, 0x6e, 0x67, 0x3a, + 0x62, 0x75, 0x6e, 0x6e, 0x79, 0x65, 0x61, 0x72, 0x73, 0x6d, 0x65, 0x6e, + 0x70, 0x61, 0x72, 0x74, 0x79, 0x69, 0x6e, 0x67, 0x77, 0x69, 0x74, 0x68, + 0xd83d, 0xdd74, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x62, 0x75, + 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x69, 0x74, 0x5f, + 0x6c, 0x65, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x3a, 0x62, + 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x6c, 0x65, 0x76, + 0x69, 0x74, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x6d, 0x61, 0x6e, 0x73, 0x75, + 0x69, 0x74, 0xd83d, 0xdeb6, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, + 0x6e, 0x5f, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x3a, 0x77, 0x61, + 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdeb6, + 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x77, 0x61, 0x6c, 0x6b, + 0x69, 0x6e, 0x67, 0x3a, 0x6d, 0x61, 0x6e, 0x77, 0x61, 0x6c, 0x6b, 0x69, + 0x6e, 0x67, 0xd83d, 0xdeb6, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x77, 0x61, 0x6c, 0x6b, + 0x69, 0x6e, 0x67, 0x3a, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0xd83d, + 0xdeb6, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, + 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x3a, 0x70, 0x65, 0x72, 0x73, + 0x6f, 0x6e, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0xd83c, 0xdfc3, 0x200d, + 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x72, 0x75, 0x6e, + 0x6e, 0x69, 0x6e, 0x67, 0x3a, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, + 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83c, 0xdfc3, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, + 0x61, 0x6e, 0x5f, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x3a, 0x6d, + 0x61, 0x6e, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0xd83c, 0xdfc3, 0x200d, + 0x2642, 0xfe0f, 0x3a, 0x72, 0x75, 0x6e, 0x6e, 0x65, 0x72, 0x3a, 0x72, 0x75, + 0x6e, 0x6e, 0x65, 0x72, 0xd83c, 0xdfc3, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x70, 0x65, + 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, + 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x72, 0x75, 0x6e, 0x6e, 0x69, + 0x6e, 0x67, 0xd83d, 0xdc6b, 0x3a, 0x63, 0x6f, 0x75, 0x70, 0x6c, 0x65, 0x3a, + 0x63, 0x6f, 0x75, 0x70, 0x6c, 0x65, 0xd83d, 0xdc6d, 0x3a, 0x74, 0x77, 0x6f, + 0x5f, 0x77, 0x6f, 0x6d, 0x65, 0x6e, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x69, + 0x6e, 0x67, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x3a, 0x68, 0x61, 0x6e, + 0x64, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x74, 0x77, 0x6f, + 0x77, 0x6f, 0x6d, 0x65, 0x6e, 0xd83d, 0xdc6c, 0x3a, 0x74, 0x77, 0x6f, 0x5f, + 0x6d, 0x65, 0x6e, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x5f, + 0x68, 0x61, 0x6e, 0x64, 0x73, 0x3a, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x77, 0x6f, + 0xd83d, 0xdc91, 0x3a, 0x63, 0x6f, 0x75, 0x70, 0x6c, 0x65, 0x5f, 0x77, 0x69, + 0x74, 0x68, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x3a, 0x63, 0x6f, 0x75, + 0x70, 0x6c, 0x65, 0x68, 0x65, 0x61, 0x72, 0x74, 0x77, 0x69, 0x74, 0x68, + 0xd83d, 0xdc91, 0x3a, 0x63, 0x6f, 0x75, 0x70, 0x6c, 0x65, 0x5f, 0x77, 0x69, + 0x74, 0x68, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x5f, 0x77, 0x6f, 0x6d, + 0x61, 0x6e, 0x5f, 0x6d, 0x61, 0x6e, 0x3a, 0x63, 0x6f, 0x75, 0x70, 0x6c, + 0x65, 0x68, 0x65, 0x61, 0x72, 0x74, 0x6d, 0x61, 0x6e, 0x77, 0x69, 0x74, + 0x68, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc69, 0x200d, 0x2764, 0xfe0f, 0x200d, + 0xd83d, 0xdc69, 0x3a, 0x63, 0x6f, 0x75, 0x70, 0x6c, 0x65, 0x5f, 0x77, 0x69, + 0x74, 0x68, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x5f, 0x77, 0x77, 0x3a, + 0x63, 0x6f, 0x75, 0x70, 0x6c, 0x65, 0x68, 0x65, 0x61, 0x72, 0x74, 0x77, + 0x69, 0x74, 0x68, 0x77, 0x77, 0xd83d, 0xdc69, 0x200d, 0x2764, 0xfe0f, 0x200d, 0xd83d, + 0xdc69, 0x3a, 0x63, 0x6f, 0x75, 0x70, 0x6c, 0x65, 0x5f, 0x77, 0x77, 0x3a, + 0x63, 0x6f, 0x75, 0x70, 0x6c, 0x65, 0x77, 0x77, 0xd83d, 0xdc68, 0x200d, 0x2764, + 0xfe0f, 0x200d, 0xd83d, 0xdc68, 0x3a, 0x63, 0x6f, 0x75, 0x70, 0x6c, 0x65, 0x5f, + 0x77, 0x69, 0x74, 0x68, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x5f, 0x6d, + 0x6d, 0x3a, 0x63, 0x6f, 0x75, 0x70, 0x6c, 0x65, 0x68, 0x65, 0x61, 0x72, + 0x74, 0x6d, 0x6d, 0x77, 0x69, 0x74, 0x68, 0xd83d, 0xdc68, 0x200d, 0x2764, 0xfe0f, + 0x200d, 0xd83d, 0xdc68, 0x3a, 0x63, 0x6f, 0x75, 0x70, 0x6c, 0x65, 0x5f, 0x6d, + 0x6d, 0x3a, 0x63, 0x6f, 0x75, 0x70, 0x6c, 0x65, 0x6d, 0x6d, 0xd83d, 0xdc8f, + 0x3a, 0x63, 0x6f, 0x75, 0x70, 0x6c, 0x65, 0x6b, 0x69, 0x73, 0x73, 0x3a, + 0x63, 0x6f, 0x75, 0x70, 0x6c, 0x65, 0x6b, 0x69, 0x73, 0x73, 0xd83d, 0xdc8f, + 0x3a, 0x6b, 0x69, 0x73, 0x73, 0x5f, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, + 0x6d, 0x61, 0x6e, 0x3a, 0x6b, 0x69, 0x73, 0x73, 0x6d, 0x61, 0x6e, 0x77, + 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc69, 0x200d, 0x2764, 0xfe0f, 0x200d, 0xd83d, 0xdc8b, + 0x200d, 0xd83d, 0xdc69, 0x3a, 0x63, 0x6f, 0x75, 0x70, 0x6c, 0x65, 0x6b, 0x69, + 0x73, 0x73, 0x5f, 0x77, 0x77, 0x3a, 0x63, 0x6f, 0x75, 0x70, 0x6c, 0x65, + 0x6b, 0x69, 0x73, 0x73, 0x77, 0x77, 0xd83d, 0xdc69, 0x200d, 0x2764, 0xfe0f, 0x200d, + 0xd83d, 0xdc8b, 0x200d, 0xd83d, 0xdc69, 0x3a, 0x6b, 0x69, 0x73, 0x73, 0x5f, 0x77, + 0x77, 0x3a, 0x6b, 0x69, 0x73, 0x73, 0x77, 0x77, 0xd83d, 0xdc68, 0x200d, 0x2764, + 0xfe0f, 0x200d, 0xd83d, 0xdc8b, 0x200d, 0xd83d, 0xdc68, 0x3a, 0x63, 0x6f, 0x75, 0x70, + 0x6c, 0x65, 0x6b, 0x69, 0x73, 0x73, 0x5f, 0x6d, 0x6d, 0x3a, 0x63, 0x6f, + 0x75, 0x70, 0x6c, 0x65, 0x6b, 0x69, 0x73, 0x73, 0x6d, 0x6d, 0xd83d, 0xdc68, + 0x200d, 0x2764, 0xfe0f, 0x200d, 0xd83d, 0xdc8b, 0x200d, 0xd83d, 0xdc68, 0x3a, 0x6b, 0x69, + 0x73, 0x73, 0x5f, 0x6d, 0x6d, 0x3a, 0x6b, 0x69, 0x73, 0x73, 0x6d, 0x6d, + 0xd83d, 0xdc6a, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x3a, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0xd83d, 0xdc6a, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x5f, 0x6d, 0x61, 0x6e, 0x5f, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, + 0x62, 0x6f, 0x79, 0x3a, 0x62, 0x6f, 0x79, 0x66, 0x61, 0x6d, 0x69, 0x6c, + 0x79, 0x6d, 0x61, 0x6e, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc68, 0x200d, + 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xdc67, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x5f, 0x6d, 0x77, 0x67, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x6d, + 0x77, 0x67, 0xd83d, 0xdc68, 0x200d, 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xdc67, 0x200d, 0xd83d, + 0xdc66, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x6d, 0x77, 0x67, + 0x62, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x6d, 0x77, 0x67, 0x62, + 0xd83d, 0xdc68, 0x200d, 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xdc66, 0x200d, 0xd83d, 0xdc66, 0x3a, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x6d, 0x77, 0x62, 0x62, 0x3a, + 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x6d, 0x77, 0x62, 0x62, 0xd83d, 0xdc68, + 0x200d, 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xdc67, 0x200d, 0xd83d, 0xdc67, 0x3a, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x6d, 0x77, 0x67, 0x67, 0x3a, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x6d, 0x77, 0x67, 0x67, 0xd83d, 0xdc69, 0x200d, 0xd83d, + 0xdc69, 0x200d, 0xd83d, 0xdc66, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, + 0x77, 0x77, 0x62, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x77, 0x77, + 0x62, 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xdc67, 0x3a, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x77, 0x77, 0x67, 0x3a, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x77, 0x77, 0x67, 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xdc69, 0x200d, + 0xd83d, 0xdc67, 0x200d, 0xd83d, 0xdc66, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x5f, 0x77, 0x77, 0x67, 0x62, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x77, 0x77, 0x67, 0x62, 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xdc66, + 0x200d, 0xd83d, 0xdc66, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x77, + 0x77, 0x62, 0x62, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x77, 0x77, + 0x62, 0x62, 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xdc67, 0x200d, 0xd83d, + 0xdc67, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x77, 0x77, 0x67, + 0x67, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x77, 0x77, 0x67, 0x67, + 0xd83d, 0xdc68, 0x200d, 0xd83d, 0xdc68, 0x200d, 0xd83d, 0xdc66, 0x3a, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x5f, 0x6d, 0x6d, 0x62, 0x3a, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x6d, 0x6d, 0x62, 0xd83d, 0xdc68, 0x200d, 0xd83d, 0xdc68, 0x200d, 0xd83d, + 0xdc67, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x6d, 0x6d, 0x67, + 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x6d, 0x6d, 0x67, 0xd83d, 0xdc68, + 0x200d, 0xd83d, 0xdc68, 0x200d, 0xd83d, 0xdc67, 0x200d, 0xd83d, 0xdc66, 0x3a, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x6d, 0x6d, 0x67, 0x62, 0x3a, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x6d, 0x6d, 0x67, 0x62, 0xd83d, 0xdc68, 0x200d, 0xd83d, + 0xdc68, 0x200d, 0xd83d, 0xdc66, 0x200d, 0xd83d, 0xdc66, 0x3a, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x5f, 0x6d, 0x6d, 0x62, 0x62, 0x3a, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x6d, 0x6d, 0x62, 0x62, 0xd83d, 0xdc68, 0x200d, 0xd83d, 0xdc68, 0x200d, + 0xd83d, 0xdc67, 0x200d, 0xd83d, 0xdc67, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x5f, 0x6d, 0x6d, 0x67, 0x67, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x6d, 0x6d, 0x67, 0x67, 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xdc66, 0x3a, 0x66, 0x61, + 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x62, + 0x6f, 0x79, 0x3a, 0x62, 0x6f, 0x79, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc69, 0x200d, 0xd83d, 0xdc67, 0x3a, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, + 0x67, 0x69, 0x72, 0x6c, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x67, + 0x69, 0x72, 0x6c, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc69, 0x200d, 0xd83d, + 0xdc67, 0x200d, 0xd83d, 0xdc66, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, + 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x67, 0x69, 0x72, 0x6c, 0x5f, 0x62, + 0x6f, 0x79, 0x3a, 0x62, 0x6f, 0x79, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x67, 0x69, 0x72, 0x6c, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc69, 0x200d, + 0xd83d, 0xdc66, 0x200d, 0xd83d, 0xdc66, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x5f, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x62, 0x6f, 0x79, 0x5f, 0x62, + 0x6f, 0x79, 0x3a, 0x62, 0x6f, 0x79, 0x62, 0x6f, 0x79, 0x66, 0x61, 0x6d, + 0x69, 0x6c, 0x79, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc69, 0x200d, 0xd83d, + 0xdc67, 0x200d, 0xd83d, 0xdc67, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, + 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x67, 0x69, 0x72, 0x6c, 0x5f, 0x67, + 0x69, 0x72, 0x6c, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x67, 0x69, + 0x72, 0x6c, 0x67, 0x69, 0x72, 0x6c, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, + 0xdc68, 0x200d, 0xd83d, 0xdc66, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, + 0x6d, 0x61, 0x6e, 0x5f, 0x62, 0x6f, 0x79, 0x3a, 0x62, 0x6f, 0x79, 0x66, + 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc68, 0x200d, 0xd83d, + 0xdc67, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x6d, 0x61, 0x6e, + 0x5f, 0x67, 0x69, 0x72, 0x6c, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, + 0x67, 0x69, 0x72, 0x6c, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc68, 0x200d, 0xd83d, 0xdc67, + 0x200d, 0xd83d, 0xdc66, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x6d, + 0x61, 0x6e, 0x5f, 0x67, 0x69, 0x72, 0x6c, 0x5f, 0x62, 0x6f, 0x79, 0x3a, + 0x62, 0x6f, 0x79, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x67, 0x69, 0x72, + 0x6c, 0x6d, 0x61, 0x6e, 0xd83d, 0xdc68, 0x200d, 0xd83d, 0xdc66, 0x200d, 0xd83d, 0xdc66, + 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x5f, 0x6d, 0x61, 0x6e, 0x5f, + 0x62, 0x6f, 0x79, 0x5f, 0x62, 0x6f, 0x79, 0x3a, 0x62, 0x6f, 0x79, 0x62, + 0x6f, 0x79, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x6d, 0x61, 0x6e, 0xd83d, + 0xdc68, 0x200d, 0xd83d, 0xdc67, 0x200d, 0xd83d, 0xdc67, 0x3a, 0x66, 0x61, 0x6d, 0x69, + 0x6c, 0x79, 0x5f, 0x6d, 0x61, 0x6e, 0x5f, 0x67, 0x69, 0x72, 0x6c, 0x5f, + 0x67, 0x69, 0x72, 0x6c, 0x3a, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x67, + 0x69, 0x72, 0x6c, 0x67, 0x69, 0x72, 0x6c, 0x6d, 0x61, 0x6e, 0xd83e, 0xdde5, + 0x3a, 0x63, 0x6f, 0x61, 0x74, 0x3a, 0x63, 0x6f, 0x61, 0x74, 0xd83d, 0xdc5a, + 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x73, 0x5f, 0x63, 0x6c, 0x6f, 0x74, + 0x68, 0x65, 0x73, 0x3a, 0x63, 0x6c, 0x6f, 0x74, 0x68, 0x65, 0x73, 0x77, + 0x6f, 0x6d, 0x61, 0x6e, 0x73, 0xd83d, 0xdc55, 0x3a, 0x73, 0x68, 0x69, 0x72, + 0x74, 0x3a, 0x73, 0x68, 0x69, 0x72, 0x74, 0xd83d, 0xdc56, 0x3a, 0x6a, 0x65, + 0x61, 0x6e, 0x73, 0x3a, 0x6a, 0x65, 0x61, 0x6e, 0x73, 0xd83d, 0xdc54, 0x3a, + 0x6e, 0x65, 0x63, 0x6b, 0x74, 0x69, 0x65, 0x3a, 0x6e, 0x65, 0x63, 0x6b, + 0x74, 0x69, 0x65, 0xd83d, 0xdc57, 0x3a, 0x64, 0x72, 0x65, 0x73, 0x73, 0x3a, + 0x64, 0x72, 0x65, 0x73, 0x73, 0xd83d, 0xdc59, 0x3a, 0x62, 0x69, 0x6b, 0x69, + 0x6e, 0x69, 0x3a, 0x62, 0x69, 0x6b, 0x69, 0x6e, 0x69, 0xd83d, 0xdc58, 0x3a, + 0x6b, 0x69, 0x6d, 0x6f, 0x6e, 0x6f, 0x3a, 0x6b, 0x69, 0x6d, 0x6f, 0x6e, + 0x6f, 0xd83d, 0xdc60, 0x3a, 0x68, 0x69, 0x67, 0x68, 0x5f, 0x68, 0x65, 0x65, + 0x6c, 0x3a, 0x68, 0x65, 0x65, 0x6c, 0x68, 0x69, 0x67, 0x68, 0xd83d, 0xdc61, + 0x3a, 0x73, 0x61, 0x6e, 0x64, 0x61, 0x6c, 0x3a, 0x73, 0x61, 0x6e, 0x64, + 0x61, 0x6c, 0xd83d, 0xdc62, 0x3a, 0x62, 0x6f, 0x6f, 0x74, 0x3a, 0x62, 0x6f, + 0x6f, 0x74, 0xd83d, 0xdc5e, 0x3a, 0x6d, 0x61, 0x6e, 0x73, 0x5f, 0x73, 0x68, + 0x6f, 0x65, 0x3a, 0x6d, 0x61, 0x6e, 0x73, 0x73, 0x68, 0x6f, 0x65, 0xd83d, + 0xdc5f, 0x3a, 0x61, 0x74, 0x68, 0x6c, 0x65, 0x74, 0x69, 0x63, 0x5f, 0x73, + 0x68, 0x6f, 0x65, 0x3a, 0x61, 0x74, 0x68, 0x6c, 0x65, 0x74, 0x69, 0x63, + 0x73, 0x68, 0x6f, 0x65, 0xd83e, 0xdde6, 0x3a, 0x73, 0x6f, 0x63, 0x6b, 0x73, + 0x3a, 0x73, 0x6f, 0x63, 0x6b, 0x73, 0xd83e, 0xdde4, 0x3a, 0x67, 0x6c, 0x6f, + 0x76, 0x65, 0x73, 0x3a, 0x67, 0x6c, 0x6f, 0x76, 0x65, 0x73, 0xd83e, 0xdde3, + 0x3a, 0x73, 0x63, 0x61, 0x72, 0x66, 0x3a, 0x73, 0x63, 0x61, 0x72, 0x66, + 0xd83c, 0xdfa9, 0x3a, 0x74, 0x6f, 0x70, 0x68, 0x61, 0x74, 0x3a, 0x74, 0x6f, + 0x70, 0x68, 0x61, 0x74, 0xd83e, 0xdde2, 0x3a, 0x62, 0x69, 0x6c, 0x6c, 0x65, + 0x64, 0x5f, 0x63, 0x61, 0x70, 0x3a, 0x62, 0x69, 0x6c, 0x6c, 0x65, 0x64, + 0x63, 0x61, 0x70, 0xd83d, 0xdc52, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x73, + 0x5f, 0x68, 0x61, 0x74, 0x3a, 0x68, 0x61, 0x74, 0x77, 0x6f, 0x6d, 0x61, + 0x6e, 0x73, 0xd83c, 0xdf93, 0x3a, 0x6d, 0x6f, 0x72, 0x74, 0x61, 0x72, 0x5f, + 0x62, 0x6f, 0x61, 0x72, 0x64, 0x3a, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x6d, + 0x6f, 0x72, 0x74, 0x61, 0x72, 0x26d1, 0x3a, 0x68, 0x65, 0x6c, 0x6d, 0x65, + 0x74, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x77, 0x68, 0x69, 0x74, 0x65, + 0x5f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x3a, 0x63, 0x72, 0x6f, 0x73, 0x73, + 0x68, 0x65, 0x6c, 0x6d, 0x65, 0x74, 0x77, 0x68, 0x69, 0x74, 0x65, 0x77, + 0x69, 0x74, 0x68, 0x26d1, 0x3a, 0x68, 0x65, 0x6c, 0x6d, 0x65, 0x74, 0x5f, + 0x77, 0x69, 0x74, 0x68, 0x5f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x3a, 0x63, + 0x72, 0x6f, 0x73, 0x73, 0x68, 0x65, 0x6c, 0x6d, 0x65, 0x74, 0x77, 0x69, + 0x74, 0x68, 0xd83d, 0xdc51, 0x3a, 0x63, 0x72, 0x6f, 0x77, 0x6e, 0x3a, 0x63, + 0x72, 0x6f, 0x77, 0x6e, 0xd83d, 0xdc8d, 0x3a, 0x72, 0x69, 0x6e, 0x67, 0x3a, + 0x72, 0x69, 0x6e, 0x67, 0xd83d, 0xdc5d, 0x3a, 0x70, 0x6f, 0x75, 0x63, 0x68, + 0x3a, 0x70, 0x6f, 0x75, 0x63, 0x68, 0xd83d, 0xdc5b, 0x3a, 0x70, 0x75, 0x72, + 0x73, 0x65, 0x3a, 0x70, 0x75, 0x72, 0x73, 0x65, 0xd83d, 0xdc5c, 0x3a, 0x68, + 0x61, 0x6e, 0x64, 0x62, 0x61, 0x67, 0x3a, 0x68, 0x61, 0x6e, 0x64, 0x62, + 0x61, 0x67, 0xd83d, 0xdcbc, 0x3a, 0x62, 0x72, 0x69, 0x65, 0x66, 0x63, 0x61, + 0x73, 0x65, 0x3a, 0x62, 0x72, 0x69, 0x65, 0x66, 0x63, 0x61, 0x73, 0x65, + 0xd83c, 0xdf92, 0x3a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x5f, 0x73, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x6c, 0x3a, 0x73, 0x61, 0x74, 0x63, 0x68, 0x65, + 0x6c, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0xd83d, 0xdc53, 0x3a, 0x65, 0x79, + 0x65, 0x67, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x3a, 0x65, 0x79, 0x65, + 0x67, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0xd83d, 0xdd76, 0x3a, 0x64, 0x61, + 0x72, 0x6b, 0x5f, 0x73, 0x75, 0x6e, 0x67, 0x6c, 0x61, 0x73, 0x73, 0x65, + 0x73, 0x3a, 0x64, 0x61, 0x72, 0x6b, 0x73, 0x75, 0x6e, 0x67, 0x6c, 0x61, + 0x73, 0x73, 0x65, 0x73, 0xd83c, 0xdf02, 0x3a, 0x63, 0x6c, 0x6f, 0x73, 0x65, + 0x64, 0x5f, 0x75, 0x6d, 0x62, 0x72, 0x65, 0x6c, 0x6c, 0x61, 0x3a, 0x63, + 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x75, 0x6d, 0x62, 0x72, 0x65, 0x6c, 0x6c, + 0x61, 0xd83d, 0xdc36, 0x3a, 0x64, 0x6f, 0x67, 0x3a, 0x64, 0x6f, 0x67, 0xd83d, + 0xdc31, 0x3a, 0x63, 0x61, 0x74, 0x3a, 0x63, 0x61, 0x74, 0xd83d, 0xdc2d, 0x3a, + 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x3a, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0xd83d, + 0xdc39, 0x3a, 0x68, 0x61, 0x6d, 0x73, 0x74, 0x65, 0x72, 0x3a, 0x68, 0x61, + 0x6d, 0x73, 0x74, 0x65, 0x72, 0xd83d, 0xdc30, 0x3a, 0x72, 0x61, 0x62, 0x62, + 0x69, 0x74, 0x3a, 0x72, 0x61, 0x62, 0x62, 0x69, 0x74, 0xd83e, 0xdd8a, 0x3a, + 0x66, 0x6f, 0x78, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, 0x63, + 0x65, 0x66, 0x6f, 0x78, 0xd83e, 0xdd8a, 0x3a, 0x66, 0x6f, 0x78, 0x3a, 0x66, + 0x6f, 0x78, 0xd83d, 0xdc3b, 0x3a, 0x62, 0x65, 0x61, 0x72, 0x3a, 0x62, 0x65, + 0x61, 0x72, 0xd83d, 0xdc3c, 0x3a, 0x70, 0x61, 0x6e, 0x64, 0x61, 0x5f, 0x66, + 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x70, 0x61, 0x6e, 0x64, + 0x61, 0xd83d, 0xdc28, 0x3a, 0x6b, 0x6f, 0x61, 0x6c, 0x61, 0x3a, 0x6b, 0x6f, + 0x61, 0x6c, 0x61, 0xd83d, 0xdc2f, 0x3a, 0x74, 0x69, 0x67, 0x65, 0x72, 0x3a, + 0x74, 0x69, 0x67, 0x65, 0x72, 0xd83e, 0xdd81, 0x3a, 0x6c, 0x69, 0x6f, 0x6e, + 0x3a, 0x6c, 0x69, 0x6f, 0x6e, 0xd83e, 0xdd81, 0x3a, 0x6c, 0x69, 0x6f, 0x6e, + 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x6c, 0x69, + 0x6f, 0x6e, 0xd83d, 0xdc2e, 0x3a, 0x63, 0x6f, 0x77, 0x3a, 0x63, 0x6f, 0x77, + 0xd83d, 0xdc37, 0x3a, 0x70, 0x69, 0x67, 0x3a, 0x70, 0x69, 0x67, 0xd83d, 0xdc3d, + 0x3a, 0x70, 0x69, 0x67, 0x5f, 0x6e, 0x6f, 0x73, 0x65, 0x3a, 0x6e, 0x6f, + 0x73, 0x65, 0x70, 0x69, 0x67, 0xd83d, 0xdc38, 0x3a, 0x66, 0x72, 0x6f, 0x67, + 0x3a, 0x66, 0x72, 0x6f, 0x67, 0xd83d, 0xdc35, 0x3a, 0x6d, 0x6f, 0x6e, 0x6b, + 0x65, 0x79, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, 0x63, 0x65, + 0x6d, 0x6f, 0x6e, 0x6b, 0x65, 0x79, 0xd83d, 0xde48, 0x3a, 0x73, 0x65, 0x65, + 0x5f, 0x6e, 0x6f, 0x5f, 0x65, 0x76, 0x69, 0x6c, 0x3a, 0x65, 0x76, 0x69, + 0x6c, 0x6e, 0x6f, 0x73, 0x65, 0x65, 0xd83d, 0xde49, 0x3a, 0x68, 0x65, 0x61, + 0x72, 0x5f, 0x6e, 0x6f, 0x5f, 0x65, 0x76, 0x69, 0x6c, 0x3a, 0x65, 0x76, + 0x69, 0x6c, 0x68, 0x65, 0x61, 0x72, 0x6e, 0x6f, 0xd83d, 0xde4a, 0x3a, 0x73, + 0x70, 0x65, 0x61, 0x6b, 0x5f, 0x6e, 0x6f, 0x5f, 0x65, 0x76, 0x69, 0x6c, + 0x3a, 0x65, 0x76, 0x69, 0x6c, 0x6e, 0x6f, 0x73, 0x70, 0x65, 0x61, 0x6b, + 0xd83d, 0xdc12, 0x3a, 0x6d, 0x6f, 0x6e, 0x6b, 0x65, 0x79, 0x3a, 0x6d, 0x6f, + 0x6e, 0x6b, 0x65, 0x79, 0xd83d, 0xdc14, 0x3a, 0x63, 0x68, 0x69, 0x63, 0x6b, + 0x65, 0x6e, 0x3a, 0x63, 0x68, 0x69, 0x63, 0x6b, 0x65, 0x6e, 0xd83d, 0xdc27, + 0x3a, 0x70, 0x65, 0x6e, 0x67, 0x75, 0x69, 0x6e, 0x3a, 0x70, 0x65, 0x6e, + 0x67, 0x75, 0x69, 0x6e, 0xd83d, 0xdc26, 0x3a, 0x62, 0x69, 0x72, 0x64, 0x3a, + 0x62, 0x69, 0x72, 0x64, 0xd83d, 0xdc24, 0x3a, 0x62, 0x61, 0x62, 0x79, 0x5f, + 0x63, 0x68, 0x69, 0x63, 0x6b, 0x3a, 0x62, 0x61, 0x62, 0x79, 0x63, 0x68, + 0x69, 0x63, 0x6b, 0xd83d, 0xdc23, 0x3a, 0x68, 0x61, 0x74, 0x63, 0x68, 0x69, + 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x69, 0x63, 0x6b, 0x3a, 0x63, 0x68, 0x69, + 0x63, 0x6b, 0x68, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0xd83d, 0xdc25, + 0x3a, 0x68, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x69, + 0x63, 0x6b, 0x3a, 0x63, 0x68, 0x69, 0x63, 0x6b, 0x68, 0x61, 0x74, 0x63, + 0x68, 0x65, 0x64, 0xd83e, 0xdd86, 0x3a, 0x64, 0x75, 0x63, 0x6b, 0x3a, 0x64, + 0x75, 0x63, 0x6b, 0xd83e, 0xdd85, 0x3a, 0x65, 0x61, 0x67, 0x6c, 0x65, 0x3a, + 0x65, 0x61, 0x67, 0x6c, 0x65, 0xd83e, 0xdd89, 0x3a, 0x6f, 0x77, 0x6c, 0x3a, + 0x6f, 0x77, 0x6c, 0xd83e, 0xdd87, 0x3a, 0x62, 0x61, 0x74, 0x3a, 0x62, 0x61, + 0x74, 0xd83d, 0xdc3a, 0x3a, 0x77, 0x6f, 0x6c, 0x66, 0x3a, 0x77, 0x6f, 0x6c, + 0x66, 0xd83d, 0xdc17, 0x3a, 0x62, 0x6f, 0x61, 0x72, 0x3a, 0x62, 0x6f, 0x61, + 0x72, 0xd83d, 0xdc34, 0x3a, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x3a, 0x68, 0x6f, + 0x72, 0x73, 0x65, 0xd83e, 0xdd84, 0x3a, 0x75, 0x6e, 0x69, 0x63, 0x6f, 0x72, + 0x6e, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x75, + 0x6e, 0x69, 0x63, 0x6f, 0x72, 0x6e, 0xd83e, 0xdd84, 0x3a, 0x75, 0x6e, 0x69, + 0x63, 0x6f, 0x72, 0x6e, 0x3a, 0x75, 0x6e, 0x69, 0x63, 0x6f, 0x72, 0x6e, + 0xd83d, 0xdc1d, 0x3a, 0x62, 0x65, 0x65, 0x3a, 0x62, 0x65, 0x65, 0xd83d, 0xdc1b, + 0x3a, 0x62, 0x75, 0x67, 0x3a, 0x62, 0x75, 0x67, 0xd83e, 0xdd8b, 0x3a, 0x62, + 0x75, 0x74, 0x74, 0x65, 0x72, 0x66, 0x6c, 0x79, 0x3a, 0x62, 0x75, 0x74, + 0x74, 0x65, 0x72, 0x66, 0x6c, 0x79, 0xd83d, 0xdc0c, 0x3a, 0x73, 0x6e, 0x61, + 0x69, 0x6c, 0x3a, 0x73, 0x6e, 0x61, 0x69, 0x6c, 0xd83d, 0xdc1e, 0x3a, 0x62, + 0x65, 0x65, 0x74, 0x6c, 0x65, 0x3a, 0x62, 0x65, 0x65, 0x74, 0x6c, 0x65, + 0xd83d, 0xdc1c, 0x3a, 0x61, 0x6e, 0x74, 0x3a, 0x61, 0x6e, 0x74, 0xd83e, 0xdd97, + 0x3a, 0x63, 0x72, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x3a, 0x63, 0x72, 0x69, + 0x63, 0x6b, 0x65, 0x74, 0xd83d, 0xdd77, 0x3a, 0x73, 0x70, 0x69, 0x64, 0x65, + 0x72, 0x3a, 0x73, 0x70, 0x69, 0x64, 0x65, 0x72, 0xd83d, 0xdd78, 0x3a, 0x73, + 0x70, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x77, 0x65, 0x62, 0x3a, 0x73, 0x70, + 0x69, 0x64, 0x65, 0x72, 0x77, 0x65, 0x62, 0xd83e, 0xdd82, 0x3a, 0x73, 0x63, + 0x6f, 0x72, 0x70, 0x69, 0x6f, 0x6e, 0x3a, 0x73, 0x63, 0x6f, 0x72, 0x70, + 0x69, 0x6f, 0x6e, 0xd83d, 0xdc22, 0x3a, 0x74, 0x75, 0x72, 0x74, 0x6c, 0x65, + 0x3a, 0x74, 0x75, 0x72, 0x74, 0x6c, 0x65, 0xd83d, 0xdc0d, 0x3a, 0x73, 0x6e, + 0x61, 0x6b, 0x65, 0x3a, 0x73, 0x6e, 0x61, 0x6b, 0x65, 0xd83e, 0xdd8e, 0x3a, + 0x6c, 0x69, 0x7a, 0x61, 0x72, 0x64, 0x3a, 0x6c, 0x69, 0x7a, 0x61, 0x72, + 0x64, 0xd83e, 0xdd96, 0x3a, 0x74, 0x5f, 0x72, 0x65, 0x78, 0x3a, 0x72, 0x65, + 0x78, 0x74, 0xd83e, 0xdd95, 0x3a, 0x73, 0x61, 0x75, 0x72, 0x6f, 0x70, 0x6f, + 0x64, 0x3a, 0x73, 0x61, 0x75, 0x72, 0x6f, 0x70, 0x6f, 0x64, 0xd83d, 0xdc19, + 0x3a, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x3a, 0x6f, 0x63, 0x74, + 0x6f, 0x70, 0x75, 0x73, 0xd83e, 0xdd91, 0x3a, 0x73, 0x71, 0x75, 0x69, 0x64, + 0x3a, 0x73, 0x71, 0x75, 0x69, 0x64, 0xd83e, 0xdd90, 0x3a, 0x73, 0x68, 0x72, + 0x69, 0x6d, 0x70, 0x3a, 0x73, 0x68, 0x72, 0x69, 0x6d, 0x70, 0xd83e, 0xdd80, + 0x3a, 0x63, 0x72, 0x61, 0x62, 0x3a, 0x63, 0x72, 0x61, 0x62, 0xd83d, 0xdc21, + 0x3a, 0x62, 0x6c, 0x6f, 0x77, 0x66, 0x69, 0x73, 0x68, 0x3a, 0x62, 0x6c, + 0x6f, 0x77, 0x66, 0x69, 0x73, 0x68, 0xd83d, 0xdc20, 0x3a, 0x74, 0x72, 0x6f, + 0x70, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x66, 0x69, 0x73, 0x68, 0x3a, 0x66, + 0x69, 0x73, 0x68, 0x74, 0x72, 0x6f, 0x70, 0x69, 0x63, 0x61, 0x6c, 0xd83d, + 0xdc1f, 0x3a, 0x66, 0x69, 0x73, 0x68, 0x3a, 0x66, 0x69, 0x73, 0x68, 0xd83d, + 0xdc2c, 0x3a, 0x64, 0x6f, 0x6c, 0x70, 0x68, 0x69, 0x6e, 0x3a, 0x64, 0x6f, + 0x6c, 0x70, 0x68, 0x69, 0x6e, 0xd83d, 0xdc33, 0x3a, 0x77, 0x68, 0x61, 0x6c, + 0x65, 0x3a, 0x77, 0x68, 0x61, 0x6c, 0x65, 0xd83d, 0xdc0b, 0x3a, 0x77, 0x68, + 0x61, 0x6c, 0x65, 0x32, 0x3a, 0x77, 0x68, 0x61, 0x6c, 0x65, 0x32, 0xd83e, + 0xdd88, 0x3a, 0x73, 0x68, 0x61, 0x72, 0x6b, 0x3a, 0x73, 0x68, 0x61, 0x72, + 0x6b, 0xd83d, 0xdc0a, 0x3a, 0x63, 0x72, 0x6f, 0x63, 0x6f, 0x64, 0x69, 0x6c, + 0x65, 0x3a, 0x63, 0x72, 0x6f, 0x63, 0x6f, 0x64, 0x69, 0x6c, 0x65, 0xd83d, + 0xdc05, 0x3a, 0x74, 0x69, 0x67, 0x65, 0x72, 0x32, 0x3a, 0x74, 0x69, 0x67, + 0x65, 0x72, 0x32, 0xd83d, 0xdc06, 0x3a, 0x6c, 0x65, 0x6f, 0x70, 0x61, 0x72, + 0x64, 0x3a, 0x6c, 0x65, 0x6f, 0x70, 0x61, 0x72, 0x64, 0xd83e, 0xdd93, 0x3a, + 0x7a, 0x65, 0x62, 0x72, 0x61, 0x3a, 0x7a, 0x65, 0x62, 0x72, 0x61, 0xd83e, + 0xdd8d, 0x3a, 0x67, 0x6f, 0x72, 0x69, 0x6c, 0x6c, 0x61, 0x3a, 0x67, 0x6f, + 0x72, 0x69, 0x6c, 0x6c, 0x61, 0xd83d, 0xdc18, 0x3a, 0x65, 0x6c, 0x65, 0x70, + 0x68, 0x61, 0x6e, 0x74, 0x3a, 0x65, 0x6c, 0x65, 0x70, 0x68, 0x61, 0x6e, + 0x74, 0xd83e, 0xdd8f, 0x3a, 0x72, 0x68, 0x69, 0x6e, 0x6f, 0x63, 0x65, 0x72, + 0x6f, 0x73, 0x3a, 0x72, 0x68, 0x69, 0x6e, 0x6f, 0x63, 0x65, 0x72, 0x6f, + 0x73, 0xd83e, 0xdd8f, 0x3a, 0x72, 0x68, 0x69, 0x6e, 0x6f, 0x3a, 0x72, 0x68, + 0x69, 0x6e, 0x6f, 0xd83d, 0xdc2a, 0x3a, 0x64, 0x72, 0x6f, 0x6d, 0x65, 0x64, + 0x61, 0x72, 0x79, 0x5f, 0x63, 0x61, 0x6d, 0x65, 0x6c, 0x3a, 0x63, 0x61, + 0x6d, 0x65, 0x6c, 0x64, 0x72, 0x6f, 0x6d, 0x65, 0x64, 0x61, 0x72, 0x79, + 0xd83d, 0xdc2b, 0x3a, 0x63, 0x61, 0x6d, 0x65, 0x6c, 0x3a, 0x63, 0x61, 0x6d, + 0x65, 0x6c, 0xd83e, 0xdd92, 0x3a, 0x67, 0x69, 0x72, 0x61, 0x66, 0x66, 0x65, + 0x3a, 0x67, 0x69, 0x72, 0x61, 0x66, 0x66, 0x65, 0xd83d, 0xdc03, 0x3a, 0x77, + 0x61, 0x74, 0x65, 0x72, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x61, 0x6c, 0x6f, + 0x3a, 0x62, 0x75, 0x66, 0x66, 0x61, 0x6c, 0x6f, 0x77, 0x61, 0x74, 0x65, + 0x72, 0xd83d, 0xdc02, 0x3a, 0x6f, 0x78, 0x3a, 0x6f, 0x78, 0xd83d, 0xdc04, 0x3a, + 0x63, 0x6f, 0x77, 0x32, 0x3a, 0x63, 0x6f, 0x77, 0x32, 0xd83d, 0xdc0e, 0x3a, + 0x72, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x3a, 0x72, 0x61, + 0x63, 0x65, 0x68, 0x6f, 0x72, 0x73, 0x65, 0xd83d, 0xdc16, 0x3a, 0x70, 0x69, + 0x67, 0x32, 0x3a, 0x70, 0x69, 0x67, 0x32, 0xd83d, 0xdc0f, 0x3a, 0x72, 0x61, + 0x6d, 0x3a, 0x72, 0x61, 0x6d, 0xd83d, 0xdc11, 0x3a, 0x73, 0x68, 0x65, 0x65, + 0x70, 0x3a, 0x73, 0x68, 0x65, 0x65, 0x70, 0xd83d, 0xdc10, 0x3a, 0x67, 0x6f, + 0x61, 0x74, 0x3a, 0x67, 0x6f, 0x61, 0x74, 0xd83e, 0xdd8c, 0x3a, 0x64, 0x65, + 0x65, 0x72, 0x3a, 0x64, 0x65, 0x65, 0x72, 0xd83d, 0xdc15, 0x3a, 0x64, 0x6f, + 0x67, 0x32, 0x3a, 0x64, 0x6f, 0x67, 0x32, 0xd83d, 0xdc29, 0x3a, 0x70, 0x6f, + 0x6f, 0x64, 0x6c, 0x65, 0x3a, 0x70, 0x6f, 0x6f, 0x64, 0x6c, 0x65, 0xd83d, + 0xdc08, 0x3a, 0x63, 0x61, 0x74, 0x32, 0x3a, 0x63, 0x61, 0x74, 0x32, 0xd83d, + 0xdc13, 0x3a, 0x72, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x72, 0x3a, 0x72, 0x6f, + 0x6f, 0x73, 0x74, 0x65, 0x72, 0xd83e, 0xdd83, 0x3a, 0x74, 0x75, 0x72, 0x6b, + 0x65, 0x79, 0x3a, 0x74, 0x75, 0x72, 0x6b, 0x65, 0x79, 0xd83d, 0xdd4a, 0x3a, + 0x64, 0x6f, 0x76, 0x65, 0x5f, 0x6f, 0x66, 0x5f, 0x70, 0x65, 0x61, 0x63, + 0x65, 0x3a, 0x64, 0x6f, 0x76, 0x65, 0x6f, 0x66, 0x70, 0x65, 0x61, 0x63, + 0x65, 0xd83d, 0xdd4a, 0x3a, 0x64, 0x6f, 0x76, 0x65, 0x3a, 0x64, 0x6f, 0x76, + 0x65, 0xd83d, 0xdc07, 0x3a, 0x72, 0x61, 0x62, 0x62, 0x69, 0x74, 0x32, 0x3a, + 0x72, 0x61, 0x62, 0x62, 0x69, 0x74, 0x32, 0xd83d, 0xdc01, 0x3a, 0x6d, 0x6f, + 0x75, 0x73, 0x65, 0x32, 0x3a, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x32, 0xd83d, + 0xdc00, 0x3a, 0x72, 0x61, 0x74, 0x3a, 0x72, 0x61, 0x74, 0xd83d, 0xdc3f, 0x3a, + 0x63, 0x68, 0x69, 0x70, 0x6d, 0x75, 0x6e, 0x6b, 0x3a, 0x63, 0x68, 0x69, + 0x70, 0x6d, 0x75, 0x6e, 0x6b, 0xd83e, 0xdd94, 0x3a, 0x68, 0x65, 0x64, 0x67, + 0x65, 0x68, 0x6f, 0x67, 0x3a, 0x68, 0x65, 0x64, 0x67, 0x65, 0x68, 0x6f, + 0x67, 0xd83d, 0xdc3e, 0x3a, 0x70, 0x61, 0x77, 0x5f, 0x70, 0x72, 0x69, 0x6e, + 0x74, 0x73, 0x3a, 0x70, 0x61, 0x77, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x73, + 0xd83d, 0xdc3e, 0x3a, 0x66, 0x65, 0x65, 0x74, 0x3a, 0x66, 0x65, 0x65, 0x74, + 0xd83d, 0xdc09, 0x3a, 0x64, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x3a, 0x64, 0x72, + 0x61, 0x67, 0x6f, 0x6e, 0xd83d, 0xdc32, 0x3a, 0x64, 0x72, 0x61, 0x67, 0x6f, + 0x6e, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x64, 0x72, 0x61, 0x67, 0x6f, + 0x6e, 0x66, 0x61, 0x63, 0x65, 0xd83c, 0xdf35, 0x3a, 0x63, 0x61, 0x63, 0x74, + 0x75, 0x73, 0x3a, 0x63, 0x61, 0x63, 0x74, 0x75, 0x73, 0xd83c, 0xdf84, 0x3a, + 0x63, 0x68, 0x72, 0x69, 0x73, 0x74, 0x6d, 0x61, 0x73, 0x5f, 0x74, 0x72, + 0x65, 0x65, 0x3a, 0x63, 0x68, 0x72, 0x69, 0x73, 0x74, 0x6d, 0x61, 0x73, + 0x74, 0x72, 0x65, 0x65, 0xd83c, 0xdf32, 0x3a, 0x65, 0x76, 0x65, 0x72, 0x67, + 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x74, 0x72, 0x65, 0x65, 0x3a, 0x65, 0x76, + 0x65, 0x72, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x74, 0x72, 0x65, 0x65, 0xd83c, + 0xdf33, 0x3a, 0x64, 0x65, 0x63, 0x69, 0x64, 0x75, 0x6f, 0x75, 0x73, 0x5f, + 0x74, 0x72, 0x65, 0x65, 0x3a, 0x64, 0x65, 0x63, 0x69, 0x64, 0x75, 0x6f, + 0x75, 0x73, 0x74, 0x72, 0x65, 0x65, 0xd83c, 0xdf34, 0x3a, 0x70, 0x61, 0x6c, + 0x6d, 0x5f, 0x74, 0x72, 0x65, 0x65, 0x3a, 0x70, 0x61, 0x6c, 0x6d, 0x74, + 0x72, 0x65, 0x65, 0xd83c, 0xdf31, 0x3a, 0x73, 0x65, 0x65, 0x64, 0x6c, 0x69, + 0x6e, 0x67, 0x3a, 0x73, 0x65, 0x65, 0x64, 0x6c, 0x69, 0x6e, 0x67, 0xd83c, + 0xdf3f, 0x3a, 0x68, 0x65, 0x72, 0x62, 0x3a, 0x68, 0x65, 0x72, 0x62, 0x2618, + 0xfe0f, 0x3a, 0x73, 0x68, 0x61, 0x6d, 0x72, 0x6f, 0x63, 0x6b, 0x3a, 0x73, + 0x68, 0x61, 0x6d, 0x72, 0x6f, 0x63, 0x6b, 0xd83c, 0xdf40, 0x3a, 0x66, 0x6f, + 0x75, 0x72, 0x5f, 0x6c, 0x65, 0x61, 0x66, 0x5f, 0x63, 0x6c, 0x6f, 0x76, + 0x65, 0x72, 0x3a, 0x63, 0x6c, 0x6f, 0x76, 0x65, 0x72, 0x66, 0x6f, 0x75, + 0x72, 0x6c, 0x65, 0x61, 0x66, 0xd83c, 0xdf8d, 0x3a, 0x62, 0x61, 0x6d, 0x62, + 0x6f, 0x6f, 0x3a, 0x62, 0x61, 0x6d, 0x62, 0x6f, 0x6f, 0xd83c, 0xdf8b, 0x3a, + 0x74, 0x61, 0x6e, 0x61, 0x62, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x72, 0x65, + 0x65, 0x3a, 0x74, 0x61, 0x6e, 0x61, 0x62, 0x61, 0x74, 0x61, 0x74, 0x72, + 0x65, 0x65, 0xd83c, 0xdf43, 0x3a, 0x6c, 0x65, 0x61, 0x76, 0x65, 0x73, 0x3a, + 0x6c, 0x65, 0x61, 0x76, 0x65, 0x73, 0xd83c, 0xdf42, 0x3a, 0x66, 0x61, 0x6c, + 0x6c, 0x65, 0x6e, 0x5f, 0x6c, 0x65, 0x61, 0x66, 0x3a, 0x66, 0x61, 0x6c, + 0x6c, 0x65, 0x6e, 0x6c, 0x65, 0x61, 0x66, 0xd83c, 0xdf41, 0x3a, 0x6d, 0x61, + 0x70, 0x6c, 0x65, 0x5f, 0x6c, 0x65, 0x61, 0x66, 0x3a, 0x6c, 0x65, 0x61, + 0x66, 0x6d, 0x61, 0x70, 0x6c, 0x65, 0xd83c, 0xdf44, 0x3a, 0x6d, 0x75, 0x73, + 0x68, 0x72, 0x6f, 0x6f, 0x6d, 0x3a, 0x6d, 0x75, 0x73, 0x68, 0x72, 0x6f, + 0x6f, 0x6d, 0xd83d, 0xdc1a, 0x3a, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x3a, 0x73, + 0x68, 0x65, 0x6c, 0x6c, 0xd83c, 0xdf3e, 0x3a, 0x65, 0x61, 0x72, 0x5f, 0x6f, + 0x66, 0x5f, 0x72, 0x69, 0x63, 0x65, 0x3a, 0x65, 0x61, 0x72, 0x6f, 0x66, + 0x72, 0x69, 0x63, 0x65, 0xd83d, 0xdc90, 0x3a, 0x62, 0x6f, 0x75, 0x71, 0x75, + 0x65, 0x74, 0x3a, 0x62, 0x6f, 0x75, 0x71, 0x75, 0x65, 0x74, 0xd83c, 0xdf37, + 0x3a, 0x74, 0x75, 0x6c, 0x69, 0x70, 0x3a, 0x74, 0x75, 0x6c, 0x69, 0x70, + 0xd83c, 0xdf39, 0x3a, 0x72, 0x6f, 0x73, 0x65, 0x3a, 0x72, 0x6f, 0x73, 0x65, + 0xd83e, 0xdd40, 0x3a, 0x77, 0x69, 0x6c, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x6c, + 0x6f, 0x77, 0x65, 0x72, 0x3a, 0x66, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x77, + 0x69, 0x6c, 0x74, 0x65, 0x64, 0xd83e, 0xdd40, 0x3a, 0x77, 0x69, 0x6c, 0x74, + 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x73, 0x65, 0x3a, 0x72, 0x6f, 0x73, 0x65, + 0x77, 0x69, 0x6c, 0x74, 0x65, 0x64, 0xd83c, 0xdf3a, 0x3a, 0x68, 0x69, 0x62, + 0x69, 0x73, 0x63, 0x75, 0x73, 0x3a, 0x68, 0x69, 0x62, 0x69, 0x73, 0x63, + 0x75, 0x73, 0xd83c, 0xdf38, 0x3a, 0x63, 0x68, 0x65, 0x72, 0x72, 0x79, 0x5f, + 0x62, 0x6c, 0x6f, 0x73, 0x73, 0x6f, 0x6d, 0x3a, 0x62, 0x6c, 0x6f, 0x73, + 0x73, 0x6f, 0x6d, 0x63, 0x68, 0x65, 0x72, 0x72, 0x79, 0xd83c, 0xdf3c, 0x3a, + 0x62, 0x6c, 0x6f, 0x73, 0x73, 0x6f, 0x6d, 0x3a, 0x62, 0x6c, 0x6f, 0x73, + 0x73, 0x6f, 0x6d, 0xd83c, 0xdf3b, 0x3a, 0x73, 0x75, 0x6e, 0x66, 0x6c, 0x6f, + 0x77, 0x65, 0x72, 0x3a, 0x73, 0x75, 0x6e, 0x66, 0x6c, 0x6f, 0x77, 0x65, + 0x72, 0xd83c, 0xdf1e, 0x3a, 0x73, 0x75, 0x6e, 0x5f, 0x77, 0x69, 0x74, 0x68, + 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x73, 0x75, + 0x6e, 0x77, 0x69, 0x74, 0x68, 0xd83c, 0xdf1d, 0x3a, 0x66, 0x75, 0x6c, 0x6c, + 0x5f, 0x6d, 0x6f, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x66, + 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x6c, + 0x6d, 0x6f, 0x6f, 0x6e, 0x77, 0x69, 0x74, 0x68, 0xd83c, 0xdf1b, 0x3a, 0x66, + 0x69, 0x72, 0x73, 0x74, 0x5f, 0x71, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, + 0x5f, 0x6d, 0x6f, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x66, + 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, 0x63, 0x65, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x6d, 0x6f, 0x6f, 0x6e, 0x71, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, + 0x77, 0x69, 0x74, 0x68, 0xd83c, 0xdf1c, 0x3a, 0x6c, 0x61, 0x73, 0x74, 0x5f, + 0x71, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x6f, 0x6e, + 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, + 0x61, 0x63, 0x65, 0x6c, 0x61, 0x73, 0x74, 0x6d, 0x6f, 0x6f, 0x6e, 0x71, + 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x77, 0x69, 0x74, 0x68, 0xd83c, 0xdf1a, + 0x3a, 0x6e, 0x65, 0x77, 0x5f, 0x6d, 0x6f, 0x6f, 0x6e, 0x5f, 0x77, 0x69, + 0x74, 0x68, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x61, 0x63, 0x65, + 0x6d, 0x6f, 0x6f, 0x6e, 0x6e, 0x65, 0x77, 0x77, 0x69, 0x74, 0x68, 0xd83c, + 0xdf15, 0x3a, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x6d, 0x6f, 0x6f, 0x6e, 0x3a, + 0x66, 0x75, 0x6c, 0x6c, 0x6d, 0x6f, 0x6f, 0x6e, 0xd83c, 0xdf16, 0x3a, 0x77, + 0x61, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x67, 0x69, 0x62, 0x62, 0x6f, 0x75, + 0x73, 0x5f, 0x6d, 0x6f, 0x6f, 0x6e, 0x3a, 0x67, 0x69, 0x62, 0x62, 0x6f, + 0x75, 0x73, 0x6d, 0x6f, 0x6f, 0x6e, 0x77, 0x61, 0x6e, 0x69, 0x6e, 0x67, + 0xd83c, 0xdf17, 0x3a, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x71, 0x75, 0x61, 0x72, + 0x74, 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x6f, 0x6e, 0x3a, 0x6c, 0x61, 0x73, + 0x74, 0x6d, 0x6f, 0x6f, 0x6e, 0x71, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, + 0xd83c, 0xdf18, 0x3a, 0x77, 0x61, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x72, + 0x65, 0x73, 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x6f, 0x6f, 0x6e, 0x3a, + 0x63, 0x72, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x74, 0x6d, 0x6f, 0x6f, 0x6e, + 0x77, 0x61, 0x6e, 0x69, 0x6e, 0x67, 0xd83c, 0xdf11, 0x3a, 0x6e, 0x65, 0x77, + 0x5f, 0x6d, 0x6f, 0x6f, 0x6e, 0x3a, 0x6d, 0x6f, 0x6f, 0x6e, 0x6e, 0x65, + 0x77, 0xd83c, 0xdf12, 0x3a, 0x77, 0x61, 0x78, 0x69, 0x6e, 0x67, 0x5f, 0x63, + 0x72, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x6f, 0x6f, 0x6e, + 0x3a, 0x63, 0x72, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x74, 0x6d, 0x6f, 0x6f, + 0x6e, 0x77, 0x61, 0x78, 0x69, 0x6e, 0x67, 0xd83c, 0xdf13, 0x3a, 0x66, 0x69, + 0x72, 0x73, 0x74, 0x5f, 0x71, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0x5f, + 0x6d, 0x6f, 0x6f, 0x6e, 0x3a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x6d, 0x6f, + 0x6f, 0x6e, 0x71, 0x75, 0x61, 0x72, 0x74, 0x65, 0x72, 0xd83c, 0xdf14, 0x3a, + 0x77, 0x61, 0x78, 0x69, 0x6e, 0x67, 0x5f, 0x67, 0x69, 0x62, 0x62, 0x6f, + 0x75, 0x73, 0x5f, 0x6d, 0x6f, 0x6f, 0x6e, 0x3a, 0x67, 0x69, 0x62, 0x62, + 0x6f, 0x75, 0x73, 0x6d, 0x6f, 0x6f, 0x6e, 0x77, 0x61, 0x78, 0x69, 0x6e, + 0x67, 0xd83c, 0xdf19, 0x3a, 0x63, 0x72, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x74, + 0x5f, 0x6d, 0x6f, 0x6f, 0x6e, 0x3a, 0x63, 0x72, 0x65, 0x73, 0x63, 0x65, + 0x6e, 0x74, 0x6d, 0x6f, 0x6f, 0x6e, 0xd83c, 0xdf0e, 0x3a, 0x65, 0x61, 0x72, + 0x74, 0x68, 0x5f, 0x61, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x73, 0x3a, + 0x61, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x61, 0x73, 0x65, 0x61, 0x72, 0x74, + 0x68, 0xd83c, 0xdf0d, 0x3a, 0x65, 0x61, 0x72, 0x74, 0x68, 0x5f, 0x61, 0x66, + 0x72, 0x69, 0x63, 0x61, 0x3a, 0x61, 0x66, 0x72, 0x69, 0x63, 0x61, 0x65, + 0x61, 0x72, 0x74, 0x68, 0xd83c, 0xdf0f, 0x3a, 0x65, 0x61, 0x72, 0x74, 0x68, + 0x5f, 0x61, 0x73, 0x69, 0x61, 0x3a, 0x61, 0x73, 0x69, 0x61, 0x65, 0x61, + 0x72, 0x74, 0x68, 0xd83d, 0xdcab, 0x3a, 0x64, 0x69, 0x7a, 0x7a, 0x79, 0x3a, + 0x64, 0x69, 0x7a, 0x7a, 0x79, 0x2b50, 0xfe0f, 0x3a, 0x73, 0x74, 0x61, 0x72, + 0x3a, 0x73, 0x74, 0x61, 0x72, 0xd83c, 0xdf1f, 0x3a, 0x73, 0x74, 0x61, 0x72, + 0x32, 0x3a, 0x73, 0x74, 0x61, 0x72, 0x32, 0x2728, 0x3a, 0x73, 0x70, 0x61, + 0x72, 0x6b, 0x6c, 0x65, 0x73, 0x3a, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x6c, + 0x65, 0x73, 0x26a1, 0xfe0f, 0x3a, 0x7a, 0x61, 0x70, 0x3a, 0x7a, 0x61, 0x70, + 0x2604, 0xfe0f, 0x3a, 0x63, 0x6f, 0x6d, 0x65, 0x74, 0x3a, 0x63, 0x6f, 0x6d, + 0x65, 0x74, 0xd83d, 0xdca5, 0x3a, 0x62, 0x6f, 0x6f, 0x6d, 0x3a, 0x62, 0x6f, + 0x6f, 0x6d, 0xd83d, 0xdd25, 0x3a, 0x66, 0x6c, 0x61, 0x6d, 0x65, 0x3a, 0x66, + 0x6c, 0x61, 0x6d, 0x65, 0xd83d, 0xdd25, 0x3a, 0x66, 0x69, 0x72, 0x65, 0x3a, + 0x66, 0x69, 0x72, 0x65, 0xd83c, 0xdf2a, 0x3a, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x72, 0x6e, 0x61, 0x64, + 0x6f, 0x3a, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x74, 0x6f, 0x72, 0x6e, 0x61, + 0x64, 0x6f, 0x77, 0x69, 0x74, 0x68, 0xd83c, 0xdf2a, 0x3a, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x5f, 0x74, 0x6f, 0x72, 0x6e, 0x61, 0x64, 0x6f, 0x3a, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x74, 0x6f, 0x72, 0x6e, 0x61, 0x64, 0x6f, 0xd83c, + 0xdf08, 0x3a, 0x72, 0x61, 0x69, 0x6e, 0x62, 0x6f, 0x77, 0x3a, 0x72, 0x61, + 0x69, 0x6e, 0x62, 0x6f, 0x77, 0x2600, 0xfe0f, 0x3a, 0x73, 0x75, 0x6e, 0x6e, + 0x79, 0x3a, 0x73, 0x75, 0x6e, 0x6e, 0x79, 0xd83c, 0xdf24, 0x3a, 0x77, 0x68, + 0x69, 0x74, 0x65, 0x5f, 0x73, 0x75, 0x6e, 0x5f, 0x77, 0x69, 0x74, 0x68, + 0x5f, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x3a, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x73, + 0x75, 0x6e, 0x77, 0x68, 0x69, 0x74, 0x65, 0x77, 0x69, 0x74, 0x68, 0xd83c, + 0xdf24, 0x3a, 0x77, 0x68, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x75, 0x6e, 0x5f, + 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x3a, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x73, 0x75, + 0x6e, 0x77, 0x68, 0x69, 0x74, 0x65, 0x26c5, 0xfe0f, 0x3a, 0x70, 0x61, 0x72, + 0x74, 0x6c, 0x79, 0x5f, 0x73, 0x75, 0x6e, 0x6e, 0x79, 0x3a, 0x70, 0x61, + 0x72, 0x74, 0x6c, 0x79, 0x73, 0x75, 0x6e, 0x6e, 0x79, 0xd83c, 0xdf25, 0x3a, + 0x77, 0x68, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x75, 0x6e, 0x5f, 0x62, 0x65, + 0x68, 0x69, 0x6e, 0x64, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x62, + 0x65, 0x68, 0x69, 0x6e, 0x64, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x75, + 0x6e, 0x77, 0x68, 0x69, 0x74, 0x65, 0xd83c, 0xdf25, 0x3a, 0x77, 0x68, 0x69, + 0x74, 0x65, 0x5f, 0x73, 0x75, 0x6e, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x3a, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x75, 0x6e, 0x77, 0x68, 0x69, + 0x74, 0x65, 0x2601, 0xfe0f, 0x3a, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0xd83c, 0xdf26, 0x3a, 0x77, 0x68, 0x69, 0x74, 0x65, + 0x5f, 0x73, 0x75, 0x6e, 0x5f, 0x62, 0x65, 0x68, 0x69, 0x6e, 0x64, 0x5f, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x72, + 0x61, 0x69, 0x6e, 0x3a, 0x62, 0x65, 0x68, 0x69, 0x6e, 0x64, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x72, 0x61, 0x69, 0x6e, 0x73, 0x75, 0x6e, 0x77, 0x68, + 0x69, 0x74, 0x65, 0x77, 0x69, 0x74, 0x68, 0xd83c, 0xdf26, 0x3a, 0x77, 0x68, + 0x69, 0x74, 0x65, 0x5f, 0x73, 0x75, 0x6e, 0x5f, 0x72, 0x61, 0x69, 0x6e, + 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x72, 0x61, 0x69, 0x6e, 0x73, 0x75, 0x6e, 0x77, 0x68, 0x69, 0x74, 0x65, + 0xd83c, 0xdf27, 0x3a, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x77, 0x69, 0x74, + 0x68, 0x5f, 0x72, 0x61, 0x69, 0x6e, 0x3a, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x72, 0x61, 0x69, 0x6e, 0x77, 0x69, 0x74, 0x68, 0xd83c, 0xdf27, 0x3a, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x72, 0x61, 0x69, 0x6e, 0x3a, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x72, 0x61, 0x69, 0x6e, 0x26c8, 0x3a, 0x74, 0x68, 0x75, + 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x61, + 0x6e, 0x64, 0x5f, 0x72, 0x61, 0x69, 0x6e, 0x3a, 0x61, 0x6e, 0x64, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x68, 0x75, 0x6e, + 0x64, 0x65, 0x72, 0x26c8, 0x3a, 0x74, 0x68, 0x75, 0x6e, 0x64, 0x65, 0x72, + 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x72, 0x61, 0x69, 0x6e, 0x3a, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x68, 0x75, + 0x6e, 0x64, 0x65, 0x72, 0xd83c, 0xdf29, 0x3a, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x6e, + 0x69, 0x6e, 0x67, 0x3a, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x6c, 0x69, 0x67, + 0x68, 0x74, 0x6e, 0x69, 0x6e, 0x67, 0x77, 0x69, 0x74, 0x68, 0xd83c, 0xdf29, + 0x3a, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, 0x6c, 0x69, 0x67, 0x68, 0x74, + 0x6e, 0x69, 0x6e, 0x67, 0x3a, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x6c, 0x69, + 0x67, 0x68, 0x74, 0x6e, 0x69, 0x6e, 0x67, 0xd83c, 0xdf28, 0x3a, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x73, 0x6e, 0x6f, + 0x77, 0x3a, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x6e, 0x6f, 0x77, 0x77, + 0x69, 0x74, 0x68, 0xd83c, 0xdf28, 0x3a, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x5f, + 0x73, 0x6e, 0x6f, 0x77, 0x3a, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x6e, + 0x6f, 0x77, 0x2744, 0xfe0f, 0x3a, 0x73, 0x6e, 0x6f, 0x77, 0x66, 0x6c, 0x61, + 0x6b, 0x65, 0x3a, 0x73, 0x6e, 0x6f, 0x77, 0x66, 0x6c, 0x61, 0x6b, 0x65, + 0x2603, 0xfe0f, 0x3a, 0x73, 0x6e, 0x6f, 0x77, 0x6d, 0x61, 0x6e, 0x32, 0x3a, + 0x73, 0x6e, 0x6f, 0x77, 0x6d, 0x61, 0x6e, 0x32, 0x26c4, 0xfe0f, 0x3a, 0x73, + 0x6e, 0x6f, 0x77, 0x6d, 0x61, 0x6e, 0x3a, 0x73, 0x6e, 0x6f, 0x77, 0x6d, + 0x61, 0x6e, 0xd83c, 0xdf2c, 0x3a, 0x77, 0x69, 0x6e, 0x64, 0x5f, 0x62, 0x6c, + 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x3a, 0x62, + 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x66, 0x61, 0x63, 0x65, 0x77, 0x69, + 0x6e, 0x64, 0xd83d, 0xdca8, 0x3a, 0x64, 0x61, 0x73, 0x68, 0x3a, 0x64, 0x61, + 0x73, 0x68, 0xd83d, 0xdca7, 0x3a, 0x64, 0x72, 0x6f, 0x70, 0x6c, 0x65, 0x74, + 0x3a, 0x64, 0x72, 0x6f, 0x70, 0x6c, 0x65, 0x74, 0xd83d, 0xdca6, 0x3a, 0x73, + 0x77, 0x65, 0x61, 0x74, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x73, 0x3a, 0x64, + 0x72, 0x6f, 0x70, 0x73, 0x73, 0x77, 0x65, 0x61, 0x74, 0x2614, 0xfe0f, 0x3a, + 0x75, 0x6d, 0x62, 0x72, 0x65, 0x6c, 0x6c, 0x61, 0x3a, 0x75, 0x6d, 0x62, + 0x72, 0x65, 0x6c, 0x6c, 0x61, 0x2602, 0xfe0f, 0x3a, 0x75, 0x6d, 0x62, 0x72, + 0x65, 0x6c, 0x6c, 0x61, 0x32, 0x3a, 0x75, 0x6d, 0x62, 0x72, 0x65, 0x6c, + 0x6c, 0x61, 0x32, 0xd83c, 0xdf0a, 0x3a, 0x6f, 0x63, 0x65, 0x61, 0x6e, 0x3a, + 0x6f, 0x63, 0x65, 0x61, 0x6e, 0xd83c, 0xdf2b, 0x3a, 0x66, 0x6f, 0x67, 0x3a, + 0x66, 0x6f, 0x67, 0xd83c, 0xdf4f, 0x3a, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, + 0x61, 0x70, 0x70, 0x6c, 0x65, 0x3a, 0x61, 0x70, 0x70, 0x6c, 0x65, 0x67, + 0x72, 0x65, 0x65, 0x6e, 0xd83c, 0xdf4e, 0x3a, 0x61, 0x70, 0x70, 0x6c, 0x65, + 0x3a, 0x61, 0x70, 0x70, 0x6c, 0x65, 0xd83c, 0xdf50, 0x3a, 0x70, 0x65, 0x61, + 0x72, 0x3a, 0x70, 0x65, 0x61, 0x72, 0xd83c, 0xdf4a, 0x3a, 0x74, 0x61, 0x6e, + 0x67, 0x65, 0x72, 0x69, 0x6e, 0x65, 0x3a, 0x74, 0x61, 0x6e, 0x67, 0x65, + 0x72, 0x69, 0x6e, 0x65, 0xd83c, 0xdf4b, 0x3a, 0x6c, 0x65, 0x6d, 0x6f, 0x6e, + 0x3a, 0x6c, 0x65, 0x6d, 0x6f, 0x6e, 0xd83c, 0xdf4c, 0x3a, 0x62, 0x61, 0x6e, + 0x61, 0x6e, 0x61, 0x3a, 0x62, 0x61, 0x6e, 0x61, 0x6e, 0x61, 0xd83c, 0xdf49, + 0x3a, 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x65, 0x6c, 0x6f, 0x6e, 0x3a, + 0x77, 0x61, 0x74, 0x65, 0x72, 0x6d, 0x65, 0x6c, 0x6f, 0x6e, 0xd83c, 0xdf47, + 0x3a, 0x67, 0x72, 0x61, 0x70, 0x65, 0x73, 0x3a, 0x67, 0x72, 0x61, 0x70, + 0x65, 0x73, 0xd83c, 0xdf53, 0x3a, 0x73, 0x74, 0x72, 0x61, 0x77, 0x62, 0x65, + 0x72, 0x72, 0x79, 0x3a, 0x73, 0x74, 0x72, 0x61, 0x77, 0x62, 0x65, 0x72, + 0x72, 0x79, 0xd83c, 0xdf48, 0x3a, 0x6d, 0x65, 0x6c, 0x6f, 0x6e, 0x3a, 0x6d, + 0x65, 0x6c, 0x6f, 0x6e, 0xd83c, 0xdf52, 0x3a, 0x63, 0x68, 0x65, 0x72, 0x72, + 0x69, 0x65, 0x73, 0x3a, 0x63, 0x68, 0x65, 0x72, 0x72, 0x69, 0x65, 0x73, + 0xd83c, 0xdf51, 0x3a, 0x70, 0x65, 0x61, 0x63, 0x68, 0x3a, 0x70, 0x65, 0x61, + 0x63, 0x68, 0xd83c, 0xdf4d, 0x3a, 0x70, 0x69, 0x6e, 0x65, 0x61, 0x70, 0x70, + 0x6c, 0x65, 0x3a, 0x70, 0x69, 0x6e, 0x65, 0x61, 0x70, 0x70, 0x6c, 0x65, + 0xd83e, 0xdd65, 0x3a, 0x63, 0x6f, 0x63, 0x6f, 0x6e, 0x75, 0x74, 0x3a, 0x63, + 0x6f, 0x63, 0x6f, 0x6e, 0x75, 0x74, 0xd83e, 0xdd5d, 0x3a, 0x6b, 0x69, 0x77, + 0x69, 0x66, 0x72, 0x75, 0x69, 0x74, 0x3a, 0x6b, 0x69, 0x77, 0x69, 0x66, + 0x72, 0x75, 0x69, 0x74, 0xd83e, 0xdd5d, 0x3a, 0x6b, 0x69, 0x77, 0x69, 0x3a, + 0x6b, 0x69, 0x77, 0x69, 0xd83c, 0xdf45, 0x3a, 0x74, 0x6f, 0x6d, 0x61, 0x74, + 0x6f, 0x3a, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x6f, 0xd83c, 0xdf46, 0x3a, 0x65, + 0x67, 0x67, 0x70, 0x6c, 0x61, 0x6e, 0x74, 0x3a, 0x65, 0x67, 0x67, 0x70, + 0x6c, 0x61, 0x6e, 0x74, 0xd83e, 0xdd51, 0x3a, 0x61, 0x76, 0x6f, 0x63, 0x61, + 0x64, 0x6f, 0x3a, 0x61, 0x76, 0x6f, 0x63, 0x61, 0x64, 0x6f, 0xd83e, 0xdd66, + 0x3a, 0x62, 0x72, 0x6f, 0x63, 0x63, 0x6f, 0x6c, 0x69, 0x3a, 0x62, 0x72, + 0x6f, 0x63, 0x63, 0x6f, 0x6c, 0x69, 0xd83e, 0xdd52, 0x3a, 0x63, 0x75, 0x63, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x3a, 0x63, 0x75, 0x63, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0xd83c, 0xdf36, 0x3a, 0x68, 0x6f, 0x74, 0x5f, 0x70, 0x65, 0x70, + 0x70, 0x65, 0x72, 0x3a, 0x68, 0x6f, 0x74, 0x70, 0x65, 0x70, 0x70, 0x65, + 0x72, 0xd83c, 0xdf3d, 0x3a, 0x63, 0x6f, 0x72, 0x6e, 0x3a, 0x63, 0x6f, 0x72, + 0x6e, 0xd83e, 0xdd55, 0x3a, 0x63, 0x61, 0x72, 0x72, 0x6f, 0x74, 0x3a, 0x63, + 0x61, 0x72, 0x72, 0x6f, 0x74, 0xd83e, 0xdd54, 0x3a, 0x70, 0x6f, 0x74, 0x61, + 0x74, 0x6f, 0x3a, 0x70, 0x6f, 0x74, 0x61, 0x74, 0x6f, 0xd83c, 0xdf60, 0x3a, + 0x73, 0x77, 0x65, 0x65, 0x74, 0x5f, 0x70, 0x6f, 0x74, 0x61, 0x74, 0x6f, + 0x3a, 0x70, 0x6f, 0x74, 0x61, 0x74, 0x6f, 0x73, 0x77, 0x65, 0x65, 0x74, + 0xd83e, 0xdd50, 0x3a, 0x63, 0x72, 0x6f, 0x69, 0x73, 0x73, 0x61, 0x6e, 0x74, + 0x3a, 0x63, 0x72, 0x6f, 0x69, 0x73, 0x73, 0x61, 0x6e, 0x74, 0xd83c, 0xdf5e, + 0x3a, 0x62, 0x72, 0x65, 0x61, 0x64, 0x3a, 0x62, 0x72, 0x65, 0x61, 0x64, + 0xd83e, 0xdd56, 0x3a, 0x62, 0x61, 0x67, 0x75, 0x65, 0x74, 0x74, 0x65, 0x5f, + 0x62, 0x72, 0x65, 0x61, 0x64, 0x3a, 0x62, 0x61, 0x67, 0x75, 0x65, 0x74, + 0x74, 0x65, 0x62, 0x72, 0x65, 0x61, 0x64, 0xd83e, 0xdd56, 0x3a, 0x66, 0x72, + 0x65, 0x6e, 0x63, 0x68, 0x5f, 0x62, 0x72, 0x65, 0x61, 0x64, 0x3a, 0x62, + 0x72, 0x65, 0x61, 0x64, 0x66, 0x72, 0x65, 0x6e, 0x63, 0x68, 0xd83e, 0xdd68, + 0x3a, 0x70, 0x72, 0x65, 0x74, 0x7a, 0x65, 0x6c, 0x3a, 0x70, 0x72, 0x65, + 0x74, 0x7a, 0x65, 0x6c, 0xd83e, 0xddc0, 0x3a, 0x63, 0x68, 0x65, 0x65, 0x73, + 0x65, 0x5f, 0x77, 0x65, 0x64, 0x67, 0x65, 0x3a, 0x63, 0x68, 0x65, 0x65, + 0x73, 0x65, 0x77, 0x65, 0x64, 0x67, 0x65, 0xd83e, 0xddc0, 0x3a, 0x63, 0x68, + 0x65, 0x65, 0x73, 0x65, 0x3a, 0x63, 0x68, 0x65, 0x65, 0x73, 0x65, 0xd83e, + 0xdd5a, 0x3a, 0x65, 0x67, 0x67, 0x3a, 0x65, 0x67, 0x67, 0xd83c, 0xdf73, 0x3a, + 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x3a, 0x63, 0x6f, 0x6f, 0x6b, + 0x69, 0x6e, 0x67, 0xd83e, 0xdd5e, 0x3a, 0x70, 0x61, 0x6e, 0x63, 0x61, 0x6b, + 0x65, 0x73, 0x3a, 0x70, 0x61, 0x6e, 0x63, 0x61, 0x6b, 0x65, 0x73, 0xd83e, + 0xdd53, 0x3a, 0x62, 0x61, 0x63, 0x6f, 0x6e, 0x3a, 0x62, 0x61, 0x63, 0x6f, + 0x6e, 0xd83e, 0xdd69, 0x3a, 0x63, 0x75, 0x74, 0x5f, 0x6f, 0x66, 0x5f, 0x6d, + 0x65, 0x61, 0x74, 0x3a, 0x63, 0x75, 0x74, 0x6d, 0x65, 0x61, 0x74, 0x6f, + 0x66, 0xd83c, 0xdf57, 0x3a, 0x70, 0x6f, 0x75, 0x6c, 0x74, 0x72, 0x79, 0x5f, + 0x6c, 0x65, 0x67, 0x3a, 0x6c, 0x65, 0x67, 0x70, 0x6f, 0x75, 0x6c, 0x74, + 0x72, 0x79, 0xd83c, 0xdf56, 0x3a, 0x6d, 0x65, 0x61, 0x74, 0x5f, 0x6f, 0x6e, + 0x5f, 0x62, 0x6f, 0x6e, 0x65, 0x3a, 0x62, 0x6f, 0x6e, 0x65, 0x6d, 0x65, + 0x61, 0x74, 0x6f, 0x6e, 0xd83c, 0xdf2d, 0x3a, 0x68, 0x6f, 0x74, 0x5f, 0x64, + 0x6f, 0x67, 0x3a, 0x64, 0x6f, 0x67, 0x68, 0x6f, 0x74, 0xd83c, 0xdf2d, 0x3a, + 0x68, 0x6f, 0x74, 0x64, 0x6f, 0x67, 0x3a, 0x68, 0x6f, 0x74, 0x64, 0x6f, + 0x67, 0xd83c, 0xdf54, 0x3a, 0x68, 0x61, 0x6d, 0x62, 0x75, 0x72, 0x67, 0x65, + 0x72, 0x3a, 0x68, 0x61, 0x6d, 0x62, 0x75, 0x72, 0x67, 0x65, 0x72, 0xd83c, + 0xdf5f, 0x3a, 0x66, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x66, 0x72, 0x69, 0x65, + 0x73, 0xd83c, 0xdf55, 0x3a, 0x70, 0x69, 0x7a, 0x7a, 0x61, 0x3a, 0x70, 0x69, + 0x7a, 0x7a, 0x61, 0xd83e, 0xdd6a, 0x3a, 0x73, 0x61, 0x6e, 0x64, 0x77, 0x69, + 0x63, 0x68, 0x3a, 0x73, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x63, 0x68, 0xd83e, + 0xdd59, 0x3a, 0x73, 0x74, 0x75, 0x66, 0x66, 0x65, 0x64, 0x5f, 0x70, 0x69, + 0x74, 0x61, 0x3a, 0x70, 0x69, 0x74, 0x61, 0x73, 0x74, 0x75, 0x66, 0x66, + 0x65, 0x64, 0xd83e, 0xdd59, 0x3a, 0x73, 0x74, 0x75, 0x66, 0x66, 0x65, 0x64, + 0x5f, 0x66, 0x6c, 0x61, 0x74, 0x62, 0x72, 0x65, 0x61, 0x64, 0x3a, 0x66, + 0x6c, 0x61, 0x74, 0x62, 0x72, 0x65, 0x61, 0x64, 0x73, 0x74, 0x75, 0x66, + 0x66, 0x65, 0x64, 0xd83c, 0xdf2e, 0x3a, 0x74, 0x61, 0x63, 0x6f, 0x3a, 0x74, + 0x61, 0x63, 0x6f, 0xd83c, 0xdf2f, 0x3a, 0x62, 0x75, 0x72, 0x72, 0x69, 0x74, + 0x6f, 0x3a, 0x62, 0x75, 0x72, 0x72, 0x69, 0x74, 0x6f, 0xd83e, 0xdd57, 0x3a, + 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x73, 0x61, 0x6c, 0x61, 0x64, 0x3a, + 0x67, 0x72, 0x65, 0x65, 0x6e, 0x73, 0x61, 0x6c, 0x61, 0x64, 0xd83e, 0xdd57, + 0x3a, 0x73, 0x61, 0x6c, 0x61, 0x64, 0x3a, 0x73, 0x61, 0x6c, 0x61, 0x64, + 0xd83e, 0xdd58, 0x3a, 0x70, 0x61, 0x65, 0x6c, 0x6c, 0x61, 0x3a, 0x70, 0x61, + 0x65, 0x6c, 0x6c, 0x61, 0xd83e, 0xdd58, 0x3a, 0x73, 0x68, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x5f, 0x70, 0x61, 0x6e, 0x5f, 0x6f, 0x66, 0x5f, 0x66, 0x6f, + 0x6f, 0x64, 0x3a, 0x66, 0x6f, 0x6f, 0x64, 0x6f, 0x66, 0x70, 0x61, 0x6e, + 0x73, 0x68, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0xd83e, 0xdd6b, 0x3a, 0x63, 0x61, + 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x66, 0x6f, 0x6f, 0x64, 0x3a, 0x63, 0x61, + 0x6e, 0x6e, 0x65, 0x64, 0x66, 0x6f, 0x6f, 0x64, 0xd83c, 0xdf5d, 0x3a, 0x73, + 0x70, 0x61, 0x67, 0x68, 0x65, 0x74, 0x74, 0x69, 0x3a, 0x73, 0x70, 0x61, + 0x67, 0x68, 0x65, 0x74, 0x74, 0x69, 0xd83c, 0xdf5c, 0x3a, 0x72, 0x61, 0x6d, + 0x65, 0x6e, 0x3a, 0x72, 0x61, 0x6d, 0x65, 0x6e, 0xd83c, 0xdf72, 0x3a, 0x73, + 0x74, 0x65, 0x77, 0x3a, 0x73, 0x74, 0x65, 0x77, 0xd83c, 0xdf5b, 0x3a, 0x63, + 0x75, 0x72, 0x72, 0x79, 0x3a, 0x63, 0x75, 0x72, 0x72, 0x79, 0xd83c, 0xdf63, + 0x3a, 0x73, 0x75, 0x73, 0x68, 0x69, 0x3a, 0x73, 0x75, 0x73, 0x68, 0x69, + 0xd83c, 0xdf71, 0x3a, 0x62, 0x65, 0x6e, 0x74, 0x6f, 0x3a, 0x62, 0x65, 0x6e, + 0x74, 0x6f, 0xd83e, 0xdd5f, 0x3a, 0x64, 0x75, 0x6d, 0x70, 0x6c, 0x69, 0x6e, + 0x67, 0x3a, 0x64, 0x75, 0x6d, 0x70, 0x6c, 0x69, 0x6e, 0x67, 0xd83c, 0xdf64, + 0x3a, 0x66, 0x72, 0x69, 0x65, 0x64, 0x5f, 0x73, 0x68, 0x72, 0x69, 0x6d, + 0x70, 0x3a, 0x66, 0x72, 0x69, 0x65, 0x64, 0x73, 0x68, 0x72, 0x69, 0x6d, + 0x70, 0xd83c, 0xdf59, 0x3a, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x62, 0x61, 0x6c, + 0x6c, 0x3a, 0x62, 0x61, 0x6c, 0x6c, 0x72, 0x69, 0x63, 0x65, 0xd83c, 0xdf5a, + 0x3a, 0x72, 0x69, 0x63, 0x65, 0x3a, 0x72, 0x69, 0x63, 0x65, 0xd83c, 0xdf58, + 0x3a, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x72, 0x61, 0x63, 0x6b, 0x65, + 0x72, 0x3a, 0x63, 0x72, 0x61, 0x63, 0x6b, 0x65, 0x72, 0x72, 0x69, 0x63, + 0x65, 0xd83c, 0xdf65, 0x3a, 0x66, 0x69, 0x73, 0x68, 0x5f, 0x63, 0x61, 0x6b, + 0x65, 0x3a, 0x63, 0x61, 0x6b, 0x65, 0x66, 0x69, 0x73, 0x68, 0xd83e, 0xdd60, + 0x3a, 0x66, 0x6f, 0x72, 0x74, 0x75, 0x6e, 0x65, 0x5f, 0x63, 0x6f, 0x6f, + 0x6b, 0x69, 0x65, 0x3a, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x66, 0x6f, + 0x72, 0x74, 0x75, 0x6e, 0x65, 0xd83c, 0xdf62, 0x3a, 0x6f, 0x64, 0x65, 0x6e, + 0x3a, 0x6f, 0x64, 0x65, 0x6e, 0xd83c, 0xdf61, 0x3a, 0x64, 0x61, 0x6e, 0x67, + 0x6f, 0x3a, 0x64, 0x61, 0x6e, 0x67, 0x6f, 0xd83c, 0xdf67, 0x3a, 0x73, 0x68, + 0x61, 0x76, 0x65, 0x64, 0x5f, 0x69, 0x63, 0x65, 0x3a, 0x69, 0x63, 0x65, + 0x73, 0x68, 0x61, 0x76, 0x65, 0x64, 0xd83c, 0xdf68, 0x3a, 0x69, 0x63, 0x65, + 0x5f, 0x63, 0x72, 0x65, 0x61, 0x6d, 0x3a, 0x63, 0x72, 0x65, 0x61, 0x6d, + 0x69, 0x63, 0x65, 0xd83c, 0xdf66, 0x3a, 0x69, 0x63, 0x65, 0x63, 0x72, 0x65, + 0x61, 0x6d, 0x3a, 0x69, 0x63, 0x65, 0x63, 0x72, 0x65, 0x61, 0x6d, 0xd83e, + 0xdd67, 0x3a, 0x70, 0x69, 0x65, 0x3a, 0x70, 0x69, 0x65, 0xd83c, 0xdf70, 0x3a, + 0x63, 0x61, 0x6b, 0x65, 0x3a, 0x63, 0x61, 0x6b, 0x65, 0xd83c, 0xdf82, 0x3a, + 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x3a, 0x62, 0x69, 0x72, + 0x74, 0x68, 0x64, 0x61, 0x79, 0xd83c, 0xdf6e, 0x3a, 0x66, 0x6c, 0x61, 0x6e, + 0x3a, 0x66, 0x6c, 0x61, 0x6e, 0xd83c, 0xdf6e, 0x3a, 0x70, 0x75, 0x64, 0x64, + 0x69, 0x6e, 0x67, 0x3a, 0x70, 0x75, 0x64, 0x64, 0x69, 0x6e, 0x67, 0xd83c, + 0xdf6e, 0x3a, 0x63, 0x75, 0x73, 0x74, 0x61, 0x72, 0x64, 0x3a, 0x63, 0x75, + 0x73, 0x74, 0x61, 0x72, 0x64, 0xd83c, 0xdf6d, 0x3a, 0x6c, 0x6f, 0x6c, 0x6c, + 0x69, 0x70, 0x6f, 0x70, 0x3a, 0x6c, 0x6f, 0x6c, 0x6c, 0x69, 0x70, 0x6f, + 0x70, 0xd83c, 0xdf6c, 0x3a, 0x63, 0x61, 0x6e, 0x64, 0x79, 0x3a, 0x63, 0x61, + 0x6e, 0x64, 0x79, 0xd83c, 0xdf6b, 0x3a, 0x63, 0x68, 0x6f, 0x63, 0x6f, 0x6c, + 0x61, 0x74, 0x65, 0x5f, 0x62, 0x61, 0x72, 0x3a, 0x62, 0x61, 0x72, 0x63, + 0x68, 0x6f, 0x63, 0x6f, 0x6c, 0x61, 0x74, 0x65, 0xd83c, 0xdf7f, 0x3a, 0x70, + 0x6f, 0x70, 0x63, 0x6f, 0x72, 0x6e, 0x3a, 0x70, 0x6f, 0x70, 0x63, 0x6f, + 0x72, 0x6e, 0xd83c, 0xdf69, 0x3a, 0x64, 0x6f, 0x75, 0x67, 0x68, 0x6e, 0x75, + 0x74, 0x3a, 0x64, 0x6f, 0x75, 0x67, 0x68, 0x6e, 0x75, 0x74, 0xd83c, 0xdf6a, + 0x3a, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x65, 0x3a, 0x63, 0x6f, 0x6f, 0x6b, + 0x69, 0x65, 0xd83c, 0xdf30, 0x3a, 0x63, 0x68, 0x65, 0x73, 0x74, 0x6e, 0x75, + 0x74, 0x3a, 0x63, 0x68, 0x65, 0x73, 0x74, 0x6e, 0x75, 0x74, 0xd83e, 0xdd5c, + 0x3a, 0x73, 0x68, 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x70, 0x65, 0x61, + 0x6e, 0x75, 0x74, 0x3a, 0x70, 0x65, 0x61, 0x6e, 0x75, 0x74, 0x73, 0x68, + 0x65, 0x6c, 0x6c, 0x65, 0x64, 0xd83e, 0xdd5c, 0x3a, 0x70, 0x65, 0x61, 0x6e, + 0x75, 0x74, 0x73, 0x3a, 0x70, 0x65, 0x61, 0x6e, 0x75, 0x74, 0x73, 0xd83c, + 0xdf6f, 0x3a, 0x68, 0x6f, 0x6e, 0x65, 0x79, 0x5f, 0x70, 0x6f, 0x74, 0x3a, + 0x68, 0x6f, 0x6e, 0x65, 0x79, 0x70, 0x6f, 0x74, 0xd83e, 0xdd5b, 0x3a, 0x67, + 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x6f, 0x66, 0x5f, 0x6d, 0x69, 0x6c, 0x6b, + 0x3a, 0x67, 0x6c, 0x61, 0x73, 0x73, 0x6d, 0x69, 0x6c, 0x6b, 0x6f, 0x66, + 0xd83e, 0xdd5b, 0x3a, 0x6d, 0x69, 0x6c, 0x6b, 0x3a, 0x6d, 0x69, 0x6c, 0x6b, + 0xd83c, 0xdf7c, 0x3a, 0x62, 0x61, 0x62, 0x79, 0x5f, 0x62, 0x6f, 0x74, 0x74, + 0x6c, 0x65, 0x3a, 0x62, 0x61, 0x62, 0x79, 0x62, 0x6f, 0x74, 0x74, 0x6c, + 0x65, 0x2615, 0xfe0f, 0x3a, 0x63, 0x6f, 0x66, 0x66, 0x65, 0x65, 0x3a, 0x63, + 0x6f, 0x66, 0x66, 0x65, 0x65, 0xd83c, 0xdf75, 0x3a, 0x74, 0x65, 0x61, 0x3a, + 0x74, 0x65, 0x61, 0xd83e, 0xdd64, 0x3a, 0x63, 0x75, 0x70, 0x5f, 0x77, 0x69, + 0x74, 0x68, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x77, 0x3a, 0x63, 0x75, 0x70, + 0x73, 0x74, 0x72, 0x61, 0x77, 0x77, 0x69, 0x74, 0x68, 0xd83c, 0xdf76, 0x3a, + 0x73, 0x61, 0x6b, 0x65, 0x3a, 0x73, 0x61, 0x6b, 0x65, 0xd83c, 0xdf7a, 0x3a, + 0x62, 0x65, 0x65, 0x72, 0x3a, 0x62, 0x65, 0x65, 0x72, 0xd83c, 0xdf7b, 0x3a, + 0x62, 0x65, 0x65, 0x72, 0x73, 0x3a, 0x62, 0x65, 0x65, 0x72, 0x73, 0xd83e, + 0xdd42, 0x3a, 0x63, 0x6c, 0x69, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x67, + 0x6c, 0x61, 0x73, 0x73, 0x3a, 0x63, 0x6c, 0x69, 0x6e, 0x6b, 0x69, 0x6e, + 0x67, 0x67, 0x6c, 0x61, 0x73, 0x73, 0xd83e, 0xdd42, 0x3a, 0x63, 0x68, 0x61, + 0x6d, 0x70, 0x61, 0x67, 0x6e, 0x65, 0x5f, 0x67, 0x6c, 0x61, 0x73, 0x73, + 0x3a, 0x63, 0x68, 0x61, 0x6d, 0x70, 0x61, 0x67, 0x6e, 0x65, 0x67, 0x6c, + 0x61, 0x73, 0x73, 0xd83c, 0xdf77, 0x3a, 0x77, 0x69, 0x6e, 0x65, 0x5f, 0x67, + 0x6c, 0x61, 0x73, 0x73, 0x3a, 0x67, 0x6c, 0x61, 0x73, 0x73, 0x77, 0x69, + 0x6e, 0x65, 0xd83e, 0xdd43, 0x3a, 0x77, 0x68, 0x69, 0x73, 0x6b, 0x79, 0x3a, + 0x77, 0x68, 0x69, 0x73, 0x6b, 0x79, 0xd83e, 0xdd43, 0x3a, 0x74, 0x75, 0x6d, + 0x62, 0x6c, 0x65, 0x72, 0x5f, 0x67, 0x6c, 0x61, 0x73, 0x73, 0x3a, 0x67, + 0x6c, 0x61, 0x73, 0x73, 0x74, 0x75, 0x6d, 0x62, 0x6c, 0x65, 0x72, 0xd83c, + 0xdf78, 0x3a, 0x63, 0x6f, 0x63, 0x6b, 0x74, 0x61, 0x69, 0x6c, 0x3a, 0x63, + 0x6f, 0x63, 0x6b, 0x74, 0x61, 0x69, 0x6c, 0xd83c, 0xdf79, 0x3a, 0x74, 0x72, + 0x6f, 0x70, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x64, 0x72, 0x69, 0x6e, 0x6b, + 0x3a, 0x64, 0x72, 0x69, 0x6e, 0x6b, 0x74, 0x72, 0x6f, 0x70, 0x69, 0x63, + 0x61, 0x6c, 0xd83c, 0xdf7e, 0x3a, 0x62, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x5f, + 0x77, 0x69, 0x74, 0x68, 0x5f, 0x70, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x5f, 0x63, 0x6f, 0x72, 0x6b, 0x3a, 0x62, 0x6f, 0x74, 0x74, 0x6c, 0x65, + 0x63, 0x6f, 0x72, 0x6b, 0x70, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x77, + 0x69, 0x74, 0x68, 0xd83c, 0xdf7e, 0x3a, 0x63, 0x68, 0x61, 0x6d, 0x70, 0x61, + 0x67, 0x6e, 0x65, 0x3a, 0x63, 0x68, 0x61, 0x6d, 0x70, 0x61, 0x67, 0x6e, + 0x65, 0xd83e, 0xdd44, 0x3a, 0x73, 0x70, 0x6f, 0x6f, 0x6e, 0x3a, 0x73, 0x70, + 0x6f, 0x6f, 0x6e, 0xd83c, 0xdf74, 0x3a, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x61, + 0x6e, 0x64, 0x5f, 0x6b, 0x6e, 0x69, 0x66, 0x65, 0x3a, 0x61, 0x6e, 0x64, + 0x66, 0x6f, 0x72, 0x6b, 0x6b, 0x6e, 0x69, 0x66, 0x65, 0xd83c, 0xdf7d, 0x3a, + 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x6b, 0x6e, 0x69, + 0x66, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x3a, 0x61, 0x6e, 0x64, 0x66, 0x6f, 0x72, 0x6b, 0x6b, 0x6e, 0x69, + 0x66, 0x65, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x77, 0x69, 0x74, 0x68, 0xd83c, + 0xdf7d, 0x3a, 0x66, 0x6f, 0x72, 0x6b, 0x5f, 0x6b, 0x6e, 0x69, 0x66, 0x65, + 0x5f, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x3a, 0x66, 0x6f, 0x72, 0x6b, 0x6b, + 0x6e, 0x69, 0x66, 0x65, 0x70, 0x6c, 0x61, 0x74, 0x65, 0xd83e, 0xdd63, 0x3a, + 0x62, 0x6f, 0x77, 0x6c, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x73, 0x70, + 0x6f, 0x6f, 0x6e, 0x3a, 0x62, 0x6f, 0x77, 0x6c, 0x73, 0x70, 0x6f, 0x6f, + 0x6e, 0x77, 0x69, 0x74, 0x68, 0xd83e, 0xdd61, 0x3a, 0x74, 0x61, 0x6b, 0x65, + 0x6f, 0x75, 0x74, 0x5f, 0x62, 0x6f, 0x78, 0x3a, 0x62, 0x6f, 0x78, 0x74, + 0x61, 0x6b, 0x65, 0x6f, 0x75, 0x74, 0xd83e, 0xdd62, 0x3a, 0x63, 0x68, 0x6f, + 0x70, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x3a, 0x63, 0x68, 0x6f, 0x70, + 0x73, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x26bd, 0xfe0f, 0x3a, 0x73, 0x6f, 0x63, + 0x63, 0x65, 0x72, 0x3a, 0x73, 0x6f, 0x63, 0x63, 0x65, 0x72, 0xd83c, 0xdfc0, + 0x3a, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x62, 0x61, 0x6c, 0x6c, 0x3a, + 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x62, 0x61, 0x6c, 0x6c, 0xd83c, 0xdfc8, + 0x3a, 0x66, 0x6f, 0x6f, 0x74, 0x62, 0x61, 0x6c, 0x6c, 0x3a, 0x66, 0x6f, + 0x6f, 0x74, 0x62, 0x61, 0x6c, 0x6c, 0x26be, 0xfe0f, 0x3a, 0x62, 0x61, 0x73, + 0x65, 0x62, 0x61, 0x6c, 0x6c, 0x3a, 0x62, 0x61, 0x73, 0x65, 0x62, 0x61, + 0x6c, 0x6c, 0xd83c, 0xdfbe, 0x3a, 0x74, 0x65, 0x6e, 0x6e, 0x69, 0x73, 0x3a, + 0x74, 0x65, 0x6e, 0x6e, 0x69, 0x73, 0xd83c, 0xdfd0, 0x3a, 0x76, 0x6f, 0x6c, + 0x6c, 0x65, 0x79, 0x62, 0x61, 0x6c, 0x6c, 0x3a, 0x76, 0x6f, 0x6c, 0x6c, + 0x65, 0x79, 0x62, 0x61, 0x6c, 0x6c, 0xd83c, 0xdfc9, 0x3a, 0x72, 0x75, 0x67, + 0x62, 0x79, 0x5f, 0x66, 0x6f, 0x6f, 0x74, 0x62, 0x61, 0x6c, 0x6c, 0x3a, + 0x66, 0x6f, 0x6f, 0x74, 0x62, 0x61, 0x6c, 0x6c, 0x72, 0x75, 0x67, 0x62, + 0x79, 0xd83c, 0xdfb1, 0x3a, 0x38, 0x62, 0x61, 0x6c, 0x6c, 0x3a, 0x38, 0x62, + 0x61, 0x6c, 0x6c, 0xd83c, 0xdfd3, 0x3a, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x74, 0x65, 0x6e, 0x6e, 0x69, 0x73, 0x3a, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x74, 0x65, 0x6e, 0x6e, 0x69, 0x73, 0xd83c, 0xdfd3, 0x3a, 0x70, 0x69, 0x6e, + 0x67, 0x5f, 0x70, 0x6f, 0x6e, 0x67, 0x3a, 0x70, 0x69, 0x6e, 0x67, 0x70, + 0x6f, 0x6e, 0x67, 0xd83c, 0xdff8, 0x3a, 0x62, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x74, 0x6f, 0x6e, 0x3a, 0x62, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x74, 0x6f, + 0x6e, 0xd83c, 0xdfd2, 0x3a, 0x68, 0x6f, 0x63, 0x6b, 0x65, 0x79, 0x3a, 0x68, + 0x6f, 0x63, 0x6b, 0x65, 0x79, 0xd83c, 0xdfd1, 0x3a, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x68, 0x6f, 0x63, 0x6b, 0x65, 0x79, 0x3a, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x68, 0x6f, 0x63, 0x6b, 0x65, 0x79, 0xd83c, 0xdfcf, 0x3a, 0x63, + 0x72, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x62, 0x61, 0x74, 0x5f, 0x62, + 0x61, 0x6c, 0x6c, 0x3a, 0x62, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x74, 0x63, + 0x72, 0x69, 0x63, 0x6b, 0x65, 0x74, 0xd83c, 0xdfcf, 0x3a, 0x63, 0x72, 0x69, + 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x67, 0x61, 0x6d, 0x65, 0x3a, 0x63, 0x72, + 0x69, 0x63, 0x6b, 0x65, 0x74, 0x67, 0x61, 0x6d, 0x65, 0xd83e, 0xdd45, 0x3a, + 0x67, 0x6f, 0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x74, 0x3a, 0x67, 0x6f, 0x61, + 0x6c, 0x6e, 0x65, 0x74, 0xd83e, 0xdd45, 0x3a, 0x67, 0x6f, 0x61, 0x6c, 0x3a, + 0x67, 0x6f, 0x61, 0x6c, 0x26f3, 0xfe0f, 0x3a, 0x67, 0x6f, 0x6c, 0x66, 0x3a, + 0x67, 0x6f, 0x6c, 0x66, 0xd83c, 0xdff9, 0x3a, 0x61, 0x72, 0x63, 0x68, 0x65, + 0x72, 0x79, 0x3a, 0x61, 0x72, 0x63, 0x68, 0x65, 0x72, 0x79, 0xd83c, 0xdff9, + 0x3a, 0x62, 0x6f, 0x77, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x61, 0x72, 0x72, + 0x6f, 0x77, 0x3a, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x62, + 0x6f, 0x77, 0xd83c, 0xdfa3, 0x3a, 0x66, 0x69, 0x73, 0x68, 0x69, 0x6e, 0x67, + 0x5f, 0x70, 0x6f, 0x6c, 0x65, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x66, 0x69, + 0x73, 0x68, 0x3a, 0x61, 0x6e, 0x64, 0x66, 0x69, 0x73, 0x68, 0x66, 0x69, + 0x73, 0x68, 0x69, 0x6e, 0x67, 0x70, 0x6f, 0x6c, 0x65, 0xd83e, 0xdd4a, 0x3a, + 0x62, 0x6f, 0x78, 0x69, 0x6e, 0x67, 0x5f, 0x67, 0x6c, 0x6f, 0x76, 0x65, + 0x73, 0x3a, 0x62, 0x6f, 0x78, 0x69, 0x6e, 0x67, 0x67, 0x6c, 0x6f, 0x76, + 0x65, 0x73, 0xd83e, 0xdd4a, 0x3a, 0x62, 0x6f, 0x78, 0x69, 0x6e, 0x67, 0x5f, + 0x67, 0x6c, 0x6f, 0x76, 0x65, 0x3a, 0x62, 0x6f, 0x78, 0x69, 0x6e, 0x67, + 0x67, 0x6c, 0x6f, 0x76, 0x65, 0xd83e, 0xdd4b, 0x3a, 0x6b, 0x61, 0x72, 0x61, + 0x74, 0x65, 0x5f, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x6b, + 0x61, 0x72, 0x61, 0x74, 0x65, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, + 0xd83e, 0xdd4b, 0x3a, 0x6d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x61, + 0x72, 0x74, 0x73, 0x5f, 0x75, 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0x3a, + 0x61, 0x72, 0x74, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x75, + 0x6e, 0x69, 0x66, 0x6f, 0x72, 0x6d, 0xd83c, 0xdfbd, 0x3a, 0x72, 0x75, 0x6e, + 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x68, 0x69, 0x72, 0x74, 0x5f, 0x77, + 0x69, 0x74, 0x68, 0x5f, 0x73, 0x61, 0x73, 0x68, 0x3a, 0x72, 0x75, 0x6e, + 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x61, 0x73, 0x68, 0x73, 0x68, 0x69, 0x72, + 0x74, 0x77, 0x69, 0x74, 0x68, 0xd83d, 0xdef7, 0x3a, 0x73, 0x6c, 0x65, 0x64, + 0x3a, 0x73, 0x6c, 0x65, 0x64, 0x26f8, 0x3a, 0x69, 0x63, 0x65, 0x5f, 0x73, + 0x6b, 0x61, 0x74, 0x65, 0x3a, 0x69, 0x63, 0x65, 0x73, 0x6b, 0x61, 0x74, + 0x65, 0xd83e, 0xdd4c, 0x3a, 0x63, 0x75, 0x72, 0x6c, 0x69, 0x6e, 0x67, 0x5f, + 0x73, 0x74, 0x6f, 0x6e, 0x65, 0x3a, 0x63, 0x75, 0x72, 0x6c, 0x69, 0x6e, + 0x67, 0x73, 0x74, 0x6f, 0x6e, 0x65, 0xd83c, 0xdfbf, 0x3a, 0x73, 0x6b, 0x69, + 0x3a, 0x73, 0x6b, 0x69, 0x26f7, 0x3a, 0x73, 0x6b, 0x69, 0x65, 0x72, 0x3a, + 0x73, 0x6b, 0x69, 0x65, 0x72, 0xd83c, 0xdfc2, 0x3a, 0x73, 0x6e, 0x6f, 0x77, + 0x62, 0x6f, 0x61, 0x72, 0x64, 0x65, 0x72, 0x3a, 0x73, 0x6e, 0x6f, 0x77, + 0x62, 0x6f, 0x61, 0x72, 0x64, 0x65, 0x72, 0xd83c, 0xdfcb, 0xfe0f, 0x200d, 0x2640, + 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x6c, 0x69, 0x66, 0x74, + 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x73, 0x3a, + 0x6c, 0x69, 0x66, 0x74, 0x69, 0x6e, 0x67, 0x77, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x73, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83c, 0xdfcb, 0xfe0f, 0x200d, 0x2642, + 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x6c, 0x69, 0x66, 0x74, 0x69, 0x6e, + 0x67, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x73, 0x3a, 0x6c, 0x69, + 0x66, 0x74, 0x69, 0x6e, 0x67, 0x6d, 0x61, 0x6e, 0x77, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x73, 0xd83c, 0xdfcb, 0xfe0f, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x77, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x5f, 0x6c, 0x69, 0x66, 0x74, 0x65, 0x72, 0x3a, + 0x6c, 0x69, 0x66, 0x74, 0x65, 0x72, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, + 0xd83c, 0xdfcb, 0xfe0f, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6c, 0x69, 0x66, 0x74, 0x65, + 0x72, 0x3a, 0x6c, 0x69, 0x66, 0x74, 0x65, 0x72, 0xd83c, 0xdfcb, 0xfe0f, 0x200d, + 0x2642, 0xfe0f, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x6c, 0x69, + 0x66, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x73, 0x3a, 0x6c, 0x69, 0x66, 0x74, 0x69, 0x6e, 0x67, 0x70, 0x65, 0x72, + 0x73, 0x6f, 0x6e, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x73, 0xd83e, 0xdd3c, + 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x65, 0x6e, 0x5f, 0x77, 0x72, + 0x65, 0x73, 0x74, 0x6c, 0x69, 0x6e, 0x67, 0x3a, 0x77, 0x6f, 0x6d, 0x65, + 0x6e, 0x77, 0x72, 0x65, 0x73, 0x74, 0x6c, 0x69, 0x6e, 0x67, 0xd83e, 0xdd3c, + 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, 0x65, 0x6e, 0x5f, 0x77, 0x72, 0x65, 0x73, + 0x74, 0x6c, 0x69, 0x6e, 0x67, 0x3a, 0x6d, 0x65, 0x6e, 0x77, 0x72, 0x65, + 0x73, 0x74, 0x6c, 0x69, 0x6e, 0x67, 0xd83e, 0xdd3c, 0x200d, 0x2642, 0xfe0f, 0x3a, + 0x77, 0x72, 0x65, 0x73, 0x74, 0x6c, 0x69, 0x6e, 0x67, 0x3a, 0x77, 0x72, + 0x65, 0x73, 0x74, 0x6c, 0x69, 0x6e, 0x67, 0xd83e, 0xdd3c, 0x200d, 0x2642, 0xfe0f, + 0x3a, 0x77, 0x72, 0x65, 0x73, 0x74, 0x6c, 0x65, 0x72, 0x73, 0x3a, 0x77, + 0x72, 0x65, 0x73, 0x74, 0x6c, 0x65, 0x72, 0x73, 0xd83e, 0xdd3c, 0x200d, 0x2642, + 0xfe0f, 0x3a, 0x70, 0x65, 0x6f, 0x70, 0x6c, 0x65, 0x5f, 0x77, 0x72, 0x65, + 0x73, 0x74, 0x6c, 0x69, 0x6e, 0x67, 0x3a, 0x70, 0x65, 0x6f, 0x70, 0x6c, + 0x65, 0x77, 0x72, 0x65, 0x73, 0x74, 0x6c, 0x69, 0x6e, 0x67, 0xd83e, 0xdd38, + 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x63, 0x61, + 0x72, 0x74, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x69, 0x6e, 0x67, 0x3a, 0x63, + 0x61, 0x72, 0x74, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x69, 0x6e, 0x67, 0x77, + 0x6f, 0x6d, 0x61, 0x6e, 0xd83e, 0xdd38, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, 0x61, + 0x6e, 0x5f, 0x63, 0x61, 0x72, 0x74, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x69, + 0x6e, 0x67, 0x3a, 0x63, 0x61, 0x72, 0x74, 0x77, 0x68, 0x65, 0x65, 0x6c, + 0x69, 0x6e, 0x67, 0x6d, 0x61, 0x6e, 0xd83e, 0xdd38, 0x200d, 0x2642, 0xfe0f, 0x3a, + 0x63, 0x61, 0x72, 0x74, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x3a, 0x63, 0x61, + 0x72, 0x74, 0x77, 0x68, 0x65, 0x65, 0x6c, 0xd83e, 0xdd38, 0x200d, 0x2642, 0xfe0f, + 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x64, 0x6f, 0x69, 0x6e, + 0x67, 0x5f, 0x63, 0x61, 0x72, 0x74, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x3a, + 0x63, 0x61, 0x72, 0x74, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x64, 0x6f, 0x69, + 0x6e, 0x67, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x26f9, 0xfe0f, 0x200d, 0x2640, + 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x62, 0x6f, 0x75, 0x6e, + 0x63, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x61, 0x6c, 0x6c, 0x3a, 0x62, 0x61, + 0x6c, 0x6c, 0x62, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x77, 0x6f, + 0x6d, 0x61, 0x6e, 0x26f9, 0xfe0f, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, + 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x61, + 0x6c, 0x6c, 0x3a, 0x62, 0x61, 0x6c, 0x6c, 0x62, 0x6f, 0x75, 0x6e, 0x63, + 0x69, 0x6e, 0x67, 0x6d, 0x61, 0x6e, 0x26f9, 0xfe0f, 0x200d, 0x2642, 0xfe0f, 0x3a, + 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, + 0x62, 0x61, 0x6c, 0x6c, 0x3a, 0x62, 0x61, 0x6c, 0x6c, 0x70, 0x65, 0x72, + 0x73, 0x6f, 0x6e, 0x77, 0x69, 0x74, 0x68, 0x26f9, 0xfe0f, 0x200d, 0x2642, 0xfe0f, + 0x3a, 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x62, 0x61, 0x6c, 0x6c, 0x5f, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x3a, 0x62, 0x61, 0x73, 0x6b, 0x65, + 0x74, 0x62, 0x61, 0x6c, 0x6c, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x26f9, + 0xfe0f, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, + 0x62, 0x6f, 0x75, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x61, 0x6c, + 0x6c, 0x3a, 0x62, 0x61, 0x6c, 0x6c, 0x62, 0x6f, 0x75, 0x6e, 0x63, 0x69, + 0x6e, 0x67, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0xd83e, 0xdd3a, 0x3a, 0x66, + 0x65, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x3a, 0x66, 0x65, 0x6e, 0x63, 0x69, + 0x6e, 0x67, 0xd83e, 0xdd3a, 0x3a, 0x66, 0x65, 0x6e, 0x63, 0x65, 0x72, 0x3a, + 0x66, 0x65, 0x6e, 0x63, 0x65, 0x72, 0xd83e, 0xdd3a, 0x3a, 0x70, 0x65, 0x72, + 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x65, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x3a, + 0x66, 0x65, 0x6e, 0x63, 0x69, 0x6e, 0x67, 0x70, 0x65, 0x72, 0x73, 0x6f, + 0x6e, 0xd83e, 0xdd3e, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, + 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x61, 0x6e, + 0x64, 0x62, 0x61, 0x6c, 0x6c, 0x3a, 0x68, 0x61, 0x6e, 0x64, 0x62, 0x61, + 0x6c, 0x6c, 0x70, 0x6c, 0x61, 0x79, 0x69, 0x6e, 0x67, 0x77, 0x6f, 0x6d, + 0x61, 0x6e, 0xd83e, 0xdd3e, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x68, 0x61, 0x6e, 0x64, + 0x62, 0x61, 0x6c, 0x6c, 0x3a, 0x68, 0x61, 0x6e, 0x64, 0x62, 0x61, 0x6c, + 0x6c, 0xd83e, 0xdd3e, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, + 0x6e, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x61, + 0x6e, 0x64, 0x62, 0x61, 0x6c, 0x6c, 0x3a, 0x68, 0x61, 0x6e, 0x64, 0x62, + 0x61, 0x6c, 0x6c, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x70, 0x6c, 0x61, + 0x79, 0x69, 0x6e, 0x67, 0xd83e, 0xdd3e, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, 0x61, + 0x6e, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x61, + 0x6e, 0x64, 0x62, 0x61, 0x6c, 0x6c, 0x3a, 0x68, 0x61, 0x6e, 0x64, 0x62, + 0x61, 0x6c, 0x6c, 0x6d, 0x61, 0x6e, 0x70, 0x6c, 0x61, 0x79, 0x69, 0x6e, + 0x67, 0xd83c, 0xdfcc, 0xfe0f, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, + 0x6e, 0x5f, 0x67, 0x6f, 0x6c, 0x66, 0x69, 0x6e, 0x67, 0x3a, 0x67, 0x6f, + 0x6c, 0x66, 0x69, 0x6e, 0x67, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83c, 0xdfcc, + 0xfe0f, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x67, 0x6f, 0x6c, + 0x66, 0x69, 0x6e, 0x67, 0x3a, 0x67, 0x6f, 0x6c, 0x66, 0x69, 0x6e, 0x67, + 0x6d, 0x61, 0x6e, 0xd83c, 0xdfcc, 0xfe0f, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x67, 0x6f, + 0x6c, 0x66, 0x65, 0x72, 0x3a, 0x67, 0x6f, 0x6c, 0x66, 0x65, 0x72, 0xd83c, + 0xdfcc, 0xfe0f, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, + 0x5f, 0x67, 0x6f, 0x6c, 0x66, 0x69, 0x6e, 0x67, 0x3a, 0x67, 0x6f, 0x6c, + 0x66, 0x69, 0x6e, 0x67, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0xd83c, 0xdfc7, + 0x3a, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x5f, 0x72, 0x61, 0x63, 0x69, 0x6e, + 0x67, 0x3a, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x72, 0x61, 0x63, 0x69, 0x6e, + 0x67, 0xd83e, 0xddd8, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, + 0x5f, 0x69, 0x6e, 0x5f, 0x6c, 0x6f, 0x74, 0x75, 0x73, 0x5f, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x69, 0x6e, 0x6c, 0x6f, 0x74, + 0x75, 0x73, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x77, 0x6f, + 0x6d, 0x61, 0x6e, 0xd83e, 0xddd8, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x70, 0x65, 0x72, + 0x73, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x6c, 0x6f, 0x74, 0x75, 0x73, + 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x69, 0x6e, + 0x6c, 0x6f, 0x74, 0x75, 0x73, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0xd83e, 0xddd8, 0x200d, 0x2642, 0xfe0f, + 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x69, 0x6e, 0x5f, 0x6c, 0x6f, 0x74, 0x75, + 0x73, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x69, + 0x6e, 0x6c, 0x6f, 0x74, 0x75, 0x73, 0x6d, 0x61, 0x6e, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0xd83c, 0xdfc4, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, + 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x73, 0x75, 0x72, 0x66, 0x69, 0x6e, 0x67, + 0x3a, 0x73, 0x75, 0x72, 0x66, 0x69, 0x6e, 0x67, 0x77, 0x6f, 0x6d, 0x61, + 0x6e, 0xd83c, 0xdfc4, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x73, + 0x75, 0x72, 0x66, 0x69, 0x6e, 0x67, 0x3a, 0x6d, 0x61, 0x6e, 0x73, 0x75, + 0x72, 0x66, 0x69, 0x6e, 0x67, 0xd83c, 0xdfc4, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x73, + 0x75, 0x72, 0x66, 0x65, 0x72, 0x3a, 0x73, 0x75, 0x72, 0x66, 0x65, 0x72, + 0xd83c, 0xdfc4, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, + 0x5f, 0x73, 0x75, 0x72, 0x66, 0x69, 0x6e, 0x67, 0x3a, 0x70, 0x65, 0x72, + 0x73, 0x6f, 0x6e, 0x73, 0x75, 0x72, 0x66, 0x69, 0x6e, 0x67, 0xd83c, 0xdfca, + 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x73, 0x77, + 0x69, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x3a, 0x73, 0x77, 0x69, 0x6d, 0x6d, + 0x69, 0x6e, 0x67, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83c, 0xdfca, 0x200d, 0x2642, + 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x73, 0x77, 0x69, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0x3a, 0x6d, 0x61, 0x6e, 0x73, 0x77, 0x69, 0x6d, 0x6d, 0x69, + 0x6e, 0x67, 0xd83c, 0xdfca, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x73, 0x77, 0x69, 0x6d, + 0x6d, 0x65, 0x72, 0x3a, 0x73, 0x77, 0x69, 0x6d, 0x6d, 0x65, 0x72, 0xd83c, + 0xdfca, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, + 0x73, 0x77, 0x69, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x3a, 0x70, 0x65, 0x72, + 0x73, 0x6f, 0x6e, 0x73, 0x77, 0x69, 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0xd83e, + 0xdd3d, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x70, + 0x6c, 0x61, 0x79, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, + 0x5f, 0x70, 0x6f, 0x6c, 0x6f, 0x3a, 0x70, 0x6c, 0x61, 0x79, 0x69, 0x6e, + 0x67, 0x70, 0x6f, 0x6c, 0x6f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x77, 0x6f, + 0x6d, 0x61, 0x6e, 0xd83e, 0xdd3d, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, + 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x61, 0x74, + 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x6c, 0x6f, 0x3a, 0x6d, 0x61, 0x6e, 0x70, + 0x6c, 0x61, 0x79, 0x69, 0x6e, 0x67, 0x70, 0x6f, 0x6c, 0x6f, 0x77, 0x61, + 0x74, 0x65, 0x72, 0xd83e, 0xdd3d, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x77, 0x61, 0x74, + 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x6c, 0x6f, 0x3a, 0x70, 0x6f, 0x6c, 0x6f, + 0x77, 0x61, 0x74, 0x65, 0x72, 0xd83e, 0xdd3d, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x70, + 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x69, 0x6e, + 0x67, 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x6c, 0x6f, + 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x70, 0x6c, 0x61, 0x79, 0x69, + 0x6e, 0x67, 0x70, 0x6f, 0x6c, 0x6f, 0x77, 0x61, 0x74, 0x65, 0x72, 0xd83d, + 0xdea3, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x72, + 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6f, 0x61, 0x74, 0x3a, 0x62, + 0x6f, 0x61, 0x74, 0x72, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x77, 0x6f, 0x6d, + 0x61, 0x6e, 0xd83d, 0xdea3, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, + 0x72, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6f, 0x61, 0x74, 0x3a, + 0x62, 0x6f, 0x61, 0x74, 0x6d, 0x61, 0x6e, 0x72, 0x6f, 0x77, 0x69, 0x6e, + 0x67, 0xd83d, 0xdea3, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x72, 0x6f, 0x77, 0x62, 0x6f, + 0x61, 0x74, 0x3a, 0x72, 0x6f, 0x77, 0x62, 0x6f, 0x61, 0x74, 0xd83d, 0xdea3, + 0x200d, 0x2642, 0xfe0f, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x72, + 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6f, 0x61, 0x74, 0x3a, 0x62, + 0x6f, 0x61, 0x74, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x72, 0x6f, 0x77, + 0x69, 0x6e, 0x67, 0xd83e, 0xddd7, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, + 0x61, 0x6e, 0x5f, 0x63, 0x6c, 0x69, 0x6d, 0x62, 0x69, 0x6e, 0x67, 0x3a, + 0x63, 0x6c, 0x69, 0x6d, 0x62, 0x69, 0x6e, 0x67, 0x77, 0x6f, 0x6d, 0x61, + 0x6e, 0xd83e, 0xddd7, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, + 0x6e, 0x5f, 0x63, 0x6c, 0x69, 0x6d, 0x62, 0x69, 0x6e, 0x67, 0x3a, 0x63, + 0x6c, 0x69, 0x6d, 0x62, 0x69, 0x6e, 0x67, 0x70, 0x65, 0x72, 0x73, 0x6f, + 0x6e, 0xd83e, 0xddd7, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x63, + 0x6c, 0x69, 0x6d, 0x62, 0x69, 0x6e, 0x67, 0x3a, 0x63, 0x6c, 0x69, 0x6d, + 0x62, 0x69, 0x6e, 0x67, 0x6d, 0x61, 0x6e, 0xd83d, 0xdeb5, 0x200d, 0x2640, 0xfe0f, + 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x5f, 0x62, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x3a, 0x62, + 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0xd83d, 0xdeb5, 0x200d, 0x2642, 0xfe0f, 0x3a, + 0x6d, 0x61, 0x6e, 0x5f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x5f, 0x62, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x3a, 0x62, 0x69, 0x6b, 0x69, + 0x6e, 0x67, 0x6d, 0x61, 0x6e, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0xd83d, 0xdeb5, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x5f, 0x62, 0x69, 0x63, 0x79, 0x63, 0x6c, 0x69, 0x73, + 0x74, 0x3a, 0x62, 0x69, 0x63, 0x79, 0x63, 0x6c, 0x69, 0x73, 0x74, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0xd83d, 0xdeb5, 0x200d, 0x2642, 0xfe0f, + 0x3a, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x5f, 0x62, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x3a, + 0x62, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0xd83d, 0xdeb4, 0x200d, 0x2640, + 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, 0x61, 0x6e, 0x5f, 0x62, 0x69, 0x6b, 0x69, + 0x6e, 0x67, 0x3a, 0x62, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x77, 0x6f, 0x6d, + 0x61, 0x6e, 0xd83d, 0xdeb4, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, + 0x62, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x3a, 0x62, 0x69, 0x6b, 0x69, 0x6e, + 0x67, 0x6d, 0x61, 0x6e, 0xd83d, 0xdeb4, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x62, 0x69, + 0x63, 0x79, 0x63, 0x6c, 0x69, 0x73, 0x74, 0x3a, 0x62, 0x69, 0x63, 0x79, + 0x63, 0x6c, 0x69, 0x73, 0x74, 0xd83d, 0xdeb4, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x70, + 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x62, 0x69, 0x6b, 0x69, 0x6e, 0x67, + 0x3a, 0x62, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x70, 0x65, 0x72, 0x73, 0x6f, + 0x6e, 0xd83c, 0xdfc6, 0x3a, 0x74, 0x72, 0x6f, 0x70, 0x68, 0x79, 0x3a, 0x74, + 0x72, 0x6f, 0x70, 0x68, 0x79, 0xd83e, 0xdd47, 0x3a, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x5f, 0x6d, 0x65, 0x64, 0x61, + 0x6c, 0x3a, 0x66, 0x69, 0x72, 0x73, 0x74, 0x6d, 0x65, 0x64, 0x61, 0x6c, + 0x70, 0x6c, 0x61, 0x63, 0x65, 0xd83e, 0xdd47, 0x3a, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x3a, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x70, 0x6c, 0x61, 0x63, 0x65, 0xd83e, 0xdd48, 0x3a, 0x73, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x5f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x5f, 0x6d, 0x65, + 0x64, 0x61, 0x6c, 0x3a, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x70, 0x6c, 0x61, + 0x63, 0x65, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0xd83e, 0xdd48, 0x3a, 0x73, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x5f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x3a, + 0x70, 0x6c, 0x61, 0x63, 0x65, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0xd83e, + 0xdd49, 0x3a, 0x74, 0x68, 0x69, 0x72, 0x64, 0x5f, 0x70, 0x6c, 0x61, 0x63, + 0x65, 0x5f, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x3a, 0x6d, 0x65, 0x64, 0x61, + 0x6c, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x74, 0x68, 0x69, 0x72, 0x64, 0xd83e, + 0xdd49, 0x3a, 0x74, 0x68, 0x69, 0x72, 0x64, 0x5f, 0x70, 0x6c, 0x61, 0x63, + 0x65, 0x3a, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x74, 0x68, 0x69, 0x72, 0x64, + 0xd83c, 0xdfc5, 0x3a, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x6d, 0x65, + 0x64, 0x61, 0x6c, 0x3a, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x73, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0xd83c, 0xdfc5, 0x3a, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x3a, + 0x6d, 0x65, 0x64, 0x61, 0x6c, 0xd83c, 0xdf96, 0x3a, 0x6d, 0x69, 0x6c, 0x69, + 0x74, 0x61, 0x72, 0x79, 0x5f, 0x6d, 0x65, 0x64, 0x61, 0x6c, 0x3a, 0x6d, + 0x65, 0x64, 0x61, 0x6c, 0x6d, 0x69, 0x6c, 0x69, 0x74, 0x61, 0x72, 0x79, + 0xd83c, 0xdff5, 0x3a, 0x72, 0x6f, 0x73, 0x65, 0x74, 0x74, 0x65, 0x3a, 0x72, + 0x6f, 0x73, 0x65, 0x74, 0x74, 0x65, 0xd83c, 0xdf97, 0x3a, 0x72, 0x65, 0x6d, + 0x69, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x72, 0x69, 0x62, 0x62, 0x6f, 0x6e, + 0x3a, 0x72, 0x65, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x72, 0x69, 0x62, + 0x62, 0x6f, 0x6e, 0xd83c, 0xdfab, 0x3a, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, + 0x3a, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0xd83c, 0xdf9f, 0x3a, 0x61, 0x64, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x63, 0x6b, + 0x65, 0x74, 0x73, 0x3a, 0x61, 0x64, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x73, 0xd83c, 0xdf9f, 0x3a, 0x74, + 0x69, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x3a, 0x74, 0x69, 0x63, 0x6b, 0x65, + 0x74, 0x73, 0xd83c, 0xdfaa, 0x3a, 0x63, 0x69, 0x72, 0x63, 0x75, 0x73, 0x5f, + 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x63, 0x69, 0x72, 0x63, 0x75, 0x73, 0x74, + 0x65, 0x6e, 0x74, 0xd83e, 0xdd39, 0x200d, 0x2640, 0xfe0f, 0x3a, 0x77, 0x6f, 0x6d, + 0x61, 0x6e, 0x5f, 0x6a, 0x75, 0x67, 0x67, 0x6c, 0x69, 0x6e, 0x67, 0x3a, + 0x6a, 0x75, 0x67, 0x67, 0x6c, 0x69, 0x6e, 0x67, 0x77, 0x6f, 0x6d, 0x61, + 0x6e, 0xd83e, 0xdd39, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6d, 0x61, 0x6e, 0x5f, 0x6a, + 0x75, 0x67, 0x67, 0x6c, 0x69, 0x6e, 0x67, 0x3a, 0x6a, 0x75, 0x67, 0x67, + 0x6c, 0x69, 0x6e, 0x67, 0x6d, 0x61, 0x6e, 0xd83e, 0xdd39, 0x200d, 0x2642, 0xfe0f, + 0x3a, 0x6a, 0x75, 0x67, 0x67, 0x6c, 0x65, 0x72, 0x3a, 0x6a, 0x75, 0x67, + 0x67, 0x6c, 0x65, 0x72, 0xd83e, 0xdd39, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x6a, 0x75, + 0x67, 0x67, 0x6c, 0x69, 0x6e, 0x67, 0x3a, 0x6a, 0x75, 0x67, 0x67, 0x6c, + 0x69, 0x6e, 0x67, 0xd83e, 0xdd39, 0x200d, 0x2642, 0xfe0f, 0x3a, 0x70, 0x65, 0x72, + 0x73, 0x6f, 0x6e, 0x5f, 0x6a, 0x75, 0x67, 0x67, 0x6c, 0x69, 0x6e, 0x67, + 0x3a, 0x6a, 0x75, 0x67, 0x67, 0x6c, 0x69, 0x6e, 0x67, 0x70, 0x65, 0x72, + 0x73, 0x6f, 0x6e, 0xd83c, 0xdfad, 0x3a, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, + 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x72, 0x74, 0x73, 0x3a, 0x61, 0x72, + 0x74, 0x73, 0x70, 0x65, 0x72, 0x66, 0x6f, 0x72, 0x6d, 0x69, 0x6e, 0x67, + 0xd83c, 0xdfa8, 0x3a, 0x61, 0x72, 0x74, 0x3a, 0x61, 0x72, 0x74, 0xd83c, 0xdfac, + 0x3a, 0x63, 0x6c, 0x61, 0x70, 0x70, 0x65, 0x72, 0x3a, 0x63, 0x6c, 0x61, + 0x70, 0x70, 0x65, 0x72, 0xd83c, 0xdfa4, 0x3a, 0x6d, 0x69, 0x63, 0x72, 0x6f, + 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x3a, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x70, + 0x68, 0x6f, 0x6e, 0x65, 0xd83c, 0xdfa7, 0x3a, 0x68, 0x65, 0x61, 0x64, 0x70, + 0x68, 0x6f, 0x6e, 0x65, 0x73, 0x3a, 0x68, 0x65, 0x61, 0x64, 0x70, 0x68, + 0x6f, 0x6e, 0x65, 0x73, 0xd83c, 0xdfbc, 0x3a, 0x6d, 0x75, 0x73, 0x69, 0x63, + 0x61, 0x6c, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x3a, 0x6d, 0x75, 0x73, + 0x69, 0x63, 0x61, 0x6c, 0x73, 0x63, 0x6f, 0x72, 0x65, 0xd83c, 0xdfb9, 0x3a, + 0x6d, 0x75, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x6b, 0x65, 0x79, 0x62, + 0x6f, 0x61, 0x72, 0x64, 0x3a, 0x6b, 0x65, 0x79, 0x62, 0x6f, 0x61, 0x72, + 0x64, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x61, 0x6c, 0xd83e, 0xdd41, 0x3a, 0x64, + 0x72, 0x75, 0x6d, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x64, 0x72, 0x75, + 0x6d, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x3a, 0x64, 0x72, 0x75, 0x6d, + 0x64, 0x72, 0x75, 0x6d, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x73, 0x77, 0x69, + 0x74, 0x68, 0xd83e, 0xdd41, 0x3a, 0x64, 0x72, 0x75, 0x6d, 0x3a, 0x64, 0x72, + 0x75, 0x6d, 0xd83c, 0xdfb7, 0x3a, 0x73, 0x61, 0x78, 0x6f, 0x70, 0x68, 0x6f, + 0x6e, 0x65, 0x3a, 0x73, 0x61, 0x78, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, + 0xd83c, 0xdfba, 0x3a, 0x74, 0x72, 0x75, 0x6d, 0x70, 0x65, 0x74, 0x3a, 0x74, + 0x72, 0x75, 0x6d, 0x70, 0x65, 0x74, 0xd83c, 0xdfb8, 0x3a, 0x67, 0x75, 0x69, + 0x74, 0x61, 0x72, 0x3a, 0x67, 0x75, 0x69, 0x74, 0x61, 0x72, 0xd83c, 0xdfbb, + 0x3a, 0x76, 0x69, 0x6f, 0x6c, 0x69, 0x6e, 0x3a, 0x76, 0x69, 0x6f, 0x6c, + 0x69, 0x6e, 0xd83c, 0xdfb2, 0x3a, 0x67, 0x61, 0x6d, 0x65, 0x5f, 0x64, 0x69, + 0x65, 0x3a, 0x64, 0x69, 0x65, 0x67, 0x61, 0x6d, 0x65, 0xd83c, 0xdfaf, 0x3a, + 0x64, 0x61, 0x72, 0x74, 0x3a, 0x64, 0x61, 0x72, 0x74, 0xd83c, 0xdfb3, 0x3a, + 0x62, 0x6f, 0x77, 0x6c, 0x69, 0x6e, 0x67, 0x3a, 0x62, 0x6f, 0x77, 0x6c, + 0x69, 0x6e, 0x67, 0xd83c, 0xdfae, 0x3a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x5f, + 0x67, 0x61, 0x6d, 0x65, 0x3a, 0x67, 0x61, 0x6d, 0x65, 0x76, 0x69, 0x64, + 0x65, 0x6f, 0xd83c, 0xdfb0, 0x3a, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x6d, 0x61, + 0x63, 0x68, 0x69, 0x6e, 0x65, 0x3a, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, + 0x65, 0x73, 0x6c, 0x6f, 0x74, 0xd83d, 0xde97, 0x3a, 0x72, 0x65, 0x64, 0x5f, + 0x63, 0x61, 0x72, 0x3a, 0x63, 0x61, 0x72, 0x72, 0x65, 0x64, 0xd83d, 0xde95, + 0x3a, 0x74, 0x61, 0x78, 0x69, 0x3a, 0x74, 0x61, 0x78, 0x69, 0xd83d, 0xde99, + 0x3a, 0x62, 0x6c, 0x75, 0x65, 0x5f, 0x63, 0x61, 0x72, 0x3a, 0x62, 0x6c, + 0x75, 0x65, 0x63, 0x61, 0x72, 0xd83d, 0xde8c, 0x3a, 0x62, 0x75, 0x73, 0x3a, + 0x62, 0x75, 0x73, 0xd83d, 0xde8e, 0x3a, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, + 0x79, 0x62, 0x75, 0x73, 0x3a, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x79, + 0x62, 0x75, 0x73, 0xd83c, 0xdfce, 0x3a, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, + 0x5f, 0x63, 0x61, 0x72, 0x3a, 0x63, 0x61, 0x72, 0x72, 0x61, 0x63, 0x69, + 0x6e, 0x67, 0xd83c, 0xdfce, 0x3a, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x61, + 0x72, 0x3a, 0x63, 0x61, 0x72, 0x72, 0x61, 0x63, 0x65, 0xd83d, 0xde93, 0x3a, + 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x61, 0x72, 0x3a, 0x63, + 0x61, 0x72, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0xd83d, 0xde91, 0x3a, 0x61, + 0x6d, 0x62, 0x75, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x3a, 0x61, 0x6d, 0x62, + 0x75, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0xd83d, 0xde92, 0x3a, 0x66, 0x69, 0x72, + 0x65, 0x5f, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x3a, 0x65, 0x6e, 0x67, + 0x69, 0x6e, 0x65, 0x66, 0x69, 0x72, 0x65, 0xd83d, 0xde90, 0x3a, 0x6d, 0x69, + 0x6e, 0x69, 0x62, 0x75, 0x73, 0x3a, 0x6d, 0x69, 0x6e, 0x69, 0x62, 0x75, + 0x73, 0xd83d, 0xde9a, 0x3a, 0x74, 0x72, 0x75, 0x63, 0x6b, 0x3a, 0x74, 0x72, + 0x75, 0x63, 0x6b, 0xd83d, 0xde9b, 0x3a, 0x61, 0x72, 0x74, 0x69, 0x63, 0x75, + 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x72, 0x72, 0x79, 0x3a, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x6c, + 0x6f, 0x72, 0x72, 0x79, 0xd83d, 0xde9c, 0x3a, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x6f, 0x72, 0x3a, 0x74, 0x72, 0x61, 0x63, 0x74, 0x6f, 0x72, 0xd83d, 0xdef4, + 0x3a, 0x73, 0x63, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x3a, 0x73, 0x63, 0x6f, + 0x6f, 0x74, 0x65, 0x72, 0xd83d, 0xdeb2, 0x3a, 0x62, 0x69, 0x6b, 0x65, 0x3a, + 0x62, 0x69, 0x6b, 0x65, 0xd83d, 0xdef5, 0x3a, 0x6d, 0x6f, 0x74, 0x6f, 0x72, + 0x62, 0x69, 0x6b, 0x65, 0x3a, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x62, 0x69, + 0x6b, 0x65, 0xd83d, 0xdef5, 0x3a, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x5f, 0x73, + 0x63, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x3a, 0x6d, 0x6f, 0x74, 0x6f, 0x72, + 0x73, 0x63, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0xd83c, 0xdfcd, 0x3a, 0x72, 0x61, + 0x63, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x63, 0x79, + 0x63, 0x6c, 0x65, 0x3a, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x63, 0x79, 0x63, + 0x6c, 0x65, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0xd83c, 0xdfcd, 0x3a, 0x6d, + 0x6f, 0x74, 0x6f, 0x72, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x3a, 0x6d, 0x6f, + 0x74, 0x6f, 0x72, 0x63, 0x79, 0x63, 0x6c, 0x65, 0xd83d, 0xdea8, 0x3a, 0x72, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x67, 0x68, + 0x74, 0x3a, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x72, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6e, 0x67, 0xd83d, 0xde94, 0x3a, 0x6f, 0x6e, 0x63, 0x6f, 0x6d, 0x69, + 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x61, + 0x72, 0x3a, 0x63, 0x61, 0x72, 0x6f, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, + 0x67, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x65, 0xd83d, 0xde8d, 0x3a, 0x6f, 0x6e, + 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x73, 0x3a, 0x62, + 0x75, 0x73, 0x6f, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0xd83d, 0xde98, + 0x3a, 0x6f, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x75, + 0x74, 0x6f, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x3a, 0x61, 0x75, 0x74, + 0x6f, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x6f, 0x6e, 0x63, 0x6f, 0x6d, + 0x69, 0x6e, 0x67, 0xd83d, 0xde96, 0x3a, 0x6f, 0x6e, 0x63, 0x6f, 0x6d, 0x69, + 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x78, 0x69, 0x3a, 0x6f, 0x6e, 0x63, 0x6f, + 0x6d, 0x69, 0x6e, 0x67, 0x74, 0x61, 0x78, 0x69, 0xd83d, 0xdea1, 0x3a, 0x61, + 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x74, 0x72, 0x61, 0x6d, 0x77, 0x61, + 0x79, 0x3a, 0x61, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x74, 0x72, 0x61, 0x6d, + 0x77, 0x61, 0x79, 0xd83d, 0xdea0, 0x3a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x5f, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x77, 0x61, 0x79, 0x3a, + 0x63, 0x61, 0x62, 0x6c, 0x65, 0x77, 0x61, 0x79, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0xd83d, 0xde9f, 0x3a, 0x73, 0x75, 0x73, 0x70, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x69, 0x6c, 0x77, 0x61, + 0x79, 0x3a, 0x72, 0x61, 0x69, 0x6c, 0x77, 0x61, 0x79, 0x73, 0x75, 0x73, + 0x70, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0xd83d, 0xde83, 0x3a, 0x72, 0x61, + 0x69, 0x6c, 0x77, 0x61, 0x79, 0x5f, 0x63, 0x61, 0x72, 0x3a, 0x63, 0x61, + 0x72, 0x72, 0x61, 0x69, 0x6c, 0x77, 0x61, 0x79, 0xd83d, 0xde8b, 0x3a, 0x74, + 0x72, 0x61, 0x69, 0x6e, 0x3a, 0x74, 0x72, 0x61, 0x69, 0x6e, 0xd83d, 0xde9e, + 0x3a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x5f, 0x72, 0x61, + 0x69, 0x6c, 0x77, 0x61, 0x79, 0x3a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x72, 0x61, 0x69, 0x6c, 0x77, 0x61, 0x79, 0xd83d, 0xde9d, 0x3a, + 0x6d, 0x6f, 0x6e, 0x6f, 0x72, 0x61, 0x69, 0x6c, 0x3a, 0x6d, 0x6f, 0x6e, + 0x6f, 0x72, 0x61, 0x69, 0x6c, 0xd83d, 0xde84, 0x3a, 0x62, 0x75, 0x6c, 0x6c, + 0x65, 0x74, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x5f, 0x73, 0x69, 0x64, 0x65, + 0x3a, 0x62, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x74, 0x72, 0x61, 0x69, 0x6e, + 0x73, 0x69, 0x64, 0x65, 0xd83d, 0xde85, 0x3a, 0x62, 0x75, 0x6c, 0x6c, 0x65, + 0x74, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x5f, 0x66, 0x72, 0x6f, 0x6e, 0x74, + 0x3a, 0x62, 0x75, 0x6c, 0x6c, 0x65, 0x74, 0x74, 0x72, 0x61, 0x69, 0x6e, + 0x66, 0x72, 0x6f, 0x6e, 0x74, 0xd83d, 0xde88, 0x3a, 0x6c, 0x69, 0x67, 0x68, + 0x74, 0x5f, 0x72, 0x61, 0x69, 0x6c, 0x3a, 0x6c, 0x69, 0x67, 0x68, 0x74, + 0x72, 0x61, 0x69, 0x6c, 0xd83d, 0xde82, 0x3a, 0x73, 0x74, 0x65, 0x61, 0x6d, + 0x5f, 0x6c, 0x6f, 0x63, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x76, 0x65, 0x3a, + 0x6c, 0x6f, 0x63, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x76, 0x65, 0x73, 0x74, + 0x65, 0x61, 0x6d, 0xd83d, 0xde86, 0x3a, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x32, + 0x3a, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x32, 0xd83d, 0xde87, 0x3a, 0x6d, 0x65, + 0x74, 0x72, 0x6f, 0x3a, 0x6d, 0x65, 0x74, 0x72, 0x6f, 0xd83d, 0xde8a, 0x3a, + 0x74, 0x72, 0x61, 0x6d, 0x3a, 0x74, 0x72, 0x61, 0x6d, 0xd83d, 0xde89, 0x3a, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x73, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2708, 0xfe0f, 0x3a, 0x61, 0x69, 0x72, 0x70, 0x6c, 0x61, + 0x6e, 0x65, 0x3a, 0x61, 0x69, 0x72, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0xd83d, + 0xdeeb, 0x3a, 0x61, 0x69, 0x72, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x64, + 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x3a, 0x61, 0x69, 0x72, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, + 0x72, 0x65, 0xd83d, 0xdeec, 0x3a, 0x61, 0x69, 0x72, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x5f, 0x61, 0x72, 0x72, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x3a, 0x61, + 0x69, 0x72, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x61, 0x72, 0x72, 0x69, 0x76, + 0x69, 0x6e, 0x67, 0xd83d, 0xdee9, 0x3a, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x5f, + 0x61, 0x69, 0x72, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x3a, 0x61, 0x69, 0x72, + 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0xd83d, 0xdee9, + 0x3a, 0x61, 0x69, 0x72, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x73, 0x6d, + 0x61, 0x6c, 0x6c, 0x3a, 0x61, 0x69, 0x72, 0x70, 0x6c, 0x61, 0x6e, 0x65, + 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0xd83d, 0xdcba, 0x3a, 0x73, 0x65, 0x61, 0x74, + 0x3a, 0x73, 0x65, 0x61, 0x74, 0xd83d, 0xdef0, 0x3a, 0x73, 0x61, 0x74, 0x65, + 0x6c, 0x6c, 0x69, 0x74, 0x65, 0x5f, 0x6f, 0x72, 0x62, 0x69, 0x74, 0x61, + 0x6c, 0x3a, 0x6f, 0x72, 0x62, 0x69, 0x74, 0x61, 0x6c, 0x73, 0x61, 0x74, + 0x65, 0x6c, 0x6c, 0x69, 0x74, 0x65, 0xd83d, 0xde80, 0x3a, 0x72, 0x6f, 0x63, + 0x6b, 0x65, 0x74, 0x3a, 0x72, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0xd83d, 0xdef8, + 0x3a, 0x66, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x61, 0x75, 0x63, + 0x65, 0x72, 0x3a, 0x66, 0x6c, 0x79, 0x69, 0x6e, 0x67, 0x73, 0x61, 0x75, + 0x63, 0x65, 0x72, 0xd83d, 0xde81, 0x3a, 0x68, 0x65, 0x6c, 0x69, 0x63, 0x6f, + 0x70, 0x74, 0x65, 0x72, 0x3a, 0x68, 0x65, 0x6c, 0x69, 0x63, 0x6f, 0x70, + 0x74, 0x65, 0x72, 0xd83d, 0xdef6, 0x3a, 0x6b, 0x61, 0x79, 0x61, 0x6b, 0x3a, + 0x6b, 0x61, 0x79, 0x61, 0x6b, 0xd83d, 0xdef6, 0x3a, 0x63, 0x61, 0x6e, 0x6f, + 0x65, 0x3a, 0x63, 0x61, 0x6e, 0x6f, 0x65, 0x26f5, 0xfe0f, 0x3a, 0x73, 0x61, + 0x69, 0x6c, 0x62, 0x6f, 0x61, 0x74, 0x3a, 0x73, 0x61, 0x69, 0x6c, 0x62, + 0x6f, 0x61, 0x74, 0xd83d, 0xdea4, 0x3a, 0x73, 0x70, 0x65, 0x65, 0x64, 0x62, + 0x6f, 0x61, 0x74, 0x3a, 0x73, 0x70, 0x65, 0x65, 0x64, 0x62, 0x6f, 0x61, + 0x74, 0xd83d, 0xdee5, 0x3a, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x62, 0x6f, 0x61, + 0x74, 0x3a, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x62, 0x6f, 0x61, 0x74, 0xd83d, + 0xdef3, 0x3a, 0x70, 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x5f, + 0x73, 0x68, 0x69, 0x70, 0x3a, 0x70, 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, + 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0xd83d, 0xdef3, 0x3a, 0x63, 0x72, 0x75, + 0x69, 0x73, 0x65, 0x5f, 0x73, 0x68, 0x69, 0x70, 0x3a, 0x63, 0x72, 0x75, + 0x69, 0x73, 0x65, 0x73, 0x68, 0x69, 0x70, 0x26f4, 0x3a, 0x66, 0x65, 0x72, + 0x72, 0x79, 0x3a, 0x66, 0x65, 0x72, 0x72, 0x79, 0xd83d, 0xdea2, 0x3a, 0x73, + 0x68, 0x69, 0x70, 0x3a, 0x73, 0x68, 0x69, 0x70, 0x2693, 0xfe0f, 0x3a, 0x61, + 0x6e, 0x63, 0x68, 0x6f, 0x72, 0x3a, 0x61, 0x6e, 0x63, 0x68, 0x6f, 0x72, + 0x26fd, 0xfe0f, 0x3a, 0x66, 0x75, 0x65, 0x6c, 0x70, 0x75, 0x6d, 0x70, 0x3a, + 0x66, 0x75, 0x65, 0x6c, 0x70, 0x75, 0x6d, 0x70, 0xd83d, 0xdea7, 0x3a, 0x63, + 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x3a, + 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0xd83d, 0xdea6, 0x3a, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x5f, + 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x6c, 0x69, 0x67, 0x68, + 0x74, 0x3a, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x74, 0x72, 0x61, 0x66, 0x66, + 0x69, 0x63, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0xd83d, 0xdea5, + 0x3a, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x6c, 0x69, 0x67, + 0x68, 0x74, 0x3a, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x74, 0x72, 0x61, 0x66, + 0x66, 0x69, 0x63, 0xd83d, 0xde8f, 0x3a, 0x62, 0x75, 0x73, 0x73, 0x74, 0x6f, + 0x70, 0x3a, 0x62, 0x75, 0x73, 0x73, 0x74, 0x6f, 0x70, 0xd83d, 0xddfa, 0x3a, + 0x77, 0x6f, 0x72, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x70, 0x3a, 0x6d, 0x61, + 0x70, 0x77, 0x6f, 0x72, 0x6c, 0x64, 0xd83d, 0xddfa, 0x3a, 0x6d, 0x61, 0x70, + 0x3a, 0x6d, 0x61, 0x70, 0xd83d, 0xddff, 0x3a, 0x6d, 0x6f, 0x79, 0x61, 0x69, + 0x3a, 0x6d, 0x6f, 0x79, 0x61, 0x69, 0xd83d, 0xddfd, 0x3a, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x65, 0x5f, 0x6f, 0x66, 0x5f, 0x6c, 0x69, 0x62, 0x65, 0x72, + 0x74, 0x79, 0x3a, 0x6c, 0x69, 0x62, 0x65, 0x72, 0x74, 0x79, 0x6f, 0x66, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x65, 0xd83d, 0xddfc, 0x3a, 0x74, 0x6f, 0x6b, + 0x79, 0x6f, 0x5f, 0x74, 0x6f, 0x77, 0x65, 0x72, 0x3a, 0x74, 0x6f, 0x6b, + 0x79, 0x6f, 0x74, 0x6f, 0x77, 0x65, 0x72, 0xd83c, 0xdff0, 0x3a, 0x65, 0x75, + 0x72, 0x6f, 0x70, 0x65, 0x61, 0x6e, 0x5f, 0x63, 0x61, 0x73, 0x74, 0x6c, + 0x65, 0x3a, 0x63, 0x61, 0x73, 0x74, 0x6c, 0x65, 0x65, 0x75, 0x72, 0x6f, + 0x70, 0x65, 0x61, 0x6e, 0xd83c, 0xdfef, 0x3a, 0x6a, 0x61, 0x70, 0x61, 0x6e, + 0x65, 0x73, 0x65, 0x5f, 0x63, 0x61, 0x73, 0x74, 0x6c, 0x65, 0x3a, 0x63, + 0x61, 0x73, 0x74, 0x6c, 0x65, 0x6a, 0x61, 0x70, 0x61, 0x6e, 0x65, 0x73, + 0x65, 0xd83c, 0xdfdf, 0x3a, 0x73, 0x74, 0x61, 0x64, 0x69, 0x75, 0x6d, 0x3a, + 0x73, 0x74, 0x61, 0x64, 0x69, 0x75, 0x6d, 0xd83c, 0xdfa1, 0x3a, 0x66, 0x65, + 0x72, 0x72, 0x69, 0x73, 0x5f, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x3a, 0x66, + 0x65, 0x72, 0x72, 0x69, 0x73, 0x77, 0x68, 0x65, 0x65, 0x6c, 0xd83c, 0xdfa2, + 0x3a, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x61, 0x73, + 0x74, 0x65, 0x72, 0x3a, 0x63, 0x6f, 0x61, 0x73, 0x74, 0x65, 0x72, 0x72, + 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0xd83c, 0xdfa0, 0x3a, 0x63, 0x61, 0x72, 0x6f, + 0x75, 0x73, 0x65, 0x6c, 0x5f, 0x68, 0x6f, 0x72, 0x73, 0x65, 0x3a, 0x63, + 0x61, 0x72, 0x6f, 0x75, 0x73, 0x65, 0x6c, 0x68, 0x6f, 0x72, 0x73, 0x65, + 0x26f2, 0xfe0f, 0x3a, 0x66, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3a, + 0x66, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x26f1, 0x3a, 0x75, 0x6d, + 0x62, 0x72, 0x65, 0x6c, 0x6c, 0x61, 0x5f, 0x6f, 0x6e, 0x5f, 0x67, 0x72, + 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x6f, + 0x6e, 0x75, 0x6d, 0x62, 0x72, 0x65, 0x6c, 0x6c, 0x61, 0x26f1, 0x3a, 0x62, + 0x65, 0x61, 0x63, 0x68, 0x5f, 0x75, 0x6d, 0x62, 0x72, 0x65, 0x6c, 0x6c, + 0x61, 0x3a, 0x62, 0x65, 0x61, 0x63, 0x68, 0x75, 0x6d, 0x62, 0x72, 0x65, + 0x6c, 0x6c, 0x61, 0xd83c, 0xdfd6, 0x3a, 0x62, 0x65, 0x61, 0x63, 0x68, 0x5f, + 0x77, 0x69, 0x74, 0x68, 0x5f, 0x75, 0x6d, 0x62, 0x72, 0x65, 0x6c, 0x6c, + 0x61, 0x3a, 0x62, 0x65, 0x61, 0x63, 0x68, 0x75, 0x6d, 0x62, 0x72, 0x65, + 0x6c, 0x6c, 0x61, 0x77, 0x69, 0x74, 0x68, 0xd83c, 0xdfd6, 0x3a, 0x62, 0x65, + 0x61, 0x63, 0x68, 0x3a, 0x62, 0x65, 0x61, 0x63, 0x68, 0xd83c, 0xdfdd, 0x3a, + 0x64, 0x65, 0x73, 0x65, 0x72, 0x74, 0x5f, 0x69, 0x73, 0x6c, 0x61, 0x6e, + 0x64, 0x3a, 0x64, 0x65, 0x73, 0x65, 0x72, 0x74, 0x69, 0x73, 0x6c, 0x61, + 0x6e, 0x64, 0xd83c, 0xdfdd, 0x3a, 0x69, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0x3a, + 0x69, 0x73, 0x6c, 0x61, 0x6e, 0x64, 0xd83c, 0xdfdc, 0x3a, 0x64, 0x65, 0x73, + 0x65, 0x72, 0x74, 0x3a, 0x64, 0x65, 0x73, 0x65, 0x72, 0x74, 0xd83c, 0xdf0b, + 0x3a, 0x76, 0x6f, 0x6c, 0x63, 0x61, 0x6e, 0x6f, 0x3a, 0x76, 0x6f, 0x6c, + 0x63, 0x61, 0x6e, 0x6f, 0x26f0, 0x3a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x3a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0xd83c, + 0xdfd4, 0x3a, 0x73, 0x6e, 0x6f, 0x77, 0x5f, 0x63, 0x61, 0x70, 0x70, 0x65, + 0x64, 0x5f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3a, 0x63, + 0x61, 0x70, 0x70, 0x65, 0x64, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x73, 0x6e, 0x6f, 0x77, 0xd83c, 0xdfd4, 0x3a, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x5f, 0x73, 0x6e, 0x6f, 0x77, 0x3a, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x6e, 0x6f, 0x77, 0xd83d, 0xddfb, + 0x3a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x66, 0x75, 0x6a, 0x69, 0x3a, + 0x66, 0x75, 0x6a, 0x69, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0xd83c, 0xdfd5, 0x3a, + 0x63, 0x61, 0x6d, 0x70, 0x69, 0x6e, 0x67, 0x3a, 0x63, 0x61, 0x6d, 0x70, + 0x69, 0x6e, 0x67, 0x26fa, 0xfe0f, 0x3a, 0x74, 0x65, 0x6e, 0x74, 0x3a, 0x74, + 0x65, 0x6e, 0x74, 0xd83c, 0xdfe0, 0x3a, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x3a, + 0x68, 0x6f, 0x75, 0x73, 0x65, 0xd83c, 0xdfe1, 0x3a, 0x68, 0x6f, 0x75, 0x73, + 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x67, 0x61, 0x72, 0x64, 0x65, + 0x6e, 0x3a, 0x67, 0x61, 0x72, 0x64, 0x65, 0x6e, 0x68, 0x6f, 0x75, 0x73, + 0x65, 0x77, 0x69, 0x74, 0x68, 0xd83c, 0xdfd8, 0x3a, 0x68, 0x6f, 0x75, 0x73, + 0x65, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x3a, + 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x73, 0x68, 0x6f, 0x75, + 0x73, 0x65, 0xd83c, 0xdfd8, 0x3a, 0x68, 0x6f, 0x6d, 0x65, 0x73, 0x3a, 0x68, + 0x6f, 0x6d, 0x65, 0x73, 0xd83c, 0xdfda, 0x3a, 0x64, 0x65, 0x72, 0x65, 0x6c, + 0x69, 0x63, 0x74, 0x5f, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x5f, 0x62, 0x75, + 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x62, 0x75, 0x69, 0x6c, 0x64, + 0x69, 0x6e, 0x67, 0x64, 0x65, 0x72, 0x65, 0x6c, 0x69, 0x63, 0x74, 0x68, + 0x6f, 0x75, 0x73, 0x65, 0xd83c, 0xdfda, 0x3a, 0x68, 0x6f, 0x75, 0x73, 0x65, + 0x5f, 0x61, 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x65, 0x64, 0x3a, 0x61, + 0x62, 0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x65, 0x64, 0x68, 0x6f, 0x75, 0x73, + 0x65, 0xd83c, 0xdfd7, 0x3a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, + 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x3a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x63, 0x6f, + 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0xd83c, 0xdfd7, + 0x3a, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x73, 0x69, 0x74, 0x65, 0x3a, 0x63, 0x6f, 0x6e, 0x73, 0x74, + 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x69, 0x74, 0x65, 0xd83c, + 0xdfed, 0x3a, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x3a, 0x66, 0x61, + 0x63, 0x74, 0x6f, 0x72, 0x79, 0xd83c, 0xdfe2, 0x3a, 0x6f, 0x66, 0x66, 0x69, + 0x63, 0x65, 0x3a, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0xd83c, 0xdfec, 0x3a, + 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, + 0x74, 0x6f, 0x72, 0x65, 0x3a, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x74, 0x6f, 0x72, 0x65, 0xd83c, 0xdfe3, 0x3a, 0x70, + 0x6f, 0x73, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x3a, 0x6f, + 0x66, 0x66, 0x69, 0x63, 0x65, 0x70, 0x6f, 0x73, 0x74, 0xd83c, 0xdfe4, 0x3a, + 0x65, 0x75, 0x72, 0x6f, 0x70, 0x65, 0x61, 0x6e, 0x5f, 0x70, 0x6f, 0x73, + 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x3a, 0x65, 0x75, 0x72, + 0x6f, 0x70, 0x65, 0x61, 0x6e, 0x6f, 0x66, 0x66, 0x69, 0x63, 0x65, 0x70, + 0x6f, 0x73, 0x74, 0xd83c, 0xdfe5, 0x3a, 0x68, 0x6f, 0x73, 0x70, 0x69, 0x74, + 0x61, 0x6c, 0x3a, 0x68, 0x6f, 0x73, 0x70, 0x69, 0x74, 0x61, 0x6c, 0xd83c, + 0xdfe6, 0x3a, 0x62, 0x61, 0x6e, 0x6b, 0x3a, 0x62, 0x61, 0x6e, 0x6b, 0xd83c, + 0xdfe8, 0x3a, 0x68, 0x6f, 0x74, 0x65, 0x6c, 0x3a, 0x68, 0x6f, 0x74, 0x65, + 0x6c, 0xd83c, 0xdfea, 0x3a, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x6e, 0x69, 0x65, + 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x3a, 0x63, 0x6f, + 0x6e, 0x76, 0x65, 0x6e, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0xd83c, 0xdfeb, 0x3a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x3a, + 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0xd83c, 0xdfe9, 0x3a, 0x6c, 0x6f, 0x76, + 0x65, 0x5f, 0x68, 0x6f, 0x74, 0x65, 0x6c, 0x3a, 0x68, 0x6f, 0x74, 0x65, + 0x6c, 0x6c, 0x6f, 0x76, 0x65, 0xd83d, 0xdc92, 0x3a, 0x77, 0x65, 0x64, 0x64, + 0x69, 0x6e, 0x67, 0x3a, 0x77, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0xd83c, + 0xdfdb, 0x3a, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x5f, + 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x3a, 0x62, 0x75, 0x69, + 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x63, + 0x61, 0x6c, 0x26ea, 0xfe0f, 0x3a, 0x63, 0x68, 0x75, 0x72, 0x63, 0x68, 0x3a, + 0x63, 0x68, 0x75, 0x72, 0x63, 0x68, 0xd83d, 0xdd4c, 0x3a, 0x6d, 0x6f, 0x73, + 0x71, 0x75, 0x65, 0x3a, 0x6d, 0x6f, 0x73, 0x71, 0x75, 0x65, 0xd83d, 0xdd4d, + 0x3a, 0x73, 0x79, 0x6e, 0x61, 0x67, 0x6f, 0x67, 0x75, 0x65, 0x3a, 0x73, + 0x79, 0x6e, 0x61, 0x67, 0x6f, 0x67, 0x75, 0x65, 0xd83d, 0xdd4b, 0x3a, 0x6b, + 0x61, 0x61, 0x62, 0x61, 0x3a, 0x6b, 0x61, 0x61, 0x62, 0x61, 0x26e9, 0x3a, + 0x73, 0x68, 0x69, 0x6e, 0x74, 0x6f, 0x5f, 0x73, 0x68, 0x72, 0x69, 0x6e, + 0x65, 0x3a, 0x73, 0x68, 0x69, 0x6e, 0x74, 0x6f, 0x73, 0x68, 0x72, 0x69, + 0x6e, 0x65, 0xd83d, 0xdee4, 0x3a, 0x72, 0x61, 0x69, 0x6c, 0x72, 0x6f, 0x61, + 0x64, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x3a, 0x72, 0x61, 0x69, 0x6c, + 0x72, 0x6f, 0x61, 0x64, 0x74, 0x72, 0x61, 0x63, 0x6b, 0xd83d, 0xdee4, 0x3a, + 0x72, 0x61, 0x69, 0x6c, 0x77, 0x61, 0x79, 0x5f, 0x74, 0x72, 0x61, 0x63, + 0x6b, 0x3a, 0x72, 0x61, 0x69, 0x6c, 0x77, 0x61, 0x79, 0x74, 0x72, 0x61, + 0x63, 0x6b, 0xd83d, 0xdee3, 0x3a, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x77, 0x61, + 0x79, 0x3a, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x77, 0x61, 0x79, 0xd83d, 0xddfe, + 0x3a, 0x6a, 0x61, 0x70, 0x61, 0x6e, 0x3a, 0x6a, 0x61, 0x70, 0x61, 0x6e, + 0xd83c, 0xdf91, 0x3a, 0x72, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x63, 0x65, 0x6e, + 0x65, 0x3a, 0x72, 0x69, 0x63, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x65, 0xd83c, + 0xdfde, 0x3a, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, + 0x61, 0x72, 0x6b, 0x3a, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, + 0x70, 0x61, 0x72, 0x6b, 0xd83c, 0xdfde, 0x3a, 0x70, 0x61, 0x72, 0x6b, 0x3a, + 0x70, 0x61, 0x72, 0x6b, 0xd83c, 0xdf05, 0x3a, 0x73, 0x75, 0x6e, 0x72, 0x69, + 0x73, 0x65, 0x3a, 0x73, 0x75, 0x6e, 0x72, 0x69, 0x73, 0x65, 0xd83c, 0xdf04, + 0x3a, 0x73, 0x75, 0x6e, 0x72, 0x69, 0x73, 0x65, 0x5f, 0x6f, 0x76, 0x65, + 0x72, 0x5f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x3a, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x73, 0x6f, 0x76, 0x65, + 0x72, 0x73, 0x75, 0x6e, 0x72, 0x69, 0x73, 0x65, 0xd83c, 0xdf20, 0x3a, 0x73, + 0x74, 0x61, 0x72, 0x73, 0x3a, 0x73, 0x74, 0x61, 0x72, 0x73, 0xd83c, 0xdf87, + 0x3a, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x6c, 0x65, 0x72, 0x3a, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x6c, 0x65, 0x72, 0xd83c, 0xdf86, 0x3a, 0x66, 0x69, 0x72, + 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x3a, 0x66, 0x69, 0x72, 0x65, 0x77, + 0x6f, 0x72, 0x6b, 0x73, 0xd83c, 0xdf07, 0x3a, 0x63, 0x69, 0x74, 0x79, 0x5f, + 0x73, 0x75, 0x6e, 0x72, 0x69, 0x73, 0x65, 0x3a, 0x63, 0x69, 0x74, 0x79, + 0x73, 0x75, 0x6e, 0x72, 0x69, 0x73, 0x65, 0xd83c, 0xdf07, 0x3a, 0x63, 0x69, + 0x74, 0x79, 0x5f, 0x73, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x3a, 0x63, 0x69, + 0x74, 0x79, 0x73, 0x75, 0x6e, 0x73, 0x65, 0x74, 0xd83c, 0xdf06, 0x3a, 0x63, + 0x69, 0x74, 0x79, 0x5f, 0x64, 0x75, 0x73, 0x6b, 0x3a, 0x63, 0x69, 0x74, + 0x79, 0x64, 0x75, 0x73, 0x6b, 0xd83c, 0xdfd9, 0x3a, 0x63, 0x69, 0x74, 0x79, + 0x73, 0x63, 0x61, 0x70, 0x65, 0x3a, 0x63, 0x69, 0x74, 0x79, 0x73, 0x63, + 0x61, 0x70, 0x65, 0xd83c, 0xdf03, 0x3a, 0x6e, 0x69, 0x67, 0x68, 0x74, 0x5f, + 0x77, 0x69, 0x74, 0x68, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x73, 0x3a, 0x6e, + 0x69, 0x67, 0x68, 0x74, 0x73, 0x74, 0x61, 0x72, 0x73, 0x77, 0x69, 0x74, + 0x68, 0xd83c, 0xdf0c, 0x3a, 0x6d, 0x69, 0x6c, 0x6b, 0x79, 0x5f, 0x77, 0x61, + 0x79, 0x3a, 0x6d, 0x69, 0x6c, 0x6b, 0x79, 0x77, 0x61, 0x79, 0xd83c, 0xdf09, + 0x3a, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x5f, 0x61, 0x74, 0x5f, 0x6e, + 0x69, 0x67, 0x68, 0x74, 0x3a, 0x61, 0x74, 0x62, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x6e, 0x69, 0x67, 0x68, 0x74, 0xd83c, 0xdf01, 0x3a, 0x66, 0x6f, 0x67, + 0x67, 0x79, 0x3a, 0x66, 0x6f, 0x67, 0x67, 0x79, 0x231a, 0xfe0f, 0x3a, 0x77, + 0x61, 0x74, 0x63, 0x68, 0x3a, 0x77, 0x61, 0x74, 0x63, 0x68, 0xd83d, 0xdcf1, + 0x3a, 0x69, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x3a, 0x69, 0x70, 0x68, 0x6f, + 0x6e, 0x65, 0xd83d, 0xdcf2, 0x3a, 0x63, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, + 0x3a, 0x63, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0xd83d, 0xdcbb, 0x3a, 0x63, + 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x72, 0x3a, 0x63, 0x6f, 0x6d, 0x70, + 0x75, 0x74, 0x65, 0x72, 0x2328, 0xfe0f, 0x3a, 0x6b, 0x65, 0x79, 0x62, 0x6f, + 0x61, 0x72, 0x64, 0x3a, 0x6b, 0x65, 0x79, 0x62, 0x6f, 0x61, 0x72, 0x64, + 0xd83d, 0xdda5, 0x3a, 0x64, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x5f, 0x63, + 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x72, 0x3a, 0x63, 0x6f, 0x6d, 0x70, + 0x75, 0x74, 0x65, 0x72, 0x64, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0xd83d, + 0xdda5, 0x3a, 0x64, 0x65, 0x73, 0x6b, 0x74, 0x6f, 0x70, 0x3a, 0x64, 0x65, + 0x73, 0x6b, 0x74, 0x6f, 0x70, 0xd83d, 0xdda8, 0x3a, 0x70, 0x72, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x3a, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x65, 0x72, 0xd83d, + 0xddb1, 0x3a, 0x74, 0x68, 0x72, 0x65, 0x65, 0x5f, 0x62, 0x75, 0x74, 0x74, + 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x3a, 0x62, 0x75, 0x74, + 0x74, 0x6f, 0x6e, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x74, 0x68, 0x72, 0x65, + 0x65, 0xd83d, 0xddb1, 0x3a, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x68, + 0x72, 0x65, 0x65, 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3a, 0x62, + 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x6d, 0x6f, 0x75, 0x73, 0x65, 0x74, 0x68, + 0x72, 0x65, 0x65, 0xd83d, 0xddb2, 0x3a, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x62, + 0x61, 0x6c, 0x6c, 0x3a, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x62, 0x61, 0x6c, + 0x6c, 0xd83d, 0xdd79, 0x3a, 0x6a, 0x6f, 0x79, 0x73, 0x74, 0x69, 0x63, 0x6b, + 0x3a, 0x6a, 0x6f, 0x79, 0x73, 0x74, 0x69, 0x63, 0x6b, 0xd83d, 0xdddc, 0x3a, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x3a, + 0x63, 0x6f, 0x6d, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0xd83d, + 0xdcbd, 0x3a, 0x6d, 0x69, 0x6e, 0x69, 0x64, 0x69, 0x73, 0x63, 0x3a, 0x6d, + 0x69, 0x6e, 0x69, 0x64, 0x69, 0x73, 0x63, 0xd83d, 0xdcbe, 0x3a, 0x66, 0x6c, + 0x6f, 0x70, 0x70, 0x79, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x3a, 0x64, 0x69, + 0x73, 0x6b, 0x66, 0x6c, 0x6f, 0x70, 0x70, 0x79, 0xd83d, 0xdcbf, 0x3a, 0x63, + 0x64, 0x3a, 0x63, 0x64, 0xd83d, 0xdcc0, 0x3a, 0x64, 0x76, 0x64, 0x3a, 0x64, + 0x76, 0x64, 0xd83d, 0xdcfc, 0x3a, 0x76, 0x68, 0x73, 0x3a, 0x76, 0x68, 0x73, + 0xd83d, 0xdcf7, 0x3a, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x3a, 0x63, 0x61, + 0x6d, 0x65, 0x72, 0x61, 0xd83d, 0xdcf8, 0x3a, 0x63, 0x61, 0x6d, 0x65, 0x72, + 0x61, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x66, 0x6c, 0x61, 0x73, 0x68, + 0x3a, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x66, 0x6c, 0x61, 0x73, 0x68, + 0x77, 0x69, 0x74, 0x68, 0xd83d, 0xdcf9, 0x3a, 0x76, 0x69, 0x64, 0x65, 0x6f, + 0x5f, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x3a, 0x63, 0x61, 0x6d, 0x65, + 0x72, 0x61, 0x76, 0x69, 0x64, 0x65, 0x6f, 0xd83c, 0xdfa5, 0x3a, 0x6d, 0x6f, + 0x76, 0x69, 0x65, 0x5f, 0x63, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x3a, 0x63, + 0x61, 0x6d, 0x65, 0x72, 0x61, 0x6d, 0x6f, 0x76, 0x69, 0x65, 0xd83d, 0xdcfd, + 0x3a, 0x66, 0x69, 0x6c, 0x6d, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0x3a, 0x66, 0x69, 0x6c, 0x6d, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0xd83d, 0xdcfd, 0x3a, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x6f, 0x72, 0x3a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x6f, 0x72, 0xd83c, 0xdf9e, 0x3a, 0x66, 0x69, 0x6c, 0x6d, 0x5f, 0x66, + 0x72, 0x61, 0x6d, 0x65, 0x73, 0x3a, 0x66, 0x69, 0x6c, 0x6d, 0x66, 0x72, + 0x61, 0x6d, 0x65, 0x73, 0xd83d, 0xdcde, 0x3a, 0x74, 0x65, 0x6c, 0x65, 0x70, + 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x72, 0x3a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x74, 0x65, + 0x6c, 0x65, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x260e, 0xfe0f, 0x3a, 0x74, 0x65, + 0x6c, 0x65, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x3a, 0x74, 0x65, 0x6c, 0x65, + 0x70, 0x68, 0x6f, 0x6e, 0x65, 0xd83d, 0xdcdf, 0x3a, 0x70, 0x61, 0x67, 0x65, + 0x72, 0x3a, 0x70, 0x61, 0x67, 0x65, 0x72, 0xd83d, 0xdce0, 0x3a, 0x66, 0x61, + 0x78, 0x3a, 0x66, 0x61, 0x78, 0xd83d, 0xdcfa, 0x3a, 0x74, 0x76, 0x3a, 0x74, + 0x76, 0xd83d, 0xdcfb, 0x3a, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x3a, 0x72, 0x61, + 0x64, 0x69, 0x6f, 0xd83c, 0xdf99, 0x3a, 0x73, 0x74, 0x75, 0x64, 0x69, 0x6f, + 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x3a, + 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x73, 0x74, + 0x75, 0x64, 0x69, 0x6f, 0xd83c, 0xdf99, 0x3a, 0x6d, 0x69, 0x63, 0x72, 0x6f, + 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x32, 0x3a, 0x6d, 0x69, 0x63, 0x72, 0x6f, + 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x32, 0xd83c, 0xdf9a, 0x3a, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x64, 0x65, 0x72, 0x3a, 0x6c, 0x65, + 0x76, 0x65, 0x6c, 0x73, 0x6c, 0x69, 0x64, 0x65, 0x72, 0xd83c, 0xdf9b, 0x3a, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6b, 0x6e, 0x6f, 0x62, + 0x73, 0x3a, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6b, 0x6e, 0x6f, + 0x62, 0x73, 0x23f1, 0x3a, 0x73, 0x74, 0x6f, 0x70, 0x77, 0x61, 0x74, 0x63, + 0x68, 0x3a, 0x73, 0x74, 0x6f, 0x70, 0x77, 0x61, 0x74, 0x63, 0x68, 0x23f2, + 0x3a, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x6f, 0x63, 0x6b, + 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x23f2, + 0x3a, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x3a, 0x74, 0x69, 0x6d, 0x65, 0x72, + 0x23f0, 0x3a, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x5f, 0x63, 0x6c, 0x6f, 0x63, + 0x6b, 0x3a, 0x61, 0x6c, 0x61, 0x72, 0x6d, 0x63, 0x6c, 0x6f, 0x63, 0x6b, + 0xd83d, 0xdd70, 0x3a, 0x6d, 0x61, 0x6e, 0x74, 0x6c, 0x65, 0x70, 0x69, 0x65, + 0x63, 0x65, 0x5f, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x3a, 0x63, 0x6c, 0x6f, + 0x63, 0x6b, 0x6d, 0x61, 0x6e, 0x74, 0x6c, 0x65, 0x70, 0x69, 0x65, 0x63, + 0x65, 0xd83d, 0xdd70, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x3a, 0x63, 0x6c, + 0x6f, 0x63, 0x6b, 0x231b, 0xfe0f, 0x3a, 0x68, 0x6f, 0x75, 0x72, 0x67, 0x6c, + 0x61, 0x73, 0x73, 0x3a, 0x68, 0x6f, 0x75, 0x72, 0x67, 0x6c, 0x61, 0x73, + 0x73, 0x23f3, 0x3a, 0x68, 0x6f, 0x75, 0x72, 0x67, 0x6c, 0x61, 0x73, 0x73, + 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x61, 0x6e, + 0x64, 0x3a, 0x66, 0x6c, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x68, 0x6f, 0x75, + 0x72, 0x67, 0x6c, 0x61, 0x73, 0x73, 0x73, 0x61, 0x6e, 0x64, 0xd83d, 0xdce1, + 0x3a, 0x73, 0x61, 0x74, 0x65, 0x6c, 0x6c, 0x69, 0x74, 0x65, 0x3a, 0x73, + 0x61, 0x74, 0x65, 0x6c, 0x6c, 0x69, 0x74, 0x65, 0xd83d, 0xdd0b, 0x3a, 0x62, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x3a, 0x62, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x79, 0xd83d, 0xdd0c, 0x3a, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, + 0x63, 0x5f, 0x70, 0x6c, 0x75, 0x67, 0x3a, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x72, 0x69, 0x63, 0x70, 0x6c, 0x75, 0x67, 0xd83d, 0xdca1, 0x3a, 0x62, 0x75, + 0x6c, 0x62, 0x3a, 0x62, 0x75, 0x6c, 0x62, 0xd83d, 0xdd26, 0x3a, 0x66, 0x6c, + 0x61, 0x73, 0x68, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x66, 0x6c, 0x61, + 0x73, 0x68, 0x6c, 0x69, 0x67, 0x68, 0x74, 0xd83d, 0xdd6f, 0x3a, 0x63, 0x61, + 0x6e, 0x64, 0x6c, 0x65, 0x3a, 0x63, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0xd83d, + 0xdee2, 0x3a, 0x6f, 0x69, 0x6c, 0x5f, 0x64, 0x72, 0x75, 0x6d, 0x3a, 0x64, + 0x72, 0x75, 0x6d, 0x6f, 0x69, 0x6c, 0xd83d, 0xdee2, 0x3a, 0x6f, 0x69, 0x6c, + 0x3a, 0x6f, 0x69, 0x6c, 0xd83d, 0xdcb8, 0x3a, 0x6d, 0x6f, 0x6e, 0x65, 0x79, + 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x77, 0x69, 0x6e, 0x67, 0x73, 0x3a, + 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x77, 0x69, 0x6e, 0x67, 0x73, 0x77, 0x69, + 0x74, 0x68, 0xd83d, 0xdcb5, 0x3a, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x3a, + 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0xd83d, 0xdcb4, 0x3a, 0x79, 0x65, 0x6e, + 0x3a, 0x79, 0x65, 0x6e, 0xd83d, 0xdcb6, 0x3a, 0x65, 0x75, 0x72, 0x6f, 0x3a, + 0x65, 0x75, 0x72, 0x6f, 0xd83d, 0xdcb7, 0x3a, 0x70, 0x6f, 0x75, 0x6e, 0x64, + 0x3a, 0x70, 0x6f, 0x75, 0x6e, 0x64, 0xd83d, 0xdcb0, 0x3a, 0x6d, 0x6f, 0x6e, + 0x65, 0x79, 0x62, 0x61, 0x67, 0x3a, 0x6d, 0x6f, 0x6e, 0x65, 0x79, 0x62, + 0x61, 0x67, 0xd83d, 0xdcb3, 0x3a, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, + 0x63, 0x61, 0x72, 0x64, 0x3a, 0x63, 0x61, 0x72, 0x64, 0x63, 0x72, 0x65, + 0x64, 0x69, 0x74, 0xd83d, 0xdc8e, 0x3a, 0x67, 0x65, 0x6d, 0x3a, 0x67, 0x65, + 0x6d, 0x2696, 0xfe0f, 0x3a, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x73, 0x3a, 0x73, + 0x63, 0x61, 0x6c, 0x65, 0x73, 0xd83d, 0xdd27, 0x3a, 0x77, 0x72, 0x65, 0x6e, + 0x63, 0x68, 0x3a, 0x77, 0x72, 0x65, 0x6e, 0x63, 0x68, 0xd83d, 0xdd28, 0x3a, + 0x68, 0x61, 0x6d, 0x6d, 0x65, 0x72, 0x3a, 0x68, 0x61, 0x6d, 0x6d, 0x65, + 0x72, 0x2692, 0x3a, 0x68, 0x61, 0x6d, 0x6d, 0x65, 0x72, 0x5f, 0x61, 0x6e, + 0x64, 0x5f, 0x70, 0x69, 0x63, 0x6b, 0x3a, 0x61, 0x6e, 0x64, 0x68, 0x61, + 0x6d, 0x6d, 0x65, 0x72, 0x70, 0x69, 0x63, 0x6b, 0x2692, 0x3a, 0x68, 0x61, + 0x6d, 0x6d, 0x65, 0x72, 0x5f, 0x70, 0x69, 0x63, 0x6b, 0x3a, 0x68, 0x61, + 0x6d, 0x6d, 0x65, 0x72, 0x70, 0x69, 0x63, 0x6b, 0xd83d, 0xdee0, 0x3a, 0x68, + 0x61, 0x6d, 0x6d, 0x65, 0x72, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x77, 0x72, + 0x65, 0x6e, 0x63, 0x68, 0x3a, 0x61, 0x6e, 0x64, 0x68, 0x61, 0x6d, 0x6d, + 0x65, 0x72, 0x77, 0x72, 0x65, 0x6e, 0x63, 0x68, 0xd83d, 0xdee0, 0x3a, 0x74, + 0x6f, 0x6f, 0x6c, 0x73, 0x3a, 0x74, 0x6f, 0x6f, 0x6c, 0x73, 0x26cf, 0x3a, + 0x70, 0x69, 0x63, 0x6b, 0x3a, 0x70, 0x69, 0x63, 0x6b, 0xd83d, 0xdd29, 0x3a, + 0x6e, 0x75, 0x74, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x62, 0x6f, 0x6c, 0x74, + 0x3a, 0x61, 0x6e, 0x64, 0x62, 0x6f, 0x6c, 0x74, 0x6e, 0x75, 0x74, 0x2699, + 0xfe0f, 0x3a, 0x67, 0x65, 0x61, 0x72, 0x3a, 0x67, 0x65, 0x61, 0x72, 0x26d3, + 0x3a, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x3a, 0x63, 0x68, 0x61, 0x69, + 0x6e, 0x73, 0xd83d, 0xdd2b, 0x3a, 0x67, 0x75, 0x6e, 0x3a, 0x67, 0x75, 0x6e, + 0xd83d, 0xdca3, 0x3a, 0x62, 0x6f, 0x6d, 0x62, 0x3a, 0x62, 0x6f, 0x6d, 0x62, + 0xd83d, 0xdd2a, 0x3a, 0x6b, 0x6e, 0x69, 0x66, 0x65, 0x3a, 0x6b, 0x6e, 0x69, + 0x66, 0x65, 0xd83d, 0xdde1, 0x3a, 0x64, 0x61, 0x67, 0x67, 0x65, 0x72, 0x5f, + 0x6b, 0x6e, 0x69, 0x66, 0x65, 0x3a, 0x64, 0x61, 0x67, 0x67, 0x65, 0x72, + 0x6b, 0x6e, 0x69, 0x66, 0x65, 0xd83d, 0xdde1, 0x3a, 0x64, 0x61, 0x67, 0x67, + 0x65, 0x72, 0x3a, 0x64, 0x61, 0x67, 0x67, 0x65, 0x72, 0x2694, 0xfe0f, 0x3a, + 0x63, 0x72, 0x6f, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x73, 0x77, 0x6f, 0x72, + 0x64, 0x73, 0x3a, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x65, 0x64, 0x73, 0x77, + 0x6f, 0x72, 0x64, 0x73, 0xd83d, 0xdee1, 0x3a, 0x73, 0x68, 0x69, 0x65, 0x6c, + 0x64, 0x3a, 0x73, 0x68, 0x69, 0x65, 0x6c, 0x64, 0xd83d, 0xdeac, 0x3a, 0x73, + 0x6d, 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x3a, 0x73, 0x6d, 0x6f, 0x6b, 0x69, + 0x6e, 0x67, 0x26b0, 0xfe0f, 0x3a, 0x63, 0x6f, 0x66, 0x66, 0x69, 0x6e, 0x3a, + 0x63, 0x6f, 0x66, 0x66, 0x69, 0x6e, 0x26b1, 0xfe0f, 0x3a, 0x66, 0x75, 0x6e, + 0x65, 0x72, 0x61, 0x6c, 0x5f, 0x75, 0x72, 0x6e, 0x3a, 0x66, 0x75, 0x6e, + 0x65, 0x72, 0x61, 0x6c, 0x75, 0x72, 0x6e, 0x26b1, 0xfe0f, 0x3a, 0x75, 0x72, + 0x6e, 0x3a, 0x75, 0x72, 0x6e, 0xd83c, 0xdffa, 0x3a, 0x61, 0x6d, 0x70, 0x68, + 0x6f, 0x72, 0x61, 0x3a, 0x61, 0x6d, 0x70, 0x68, 0x6f, 0x72, 0x61, 0xd83d, + 0xdd2e, 0x3a, 0x63, 0x72, 0x79, 0x73, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x61, + 0x6c, 0x6c, 0x3a, 0x62, 0x61, 0x6c, 0x6c, 0x63, 0x72, 0x79, 0x73, 0x74, + 0x61, 0x6c, 0xd83d, 0xdcff, 0x3a, 0x70, 0x72, 0x61, 0x79, 0x65, 0x72, 0x5f, + 0x62, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x62, 0x65, 0x61, 0x64, 0x73, 0x70, + 0x72, 0x61, 0x79, 0x65, 0x72, 0xd83d, 0xdc88, 0x3a, 0x62, 0x61, 0x72, 0x62, + 0x65, 0x72, 0x3a, 0x62, 0x61, 0x72, 0x62, 0x65, 0x72, 0x2697, 0xfe0f, 0x3a, + 0x61, 0x6c, 0x65, 0x6d, 0x62, 0x69, 0x63, 0x3a, 0x61, 0x6c, 0x65, 0x6d, + 0x62, 0x69, 0x63, 0xd83d, 0xdd2d, 0x3a, 0x74, 0x65, 0x6c, 0x65, 0x73, 0x63, + 0x6f, 0x70, 0x65, 0x3a, 0x74, 0x65, 0x6c, 0x65, 0x73, 0x63, 0x6f, 0x70, + 0x65, 0xd83d, 0xdd2c, 0x3a, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x63, 0x6f, + 0x70, 0x65, 0x3a, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x63, 0x6f, 0x70, + 0x65, 0xd83d, 0xdd73, 0x3a, 0x68, 0x6f, 0x6c, 0x65, 0x3a, 0x68, 0x6f, 0x6c, + 0x65, 0xd83d, 0xdc8a, 0x3a, 0x70, 0x69, 0x6c, 0x6c, 0x3a, 0x70, 0x69, 0x6c, + 0x6c, 0xd83d, 0xdc89, 0x3a, 0x73, 0x79, 0x72, 0x69, 0x6e, 0x67, 0x65, 0x3a, + 0x73, 0x79, 0x72, 0x69, 0x6e, 0x67, 0x65, 0xd83c, 0xdf21, 0x3a, 0x74, 0x68, + 0x65, 0x72, 0x6d, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x3a, 0x74, 0x68, + 0x65, 0x72, 0x6d, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0xd83d, 0xdebd, 0x3a, + 0x74, 0x6f, 0x69, 0x6c, 0x65, 0x74, 0x3a, 0x74, 0x6f, 0x69, 0x6c, 0x65, + 0x74, 0xd83d, 0xdeb0, 0x3a, 0x70, 0x6f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x77, 0x61, 0x74, 0x65, 0x72, 0x3a, 0x70, 0x6f, 0x74, 0x61, 0x62, 0x6c, + 0x65, 0x77, 0x61, 0x74, 0x65, 0x72, 0xd83d, 0xdebf, 0x3a, 0x73, 0x68, 0x6f, + 0x77, 0x65, 0x72, 0x3a, 0x73, 0x68, 0x6f, 0x77, 0x65, 0x72, 0xd83d, 0xdec1, + 0x3a, 0x62, 0x61, 0x74, 0x68, 0x74, 0x75, 0x62, 0x3a, 0x62, 0x61, 0x74, + 0x68, 0x74, 0x75, 0x62, 0xd83d, 0xdec0, 0x3a, 0x62, 0x61, 0x74, 0x68, 0x3a, + 0x62, 0x61, 0x74, 0x68, 0xd83d, 0xdece, 0x3a, 0x62, 0x65, 0x6c, 0x6c, 0x68, + 0x6f, 0x70, 0x5f, 0x62, 0x65, 0x6c, 0x6c, 0x3a, 0x62, 0x65, 0x6c, 0x6c, + 0x62, 0x65, 0x6c, 0x6c, 0x68, 0x6f, 0x70, 0xd83d, 0xdece, 0x3a, 0x62, 0x65, + 0x6c, 0x6c, 0x68, 0x6f, 0x70, 0x3a, 0x62, 0x65, 0x6c, 0x6c, 0x68, 0x6f, + 0x70, 0xd83d, 0xdd11, 0x3a, 0x6b, 0x65, 0x79, 0x3a, 0x6b, 0x65, 0x79, 0xd83d, + 0xdddd, 0x3a, 0x6f, 0x6c, 0x64, 0x5f, 0x6b, 0x65, 0x79, 0x3a, 0x6b, 0x65, + 0x79, 0x6f, 0x6c, 0x64, 0xd83d, 0xdddd, 0x3a, 0x6b, 0x65, 0x79, 0x32, 0x3a, + 0x6b, 0x65, 0x79, 0x32, 0xd83d, 0xdeaa, 0x3a, 0x64, 0x6f, 0x6f, 0x72, 0x3a, + 0x64, 0x6f, 0x6f, 0x72, 0xd83d, 0xdecb, 0x3a, 0x63, 0x6f, 0x75, 0x63, 0x68, + 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x6c, 0x61, 0x6d, 0x70, 0x3a, 0x61, 0x6e, + 0x64, 0x63, 0x6f, 0x75, 0x63, 0x68, 0x6c, 0x61, 0x6d, 0x70, 0xd83d, 0xdecb, + 0x3a, 0x63, 0x6f, 0x75, 0x63, 0x68, 0x3a, 0x63, 0x6f, 0x75, 0x63, 0x68, + 0xd83d, 0xdecf, 0x3a, 0x62, 0x65, 0x64, 0x3a, 0x62, 0x65, 0x64, 0xd83d, 0xdecc, + 0x3a, 0x73, 0x6c, 0x65, 0x65, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x63, + 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, + 0x61, 0x63, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x64, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x6c, 0x65, 0x65, 0x70, 0x69, 0x6e, 0x67, 0xd83d, 0xddbc, 0x3a, + 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x70, + 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x3a, 0x66, 0x72, 0x61, 0x6d, 0x65, + 0x70, 0x69, 0x63, 0x74, 0x75, 0x72, 0x65, 0x77, 0x69, 0x74, 0x68, 0xd83d, + 0xddbc, 0x3a, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x68, 0x6f, 0x74, + 0x6f, 0x3a, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x70, 0x68, 0x6f, 0x74, 0x6f, + 0xd83d, 0xdecd, 0x3a, 0x73, 0x68, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, + 0x62, 0x61, 0x67, 0x73, 0x3a, 0x62, 0x61, 0x67, 0x73, 0x73, 0x68, 0x6f, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0xd83d, 0xded2, 0x3a, 0x73, 0x68, 0x6f, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x79, + 0x3a, 0x73, 0x68, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x74, 0x72, 0x6f, + 0x6c, 0x6c, 0x65, 0x79, 0xd83d, 0xded2, 0x3a, 0x73, 0x68, 0x6f, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x61, 0x72, 0x74, 0x3a, 0x63, 0x61, 0x72, + 0x74, 0x73, 0x68, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0xd83c, 0xdf81, 0x3a, + 0x67, 0x69, 0x66, 0x74, 0x3a, 0x67, 0x69, 0x66, 0x74, 0xd83c, 0xdf88, 0x3a, + 0x62, 0x61, 0x6c, 0x6c, 0x6f, 0x6f, 0x6e, 0x3a, 0x62, 0x61, 0x6c, 0x6c, + 0x6f, 0x6f, 0x6e, 0xd83c, 0xdf8f, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0xd83c, 0xdf80, 0x3a, 0x72, 0x69, 0x62, 0x62, + 0x6f, 0x6e, 0x3a, 0x72, 0x69, 0x62, 0x62, 0x6f, 0x6e, 0xd83c, 0xdf8a, 0x3a, + 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x74, 0x74, 0x69, 0x5f, 0x62, 0x61, 0x6c, + 0x6c, 0x3a, 0x62, 0x61, 0x6c, 0x6c, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x74, + 0x74, 0x69, 0xd83c, 0xdf89, 0x3a, 0x74, 0x61, 0x64, 0x61, 0x3a, 0x74, 0x61, + 0x64, 0x61, 0xd83c, 0xdf8e, 0x3a, 0x64, 0x6f, 0x6c, 0x6c, 0x73, 0x3a, 0x64, + 0x6f, 0x6c, 0x6c, 0x73, 0xd83c, 0xdfee, 0x3a, 0x69, 0x7a, 0x61, 0x6b, 0x61, + 0x79, 0x61, 0x5f, 0x6c, 0x61, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x3a, 0x69, + 0x7a, 0x61, 0x6b, 0x61, 0x79, 0x61, 0x6c, 0x61, 0x6e, 0x74, 0x65, 0x72, + 0x6e, 0xd83c, 0xdf90, 0x3a, 0x77, 0x69, 0x6e, 0x64, 0x5f, 0x63, 0x68, 0x69, + 0x6d, 0x65, 0x3a, 0x63, 0x68, 0x69, 0x6d, 0x65, 0x77, 0x69, 0x6e, 0x64, + 0x2709, 0xfe0f, 0x3a, 0x65, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x3a, + 0x65, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0xd83d, 0xdce9, 0x3a, 0x65, + 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, + 0x5f, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, + 0x65, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x77, 0x69, 0x74, 0x68, + 0xd83d, 0xdce8, 0x3a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x5f, + 0x65, 0x6e, 0x76, 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x3a, 0x65, 0x6e, 0x76, + 0x65, 0x6c, 0x6f, 0x70, 0x65, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, + 0x67, 0xd83d, 0xdce7, 0x3a, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x3a, 0x65, 0x6d, + 0x61, 0x69, 0x6c, 0xd83d, 0xdce7, 0x3a, 0x65, 0x2d, 0x6d, 0x61, 0x69, 0x6c, + 0x3a, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0xd83d, 0xdc8c, 0x3a, 0x6c, 0x6f, 0x76, + 0x65, 0x5f, 0x6c, 0x65, 0x74, 0x74, 0x65, 0x72, 0x3a, 0x6c, 0x65, 0x74, + 0x74, 0x65, 0x72, 0x6c, 0x6f, 0x76, 0x65, 0xd83d, 0xdce5, 0x3a, 0x69, 0x6e, + 0x62, 0x6f, 0x78, 0x5f, 0x74, 0x72, 0x61, 0x79, 0x3a, 0x69, 0x6e, 0x62, + 0x6f, 0x78, 0x74, 0x72, 0x61, 0x79, 0xd83d, 0xdce4, 0x3a, 0x6f, 0x75, 0x74, + 0x62, 0x6f, 0x78, 0x5f, 0x74, 0x72, 0x61, 0x79, 0x3a, 0x6f, 0x75, 0x74, + 0x62, 0x6f, 0x78, 0x74, 0x72, 0x61, 0x79, 0xd83d, 0xdce6, 0x3a, 0x70, 0x61, + 0x63, 0x6b, 0x61, 0x67, 0x65, 0x3a, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x65, 0xd83c, 0xdff7, 0x3a, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x3a, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0xd83d, 0xdcea, 0x3a, 0x6d, 0x61, 0x69, 0x6c, 0x62, 0x6f, + 0x78, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x3a, 0x63, 0x6c, 0x6f, + 0x73, 0x65, 0x64, 0x6d, 0x61, 0x69, 0x6c, 0x62, 0x6f, 0x78, 0xd83d, 0xdceb, + 0x3a, 0x6d, 0x61, 0x69, 0x6c, 0x62, 0x6f, 0x78, 0x3a, 0x6d, 0x61, 0x69, + 0x6c, 0x62, 0x6f, 0x78, 0xd83d, 0xdcec, 0x3a, 0x6d, 0x61, 0x69, 0x6c, 0x62, + 0x6f, 0x78, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6d, 0x61, 0x69, 0x6c, + 0x3a, 0x6d, 0x61, 0x69, 0x6c, 0x6d, 0x61, 0x69, 0x6c, 0x62, 0x6f, 0x78, + 0x77, 0x69, 0x74, 0x68, 0xd83d, 0xdced, 0x3a, 0x6d, 0x61, 0x69, 0x6c, 0x62, + 0x6f, 0x78, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6e, 0x6f, 0x5f, 0x6d, + 0x61, 0x69, 0x6c, 0x3a, 0x6d, 0x61, 0x69, 0x6c, 0x6d, 0x61, 0x69, 0x6c, + 0x62, 0x6f, 0x78, 0x6e, 0x6f, 0x77, 0x69, 0x74, 0x68, 0xd83d, 0xdcee, 0x3a, + 0x70, 0x6f, 0x73, 0x74, 0x62, 0x6f, 0x78, 0x3a, 0x70, 0x6f, 0x73, 0x74, + 0x62, 0x6f, 0x78, 0xd83d, 0xdcef, 0x3a, 0x70, 0x6f, 0x73, 0x74, 0x61, 0x6c, + 0x5f, 0x68, 0x6f, 0x72, 0x6e, 0x3a, 0x68, 0x6f, 0x72, 0x6e, 0x70, 0x6f, + 0x73, 0x74, 0x61, 0x6c, 0xd83d, 0xdcdc, 0x3a, 0x73, 0x63, 0x72, 0x6f, 0x6c, + 0x6c, 0x3a, 0x73, 0x63, 0x72, 0x6f, 0x6c, 0x6c, 0xd83d, 0xdcc3, 0x3a, 0x70, + 0x61, 0x67, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x63, 0x75, 0x72, + 0x6c, 0x3a, 0x63, 0x75, 0x72, 0x6c, 0x70, 0x61, 0x67, 0x65, 0x77, 0x69, + 0x74, 0x68, 0xd83d, 0xdcc4, 0x3a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x66, 0x61, + 0x63, 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x70, 0x3a, 0x66, 0x61, 0x63, 0x69, + 0x6e, 0x67, 0x70, 0x61, 0x67, 0x65, 0x75, 0x70, 0xd83d, 0xdcd1, 0x3a, 0x62, + 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x74, 0x61, 0x62, 0x73, + 0x3a, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x74, 0x61, 0x62, + 0x73, 0xd83d, 0xdcca, 0x3a, 0x62, 0x61, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x72, + 0x74, 0x3a, 0x62, 0x61, 0x72, 0x63, 0x68, 0x61, 0x72, 0x74, 0xd83d, 0xdcc8, + 0x3a, 0x63, 0x68, 0x61, 0x72, 0x74, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, + 0x75, 0x70, 0x77, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x74, 0x72, 0x65, 0x6e, + 0x64, 0x3a, 0x63, 0x68, 0x61, 0x72, 0x74, 0x74, 0x72, 0x65, 0x6e, 0x64, + 0x75, 0x70, 0x77, 0x61, 0x72, 0x64, 0x73, 0x77, 0x69, 0x74, 0x68, 0xd83d, + 0xdcc9, 0x3a, 0x63, 0x68, 0x61, 0x72, 0x74, 0x5f, 0x77, 0x69, 0x74, 0x68, + 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x77, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x74, + 0x72, 0x65, 0x6e, 0x64, 0x3a, 0x63, 0x68, 0x61, 0x72, 0x74, 0x64, 0x6f, + 0x77, 0x6e, 0x77, 0x61, 0x72, 0x64, 0x73, 0x74, 0x72, 0x65, 0x6e, 0x64, + 0x77, 0x69, 0x74, 0x68, 0xd83d, 0xddd2, 0x3a, 0x73, 0x70, 0x69, 0x72, 0x61, + 0x6c, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x64, 0x3a, 0x6e, + 0x6f, 0x74, 0x65, 0x70, 0x61, 0x64, 0x73, 0x70, 0x69, 0x72, 0x61, 0x6c, + 0xd83d, 0xddd2, 0x3a, 0x6e, 0x6f, 0x74, 0x65, 0x70, 0x61, 0x64, 0x5f, 0x73, + 0x70, 0x69, 0x72, 0x61, 0x6c, 0x3a, 0x6e, 0x6f, 0x74, 0x65, 0x70, 0x61, + 0x64, 0x73, 0x70, 0x69, 0x72, 0x61, 0x6c, 0xd83d, 0xddd3, 0x3a, 0x73, 0x70, + 0x69, 0x72, 0x61, 0x6c, 0x5f, 0x63, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, + 0x72, 0x5f, 0x70, 0x61, 0x64, 0x3a, 0x63, 0x61, 0x6c, 0x65, 0x6e, 0x64, + 0x61, 0x72, 0x70, 0x61, 0x64, 0x73, 0x70, 0x69, 0x72, 0x61, 0x6c, 0xd83d, + 0xddd3, 0x3a, 0x63, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, 0x5f, 0x73, + 0x70, 0x69, 0x72, 0x61, 0x6c, 0x3a, 0x63, 0x61, 0x6c, 0x65, 0x6e, 0x64, + 0x61, 0x72, 0x73, 0x70, 0x69, 0x72, 0x61, 0x6c, 0xd83d, 0xdcc6, 0x3a, 0x63, + 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, 0x3a, 0x63, 0x61, 0x6c, 0x65, + 0x6e, 0x64, 0x61, 0x72, 0xd83d, 0xdcc5, 0x3a, 0x64, 0x61, 0x74, 0x65, 0x3a, + 0x64, 0x61, 0x74, 0x65, 0xd83d, 0xddd1, 0x3a, 0x77, 0x61, 0x73, 0x74, 0x65, + 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0x3a, 0x77, 0x61, 0x73, 0x74, 0x65, + 0x62, 0x61, 0x73, 0x6b, 0x65, 0x74, 0xd83d, 0xdcc7, 0x3a, 0x63, 0x61, 0x72, + 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x3a, 0x63, 0x61, 0x72, 0x64, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0xd83d, 0xddc3, 0x3a, 0x63, 0x61, 0x72, 0x64, + 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x62, 0x6f, 0x78, 0x3a, 0x62, 0x6f, + 0x78, 0x63, 0x61, 0x72, 0x64, 0x66, 0x69, 0x6c, 0x65, 0xd83d, 0xddc3, 0x3a, + 0x63, 0x61, 0x72, 0x64, 0x5f, 0x62, 0x6f, 0x78, 0x3a, 0x62, 0x6f, 0x78, + 0x63, 0x61, 0x72, 0x64, 0xd83d, 0xddf3, 0x3a, 0x62, 0x61, 0x6c, 0x6c, 0x6f, + 0x74, 0x5f, 0x62, 0x6f, 0x78, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x62, + 0x61, 0x6c, 0x6c, 0x6f, 0x74, 0x3a, 0x62, 0x61, 0x6c, 0x6c, 0x6f, 0x74, + 0x62, 0x61, 0x6c, 0x6c, 0x6f, 0x74, 0x62, 0x6f, 0x78, 0x77, 0x69, 0x74, + 0x68, 0xd83d, 0xddf3, 0x3a, 0x62, 0x61, 0x6c, 0x6c, 0x6f, 0x74, 0x5f, 0x62, + 0x6f, 0x78, 0x3a, 0x62, 0x61, 0x6c, 0x6c, 0x6f, 0x74, 0x62, 0x6f, 0x78, + 0xd83d, 0xddc4, 0x3a, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x63, 0x61, 0x62, 0x69, + 0x6e, 0x65, 0x74, 0x3a, 0x63, 0x61, 0x62, 0x69, 0x6e, 0x65, 0x74, 0x66, + 0x69, 0x6c, 0x65, 0xd83d, 0xdccb, 0x3a, 0x63, 0x6c, 0x69, 0x70, 0x62, 0x6f, + 0x61, 0x72, 0x64, 0x3a, 0x63, 0x6c, 0x69, 0x70, 0x62, 0x6f, 0x61, 0x72, + 0x64, 0xd83d, 0xdcc1, 0x3a, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x66, 0x6f, 0x6c, + 0x64, 0x65, 0x72, 0x3a, 0x66, 0x69, 0x6c, 0x65, 0x66, 0x6f, 0x6c, 0x64, + 0x65, 0x72, 0xd83d, 0xdcc2, 0x3a, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x66, 0x69, + 0x6c, 0x65, 0x5f, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x3a, 0x66, 0x69, + 0x6c, 0x65, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x6f, 0x70, 0x65, 0x6e, + 0xd83d, 0xddc2, 0x3a, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x5f, 0x64, 0x69, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x3a, 0x63, + 0x61, 0x72, 0x64, 0x64, 0x69, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0xd83d, 0xddc2, 0x3a, 0x64, 0x69, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x73, 0x3a, 0x64, 0x69, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, + 0xd83d, 0xddde, 0x3a, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x75, 0x70, + 0x5f, 0x6e, 0x65, 0x77, 0x73, 0x70, 0x61, 0x70, 0x65, 0x72, 0x3a, 0x6e, + 0x65, 0x77, 0x73, 0x70, 0x61, 0x70, 0x65, 0x72, 0x72, 0x6f, 0x6c, 0x6c, + 0x65, 0x64, 0x75, 0x70, 0xd83d, 0xddde, 0x3a, 0x6e, 0x65, 0x77, 0x73, 0x70, + 0x61, 0x70, 0x65, 0x72, 0x32, 0x3a, 0x6e, 0x65, 0x77, 0x73, 0x70, 0x61, + 0x70, 0x65, 0x72, 0x32, 0xd83d, 0xdcf0, 0x3a, 0x6e, 0x65, 0x77, 0x73, 0x70, + 0x61, 0x70, 0x65, 0x72, 0x3a, 0x6e, 0x65, 0x77, 0x73, 0x70, 0x61, 0x70, + 0x65, 0x72, 0xd83d, 0xdcd3, 0x3a, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, + 0x6b, 0x3a, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0xd83d, 0xdcd4, + 0x3a, 0x6e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x5f, 0x77, 0x69, + 0x74, 0x68, 0x5f, 0x64, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x3a, 0x63, 0x6f, 0x76, 0x65, + 0x72, 0x64, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x76, 0x65, 0x6e, + 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x77, 0x69, 0x74, 0x68, 0xd83d, + 0xdcd2, 0x3a, 0x6c, 0x65, 0x64, 0x67, 0x65, 0x72, 0x3a, 0x6c, 0x65, 0x64, + 0x67, 0x65, 0x72, 0xd83d, 0xdcd5, 0x3a, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x64, + 0x5f, 0x62, 0x6f, 0x6f, 0x6b, 0x3a, 0x62, 0x6f, 0x6f, 0x6b, 0x63, 0x6c, + 0x6f, 0x73, 0x65, 0x64, 0xd83d, 0xdcd7, 0x3a, 0x67, 0x72, 0x65, 0x65, 0x6e, + 0x5f, 0x62, 0x6f, 0x6f, 0x6b, 0x3a, 0x62, 0x6f, 0x6f, 0x6b, 0x67, 0x72, + 0x65, 0x65, 0x6e, 0xd83d, 0xdcd8, 0x3a, 0x62, 0x6c, 0x75, 0x65, 0x5f, 0x62, + 0x6f, 0x6f, 0x6b, 0x3a, 0x62, 0x6c, 0x75, 0x65, 0x62, 0x6f, 0x6f, 0x6b, + 0xd83d, 0xdcd9, 0x3a, 0x6f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x62, 0x6f, + 0x6f, 0x6b, 0x3a, 0x62, 0x6f, 0x6f, 0x6b, 0x6f, 0x72, 0x61, 0x6e, 0x67, + 0x65, 0xd83d, 0xdcda, 0x3a, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x3a, 0x62, 0x6f, + 0x6f, 0x6b, 0x73, 0xd83d, 0xdcd6, 0x3a, 0x62, 0x6f, 0x6f, 0x6b, 0x3a, 0x62, + 0x6f, 0x6f, 0x6b, 0xd83d, 0xdd16, 0x3a, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, + 0x72, 0x6b, 0x3a, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0xd83d, + 0xdd17, 0x3a, 0x6c, 0x69, 0x6e, 0x6b, 0x3a, 0x6c, 0x69, 0x6e, 0x6b, 0xd83d, + 0xdcce, 0x3a, 0x70, 0x61, 0x70, 0x65, 0x72, 0x63, 0x6c, 0x69, 0x70, 0x3a, + 0x70, 0x61, 0x70, 0x65, 0x72, 0x63, 0x6c, 0x69, 0x70, 0xd83d, 0xdd87, 0x3a, + 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x70, 0x65, 0x72, + 0x63, 0x6c, 0x69, 0x70, 0x73, 0x3a, 0x6c, 0x69, 0x6e, 0x6b, 0x65, 0x64, + 0x70, 0x61, 0x70, 0x65, 0x72, 0x63, 0x6c, 0x69, 0x70, 0x73, 0xd83d, 0xdd87, + 0x3a, 0x70, 0x61, 0x70, 0x65, 0x72, 0x63, 0x6c, 0x69, 0x70, 0x73, 0x3a, + 0x70, 0x61, 0x70, 0x65, 0x72, 0x63, 0x6c, 0x69, 0x70, 0x73, 0xd83d, 0xdcd0, + 0x3a, 0x74, 0x72, 0x69, 0x61, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0x5f, + 0x72, 0x75, 0x6c, 0x65, 0x72, 0x3a, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x74, + 0x72, 0x69, 0x61, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0xd83d, 0xdccf, 0x3a, + 0x73, 0x74, 0x72, 0x61, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x72, 0x75, 0x6c, + 0x65, 0x72, 0x3a, 0x72, 0x75, 0x6c, 0x65, 0x72, 0x73, 0x74, 0x72, 0x61, + 0x69, 0x67, 0x68, 0x74, 0xd83d, 0xdccc, 0x3a, 0x70, 0x75, 0x73, 0x68, 0x70, + 0x69, 0x6e, 0x3a, 0x70, 0x75, 0x73, 0x68, 0x70, 0x69, 0x6e, 0xd83d, 0xdccd, + 0x3a, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x5f, 0x70, 0x75, 0x73, 0x68, 0x70, + 0x69, 0x6e, 0x3a, 0x70, 0x75, 0x73, 0x68, 0x70, 0x69, 0x6e, 0x72, 0x6f, + 0x75, 0x6e, 0x64, 0x2702, 0xfe0f, 0x3a, 0x73, 0x63, 0x69, 0x73, 0x73, 0x6f, + 0x72, 0x73, 0x3a, 0x73, 0x63, 0x69, 0x73, 0x73, 0x6f, 0x72, 0x73, 0xd83d, + 0xdd8a, 0x3a, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x66, 0x74, + 0x5f, 0x62, 0x61, 0x6c, 0x6c, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x70, + 0x65, 0x6e, 0x3a, 0x62, 0x61, 0x6c, 0x6c, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x6c, 0x65, 0x66, 0x74, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x70, 0x65, 0x6e, + 0xd83d, 0xdd8a, 0x3a, 0x70, 0x65, 0x6e, 0x5f, 0x62, 0x61, 0x6c, 0x6c, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x3a, 0x62, 0x61, 0x6c, 0x6c, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x70, 0x65, 0x6e, 0xd83d, 0xdd8b, 0x3a, 0x6c, 0x6f, 0x77, 0x65, + 0x72, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x5f, 0x70, 0x65, 0x6e, 0x3a, 0x66, 0x6f, 0x75, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x6c, 0x65, 0x66, 0x74, 0x6c, 0x6f, 0x77, 0x65, + 0x72, 0x70, 0x65, 0x6e, 0xd83d, 0xdd8b, 0x3a, 0x70, 0x65, 0x6e, 0x5f, 0x66, + 0x6f, 0x75, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x3a, 0x66, 0x6f, 0x75, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x70, 0x65, 0x6e, 0x2712, 0xfe0f, 0x3a, 0x62, 0x6c, + 0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x69, 0x62, 0x3a, 0x62, 0x6c, 0x61, 0x63, + 0x6b, 0x6e, 0x69, 0x62, 0xd83d, 0xdd8c, 0x3a, 0x6c, 0x6f, 0x77, 0x65, 0x72, + 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x70, 0x61, 0x69, 0x6e, 0x74, 0x62, + 0x72, 0x75, 0x73, 0x68, 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x6c, 0x6f, 0x77, + 0x65, 0x72, 0x70, 0x61, 0x69, 0x6e, 0x74, 0x62, 0x72, 0x75, 0x73, 0x68, + 0xd83d, 0xdd8c, 0x3a, 0x70, 0x61, 0x69, 0x6e, 0x74, 0x62, 0x72, 0x75, 0x73, + 0x68, 0x3a, 0x70, 0x61, 0x69, 0x6e, 0x74, 0x62, 0x72, 0x75, 0x73, 0x68, + 0xd83d, 0xdd8d, 0x3a, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x66, + 0x74, 0x5f, 0x63, 0x72, 0x61, 0x79, 0x6f, 0x6e, 0x3a, 0x63, 0x72, 0x61, + 0x79, 0x6f, 0x6e, 0x6c, 0x65, 0x66, 0x74, 0x6c, 0x6f, 0x77, 0x65, 0x72, + 0xd83d, 0xdd8d, 0x3a, 0x63, 0x72, 0x61, 0x79, 0x6f, 0x6e, 0x3a, 0x63, 0x72, + 0x61, 0x79, 0x6f, 0x6e, 0xd83d, 0xdcdd, 0x3a, 0x6d, 0x65, 0x6d, 0x6f, 0x3a, + 0x6d, 0x65, 0x6d, 0x6f, 0xd83d, 0xdcdd, 0x3a, 0x70, 0x65, 0x6e, 0x63, 0x69, + 0x6c, 0x3a, 0x70, 0x65, 0x6e, 0x63, 0x69, 0x6c, 0x270f, 0xfe0f, 0x3a, 0x70, + 0x65, 0x6e, 0x63, 0x69, 0x6c, 0x32, 0x3a, 0x70, 0x65, 0x6e, 0x63, 0x69, + 0x6c, 0x32, 0xd83d, 0xdd0d, 0x3a, 0x6d, 0x61, 0x67, 0x3a, 0x6d, 0x61, 0x67, + 0xd83d, 0xdd0e, 0x3a, 0x6d, 0x61, 0x67, 0x5f, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x3a, 0x6d, 0x61, 0x67, 0x72, 0x69, 0x67, 0x68, 0x74, 0xd83d, 0xdd0f, 0x3a, + 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x69, 0x6e, + 0x6b, 0x5f, 0x70, 0x65, 0x6e, 0x3a, 0x69, 0x6e, 0x6b, 0x6c, 0x6f, 0x63, + 0x6b, 0x70, 0x65, 0x6e, 0x77, 0x69, 0x74, 0x68, 0xd83d, 0xdd10, 0x3a, 0x63, + 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x77, + 0x69, 0x74, 0x68, 0x5f, 0x6b, 0x65, 0x79, 0x3a, 0x63, 0x6c, 0x6f, 0x73, + 0x65, 0x64, 0x6b, 0x65, 0x79, 0x6c, 0x6f, 0x63, 0x6b, 0x77, 0x69, 0x74, + 0x68, 0xd83d, 0xdd12, 0x3a, 0x6c, 0x6f, 0x63, 0x6b, 0x3a, 0x6c, 0x6f, 0x63, + 0x6b, 0xd83d, 0xdd13, 0x3a, 0x75, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x3a, 0x75, + 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x2764, 0xfe0f, 0x3a, 0x68, 0x65, 0x61, 0x72, + 0x74, 0x3a, 0x68, 0x65, 0x61, 0x72, 0x74, 0xd83e, 0xdde1, 0x3a, 0x6f, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x3a, 0x68, + 0x65, 0x61, 0x72, 0x74, 0x6f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0xd83d, 0xdc9b, + 0x3a, 0x79, 0x65, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x68, 0x65, 0x61, 0x72, + 0x74, 0x3a, 0x68, 0x65, 0x61, 0x72, 0x74, 0x79, 0x65, 0x6c, 0x6c, 0x6f, + 0x77, 0xd83d, 0xdc9a, 0x3a, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x68, 0x65, + 0x61, 0x72, 0x74, 0x3a, 0x67, 0x72, 0x65, 0x65, 0x6e, 0x68, 0x65, 0x61, + 0x72, 0x74, 0xd83d, 0xdc99, 0x3a, 0x62, 0x6c, 0x75, 0x65, 0x5f, 0x68, 0x65, + 0x61, 0x72, 0x74, 0x3a, 0x62, 0x6c, 0x75, 0x65, 0x68, 0x65, 0x61, 0x72, + 0x74, 0xd83d, 0xdc9c, 0x3a, 0x70, 0x75, 0x72, 0x70, 0x6c, 0x65, 0x5f, 0x68, + 0x65, 0x61, 0x72, 0x74, 0x3a, 0x68, 0x65, 0x61, 0x72, 0x74, 0x70, 0x75, + 0x72, 0x70, 0x6c, 0x65, 0xd83d, 0xdda4, 0x3a, 0x62, 0x6c, 0x61, 0x63, 0x6b, + 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x3a, 0x62, 0x6c, 0x61, 0x63, 0x6b, + 0x68, 0x65, 0x61, 0x72, 0x74, 0xd83d, 0xdc94, 0x3a, 0x62, 0x72, 0x6f, 0x6b, + 0x65, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x3a, 0x62, 0x72, 0x6f, + 0x6b, 0x65, 0x6e, 0x68, 0x65, 0x61, 0x72, 0x74, 0x2763, 0xfe0f, 0x3a, 0x68, + 0x65, 0x61, 0x76, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x5f, 0x65, + 0x78, 0x63, 0x6c, 0x61, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, + 0x61, 0x72, 0x6b, 0x5f, 0x6f, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, + 0x3a, 0x65, 0x78, 0x63, 0x6c, 0x61, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x68, 0x65, 0x61, 0x72, 0x74, 0x68, 0x65, 0x61, 0x76, 0x79, 0x6d, 0x61, + 0x72, 0x6b, 0x6f, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x6e, 0x74, 0x2763, 0xfe0f, + 0x3a, 0x68, 0x65, 0x61, 0x72, 0x74, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x61, + 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x65, 0x78, 0x63, 0x6c, 0x61, + 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x68, 0x65, 0x61, 0x72, 0x74, 0xd83d, + 0xdc95, 0x3a, 0x74, 0x77, 0x6f, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x73, + 0x3a, 0x68, 0x65, 0x61, 0x72, 0x74, 0x73, 0x74, 0x77, 0x6f, 0xd83d, 0xdc9e, + 0x3a, 0x72, 0x65, 0x76, 0x6f, 0x6c, 0x76, 0x69, 0x6e, 0x67, 0x5f, 0x68, + 0x65, 0x61, 0x72, 0x74, 0x73, 0x3a, 0x68, 0x65, 0x61, 0x72, 0x74, 0x73, + 0x72, 0x65, 0x76, 0x6f, 0x6c, 0x76, 0x69, 0x6e, 0x67, 0xd83d, 0xdc93, 0x3a, + 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x3a, 0x68, 0x65, + 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0xd83d, 0xdc97, 0x3a, 0x68, 0x65, + 0x61, 0x72, 0x74, 0x70, 0x75, 0x6c, 0x73, 0x65, 0x3a, 0x68, 0x65, 0x61, + 0x72, 0x74, 0x70, 0x75, 0x6c, 0x73, 0x65, 0xd83d, 0xdc96, 0x3a, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x65, 0x61, 0x72, + 0x74, 0x3a, 0x68, 0x65, 0x61, 0x72, 0x74, 0x73, 0x70, 0x61, 0x72, 0x6b, + 0x6c, 0x69, 0x6e, 0x67, 0xd83d, 0xdc98, 0x3a, 0x63, 0x75, 0x70, 0x69, 0x64, + 0x3a, 0x63, 0x75, 0x70, 0x69, 0x64, 0xd83d, 0xdc9d, 0x3a, 0x67, 0x69, 0x66, + 0x74, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x3a, 0x67, 0x69, 0x66, 0x74, + 0x68, 0x65, 0x61, 0x72, 0x74, 0xd83d, 0xdc9f, 0x3a, 0x68, 0x65, 0x61, 0x72, + 0x74, 0x5f, 0x64, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x3a, 0x64, 0x65, 0x63, 0x6f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x68, + 0x65, 0x61, 0x72, 0x74, 0x262e, 0xfe0f, 0x3a, 0x70, 0x65, 0x61, 0x63, 0x65, + 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x3a, 0x70, 0x65, 0x61, 0x63, + 0x65, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x262e, 0xfe0f, 0x3a, 0x70, 0x65, + 0x61, 0x63, 0x65, 0x3a, 0x70, 0x65, 0x61, 0x63, 0x65, 0x271d, 0xfe0f, 0x3a, + 0x6c, 0x61, 0x74, 0x69, 0x6e, 0x5f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x3a, + 0x63, 0x72, 0x6f, 0x73, 0x73, 0x6c, 0x61, 0x74, 0x69, 0x6e, 0x271d, 0xfe0f, + 0x3a, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x3a, 0x63, 0x72, 0x6f, 0x73, 0x73, + 0x262a, 0xfe0f, 0x3a, 0x73, 0x74, 0x61, 0x72, 0x5f, 0x61, 0x6e, 0x64, 0x5f, + 0x63, 0x72, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x74, 0x3a, 0x61, 0x6e, 0x64, + 0x63, 0x72, 0x65, 0x73, 0x63, 0x65, 0x6e, 0x74, 0x73, 0x74, 0x61, 0x72, + 0xd83d, 0xdd49, 0x3a, 0x6f, 0x6d, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, + 0x3a, 0x6f, 0x6d, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x2638, 0xfe0f, 0x3a, + 0x77, 0x68, 0x65, 0x65, 0x6c, 0x5f, 0x6f, 0x66, 0x5f, 0x64, 0x68, 0x61, + 0x72, 0x6d, 0x61, 0x3a, 0x64, 0x68, 0x61, 0x72, 0x6d, 0x61, 0x6f, 0x66, + 0x77, 0x68, 0x65, 0x65, 0x6c, 0x2721, 0xfe0f, 0x3a, 0x73, 0x74, 0x61, 0x72, + 0x5f, 0x6f, 0x66, 0x5f, 0x64, 0x61, 0x76, 0x69, 0x64, 0x3a, 0x64, 0x61, + 0x76, 0x69, 0x64, 0x6f, 0x66, 0x73, 0x74, 0x61, 0x72, 0xd83d, 0xdd2f, 0x3a, + 0x73, 0x69, 0x78, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x3a, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x64, + 0x73, 0x69, 0x78, 0x73, 0x74, 0x61, 0x72, 0xd83d, 0xdd4e, 0x3a, 0x6d, 0x65, + 0x6e, 0x6f, 0x72, 0x61, 0x68, 0x3a, 0x6d, 0x65, 0x6e, 0x6f, 0x72, 0x61, + 0x68, 0x262f, 0xfe0f, 0x3a, 0x79, 0x69, 0x6e, 0x5f, 0x79, 0x61, 0x6e, 0x67, + 0x3a, 0x79, 0x61, 0x6e, 0x67, 0x79, 0x69, 0x6e, 0x2626, 0xfe0f, 0x3a, 0x6f, + 0x72, 0x74, 0x68, 0x6f, 0x64, 0x6f, 0x78, 0x5f, 0x63, 0x72, 0x6f, 0x73, + 0x73, 0x3a, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x6f, 0x72, 0x74, 0x68, 0x6f, + 0x64, 0x6f, 0x78, 0xd83d, 0xded0, 0x3a, 0x77, 0x6f, 0x72, 0x73, 0x68, 0x69, + 0x70, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x3a, 0x73, 0x79, 0x6d, + 0x62, 0x6f, 0x6c, 0x77, 0x6f, 0x72, 0x73, 0x68, 0x69, 0x70, 0xd83d, 0xded0, + 0x3a, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x5f, 0x6f, 0x66, 0x5f, 0x77, 0x6f, + 0x72, 0x73, 0x68, 0x69, 0x70, 0x3a, 0x6f, 0x66, 0x70, 0x6c, 0x61, 0x63, + 0x65, 0x77, 0x6f, 0x72, 0x73, 0x68, 0x69, 0x70, 0x26ce, 0x3a, 0x6f, 0x70, + 0x68, 0x69, 0x75, 0x63, 0x68, 0x75, 0x73, 0x3a, 0x6f, 0x70, 0x68, 0x69, + 0x75, 0x63, 0x68, 0x75, 0x73, 0x2648, 0xfe0f, 0x3a, 0x61, 0x72, 0x69, 0x65, + 0x73, 0x3a, 0x61, 0x72, 0x69, 0x65, 0x73, 0x2649, 0xfe0f, 0x3a, 0x74, 0x61, + 0x75, 0x72, 0x75, 0x73, 0x3a, 0x74, 0x61, 0x75, 0x72, 0x75, 0x73, 0x264a, + 0xfe0f, 0x3a, 0x67, 0x65, 0x6d, 0x69, 0x6e, 0x69, 0x3a, 0x67, 0x65, 0x6d, + 0x69, 0x6e, 0x69, 0x264b, 0xfe0f, 0x3a, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x72, + 0x3a, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x72, 0x264c, 0xfe0f, 0x3a, 0x6c, 0x65, + 0x6f, 0x3a, 0x6c, 0x65, 0x6f, 0x264d, 0xfe0f, 0x3a, 0x76, 0x69, 0x72, 0x67, + 0x6f, 0x3a, 0x76, 0x69, 0x72, 0x67, 0x6f, 0x264e, 0xfe0f, 0x3a, 0x6c, 0x69, + 0x62, 0x72, 0x61, 0x3a, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x264f, 0xfe0f, 0x3a, + 0x73, 0x63, 0x6f, 0x72, 0x70, 0x69, 0x75, 0x73, 0x3a, 0x73, 0x63, 0x6f, + 0x72, 0x70, 0x69, 0x75, 0x73, 0x2650, 0xfe0f, 0x3a, 0x73, 0x61, 0x67, 0x69, + 0x74, 0x74, 0x61, 0x72, 0x69, 0x75, 0x73, 0x3a, 0x73, 0x61, 0x67, 0x69, + 0x74, 0x74, 0x61, 0x72, 0x69, 0x75, 0x73, 0x2651, 0xfe0f, 0x3a, 0x63, 0x61, + 0x70, 0x72, 0x69, 0x63, 0x6f, 0x72, 0x6e, 0x3a, 0x63, 0x61, 0x70, 0x72, + 0x69, 0x63, 0x6f, 0x72, 0x6e, 0x2652, 0xfe0f, 0x3a, 0x61, 0x71, 0x75, 0x61, + 0x72, 0x69, 0x75, 0x73, 0x3a, 0x61, 0x71, 0x75, 0x61, 0x72, 0x69, 0x75, + 0x73, 0x2653, 0xfe0f, 0x3a, 0x70, 0x69, 0x73, 0x63, 0x65, 0x73, 0x3a, 0x70, + 0x69, 0x73, 0x63, 0x65, 0x73, 0xd83c, 0xdd94, 0x3a, 0x69, 0x64, 0x3a, 0x69, + 0x64, 0x269b, 0xfe0f, 0x3a, 0x61, 0x74, 0x6f, 0x6d, 0x5f, 0x73, 0x79, 0x6d, + 0x62, 0x6f, 0x6c, 0x3a, 0x61, 0x74, 0x6f, 0x6d, 0x73, 0x79, 0x6d, 0x62, + 0x6f, 0x6c, 0x269b, 0xfe0f, 0x3a, 0x61, 0x74, 0x6f, 0x6d, 0x3a, 0x61, 0x74, + 0x6f, 0x6d, 0xd83c, 0xde51, 0x3a, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x3a, + 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x2622, 0xfe0f, 0x3a, 0x72, 0x61, 0x64, + 0x69, 0x6f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x69, 0x67, + 0x6e, 0x3a, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x61, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x73, 0x69, 0x67, 0x6e, 0x2622, 0xfe0f, 0x3a, 0x72, 0x61, 0x64, 0x69, + 0x6f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x3a, 0x72, 0x61, 0x64, 0x69, + 0x6f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x2623, 0xfe0f, 0x3a, 0x62, 0x69, + 0x6f, 0x68, 0x61, 0x7a, 0x61, 0x72, 0x64, 0x5f, 0x73, 0x69, 0x67, 0x6e, + 0x3a, 0x62, 0x69, 0x6f, 0x68, 0x61, 0x7a, 0x61, 0x72, 0x64, 0x73, 0x69, + 0x67, 0x6e, 0x2623, 0xfe0f, 0x3a, 0x62, 0x69, 0x6f, 0x68, 0x61, 0x7a, 0x61, + 0x72, 0x64, 0x3a, 0x62, 0x69, 0x6f, 0x68, 0x61, 0x7a, 0x61, 0x72, 0x64, + 0xd83d, 0xdcf4, 0x3a, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x68, + 0x6f, 0x6e, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x3a, 0x6d, 0x6f, 0x62, 0x69, + 0x6c, 0x65, 0x6f, 0x66, 0x66, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0xd83d, 0xdcf3, + 0x3a, 0x76, 0x69, 0x62, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x3a, 0x6d, 0x6f, 0x64, 0x65, 0x76, 0x69, 0x62, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0xd83c, 0xde36, 0x3a, 0x75, 0x36, 0x37, 0x30, + 0x39, 0x3a, 0x75, 0x36, 0x37, 0x30, 0x39, 0xd83c, 0xde1a, 0xfe0f, 0x3a, 0x75, + 0x37, 0x31, 0x32, 0x31, 0x3a, 0x75, 0x37, 0x31, 0x32, 0x31, 0xd83c, 0xde38, + 0x3a, 0x75, 0x37, 0x35, 0x33, 0x33, 0x3a, 0x75, 0x37, 0x35, 0x33, 0x33, + 0xd83c, 0xde3a, 0x3a, 0x75, 0x35, 0x35, 0x62, 0x36, 0x3a, 0x75, 0x35, 0x35, + 0x62, 0x36, 0xd83c, 0xde37, 0xfe0f, 0x3a, 0x75, 0x36, 0x37, 0x30, 0x38, 0x3a, + 0x75, 0x36, 0x37, 0x30, 0x38, 0x2734, 0xfe0f, 0x3a, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x6c, + 0x61, 0x63, 0x6b, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x3a, 0x62, 0x6c, 0x61, + 0x63, 0x6b, 0x65, 0x69, 0x67, 0x68, 0x74, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x65, 0x64, 0x73, 0x74, 0x61, 0x72, 0xd83c, 0xdd9a, 0x3a, 0x76, 0x73, 0x3a, + 0x76, 0x73, 0xd83d, 0xdcae, 0x3a, 0x77, 0x68, 0x69, 0x74, 0x65, 0x5f, 0x66, + 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x3a, 0x66, 0x6c, 0x6f, 0x77, 0x65, 0x72, + 0x77, 0x68, 0x69, 0x74, 0x65, 0xd83c, 0xde50, 0x3a, 0x69, 0x64, 0x65, 0x6f, + 0x67, 0x72, 0x61, 0x70, 0x68, 0x5f, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x74, + 0x61, 0x67, 0x65, 0x3a, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x74, 0x61, 0x67, + 0x65, 0x69, 0x64, 0x65, 0x6f, 0x67, 0x72, 0x61, 0x70, 0x68, 0x3299, 0xfe0f, + 0x3a, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x3a, 0x73, 0x65, 0x63, 0x72, + 0x65, 0x74, 0x3297, 0xfe0f, 0x3a, 0x63, 0x6f, 0x6e, 0x67, 0x72, 0x61, 0x74, + 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x63, 0x6f, 0x6e, + 0x67, 0x72, 0x61, 0x74, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0xd83c, 0xde34, 0x3a, 0x75, 0x35, 0x34, 0x30, 0x38, 0x3a, 0x75, 0x35, 0x34, + 0x30, 0x38, 0xd83c, 0xde35, 0x3a, 0x75, 0x36, 0x65, 0x38, 0x30, 0x3a, 0x75, + 0x36, 0x65, 0x38, 0x30, 0xd83c, 0xde39, 0x3a, 0x75, 0x35, 0x32, 0x37, 0x32, + 0x3a, 0x75, 0x35, 0x32, 0x37, 0x32, 0xd83c, 0xde32, 0x3a, 0x75, 0x37, 0x39, + 0x38, 0x31, 0x3a, 0x75, 0x37, 0x39, 0x38, 0x31, 0xd83c, 0xdd70, 0xfe0f, 0x3a, + 0x61, 0x3a, 0x61, 0xd83c, 0xdd71, 0xfe0f, 0x3a, 0x62, 0x3a, 0x62, 0xd83c, 0xdd8e, + 0x3a, 0x61, 0x62, 0x3a, 0x61, 0x62, 0xd83c, 0xdd91, 0x3a, 0x63, 0x6c, 0x3a, + 0x63, 0x6c, 0xd83c, 0xdd7e, 0xfe0f, 0x3a, 0x6f, 0x32, 0x3a, 0x6f, 0x32, 0xd83c, + 0xdd98, 0x3a, 0x73, 0x6f, 0x73, 0x3a, 0x73, 0x6f, 0x73, 0x274c, 0x3a, 0x78, + 0x3a, 0x78, 0x2b55, 0xfe0f, 0x3a, 0x6f, 0x3a, 0x6f, 0xd83d, 0xded1, 0x3a, 0x73, + 0x74, 0x6f, 0x70, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x3a, 0x73, 0x69, 0x67, + 0x6e, 0x73, 0x74, 0x6f, 0x70, 0xd83d, 0xded1, 0x3a, 0x6f, 0x63, 0x74, 0x61, + 0x67, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x3a, 0x6f, + 0x63, 0x74, 0x61, 0x67, 0x6f, 0x6e, 0x61, 0x6c, 0x73, 0x69, 0x67, 0x6e, + 0x26d4, 0xfe0f, 0x3a, 0x6e, 0x6f, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x3a, + 0x65, 0x6e, 0x74, 0x72, 0x79, 0x6e, 0x6f, 0xd83d, 0xdcdb, 0x3a, 0x6e, 0x61, + 0x6d, 0x65, 0x5f, 0x62, 0x61, 0x64, 0x67, 0x65, 0x3a, 0x62, 0x61, 0x64, + 0x67, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0xd83d, 0xdeab, 0x3a, 0x6e, 0x6f, 0x5f, + 0x65, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x3a, 0x65, + 0x6e, 0x74, 0x72, 0x79, 0x6e, 0x6f, 0x73, 0x69, 0x67, 0x6e, 0xd83d, 0xdcaf, + 0x3a, 0x31, 0x30, 0x30, 0x3a, 0x31, 0x30, 0x30, 0xd83d, 0xdca2, 0x3a, 0x61, + 0x6e, 0x67, 0x65, 0x72, 0x3a, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x2668, 0xfe0f, + 0x3a, 0x68, 0x6f, 0x74, 0x73, 0x70, 0x72, 0x69, 0x6e, 0x67, 0x73, 0x3a, + 0x68, 0x6f, 0x74, 0x73, 0x70, 0x72, 0x69, 0x6e, 0x67, 0x73, 0xd83d, 0xdeb7, + 0x3a, 0x6e, 0x6f, 0x5f, 0x70, 0x65, 0x64, 0x65, 0x73, 0x74, 0x72, 0x69, + 0x61, 0x6e, 0x73, 0x3a, 0x6e, 0x6f, 0x70, 0x65, 0x64, 0x65, 0x73, 0x74, + 0x72, 0x69, 0x61, 0x6e, 0x73, 0xd83d, 0xdeaf, 0x3a, 0x64, 0x6f, 0x5f, 0x6e, + 0x6f, 0x74, 0x5f, 0x6c, 0x69, 0x74, 0x74, 0x65, 0x72, 0x3a, 0x64, 0x6f, + 0x6c, 0x69, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x6f, 0x74, 0xd83d, 0xdeb3, 0x3a, + 0x6e, 0x6f, 0x5f, 0x62, 0x69, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x73, 0x3a, + 0x62, 0x69, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x73, 0x6e, 0x6f, 0xd83d, 0xdeb1, + 0x3a, 0x6e, 0x6f, 0x6e, 0x2d, 0x70, 0x6f, 0x74, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72, 0x3a, 0x6e, 0x6f, 0x6e, 0x70, 0x6f, + 0x74, 0x61, 0x62, 0x6c, 0x65, 0x77, 0x61, 0x74, 0x65, 0x72, 0xd83d, 0xdd1e, + 0x3a, 0x75, 0x6e, 0x64, 0x65, 0x72, 0x61, 0x67, 0x65, 0x3a, 0x75, 0x6e, + 0x64, 0x65, 0x72, 0x61, 0x67, 0x65, 0xd83d, 0xdcf5, 0x3a, 0x6e, 0x6f, 0x5f, + 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x5f, 0x70, 0x68, 0x6f, 0x6e, 0x65, + 0x73, 0x3a, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x6e, 0x6f, 0x70, 0x68, + 0x6f, 0x6e, 0x65, 0x73, 0xd83d, 0xdead, 0x3a, 0x6e, 0x6f, 0x5f, 0x73, 0x6d, + 0x6f, 0x6b, 0x69, 0x6e, 0x67, 0x3a, 0x6e, 0x6f, 0x73, 0x6d, 0x6f, 0x6b, + 0x69, 0x6e, 0x67, 0x2757, 0xfe0f, 0x3a, 0x65, 0x78, 0x63, 0x6c, 0x61, 0x6d, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x65, 0x78, 0x63, 0x6c, 0x61, 0x6d, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2755, 0x3a, 0x67, 0x72, 0x65, 0x79, 0x5f, + 0x65, 0x78, 0x63, 0x6c, 0x61, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, + 0x65, 0x78, 0x63, 0x6c, 0x61, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x67, + 0x72, 0x65, 0x79, 0x2753, 0x3a, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, + 0x6e, 0x3a, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x2754, 0x3a, + 0x67, 0x72, 0x65, 0x79, 0x5f, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, + 0x6e, 0x3a, 0x67, 0x72, 0x65, 0x79, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, + 0x6f, 0x6e, 0x203c, 0xfe0f, 0x3a, 0x62, 0x61, 0x6e, 0x67, 0x62, 0x61, 0x6e, + 0x67, 0x3a, 0x62, 0x61, 0x6e, 0x67, 0x62, 0x61, 0x6e, 0x67, 0x2049, 0xfe0f, + 0x3a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x6f, 0x62, 0x61, 0x6e, 0x67, + 0x3a, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x72, 0x6f, 0x62, 0x61, 0x6e, 0x67, + 0xd83d, 0xdd05, 0x3a, 0x6c, 0x6f, 0x77, 0x5f, 0x62, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x6e, 0x65, 0x73, 0x73, 0x3a, 0x62, 0x72, 0x69, 0x67, 0x68, 0x74, + 0x6e, 0x65, 0x73, 0x73, 0x6c, 0x6f, 0x77, 0xd83d, 0xdd06, 0x3a, 0x68, 0x69, + 0x67, 0x68, 0x5f, 0x62, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, + 0x73, 0x3a, 0x62, 0x72, 0x69, 0x67, 0x68, 0x74, 0x6e, 0x65, 0x73, 0x73, + 0x68, 0x69, 0x67, 0x68, 0x303d, 0xfe0f, 0x3a, 0x70, 0x61, 0x72, 0x74, 0x5f, + 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x6d, 0x61, 0x72, 0x6b, 0x3a, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x6d, 0x61, 0x72, 0x6b, 0x70, 0x61, 0x72, 0x74, + 0x26a0, 0xfe0f, 0x3a, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x3a, 0x77, + 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0xd83d, 0xdeb8, 0x3a, 0x63, 0x68, 0x69, + 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x5f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x69, + 0x6e, 0x67, 0x3a, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x72, 0x65, 0x6e, 0x63, + 0x72, 0x6f, 0x73, 0x73, 0x69, 0x6e, 0x67, 0xd83d, 0xdd31, 0x3a, 0x74, 0x72, + 0x69, 0x64, 0x65, 0x6e, 0x74, 0x3a, 0x74, 0x72, 0x69, 0x64, 0x65, 0x6e, + 0x74, 0x269c, 0xfe0f, 0x3a, 0x66, 0x6c, 0x65, 0x75, 0x72, 0x2d, 0x64, 0x65, + 0x2d, 0x6c, 0x69, 0x73, 0x3a, 0x64, 0x65, 0x66, 0x6c, 0x65, 0x75, 0x72, + 0x6c, 0x69, 0x73, 0xd83d, 0xdd30, 0x3a, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x6e, + 0x65, 0x72, 0x3a, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x267b, + 0xfe0f, 0x3a, 0x72, 0x65, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x3a, 0x72, 0x65, + 0x63, 0x79, 0x63, 0x6c, 0x65, 0x2705, 0x3a, 0x77, 0x68, 0x69, 0x74, 0x65, + 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x3a, + 0x63, 0x68, 0x65, 0x63, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x77, 0x68, 0x69, + 0x74, 0x65, 0xd83c, 0xde2f, 0xfe0f, 0x3a, 0x75, 0x36, 0x33, 0x30, 0x37, 0x3a, + 0x75, 0x36, 0x33, 0x30, 0x37, 0xd83d, 0xdcb9, 0x3a, 0x63, 0x68, 0x61, 0x72, + 0x74, 0x3a, 0x63, 0x68, 0x61, 0x72, 0x74, 0x2747, 0xfe0f, 0x3a, 0x73, 0x70, + 0x61, 0x72, 0x6b, 0x6c, 0x65, 0x3a, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x6c, + 0x65, 0x2733, 0xfe0f, 0x3a, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x73, 0x70, + 0x6f, 0x6b, 0x65, 0x64, 0x5f, 0x61, 0x73, 0x74, 0x65, 0x72, 0x69, 0x73, + 0x6b, 0x3a, 0x61, 0x73, 0x74, 0x65, 0x72, 0x69, 0x73, 0x6b, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x73, 0x70, 0x6f, 0x6b, 0x65, 0x64, 0x274e, 0x3a, 0x6e, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x73, 0x71, 0x75, 0x61, + 0x72, 0x65, 0x64, 0x5f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x5f, 0x6d, 0x61, + 0x72, 0x6b, 0x3a, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x6d, 0x61, 0x72, 0x6b, + 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x73, 0x71, 0x75, 0x61, + 0x72, 0x65, 0x64, 0xd83c, 0xdf10, 0x3a, 0x67, 0x6c, 0x6f, 0x62, 0x65, 0x5f, + 0x77, 0x69, 0x74, 0x68, 0x5f, 0x6d, 0x65, 0x72, 0x69, 0x64, 0x69, 0x61, + 0x6e, 0x73, 0x3a, 0x67, 0x6c, 0x6f, 0x62, 0x65, 0x6d, 0x65, 0x72, 0x69, + 0x64, 0x69, 0x61, 0x6e, 0x73, 0x77, 0x69, 0x74, 0x68, 0xd83d, 0xdca0, 0x3a, + 0x64, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x5f, 0x73, 0x68, 0x61, 0x70, + 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x61, 0x5f, 0x64, 0x6f, 0x74, + 0x5f, 0x69, 0x6e, 0x73, 0x69, 0x64, 0x65, 0x3a, 0x61, 0x64, 0x69, 0x61, + 0x6d, 0x6f, 0x6e, 0x64, 0x64, 0x6f, 0x74, 0x69, 0x6e, 0x73, 0x69, 0x64, + 0x65, 0x73, 0x68, 0x61, 0x70, 0x65, 0x77, 0x69, 0x74, 0x68, 0x24c2, 0xfe0f, + 0x3a, 0x6d, 0x3a, 0x6d, 0xd83c, 0xdf00, 0x3a, 0x63, 0x79, 0x63, 0x6c, 0x6f, + 0x6e, 0x65, 0x3a, 0x63, 0x79, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0xd83d, 0xdca4, + 0x3a, 0x7a, 0x7a, 0x7a, 0x3a, 0x7a, 0x7a, 0x7a, 0xd83c, 0xdfe7, 0x3a, 0x61, + 0x74, 0x6d, 0x3a, 0x61, 0x74, 0x6d, 0xd83d, 0xdebe, 0x3a, 0x77, 0x63, 0x3a, + 0x77, 0x63, 0x267f, 0xfe0f, 0x3a, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x63, 0x68, + 0x61, 0x69, 0x72, 0x3a, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x63, 0x68, 0x61, + 0x69, 0x72, 0xd83c, 0xdd7f, 0xfe0f, 0x3a, 0x70, 0x61, 0x72, 0x6b, 0x69, 0x6e, + 0x67, 0x3a, 0x70, 0x61, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0xd83c, 0xde33, 0x3a, + 0x75, 0x37, 0x61, 0x37, 0x61, 0x3a, 0x75, 0x37, 0x61, 0x37, 0x61, 0xd83c, + 0xde02, 0xfe0f, 0x3a, 0x73, 0x61, 0x3a, 0x73, 0x61, 0xd83d, 0xdec2, 0x3a, 0x70, + 0x61, 0x73, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x3a, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x70, + 0x61, 0x73, 0x73, 0x70, 0x6f, 0x72, 0x74, 0xd83d, 0xdec3, 0x3a, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x73, 0x3a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x73, 0xd83d, 0xdec4, 0x3a, 0x62, 0x61, 0x67, 0x67, 0x61, 0x67, 0x65, 0x5f, + 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x3a, 0x62, 0x61, 0x67, 0x67, 0x61, 0x67, + 0x65, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0xd83d, 0xdec5, 0x3a, 0x6c, 0x65, 0x66, + 0x74, 0x5f, 0x6c, 0x75, 0x67, 0x67, 0x61, 0x67, 0x65, 0x3a, 0x6c, 0x65, + 0x66, 0x74, 0x6c, 0x75, 0x67, 0x67, 0x61, 0x67, 0x65, 0xd83d, 0xdeb9, 0x3a, + 0x6d, 0x65, 0x6e, 0x73, 0x3a, 0x6d, 0x65, 0x6e, 0x73, 0xd83d, 0xdeba, 0x3a, + 0x77, 0x6f, 0x6d, 0x65, 0x6e, 0x73, 0x3a, 0x77, 0x6f, 0x6d, 0x65, 0x6e, + 0x73, 0xd83d, 0xdebc, 0x3a, 0x62, 0x61, 0x62, 0x79, 0x5f, 0x73, 0x79, 0x6d, + 0x62, 0x6f, 0x6c, 0x3a, 0x62, 0x61, 0x62, 0x79, 0x73, 0x79, 0x6d, 0x62, + 0x6f, 0x6c, 0xd83d, 0xdebb, 0x3a, 0x72, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x6f, + 0x6d, 0x3a, 0x72, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x6f, 0x6d, 0xd83d, 0xdeae, + 0x3a, 0x70, 0x75, 0x74, 0x5f, 0x6c, 0x69, 0x74, 0x74, 0x65, 0x72, 0x5f, + 0x69, 0x6e, 0x5f, 0x69, 0x74, 0x73, 0x5f, 0x70, 0x6c, 0x61, 0x63, 0x65, + 0x3a, 0x69, 0x6e, 0x69, 0x74, 0x73, 0x6c, 0x69, 0x74, 0x74, 0x65, 0x72, + 0x70, 0x6c, 0x61, 0x63, 0x65, 0x70, 0x75, 0x74, 0xd83c, 0xdfa6, 0x3a, 0x63, + 0x69, 0x6e, 0x65, 0x6d, 0x61, 0x3a, 0x63, 0x69, 0x6e, 0x65, 0x6d, 0x61, + 0xd83d, 0xdcf6, 0x3a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x74, + 0x72, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x3a, 0x73, 0x69, 0x67, 0x6e, 0x61, + 0x6c, 0x73, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x74, 0x68, 0xd83c, 0xde01, 0x3a, + 0x6b, 0x6f, 0x6b, 0x6f, 0x3a, 0x6b, 0x6f, 0x6b, 0x6f, 0xd83d, 0xdd23, 0x3a, + 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x73, 0x3a, 0x73, 0x79, 0x6d, 0x62, + 0x6f, 0x6c, 0x73, 0x2139, 0xfe0f, 0x3a, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x3a, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0xd83d, 0xdd24, 0x3a, 0x61, 0x62, 0x63, + 0x3a, 0x61, 0x62, 0x63, 0xd83d, 0xdd21, 0x3a, 0x61, 0x62, 0x63, 0x64, 0x3a, + 0x61, 0x62, 0x63, 0x64, 0xd83d, 0xdd20, 0x3a, 0x63, 0x61, 0x70, 0x69, 0x74, + 0x61, 0x6c, 0x5f, 0x61, 0x62, 0x63, 0x64, 0x3a, 0x61, 0x62, 0x63, 0x64, + 0x63, 0x61, 0x70, 0x69, 0x74, 0x61, 0x6c, 0xd83c, 0xdd96, 0x3a, 0x6e, 0x67, + 0x3a, 0x6e, 0x67, 0xd83c, 0xdd97, 0x3a, 0x6f, 0x6b, 0x3a, 0x6f, 0x6b, 0xd83c, + 0xdd99, 0x3a, 0x75, 0x70, 0x3a, 0x75, 0x70, 0xd83c, 0xdd92, 0x3a, 0x63, 0x6f, + 0x6f, 0x6c, 0x3a, 0x63, 0x6f, 0x6f, 0x6c, 0xd83c, 0xdd95, 0x3a, 0x6e, 0x65, + 0x77, 0x3a, 0x6e, 0x65, 0x77, 0xd83c, 0xdd93, 0x3a, 0x66, 0x72, 0x65, 0x65, + 0x3a, 0x66, 0x72, 0x65, 0x65, 0x30, 0xfe0f, 0x20e3, 0x3a, 0x7a, 0x65, 0x72, + 0x6f, 0x3a, 0x7a, 0x65, 0x72, 0x6f, 0x31, 0xfe0f, 0x20e3, 0x3a, 0x6f, 0x6e, + 0x65, 0x3a, 0x6f, 0x6e, 0x65, 0x32, 0xfe0f, 0x20e3, 0x3a, 0x74, 0x77, 0x6f, + 0x3a, 0x74, 0x77, 0x6f, 0x33, 0xfe0f, 0x20e3, 0x3a, 0x74, 0x68, 0x72, 0x65, + 0x65, 0x3a, 0x74, 0x68, 0x72, 0x65, 0x65, 0x34, 0xfe0f, 0x20e3, 0x3a, 0x66, + 0x6f, 0x75, 0x72, 0x3a, 0x66, 0x6f, 0x75, 0x72, 0x35, 0xfe0f, 0x20e3, 0x3a, + 0x66, 0x69, 0x76, 0x65, 0x3a, 0x66, 0x69, 0x76, 0x65, 0x36, 0xfe0f, 0x20e3, + 0x3a, 0x73, 0x69, 0x78, 0x3a, 0x73, 0x69, 0x78, 0x37, 0xfe0f, 0x20e3, 0x3a, + 0x73, 0x65, 0x76, 0x65, 0x6e, 0x3a, 0x73, 0x65, 0x76, 0x65, 0x6e, 0x38, + 0xfe0f, 0x20e3, 0x3a, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x39, 0xfe0f, 0x20e3, 0x3a, 0x6e, 0x69, 0x6e, 0x65, 0x3a, 0x6e, + 0x69, 0x6e, 0x65, 0xd83d, 0xdd1f, 0x3a, 0x6b, 0x65, 0x79, 0x63, 0x61, 0x70, + 0x5f, 0x74, 0x65, 0x6e, 0x3a, 0x6b, 0x65, 0x79, 0x63, 0x61, 0x70, 0x74, + 0x65, 0x6e, 0xd83d, 0xdd22, 0x3a, 0x31, 0x32, 0x33, 0x34, 0x3a, 0x31, 0x32, + 0x33, 0x34, 0x23, 0xfe0f, 0x20e3, 0x3a, 0x68, 0x61, 0x73, 0x68, 0x3a, 0x68, + 0x61, 0x73, 0x68, 0x2a, 0xfe0f, 0x20e3, 0x3a, 0x6b, 0x65, 0x79, 0x63, 0x61, + 0x70, 0x5f, 0x61, 0x73, 0x74, 0x65, 0x72, 0x69, 0x73, 0x6b, 0x3a, 0x61, + 0x73, 0x74, 0x65, 0x72, 0x69, 0x73, 0x6b, 0x6b, 0x65, 0x79, 0x63, 0x61, + 0x70, 0x2a, 0xfe0f, 0x20e3, 0x3a, 0x61, 0x73, 0x74, 0x65, 0x72, 0x69, 0x73, + 0x6b, 0x3a, 0x61, 0x73, 0x74, 0x65, 0x72, 0x69, 0x73, 0x6b, 0x23cf, 0xfe0f, + 0x3a, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x73, 0x79, 0x6d, 0x62, 0x6f, + 0x6c, 0x3a, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x79, 0x6d, 0x62, 0x6f, + 0x6c, 0x23cf, 0xfe0f, 0x3a, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x3a, 0x65, 0x6a, + 0x65, 0x63, 0x74, 0x25b6, 0xfe0f, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, + 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x3a, 0x61, 0x72, 0x72, 0x6f, + 0x77, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x23f8, 0x3a, 0x64, 0x6f, + 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, + 0x6c, 0x5f, 0x62, 0x61, 0x72, 0x3a, 0x62, 0x61, 0x72, 0x64, 0x6f, 0x75, + 0x62, 0x6c, 0x65, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x23f8, + 0x3a, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f, + 0x6e, 0x3a, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x70, 0x61, 0x75, 0x73, + 0x65, 0x23ef, 0x3a, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x70, 0x61, 0x75, 0x73, + 0x65, 0x3a, 0x70, 0x61, 0x75, 0x73, 0x65, 0x70, 0x6c, 0x61, 0x79, 0x23f9, + 0x3a, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, + 0x3a, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x74, 0x6f, 0x70, 0x23fa, + 0x3a, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x62, 0x75, 0x74, 0x74, + 0x6f, 0x6e, 0x3a, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x72, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x23ed, 0x3a, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x74, 0x72, + 0x61, 0x63, 0x6b, 0x3a, 0x6e, 0x65, 0x78, 0x74, 0x74, 0x72, 0x61, 0x63, + 0x6b, 0x23ed, 0x3a, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x65, 0x78, + 0x74, 0x3a, 0x6e, 0x65, 0x78, 0x74, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x23ee, + 0x3a, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x74, 0x72, + 0x61, 0x63, 0x6b, 0x3a, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, + 0x74, 0x72, 0x61, 0x63, 0x6b, 0x23ee, 0x3a, 0x74, 0x72, 0x61, 0x63, 0x6b, + 0x5f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x3a, 0x70, 0x72, + 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x23e9, + 0x3a, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, + 0x64, 0x3a, 0x66, 0x61, 0x73, 0x74, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, + 0x64, 0x23ea, 0x3a, 0x72, 0x65, 0x77, 0x69, 0x6e, 0x64, 0x3a, 0x72, 0x65, + 0x77, 0x69, 0x6e, 0x64, 0x23eb, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, + 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x75, 0x70, 0x3a, 0x61, 0x72, + 0x72, 0x6f, 0x77, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x75, 0x70, 0x23ec, + 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, + 0x65, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, + 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x64, 0x6f, 0x77, 0x6e, 0x25c0, 0xfe0f, + 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x77, + 0x61, 0x72, 0x64, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x62, 0x61, 0x63, + 0x6b, 0x77, 0x61, 0x72, 0x64, 0xd83d, 0xdd3c, 0x3a, 0x61, 0x72, 0x72, 0x6f, + 0x77, 0x5f, 0x75, 0x70, 0x5f, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x3a, 0x61, + 0x72, 0x72, 0x6f, 0x77, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x75, 0x70, 0xd83d, + 0xdd3d, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, 0x64, 0x6f, 0x77, 0x6e, + 0x5f, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, + 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x27a1, 0xfe0f, 0x3a, + 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, + 0x61, 0x72, 0x72, 0x6f, 0x77, 0x72, 0x69, 0x67, 0x68, 0x74, 0x2b05, 0xfe0f, + 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x3a, + 0x61, 0x72, 0x72, 0x6f, 0x77, 0x6c, 0x65, 0x66, 0x74, 0x2b06, 0xfe0f, 0x3a, + 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, 0x75, 0x70, 0x3a, 0x61, 0x72, 0x72, + 0x6f, 0x77, 0x75, 0x70, 0x2b07, 0xfe0f, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, + 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x64, + 0x6f, 0x77, 0x6e, 0x2197, 0xfe0f, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, + 0x75, 0x70, 0x70, 0x65, 0x72, 0x5f, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, + 0x61, 0x72, 0x72, 0x6f, 0x77, 0x72, 0x69, 0x67, 0x68, 0x74, 0x75, 0x70, + 0x70, 0x65, 0x72, 0x2198, 0xfe0f, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, + 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, + 0x61, 0x72, 0x72, 0x6f, 0x77, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x2199, 0xfe0f, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, + 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x61, + 0x72, 0x72, 0x6f, 0x77, 0x6c, 0x65, 0x66, 0x74, 0x6c, 0x6f, 0x77, 0x65, + 0x72, 0x2196, 0xfe0f, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, 0x75, 0x70, + 0x70, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x61, 0x72, 0x72, + 0x6f, 0x77, 0x6c, 0x65, 0x66, 0x74, 0x75, 0x70, 0x70, 0x65, 0x72, 0x2195, + 0xfe0f, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, 0x75, 0x70, 0x5f, 0x64, + 0x6f, 0x77, 0x6e, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x64, 0x6f, 0x77, + 0x6e, 0x75, 0x70, 0x2194, 0xfe0f, 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x5f, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x3a, 0x61, + 0x72, 0x72, 0x6f, 0x77, 0x6c, 0x65, 0x66, 0x74, 0x72, 0x69, 0x67, 0x68, + 0x74, 0x21aa, 0xfe0f, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x5f, 0x68, 0x6f, 0x6f, 0x6b, 0x3a, 0x61, 0x72, 0x72, + 0x6f, 0x77, 0x68, 0x6f, 0x6f, 0x6b, 0x72, 0x69, 0x67, 0x68, 0x74, 0x21a9, + 0xfe0f, 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x77, 0x61, 0x72, 0x64, 0x73, 0x5f, + 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x68, + 0x6f, 0x6f, 0x6b, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x68, 0x6f, 0x6f, + 0x6b, 0x6c, 0x65, 0x66, 0x74, 0x77, 0x61, 0x72, 0x64, 0x73, 0x77, 0x69, + 0x74, 0x68, 0x2934, 0xfe0f, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, 0x68, + 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x70, 0x3a, 0x61, 0x72, + 0x72, 0x6f, 0x77, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x75, 0x70, + 0x2935, 0xfe0f, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x5f, 0x68, 0x65, 0x61, + 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x3a, 0x61, 0x72, + 0x72, 0x6f, 0x77, 0x64, 0x6f, 0x77, 0x6e, 0x68, 0x65, 0x61, 0x64, 0x69, + 0x6e, 0x67, 0xd83d, 0xdd00, 0x3a, 0x74, 0x77, 0x69, 0x73, 0x74, 0x65, 0x64, + 0x5f, 0x72, 0x69, 0x67, 0x68, 0x74, 0x77, 0x61, 0x72, 0x64, 0x73, 0x5f, + 0x61, 0x72, 0x72, 0x6f, 0x77, 0x73, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, + 0x73, 0x72, 0x69, 0x67, 0x68, 0x74, 0x77, 0x61, 0x72, 0x64, 0x73, 0x74, + 0x77, 0x69, 0x73, 0x74, 0x65, 0x64, 0xd83d, 0xdd01, 0x3a, 0x72, 0x65, 0x70, + 0x65, 0x61, 0x74, 0x3a, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0xd83d, 0xdd02, + 0x3a, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x5f, 0x6f, 0x6e, 0x65, 0x3a, + 0x6f, 0x6e, 0x65, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0xd83d, 0xdd04, 0x3a, + 0x61, 0x72, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x77, 0x69, 0x73, 0x65, 0x3a, + 0x61, 0x72, 0x72, 0x6f, 0x77, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x77, 0x69, 0x73, 0x65, 0xd83d, 0xdd03, + 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x63, 0x6c, 0x6f, 0x63, + 0x6b, 0x77, 0x69, 0x73, 0x65, 0x3a, 0x61, 0x72, 0x72, 0x6f, 0x77, 0x73, + 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x77, 0x69, 0x73, 0x65, 0xd83c, 0xdfb5, 0x3a, + 0x6d, 0x75, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x6e, 0x6f, 0x74, 0x65, + 0x3a, 0x6d, 0x75, 0x73, 0x69, 0x63, 0x61, 0x6c, 0x6e, 0x6f, 0x74, 0x65, + 0xd83c, 0xdfb6, 0x3a, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x3a, 0x6e, 0x6f, 0x74, + 0x65, 0x73, 0x2795, 0x3a, 0x68, 0x65, 0x61, 0x76, 0x79, 0x5f, 0x70, 0x6c, + 0x75, 0x73, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x3a, 0x68, 0x65, 0x61, 0x76, + 0x79, 0x70, 0x6c, 0x75, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x2796, 0x3a, 0x68, + 0x65, 0x61, 0x76, 0x79, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x73, 0x5f, 0x73, + 0x69, 0x67, 0x6e, 0x3a, 0x68, 0x65, 0x61, 0x76, 0x79, 0x6d, 0x69, 0x6e, + 0x75, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x2797, 0x3a, 0x68, 0x65, 0x61, 0x76, + 0x79, 0x5f, 0x64, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, + 0x69, 0x67, 0x6e, 0x3a, 0x64, 0x69, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x68, 0x65, 0x61, 0x76, 0x79, 0x73, 0x69, 0x67, 0x6e, 0x2716, 0xfe0f, 0x3a, + 0x68, 0x65, 0x61, 0x76, 0x79, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x78, 0x3a, 0x68, + 0x65, 0x61, 0x76, 0x79, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x78, 0xd83d, 0xdcb2, 0x3a, 0x68, 0x65, + 0x61, 0x76, 0x79, 0x5f, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x5f, 0x73, + 0x69, 0x67, 0x6e, 0x3a, 0x64, 0x6f, 0x6c, 0x6c, 0x61, 0x72, 0x68, 0x65, + 0x61, 0x76, 0x79, 0x73, 0x69, 0x67, 0x6e, 0xd83d, 0xdcb1, 0x3a, 0x63, 0x75, + 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x65, 0x78, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x3a, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, + 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2122, 0xfe0f, 0x3a, 0x74, + 0x6d, 0x3a, 0x74, 0x6d, 0xa9, 0xfe0f, 0x3a, 0x63, 0x6f, 0x70, 0x79, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x3a, 0x63, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, + 0x68, 0x74, 0xae, 0xfe0f, 0x3a, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, + 0x72, 0x65, 0x64, 0x3a, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, + 0x65, 0x64, 0xd83d, 0xdde8, 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x73, 0x70, + 0x65, 0x65, 0x63, 0x68, 0x5f, 0x62, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x3a, + 0x62, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x6c, 0x65, 0x66, 0x74, 0x73, 0x70, + 0x65, 0x65, 0x63, 0x68, 0xd83d, 0xdde8, 0x3a, 0x73, 0x70, 0x65, 0x65, 0x63, + 0x68, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x3a, 0x6c, 0x65, 0x66, 0x74, 0x73, + 0x70, 0x65, 0x65, 0x63, 0x68, 0xd83d, 0xdc41, 0x200d, 0xd83d, 0xdde8, 0x3a, 0x65, + 0x79, 0x65, 0x5f, 0x69, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, + 0x5f, 0x62, 0x75, 0x62, 0x62, 0x6c, 0x65, 0x3a, 0x62, 0x75, 0x62, 0x62, + 0x6c, 0x65, 0x65, 0x79, 0x65, 0x69, 0x6e, 0x73, 0x70, 0x65, 0x65, 0x63, + 0x68, 0xd83d, 0xdd1a, 0x3a, 0x65, 0x6e, 0x64, 0x3a, 0x65, 0x6e, 0x64, 0xd83d, + 0xdd19, 0x3a, 0x62, 0x61, 0x63, 0x6b, 0x3a, 0x62, 0x61, 0x63, 0x6b, 0xd83d, + 0xdd1b, 0x3a, 0x6f, 0x6e, 0x3a, 0x6f, 0x6e, 0xd83d, 0xdd1d, 0x3a, 0x74, 0x6f, + 0x70, 0x3a, 0x74, 0x6f, 0x70, 0xd83d, 0xdd1c, 0x3a, 0x73, 0x6f, 0x6f, 0x6e, + 0x3a, 0x73, 0x6f, 0x6f, 0x6e, 0x3030, 0xfe0f, 0x3a, 0x77, 0x61, 0x76, 0x79, + 0x5f, 0x64, 0x61, 0x73, 0x68, 0x3a, 0x64, 0x61, 0x73, 0x68, 0x77, 0x61, + 0x76, 0x79, 0x27b0, 0x3a, 0x63, 0x75, 0x72, 0x6c, 0x79, 0x5f, 0x6c, 0x6f, + 0x6f, 0x70, 0x3a, 0x63, 0x75, 0x72, 0x6c, 0x79, 0x6c, 0x6f, 0x6f, 0x70, + 0x27bf, 0x3a, 0x6c, 0x6f, 0x6f, 0x70, 0x3a, 0x6c, 0x6f, 0x6f, 0x70, 0x2714, + 0xfe0f, 0x3a, 0x68, 0x65, 0x61, 0x76, 0x79, 0x5f, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x5f, 0x6d, 0x61, 0x72, 0x6b, 0x3a, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x68, 0x65, 0x61, 0x76, 0x79, 0x6d, 0x61, 0x72, 0x6b, 0x2611, 0xfe0f, 0x3a, + 0x62, 0x61, 0x6c, 0x6c, 0x6f, 0x74, 0x5f, 0x62, 0x6f, 0x78, 0x5f, 0x77, + 0x69, 0x74, 0x68, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x3a, 0x62, 0x61, + 0x6c, 0x6c, 0x6f, 0x74, 0x62, 0x6f, 0x78, 0x63, 0x68, 0x65, 0x63, 0x6b, + 0x77, 0x69, 0x74, 0x68, 0xd83d, 0xdd18, 0x3a, 0x72, 0x61, 0x64, 0x69, 0x6f, + 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3a, 0x62, 0x75, 0x74, 0x74, + 0x6f, 0x6e, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x26aa, 0xfe0f, 0x3a, 0x77, 0x68, + 0x69, 0x74, 0x65, 0x5f, 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x3a, 0x63, + 0x69, 0x72, 0x63, 0x6c, 0x65, 0x77, 0x68, 0x69, 0x74, 0x65, 0x26ab, 0xfe0f, + 0x3a, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x5f, 0x63, 0x69, 0x72, 0x63, 0x6c, + 0x65, 0x3a, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x63, 0x69, 0x72, 0x63, 0x6c, + 0x65, 0xd83d, 0xdd34, 0x3a, 0x72, 0x65, 0x64, 0x5f, 0x63, 0x69, 0x72, 0x63, + 0x6c, 0x65, 0x3a, 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x72, 0x65, 0x64, + 0xd83d, 0xdd35, 0x3a, 0x62, 0x6c, 0x75, 0x65, 0x5f, 0x63, 0x69, 0x72, 0x63, + 0x6c, 0x65, 0x3a, 0x62, 0x6c, 0x75, 0x65, 0x63, 0x69, 0x72, 0x63, 0x6c, + 0x65, 0xd83d, 0xdd3a, 0x3a, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x5f, 0x72, 0x65, + 0x64, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x3a, 0x72, + 0x65, 0x64, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x74, 0x72, 0x69, 0x61, 0x6e, + 0x67, 0x6c, 0x65, 0xd83d, 0xdd3b, 0x3a, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x5f, + 0x72, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6e, 0x67, 0x6c, 0x65, + 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x3a, 0x64, 0x6f, 0x77, 0x6e, 0x72, 0x65, + 0x64, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x74, 0x72, 0x69, 0x61, 0x6e, 0x67, + 0x6c, 0x65, 0xd83d, 0xdd38, 0x3a, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x5f, 0x6f, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x6f, 0x6e, + 0x64, 0x3a, 0x64, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x6f, 0x72, 0x61, + 0x6e, 0x67, 0x65, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0xd83d, 0xdd39, 0x3a, 0x73, + 0x6d, 0x61, 0x6c, 0x6c, 0x5f, 0x62, 0x6c, 0x75, 0x65, 0x5f, 0x64, 0x69, + 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x3a, 0x62, 0x6c, 0x75, 0x65, 0x64, 0x69, + 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0xd83d, 0xdd36, + 0x3a, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x5f, 0x6f, 0x72, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x3a, 0x64, 0x69, + 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x6f, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0xd83d, 0xdd37, 0x3a, 0x6c, 0x61, 0x72, 0x67, 0x65, + 0x5f, 0x62, 0x6c, 0x75, 0x65, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x6f, 0x6e, + 0x64, 0x3a, 0x62, 0x6c, 0x75, 0x65, 0x64, 0x69, 0x61, 0x6d, 0x6f, 0x6e, + 0x64, 0x6c, 0x61, 0x72, 0x67, 0x65, 0xd83d, 0xdd33, 0x3a, 0x77, 0x68, 0x69, + 0x74, 0x65, 0x5f, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x5f, 0x62, 0x75, + 0x74, 0x74, 0x6f, 0x6e, 0x3a, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, + 0x71, 0x75, 0x61, 0x72, 0x65, 0x77, 0x68, 0x69, 0x74, 0x65, 0xd83d, 0xdd32, + 0x3a, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x5f, 0x73, 0x71, 0x75, 0x61, 0x72, + 0x65, 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x3a, 0x62, 0x6c, 0x61, + 0x63, 0x6b, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x71, 0x75, 0x61, + 0x72, 0x65, 0x25aa, 0xfe0f, 0x3a, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x5f, 0x73, + 0x6d, 0x61, 0x6c, 0x6c, 0x5f, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x3a, + 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x73, 0x71, + 0x75, 0x61, 0x72, 0x65, 0x25ab, 0xfe0f, 0x3a, 0x77, 0x68, 0x69, 0x74, 0x65, + 0x5f, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x5f, 0x73, 0x71, 0x75, 0x61, 0x72, + 0x65, 0x3a, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x73, 0x71, 0x75, 0x61, 0x72, + 0x65, 0x77, 0x68, 0x69, 0x74, 0x65, 0x25fe, 0xfe0f, 0x3a, 0x62, 0x6c, 0x61, + 0x63, 0x6b, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x5f, 0x73, 0x6d, + 0x61, 0x6c, 0x6c, 0x5f, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x3a, 0x62, + 0x6c, 0x61, 0x63, 0x6b, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x73, 0x6d, + 0x61, 0x6c, 0x6c, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x25fd, 0xfe0f, 0x3a, + 0x77, 0x68, 0x69, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, + 0x5f, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x5f, 0x73, 0x71, 0x75, 0x61, 0x72, + 0x65, 0x3a, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x73, 0x6d, 0x61, 0x6c, + 0x6c, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x77, 0x68, 0x69, 0x74, 0x65, + 0x25fc, 0xfe0f, 0x3a, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x5f, 0x6d, 0x65, 0x64, + 0x69, 0x75, 0x6d, 0x5f, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x3a, 0x62, + 0x6c, 0x61, 0x63, 0x6b, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x73, 0x71, + 0x75, 0x61, 0x72, 0x65, 0x25fb, 0xfe0f, 0x3a, 0x77, 0x68, 0x69, 0x74, 0x65, + 0x5f, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x5f, 0x73, 0x71, 0x75, 0x61, + 0x72, 0x65, 0x3a, 0x6d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x73, 0x71, 0x75, + 0x61, 0x72, 0x65, 0x77, 0x68, 0x69, 0x74, 0x65, 0x2b1b, 0xfe0f, 0x3a, 0x62, + 0x6c, 0x61, 0x63, 0x6b, 0x5f, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x5f, 0x73, + 0x71, 0x75, 0x61, 0x72, 0x65, 0x3a, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x6c, + 0x61, 0x72, 0x67, 0x65, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x2b1c, 0xfe0f, + 0x3a, 0x77, 0x68, 0x69, 0x74, 0x65, 0x5f, 0x6c, 0x61, 0x72, 0x67, 0x65, + 0x5f, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x3a, 0x6c, 0x61, 0x72, 0x67, + 0x65, 0x73, 0x71, 0x75, 0x61, 0x72, 0x65, 0x77, 0x68, 0x69, 0x74, 0x65, + 0xd83d, 0xdd08, 0x3a, 0x73, 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0x3a, 0x73, + 0x70, 0x65, 0x61, 0x6b, 0x65, 0x72, 0xd83d, 0xdd07, 0x3a, 0x6d, 0x75, 0x74, + 0x65, 0x3a, 0x6d, 0x75, 0x74, 0x65, 0xd83d, 0xdd09, 0x3a, 0x73, 0x6f, 0x75, + 0x6e, 0x64, 0x3a, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0xd83d, 0xdd0a, 0x3a, 0x6c, + 0x6f, 0x75, 0x64, 0x5f, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0x3a, 0x6c, 0x6f, + 0x75, 0x64, 0x73, 0x6f, 0x75, 0x6e, 0x64, 0xd83d, 0xdd14, 0x3a, 0x62, 0x65, + 0x6c, 0x6c, 0x3a, 0x62, 0x65, 0x6c, 0x6c, 0xd83d, 0xdd15, 0x3a, 0x6e, 0x6f, + 0x5f, 0x62, 0x65, 0x6c, 0x6c, 0x3a, 0x62, 0x65, 0x6c, 0x6c, 0x6e, 0x6f, + 0xd83d, 0xdce3, 0x3a, 0x6d, 0x65, 0x67, 0x61, 0x3a, 0x6d, 0x65, 0x67, 0x61, + 0xd83d, 0xdce2, 0x3a, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x70, 0x65, 0x61, 0x6b, + 0x65, 0x72, 0x3a, 0x6c, 0x6f, 0x75, 0x64, 0x73, 0x70, 0x65, 0x61, 0x6b, + 0x65, 0x72, 0xd83d, 0xdcac, 0x3a, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0x5f, + 0x62, 0x61, 0x6c, 0x6c, 0x6f, 0x6f, 0x6e, 0x3a, 0x62, 0x61, 0x6c, 0x6c, + 0x6f, 0x6f, 0x6e, 0x73, 0x70, 0x65, 0x65, 0x63, 0x68, 0xd83d, 0xdcad, 0x3a, + 0x74, 0x68, 0x6f, 0x75, 0x67, 0x68, 0x74, 0x5f, 0x62, 0x61, 0x6c, 0x6c, + 0x6f, 0x6f, 0x6e, 0x3a, 0x62, 0x61, 0x6c, 0x6c, 0x6f, 0x6f, 0x6e, 0x74, + 0x68, 0x6f, 0x75, 0x67, 0x68, 0x74, 0xd83d, 0xddef, 0x3a, 0x72, 0x69, 0x67, + 0x68, 0x74, 0x5f, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x5f, 0x62, 0x75, 0x62, + 0x62, 0x6c, 0x65, 0x3a, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x62, 0x75, 0x62, + 0x62, 0x6c, 0x65, 0x72, 0x69, 0x67, 0x68, 0x74, 0xd83d, 0xddef, 0x3a, 0x61, + 0x6e, 0x67, 0x65, 0x72, 0x5f, 0x72, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x61, + 0x6e, 0x67, 0x65, 0x72, 0x72, 0x69, 0x67, 0x68, 0x74, 0x2660, 0xfe0f, 0x3a, + 0x73, 0x70, 0x61, 0x64, 0x65, 0x73, 0x3a, 0x73, 0x70, 0x61, 0x64, 0x65, + 0x73, 0x2663, 0xfe0f, 0x3a, 0x63, 0x6c, 0x75, 0x62, 0x73, 0x3a, 0x63, 0x6c, + 0x75, 0x62, 0x73, 0x2665, 0xfe0f, 0x3a, 0x68, 0x65, 0x61, 0x72, 0x74, 0x73, + 0x3a, 0x68, 0x65, 0x61, 0x72, 0x74, 0x73, 0x2666, 0xfe0f, 0x3a, 0x64, 0x69, + 0x61, 0x6d, 0x6f, 0x6e, 0x64, 0x73, 0x3a, 0x64, 0x69, 0x61, 0x6d, 0x6f, + 0x6e, 0x64, 0x73, 0xd83c, 0xdccf, 0x3a, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x5f, + 0x6a, 0x6f, 0x6b, 0x65, 0x72, 0x3a, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x6a, + 0x6f, 0x6b, 0x65, 0x72, 0xd83c, 0xdfb4, 0x3a, 0x66, 0x6c, 0x6f, 0x77, 0x65, + 0x72, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x61, + 0x72, 0x64, 0x73, 0x3a, 0x63, 0x61, 0x72, 0x64, 0x73, 0x66, 0x6c, 0x6f, + 0x77, 0x65, 0x72, 0x70, 0x6c, 0x61, 0x79, 0x69, 0x6e, 0x67, 0xd83c, 0xdc04, + 0xfe0f, 0x3a, 0x6d, 0x61, 0x68, 0x6a, 0x6f, 0x6e, 0x67, 0x3a, 0x6d, 0x61, + 0x68, 0x6a, 0x6f, 0x6e, 0x67, 0xd83d, 0xdd50, 0x3a, 0x63, 0x6c, 0x6f, 0x63, + 0x6b, 0x31, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x31, 0xd83d, 0xdd51, 0x3a, + 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x32, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, + 0x32, 0xd83d, 0xdd52, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x33, 0x3a, 0x63, + 0x6c, 0x6f, 0x63, 0x6b, 0x33, 0xd83d, 0xdd53, 0x3a, 0x63, 0x6c, 0x6f, 0x63, + 0x6b, 0x34, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x34, 0xd83d, 0xdd54, 0x3a, + 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x35, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, + 0x35, 0xd83d, 0xdd55, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x36, 0x3a, 0x63, + 0x6c, 0x6f, 0x63, 0x6b, 0x36, 0xd83d, 0xdd56, 0x3a, 0x63, 0x6c, 0x6f, 0x63, + 0x6b, 0x37, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x37, 0xd83d, 0xdd57, 0x3a, + 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x38, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, + 0x38, 0xd83d, 0xdd58, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x39, 0x3a, 0x63, + 0x6c, 0x6f, 0x63, 0x6b, 0x39, 0xd83d, 0xdd59, 0x3a, 0x63, 0x6c, 0x6f, 0x63, + 0x6b, 0x31, 0x30, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x31, 0x30, 0xd83d, + 0xdd5a, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x31, 0x31, 0x3a, 0x63, 0x6c, + 0x6f, 0x63, 0x6b, 0x31, 0x31, 0xd83d, 0xdd5b, 0x3a, 0x63, 0x6c, 0x6f, 0x63, + 0x6b, 0x31, 0x32, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x31, 0x32, 0xd83d, + 0xdd5c, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x31, 0x33, 0x30, 0x3a, 0x63, + 0x6c, 0x6f, 0x63, 0x6b, 0x31, 0x33, 0x30, 0xd83d, 0xdd5d, 0x3a, 0x63, 0x6c, + 0x6f, 0x63, 0x6b, 0x32, 0x33, 0x30, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, + 0x32, 0x33, 0x30, 0xd83d, 0xdd5e, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x33, + 0x33, 0x30, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x33, 0x33, 0x30, 0xd83d, + 0xdd5f, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x34, 0x33, 0x30, 0x3a, 0x63, + 0x6c, 0x6f, 0x63, 0x6b, 0x34, 0x33, 0x30, 0xd83d, 0xdd60, 0x3a, 0x63, 0x6c, + 0x6f, 0x63, 0x6b, 0x35, 0x33, 0x30, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, + 0x35, 0x33, 0x30, 0xd83d, 0xdd61, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x36, + 0x33, 0x30, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x36, 0x33, 0x30, 0xd83d, + 0xdd62, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x37, 0x33, 0x30, 0x3a, 0x63, + 0x6c, 0x6f, 0x63, 0x6b, 0x37, 0x33, 0x30, 0xd83d, 0xdd63, 0x3a, 0x63, 0x6c, + 0x6f, 0x63, 0x6b, 0x38, 0x33, 0x30, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, + 0x38, 0x33, 0x30, 0xd83d, 0xdd64, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x39, + 0x33, 0x30, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x39, 0x33, 0x30, 0xd83d, + 0xdd65, 0x3a, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x31, 0x30, 0x33, 0x30, 0x3a, + 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x31, 0x30, 0x33, 0x30, 0xd83d, 0xdd66, 0x3a, + 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x31, 0x31, 0x33, 0x30, 0x3a, 0x63, 0x6c, + 0x6f, 0x63, 0x6b, 0x31, 0x31, 0x33, 0x30, 0xd83d, 0xdd67, 0x3a, 0x63, 0x6c, + 0x6f, 0x63, 0x6b, 0x31, 0x32, 0x33, 0x30, 0x3a, 0x63, 0x6c, 0x6f, 0x63, + 0x6b, 0x31, 0x32, 0x33, 0x30, 0xd83c, 0xdff3, 0xfe0f, 0x3a, 0x77, 0x61, 0x76, + 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x5f, 0x66, 0x6c, + 0x61, 0x67, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x77, 0x61, 0x76, 0x69, 0x6e, + 0x67, 0x77, 0x68, 0x69, 0x74, 0x65, 0xd83c, 0xdff3, 0xfe0f, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x5f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x77, 0x68, 0x69, 0x74, 0x65, 0xd83c, 0xdff4, 0x3a, 0x77, 0x61, 0x76, + 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x5f, 0x66, 0x6c, + 0x61, 0x67, 0x3a, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x66, 0x6c, 0x61, 0x67, + 0x77, 0x61, 0x76, 0x69, 0x6e, 0x67, 0xd83c, 0xdff4, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x5f, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x3a, 0x62, 0x6c, 0x61, 0x63, + 0x6b, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdfc1, 0x3a, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x3a, 0x63, + 0x68, 0x65, 0x63, 0x6b, 0x65, 0x72, 0x65, 0x64, 0x66, 0x6c, 0x61, 0x67, + 0xd83d, 0xdea9, 0x3a, 0x74, 0x72, 0x69, 0x61, 0x6e, 0x67, 0x75, 0x6c, 0x61, + 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6f, 0x6e, 0x5f, 0x70, 0x6f, + 0x73, 0x74, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6f, 0x6e, 0x70, 0x6f, 0x73, + 0x74, 0x74, 0x72, 0x69, 0x61, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x72, 0xd83c, + 0xdff3, 0xfe0f, 0x200d, 0xd83c, 0xdf08, 0x3a, 0x67, 0x61, 0x79, 0x5f, 0x70, 0x72, + 0x69, 0x64, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x67, 0x61, 0x79, 0x70, 0x72, 0x69, 0x64, 0x65, 0xd83c, 0xdff3, 0xfe0f, + 0x200d, 0xd83c, 0xdf08, 0x3a, 0x72, 0x61, 0x69, 0x6e, 0x62, 0x6f, 0x77, 0x5f, + 0x66, 0x6c, 0x61, 0x67, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x72, 0x61, 0x69, + 0x6e, 0x62, 0x6f, 0x77, 0xd83c, 0xddfa, 0xd83c, 0xddf3, 0x3a, 0x75, 0x6e, 0x69, + 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x75, 0x6e, 0x69, 0x74, 0x65, + 0x64, 0xd83c, 0xdde6, 0xd83c, 0xddeb, 0x3a, 0x61, 0x66, 0x3a, 0x61, 0x66, 0xd83c, + 0xdde6, 0xd83c, 0xddeb, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x61, 0x66, 0x3a, + 0x61, 0x66, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde6, 0xd83c, 0xddfd, 0x3a, 0x61, + 0x78, 0x3a, 0x61, 0x78, 0xd83c, 0xdde6, 0xd83c, 0xddfd, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x5f, 0x61, 0x78, 0x3a, 0x61, 0x78, 0x66, 0x6c, 0x61, 0x67, 0xd83c, + 0xdde6, 0xd83c, 0xddf1, 0x3a, 0x61, 0x6c, 0x3a, 0x61, 0x6c, 0xd83c, 0xdde6, 0xd83c, + 0xddf1, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x61, 0x6c, 0x3a, 0x61, 0x6c, + 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde9, 0xd83c, 0xddff, 0x3a, 0x64, 0x7a, 0x3a, + 0x64, 0x7a, 0xd83c, 0xdde9, 0xd83c, 0xddff, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, + 0x64, 0x7a, 0x3a, 0x64, 0x7a, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde6, 0xd83c, + 0xddf8, 0x3a, 0x61, 0x73, 0x3a, 0x61, 0x73, 0xd83c, 0xdde6, 0xd83c, 0xddf8, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x61, 0x73, 0x3a, 0x61, 0x73, 0x66, 0x6c, + 0x61, 0x67, 0xd83c, 0xdde6, 0xd83c, 0xdde9, 0x3a, 0x61, 0x64, 0x3a, 0x61, 0x64, + 0xd83c, 0xdde6, 0xd83c, 0xdde9, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x61, 0x64, + 0x3a, 0x61, 0x64, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde6, 0xd83c, 0xddf4, 0x3a, + 0x61, 0x6f, 0x3a, 0x61, 0x6f, 0xd83c, 0xdde6, 0xd83c, 0xddf4, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x5f, 0x61, 0x6f, 0x3a, 0x61, 0x6f, 0x66, 0x6c, 0x61, 0x67, + 0xd83c, 0xdde6, 0xd83c, 0xddee, 0x3a, 0x61, 0x69, 0x3a, 0x61, 0x69, 0xd83c, 0xdde6, + 0xd83c, 0xddee, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x61, 0x69, 0x3a, 0x61, + 0x69, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde6, 0xd83c, 0xddf6, 0x3a, 0x61, 0x71, + 0x3a, 0x61, 0x71, 0xd83c, 0xdde6, 0xd83c, 0xddf6, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x5f, 0x61, 0x71, 0x3a, 0x61, 0x71, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde6, + 0xd83c, 0xddec, 0x3a, 0x61, 0x67, 0x3a, 0x61, 0x67, 0xd83c, 0xdde6, 0xd83c, 0xddec, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x61, 0x67, 0x3a, 0x61, 0x67, 0x66, + 0x6c, 0x61, 0x67, 0xd83c, 0xdde6, 0xd83c, 0xddf7, 0x3a, 0x61, 0x72, 0x3a, 0x61, + 0x72, 0xd83c, 0xdde6, 0xd83c, 0xddf7, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x61, + 0x72, 0x3a, 0x61, 0x72, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde6, 0xd83c, 0xddf2, + 0x3a, 0x61, 0x6d, 0x3a, 0x61, 0x6d, 0xd83c, 0xdde6, 0xd83c, 0xddf2, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x5f, 0x61, 0x6d, 0x3a, 0x61, 0x6d, 0x66, 0x6c, 0x61, + 0x67, 0xd83c, 0xdde6, 0xd83c, 0xddfc, 0x3a, 0x61, 0x77, 0x3a, 0x61, 0x77, 0xd83c, + 0xdde6, 0xd83c, 0xddfc, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x61, 0x77, 0x3a, + 0x61, 0x77, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde6, 0xd83c, 0xddfa, 0x3a, 0x68, + 0x6d, 0x3a, 0x68, 0x6d, 0xd83c, 0xdde6, 0xd83c, 0xddfa, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x5f, 0x68, 0x6d, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x68, 0x6d, 0xd83c, + 0xdde6, 0xd83c, 0xddfa, 0x3a, 0x61, 0x75, 0x3a, 0x61, 0x75, 0xd83c, 0xdde6, 0xd83c, + 0xddfa, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x61, 0x75, 0x3a, 0x61, 0x75, + 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde6, 0xd83c, 0xddf9, 0x3a, 0x61, 0x74, 0x3a, + 0x61, 0x74, 0xd83c, 0xdde6, 0xd83c, 0xddf9, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, + 0x61, 0x74, 0x3a, 0x61, 0x74, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde6, 0xd83c, + 0xddff, 0x3a, 0x61, 0x7a, 0x3a, 0x61, 0x7a, 0xd83c, 0xdde6, 0xd83c, 0xddff, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x61, 0x7a, 0x3a, 0x61, 0x7a, 0x66, 0x6c, + 0x61, 0x67, 0xd83c, 0xdde7, 0xd83c, 0xddf8, 0x3a, 0x62, 0x73, 0x3a, 0x62, 0x73, + 0xd83c, 0xdde7, 0xd83c, 0xddf8, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x62, 0x73, + 0x3a, 0x62, 0x73, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde7, 0xd83c, 0xdded, 0x3a, + 0x62, 0x68, 0x3a, 0x62, 0x68, 0xd83c, 0xdde7, 0xd83c, 0xdded, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x5f, 0x62, 0x68, 0x3a, 0x62, 0x68, 0x66, 0x6c, 0x61, 0x67, + 0xd83c, 0xdde7, 0xd83c, 0xdde9, 0x3a, 0x62, 0x64, 0x3a, 0x62, 0x64, 0xd83c, 0xdde7, + 0xd83c, 0xdde9, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x62, 0x64, 0x3a, 0x62, + 0x64, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde7, 0xd83c, 0xdde7, 0x3a, 0x62, 0x62, + 0x3a, 0x62, 0x62, 0xd83c, 0xdde7, 0xd83c, 0xdde7, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x5f, 0x62, 0x62, 0x3a, 0x62, 0x62, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde7, + 0xd83c, 0xddfe, 0x3a, 0x62, 0x79, 0x3a, 0x62, 0x79, 0xd83c, 0xdde7, 0xd83c, 0xddfe, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x62, 0x79, 0x3a, 0x62, 0x79, 0x66, + 0x6c, 0x61, 0x67, 0xd83c, 0xdde7, 0xd83c, 0xddea, 0x3a, 0x62, 0x65, 0x3a, 0x62, + 0x65, 0xd83c, 0xdde7, 0xd83c, 0xddea, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x62, + 0x65, 0x3a, 0x62, 0x65, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde7, 0xd83c, 0xddff, + 0x3a, 0x62, 0x7a, 0x3a, 0x62, 0x7a, 0xd83c, 0xdde7, 0xd83c, 0xddff, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x5f, 0x62, 0x7a, 0x3a, 0x62, 0x7a, 0x66, 0x6c, 0x61, + 0x67, 0xd83c, 0xdde7, 0xd83c, 0xddef, 0x3a, 0x62, 0x6a, 0x3a, 0x62, 0x6a, 0xd83c, + 0xdde7, 0xd83c, 0xddef, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x62, 0x6a, 0x3a, + 0x62, 0x6a, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde7, 0xd83c, 0xddf2, 0x3a, 0x62, + 0x6d, 0x3a, 0x62, 0x6d, 0xd83c, 0xdde7, 0xd83c, 0xddf2, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x5f, 0x62, 0x6d, 0x3a, 0x62, 0x6d, 0x66, 0x6c, 0x61, 0x67, 0xd83c, + 0xdde7, 0xd83c, 0xddf9, 0x3a, 0x62, 0x74, 0x3a, 0x62, 0x74, 0xd83c, 0xdde7, 0xd83c, + 0xddf9, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x62, 0x74, 0x3a, 0x62, 0x74, + 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde7, 0xd83c, 0xddf4, 0x3a, 0x62, 0x6f, 0x3a, + 0x62, 0x6f, 0xd83c, 0xdde7, 0xd83c, 0xddf4, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, + 0x62, 0x6f, 0x3a, 0x62, 0x6f, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde7, 0xd83c, + 0xdde6, 0x3a, 0x62, 0x61, 0x3a, 0x62, 0x61, 0xd83c, 0xdde7, 0xd83c, 0xdde6, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x62, 0x61, 0x3a, 0x62, 0x61, 0x66, 0x6c, + 0x61, 0x67, 0xd83c, 0xdde7, 0xd83c, 0xddfc, 0x3a, 0x62, 0x77, 0x3a, 0x62, 0x77, + 0xd83c, 0xdde7, 0xd83c, 0xddfc, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x62, 0x77, + 0x3a, 0x62, 0x77, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde7, 0xd83c, 0xddf7, 0x3a, + 0x62, 0x72, 0x3a, 0x62, 0x72, 0xd83c, 0xdde7, 0xd83c, 0xddf7, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x5f, 0x62, 0x72, 0x3a, 0x62, 0x72, 0x66, 0x6c, 0x61, 0x67, + 0xd83c, 0xddee, 0xd83c, 0xddf4, 0x3a, 0x69, 0x6f, 0x3a, 0x69, 0x6f, 0xd83c, 0xddee, + 0xd83c, 0xddf4, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x69, 0x6f, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x69, 0x6f, 0xd83c, 0xddee, 0xd83c, 0xddf4, 0x3a, 0x64, 0x67, + 0x3a, 0x64, 0x67, 0xd83c, 0xddee, 0xd83c, 0xddf4, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x5f, 0x64, 0x67, 0x3a, 0x64, 0x67, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xddfb, + 0xd83c, 0xddec, 0x3a, 0x76, 0x67, 0x3a, 0x76, 0x67, 0xd83c, 0xddfb, 0xd83c, 0xddec, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x76, 0x67, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x76, 0x67, 0xd83c, 0xdde7, 0xd83c, 0xddf3, 0x3a, 0x62, 0x6e, 0x3a, 0x62, + 0x6e, 0xd83c, 0xdde7, 0xd83c, 0xddf3, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x62, + 0x6e, 0x3a, 0x62, 0x6e, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde7, 0xd83c, 0xddec, + 0x3a, 0x62, 0x67, 0x3a, 0x62, 0x67, 0xd83c, 0xdde7, 0xd83c, 0xddec, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x5f, 0x62, 0x67, 0x3a, 0x62, 0x67, 0x66, 0x6c, 0x61, + 0x67, 0xd83c, 0xdde7, 0xd83c, 0xddeb, 0x3a, 0x62, 0x66, 0x3a, 0x62, 0x66, 0xd83c, + 0xdde7, 0xd83c, 0xddeb, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x62, 0x66, 0x3a, + 0x62, 0x66, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde7, 0xd83c, 0xddee, 0x3a, 0x62, + 0x69, 0x3a, 0x62, 0x69, 0xd83c, 0xdde7, 0xd83c, 0xddee, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x5f, 0x62, 0x69, 0x3a, 0x62, 0x69, 0x66, 0x6c, 0x61, 0x67, 0xd83c, + 0xddf0, 0xd83c, 0xdded, 0x3a, 0x6b, 0x68, 0x3a, 0x6b, 0x68, 0xd83c, 0xddf0, 0xd83c, + 0xdded, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6b, 0x68, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x6b, 0x68, 0xd83c, 0xdde8, 0xd83c, 0xddf2, 0x3a, 0x63, 0x6d, 0x3a, + 0x63, 0x6d, 0xd83c, 0xdde8, 0xd83c, 0xddf2, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, + 0x63, 0x6d, 0x3a, 0x63, 0x6d, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde8, 0xd83c, + 0xdde6, 0x3a, 0x63, 0x61, 0x3a, 0x63, 0x61, 0xd83c, 0xdde8, 0xd83c, 0xdde6, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x63, 0x61, 0x3a, 0x63, 0x61, 0x66, 0x6c, + 0x61, 0x67, 0xd83c, 0xddee, 0xd83c, 0xdde8, 0x3a, 0x69, 0x63, 0x3a, 0x69, 0x63, + 0xd83c, 0xddee, 0xd83c, 0xdde8, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x69, 0x63, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x69, 0x63, 0xd83c, 0xdde8, 0xd83c, 0xddfb, 0x3a, + 0x63, 0x76, 0x3a, 0x63, 0x76, 0xd83c, 0xdde8, 0xd83c, 0xddfb, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x5f, 0x63, 0x76, 0x3a, 0x63, 0x76, 0x66, 0x6c, 0x61, 0x67, + 0xd83c, 0xdde7, 0xd83c, 0xddf6, 0x3a, 0x62, 0x71, 0x3a, 0x62, 0x71, 0xd83c, 0xdde7, + 0xd83c, 0xddf6, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x62, 0x71, 0x3a, 0x62, + 0x71, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xddf0, 0xd83c, 0xddfe, 0x3a, 0x6b, 0x79, + 0x3a, 0x6b, 0x79, 0xd83c, 0xddf0, 0xd83c, 0xddfe, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x5f, 0x6b, 0x79, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6b, 0x79, 0xd83c, 0xdde8, + 0xd83c, 0xddeb, 0x3a, 0x63, 0x66, 0x3a, 0x63, 0x66, 0xd83c, 0xdde8, 0xd83c, 0xddeb, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x63, 0x66, 0x3a, 0x63, 0x66, 0x66, + 0x6c, 0x61, 0x67, 0xd83c, 0xddf9, 0xd83c, 0xdde9, 0x3a, 0x74, 0x64, 0x3a, 0x74, + 0x64, 0xd83c, 0xddf9, 0xd83c, 0xdde9, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, + 0x64, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x74, 0x64, 0xd83c, 0xdde8, 0xd83c, 0xddf1, + 0x3a, 0x63, 0x68, 0x69, 0x6c, 0x65, 0x3a, 0x63, 0x68, 0x69, 0x6c, 0x65, + 0xd83c, 0xdde8, 0xd83c, 0xddf1, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x63, 0x6c, + 0x3a, 0x63, 0x6c, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde8, 0xd83c, 0xddf3, 0x3a, + 0x63, 0x6e, 0x3a, 0x63, 0x6e, 0xd83c, 0xdde8, 0xd83c, 0xddf3, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x5f, 0x63, 0x6e, 0x3a, 0x63, 0x6e, 0x66, 0x6c, 0x61, 0x67, + 0xd83c, 0xdde8, 0xd83c, 0xddfd, 0x3a, 0x63, 0x78, 0x3a, 0x63, 0x78, 0xd83c, 0xdde8, + 0xd83c, 0xddfd, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x63, 0x78, 0x3a, 0x63, + 0x78, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde8, 0xd83c, 0xdde8, 0x3a, 0x63, 0x63, + 0x3a, 0x63, 0x63, 0xd83c, 0xdde8, 0xd83c, 0xdde8, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x5f, 0x63, 0x63, 0x3a, 0x63, 0x63, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde8, + 0xd83c, 0xddf4, 0x3a, 0x63, 0x6f, 0x3a, 0x63, 0x6f, 0xd83c, 0xdde8, 0xd83c, 0xddf4, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x63, 0x6f, 0x3a, 0x63, 0x6f, 0x66, + 0x6c, 0x61, 0x67, 0xd83c, 0xddf0, 0xd83c, 0xddf2, 0x3a, 0x6b, 0x6d, 0x3a, 0x6b, + 0x6d, 0xd83c, 0xddf0, 0xd83c, 0xddf2, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6b, + 0x6d, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6b, 0x6d, 0xd83c, 0xdde8, 0xd83c, 0xddec, + 0x3a, 0x63, 0x67, 0x3a, 0x63, 0x67, 0xd83c, 0xdde8, 0xd83c, 0xddec, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x5f, 0x63, 0x67, 0x3a, 0x63, 0x67, 0x66, 0x6c, 0x61, + 0x67, 0xd83c, 0xdde8, 0xd83c, 0xdde9, 0x3a, 0x63, 0x6f, 0x6e, 0x67, 0x6f, 0x3a, + 0x63, 0x6f, 0x6e, 0x67, 0x6f, 0xd83c, 0xdde8, 0xd83c, 0xdde9, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x5f, 0x63, 0x64, 0x3a, 0x63, 0x64, 0x66, 0x6c, 0x61, 0x67, + 0xd83c, 0xdde8, 0xd83c, 0xddf0, 0x3a, 0x63, 0x6b, 0x3a, 0x63, 0x6b, 0xd83c, 0xdde8, + 0xd83c, 0xddf0, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x63, 0x6b, 0x3a, 0x63, + 0x6b, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde8, 0xd83c, 0xddf7, 0x3a, 0x63, 0x72, + 0x3a, 0x63, 0x72, 0xd83c, 0xdde8, 0xd83c, 0xddf7, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x5f, 0x63, 0x72, 0x3a, 0x63, 0x72, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde8, + 0xd83c, 0xddee, 0x3a, 0x63, 0x69, 0x3a, 0x63, 0x69, 0xd83c, 0xdde8, 0xd83c, 0xddee, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x63, 0x69, 0x3a, 0x63, 0x69, 0x66, + 0x6c, 0x61, 0x67, 0xd83c, 0xdded, 0xd83c, 0xddf7, 0x3a, 0x68, 0x72, 0x3a, 0x68, + 0x72, 0xd83c, 0xdded, 0xd83c, 0xddf7, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x68, + 0x72, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x68, 0x72, 0xd83c, 0xdde8, 0xd83c, 0xddfa, + 0x3a, 0x63, 0x75, 0x3a, 0x63, 0x75, 0xd83c, 0xdde8, 0xd83c, 0xddfa, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x5f, 0x63, 0x75, 0x3a, 0x63, 0x75, 0x66, 0x6c, 0x61, + 0x67, 0xd83c, 0xdde8, 0xd83c, 0xddfc, 0x3a, 0x63, 0x77, 0x3a, 0x63, 0x77, 0xd83c, + 0xdde8, 0xd83c, 0xddfc, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x63, 0x77, 0x3a, + 0x63, 0x77, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde8, 0xd83c, 0xddfe, 0x3a, 0x63, + 0x79, 0x3a, 0x63, 0x79, 0xd83c, 0xdde8, 0xd83c, 0xddfe, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x5f, 0x63, 0x79, 0x3a, 0x63, 0x79, 0x66, 0x6c, 0x61, 0x67, 0xd83c, + 0xdde8, 0xd83c, 0xddff, 0x3a, 0x63, 0x7a, 0x3a, 0x63, 0x7a, 0xd83c, 0xdde8, 0xd83c, + 0xddff, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x63, 0x7a, 0x3a, 0x63, 0x7a, + 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde9, 0xd83c, 0xddf0, 0x3a, 0x64, 0x6b, 0x3a, + 0x64, 0x6b, 0xd83c, 0xdde9, 0xd83c, 0xddf0, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, + 0x64, 0x6b, 0x3a, 0x64, 0x6b, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde9, 0xd83c, + 0xddef, 0x3a, 0x64, 0x6a, 0x3a, 0x64, 0x6a, 0xd83c, 0xdde9, 0xd83c, 0xddef, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x6a, 0x3a, 0x64, 0x6a, 0x66, 0x6c, + 0x61, 0x67, 0xd83c, 0xdde9, 0xd83c, 0xddf2, 0x3a, 0x64, 0x6d, 0x3a, 0x64, 0x6d, + 0xd83c, 0xdde9, 0xd83c, 0xddf2, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x6d, + 0x3a, 0x64, 0x6d, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xdde9, 0xd83c, 0xddf4, 0x3a, + 0x64, 0x6f, 0x3a, 0x64, 0x6f, 0xd83c, 0xdde9, 0xd83c, 0xddf4, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x5f, 0x64, 0x6f, 0x3a, 0x64, 0x6f, 0x66, 0x6c, 0x61, 0x67, + 0xd83c, 0xddea, 0xd83c, 0xdde8, 0x3a, 0x65, 0x63, 0x3a, 0x65, 0x63, 0xd83c, 0xddea, + 0xd83c, 0xdde8, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x65, 0x63, 0x3a, 0x65, + 0x63, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xddea, 0xd83c, 0xddec, 0x3a, 0x65, 0x67, + 0x3a, 0x65, 0x67, 0xd83c, 0xddea, 0xd83c, 0xddec, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x5f, 0x65, 0x67, 0x3a, 0x65, 0x67, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xddf8, + 0xd83c, 0xddfb, 0x3a, 0x73, 0x76, 0x3a, 0x73, 0x76, 0xd83c, 0xddf8, 0xd83c, 0xddfb, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x76, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x76, 0xd83c, 0xddec, 0xd83c, 0xddf6, 0x3a, 0x67, 0x71, 0x3a, 0x67, + 0x71, 0xd83c, 0xddec, 0xd83c, 0xddf6, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x67, + 0x71, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x67, 0x71, 0xd83c, 0xddea, 0xd83c, 0xddf7, + 0x3a, 0x65, 0x72, 0x3a, 0x65, 0x72, 0xd83c, 0xddea, 0xd83c, 0xddf7, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x5f, 0x65, 0x72, 0x3a, 0x65, 0x72, 0x66, 0x6c, 0x61, + 0x67, 0xd83c, 0xddea, 0xd83c, 0xddea, 0x3a, 0x65, 0x65, 0x3a, 0x65, 0x65, 0xd83c, + 0xddea, 0xd83c, 0xddea, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x65, 0x65, 0x3a, + 0x65, 0x65, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xddea, 0xd83c, 0xddf9, 0x3a, 0x65, + 0x74, 0x3a, 0x65, 0x74, 0xd83c, 0xddea, 0xd83c, 0xddf9, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x5f, 0x65, 0x74, 0x3a, 0x65, 0x74, 0x66, 0x6c, 0x61, 0x67, 0xd83c, + 0xddea, 0xd83c, 0xddfa, 0x3a, 0x65, 0x75, 0x3a, 0x65, 0x75, 0xd83c, 0xddea, 0xd83c, + 0xddfa, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x65, 0x75, 0x3a, 0x65, 0x75, + 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xddeb, 0xd83c, 0xddf0, 0x3a, 0x66, 0x6b, 0x3a, + 0x66, 0x6b, 0xd83c, 0xddeb, 0xd83c, 0xddf0, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, + 0x66, 0x6b, 0x3a, 0x66, 0x6b, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xddeb, 0xd83c, + 0xddf4, 0x3a, 0x66, 0x6f, 0x3a, 0x66, 0x6f, 0xd83c, 0xddeb, 0xd83c, 0xddf4, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x66, 0x6f, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x66, 0x6f, 0xd83c, 0xddeb, 0xd83c, 0xddef, 0x3a, 0x66, 0x6a, 0x3a, 0x66, 0x6a, + 0xd83c, 0xddeb, 0xd83c, 0xddef, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x66, 0x6a, + 0x3a, 0x66, 0x6a, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xddeb, 0xd83c, 0xddee, 0x3a, + 0x66, 0x69, 0x3a, 0x66, 0x69, 0xd83c, 0xddeb, 0xd83c, 0xddee, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x5f, 0x66, 0x69, 0x3a, 0x66, 0x69, 0x66, 0x6c, 0x61, 0x67, + 0xd83c, 0xddeb, 0xd83c, 0xddf7, 0x3a, 0x6d, 0x66, 0x3a, 0x6d, 0x66, 0xd83c, 0xddeb, + 0xd83c, 0xddf7, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x66, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x6d, 0x66, 0xd83c, 0xddeb, 0xd83c, 0xddf7, 0x3a, 0x66, 0x72, + 0x3a, 0x66, 0x72, 0xd83c, 0xddeb, 0xd83c, 0xddf7, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x5f, 0x66, 0x72, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x66, 0x72, 0xd83c, 0xddeb, + 0xd83c, 0xddf7, 0x3a, 0x63, 0x70, 0x3a, 0x63, 0x70, 0xd83c, 0xddeb, 0xd83c, 0xddf7, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x63, 0x70, 0x3a, 0x63, 0x70, 0x66, + 0x6c, 0x61, 0x67, 0xd83c, 0xddec, 0xd83c, 0xddeb, 0x3a, 0x67, 0x66, 0x3a, 0x67, + 0x66, 0xd83c, 0xddec, 0xd83c, 0xddeb, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x67, + 0x66, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x67, 0x66, 0xd83c, 0xddf5, 0xd83c, 0xddeb, + 0x3a, 0x70, 0x66, 0x3a, 0x70, 0x66, 0xd83c, 0xddf5, 0xd83c, 0xddeb, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x5f, 0x70, 0x66, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x70, + 0x66, 0xd83c, 0xddf9, 0xd83c, 0xddeb, 0x3a, 0x74, 0x66, 0x3a, 0x74, 0x66, 0xd83c, + 0xddf9, 0xd83c, 0xddeb, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x66, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x74, 0x66, 0xd83c, 0xddec, 0xd83c, 0xdde6, 0x3a, 0x67, + 0x61, 0x3a, 0x67, 0x61, 0xd83c, 0xddec, 0xd83c, 0xdde6, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x5f, 0x67, 0x61, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x67, 0x61, 0xd83c, + 0xddec, 0xd83c, 0xddf2, 0x3a, 0x67, 0x6d, 0x3a, 0x67, 0x6d, 0xd83c, 0xddec, 0xd83c, + 0xddf2, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x67, 0x6d, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x67, 0x6d, 0xd83c, 0xddec, 0xd83c, 0xddea, 0x3a, 0x67, 0x65, 0x3a, + 0x67, 0x65, 0xd83c, 0xddec, 0xd83c, 0xddea, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, + 0x67, 0x65, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x67, 0x65, 0xd83c, 0xdde9, 0xd83c, + 0xddea, 0x3a, 0x64, 0x65, 0x3a, 0x64, 0x65, 0xd83c, 0xdde9, 0xd83c, 0xddea, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x64, 0x65, 0x3a, 0x64, 0x65, 0x66, 0x6c, + 0x61, 0x67, 0xd83c, 0xddec, 0xd83c, 0xdded, 0x3a, 0x67, 0x68, 0x3a, 0x67, 0x68, + 0xd83c, 0xddec, 0xd83c, 0xdded, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x67, 0x68, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x67, 0x68, 0xd83c, 0xddec, 0xd83c, 0xddee, 0x3a, + 0x67, 0x69, 0x3a, 0x67, 0x69, 0xd83c, 0xddec, 0xd83c, 0xddee, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x5f, 0x67, 0x69, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x67, 0x69, + 0xd83c, 0xddec, 0xd83c, 0xddf7, 0x3a, 0x67, 0x72, 0x3a, 0x67, 0x72, 0xd83c, 0xddec, + 0xd83c, 0xddf7, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x67, 0x72, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x67, 0x72, 0xd83c, 0xddec, 0xd83c, 0xddf1, 0x3a, 0x67, 0x6c, + 0x3a, 0x67, 0x6c, 0xd83c, 0xddec, 0xd83c, 0xddf1, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x5f, 0x67, 0x6c, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x67, 0x6c, 0xd83c, 0xddec, + 0xd83c, 0xdde9, 0x3a, 0x67, 0x64, 0x3a, 0x67, 0x64, 0xd83c, 0xddec, 0xd83c, 0xdde9, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x67, 0x64, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x67, 0x64, 0xd83c, 0xddec, 0xd83c, 0xddf5, 0x3a, 0x67, 0x70, 0x3a, 0x67, + 0x70, 0xd83c, 0xddec, 0xd83c, 0xddf5, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x67, + 0x70, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x67, 0x70, 0xd83c, 0xddec, 0xd83c, 0xddfa, + 0x3a, 0x67, 0x75, 0x3a, 0x67, 0x75, 0xd83c, 0xddec, 0xd83c, 0xddfa, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x5f, 0x67, 0x75, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x67, + 0x75, 0xd83c, 0xddec, 0xd83c, 0xddf9, 0x3a, 0x67, 0x74, 0x3a, 0x67, 0x74, 0xd83c, + 0xddec, 0xd83c, 0xddf9, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x67, 0x74, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x67, 0x74, 0xd83c, 0xddec, 0xd83c, 0xddec, 0x3a, 0x67, + 0x67, 0x3a, 0x67, 0x67, 0xd83c, 0xddec, 0xd83c, 0xddec, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x5f, 0x67, 0x67, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x67, 0x67, 0xd83c, + 0xddec, 0xd83c, 0xddf3, 0x3a, 0x67, 0x6e, 0x3a, 0x67, 0x6e, 0xd83c, 0xddec, 0xd83c, + 0xddf3, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x67, 0x6e, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x67, 0x6e, 0xd83c, 0xddec, 0xd83c, 0xddfc, 0x3a, 0x67, 0x77, 0x3a, + 0x67, 0x77, 0xd83c, 0xddec, 0xd83c, 0xddfc, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, + 0x67, 0x77, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x67, 0x77, 0xd83c, 0xddec, 0xd83c, + 0xddfe, 0x3a, 0x67, 0x79, 0x3a, 0x67, 0x79, 0xd83c, 0xddec, 0xd83c, 0xddfe, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x67, 0x79, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x67, 0x79, 0xd83c, 0xdded, 0xd83c, 0xddf9, 0x3a, 0x68, 0x74, 0x3a, 0x68, 0x74, + 0xd83c, 0xdded, 0xd83c, 0xddf9, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x68, 0x74, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x68, 0x74, 0xd83c, 0xdded, 0xd83c, 0xddf3, 0x3a, + 0x68, 0x6e, 0x3a, 0x68, 0x6e, 0xd83c, 0xdded, 0xd83c, 0xddf3, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x5f, 0x68, 0x6e, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x68, 0x6e, + 0xd83c, 0xdded, 0xd83c, 0xddf0, 0x3a, 0x68, 0x6b, 0x3a, 0x68, 0x6b, 0xd83c, 0xdded, + 0xd83c, 0xddf0, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x68, 0x6b, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x68, 0x6b, 0xd83c, 0xdded, 0xd83c, 0xddfa, 0x3a, 0x68, 0x75, + 0x3a, 0x68, 0x75, 0xd83c, 0xdded, 0xd83c, 0xddfa, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x5f, 0x68, 0x75, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x68, 0x75, 0xd83c, 0xddee, + 0xd83c, 0xddf8, 0x3a, 0x69, 0x73, 0x3a, 0x69, 0x73, 0xd83c, 0xddee, 0xd83c, 0xddf8, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x69, 0x73, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x69, 0x73, 0xd83c, 0xddee, 0xd83c, 0xddf3, 0x3a, 0x69, 0x6e, 0x3a, 0x69, + 0x6e, 0xd83c, 0xddee, 0xd83c, 0xddf3, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x69, + 0x6e, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x69, 0x6e, 0xd83c, 0xddee, 0xd83c, 0xdde9, + 0x3a, 0x69, 0x6e, 0x64, 0x6f, 0x6e, 0x65, 0x73, 0x69, 0x61, 0x3a, 0x69, + 0x6e, 0x64, 0x6f, 0x6e, 0x65, 0x73, 0x69, 0x61, 0xd83c, 0xddee, 0xd83c, 0xdde9, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x69, 0x64, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x69, 0x64, 0xd83c, 0xddee, 0xd83c, 0xddf7, 0x3a, 0x69, 0x72, 0x3a, 0x69, + 0x72, 0xd83c, 0xddee, 0xd83c, 0xddf7, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x69, + 0x72, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x69, 0x72, 0xd83c, 0xddee, 0xd83c, 0xddf6, + 0x3a, 0x69, 0x71, 0x3a, 0x69, 0x71, 0xd83c, 0xddee, 0xd83c, 0xddf6, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x5f, 0x69, 0x71, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x69, + 0x71, 0xd83c, 0xddee, 0xd83c, 0xddea, 0x3a, 0x69, 0x65, 0x3a, 0x69, 0x65, 0xd83c, + 0xddee, 0xd83c, 0xddea, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x69, 0x65, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x69, 0x65, 0xd83c, 0xddee, 0xd83c, 0xddf2, 0x3a, 0x69, + 0x6d, 0x3a, 0x69, 0x6d, 0xd83c, 0xddee, 0xd83c, 0xddf2, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x5f, 0x69, 0x6d, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x69, 0x6d, 0xd83c, + 0xddee, 0xd83c, 0xddf1, 0x3a, 0x69, 0x6c, 0x3a, 0x69, 0x6c, 0xd83c, 0xddee, 0xd83c, + 0xddf1, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x69, 0x6c, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x69, 0x6c, 0xd83c, 0xddee, 0xd83c, 0xddf9, 0x3a, 0x69, 0x74, 0x3a, + 0x69, 0x74, 0xd83c, 0xddee, 0xd83c, 0xddf9, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, + 0x69, 0x74, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x69, 0x74, 0xd83c, 0xddef, 0xd83c, + 0xddf2, 0x3a, 0x6a, 0x6d, 0x3a, 0x6a, 0x6d, 0xd83c, 0xddef, 0xd83c, 0xddf2, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6a, 0x6d, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x6a, 0x6d, 0xd83c, 0xddef, 0xd83c, 0xddf5, 0x3a, 0x6a, 0x70, 0x3a, 0x6a, 0x70, + 0xd83c, 0xddef, 0xd83c, 0xddf5, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6a, 0x70, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6a, 0x70, 0xd83c, 0xdf8c, 0x3a, 0x63, 0x72, + 0x6f, 0x73, 0x73, 0x65, 0x64, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x3a, + 0x63, 0x72, 0x6f, 0x73, 0x73, 0x65, 0x64, 0x66, 0x6c, 0x61, 0x67, 0x73, + 0xd83c, 0xddef, 0xd83c, 0xddea, 0x3a, 0x6a, 0x65, 0x3a, 0x6a, 0x65, 0xd83c, 0xddef, + 0xd83c, 0xddea, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6a, 0x65, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x6a, 0x65, 0xd83c, 0xddef, 0xd83c, 0xddf4, 0x3a, 0x6a, 0x6f, + 0x3a, 0x6a, 0x6f, 0xd83c, 0xddef, 0xd83c, 0xddf4, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x5f, 0x6a, 0x6f, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6a, 0x6f, 0xd83c, 0xddf0, + 0xd83c, 0xddff, 0x3a, 0x6b, 0x7a, 0x3a, 0x6b, 0x7a, 0xd83c, 0xddf0, 0xd83c, 0xddff, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6b, 0x7a, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x6b, 0x7a, 0xd83c, 0xddf0, 0xd83c, 0xddea, 0x3a, 0x6b, 0x65, 0x3a, 0x6b, + 0x65, 0xd83c, 0xddf0, 0xd83c, 0xddea, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6b, + 0x65, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6b, 0x65, 0xd83c, 0xddf0, 0xd83c, 0xddee, + 0x3a, 0x6b, 0x69, 0x3a, 0x6b, 0x69, 0xd83c, 0xddf0, 0xd83c, 0xddee, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x5f, 0x6b, 0x69, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6b, + 0x69, 0xd83c, 0xddfd, 0xd83c, 0xddf0, 0x3a, 0x78, 0x6b, 0x3a, 0x78, 0x6b, 0xd83c, + 0xddfd, 0xd83c, 0xddf0, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x78, 0x6b, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x78, 0x6b, 0xd83c, 0xddf0, 0xd83c, 0xddfc, 0x3a, 0x6b, + 0x77, 0x3a, 0x6b, 0x77, 0xd83c, 0xddf0, 0xd83c, 0xddfc, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x5f, 0x6b, 0x77, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6b, 0x77, 0xd83c, + 0xddf0, 0xd83c, 0xddec, 0x3a, 0x6b, 0x67, 0x3a, 0x6b, 0x67, 0xd83c, 0xddf0, 0xd83c, + 0xddec, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6b, 0x67, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x6b, 0x67, 0xd83c, 0xddf1, 0xd83c, 0xdde6, 0x3a, 0x6c, 0x61, 0x3a, + 0x6c, 0x61, 0xd83c, 0xddf1, 0xd83c, 0xdde6, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, + 0x6c, 0x61, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6c, 0x61, 0xd83c, 0xddf1, 0xd83c, + 0xddfb, 0x3a, 0x6c, 0x76, 0x3a, 0x6c, 0x76, 0xd83c, 0xddf1, 0xd83c, 0xddfb, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6c, 0x76, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x6c, 0x76, 0xd83c, 0xddf1, 0xd83c, 0xdde7, 0x3a, 0x6c, 0x62, 0x3a, 0x6c, 0x62, + 0xd83c, 0xddf1, 0xd83c, 0xdde7, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6c, 0x62, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6c, 0x62, 0xd83c, 0xddf1, 0xd83c, 0xddf8, 0x3a, + 0x6c, 0x73, 0x3a, 0x6c, 0x73, 0xd83c, 0xddf1, 0xd83c, 0xddf8, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x5f, 0x6c, 0x73, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6c, 0x73, + 0xd83c, 0xddf1, 0xd83c, 0xddf7, 0x3a, 0x6c, 0x72, 0x3a, 0x6c, 0x72, 0xd83c, 0xddf1, + 0xd83c, 0xddf7, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6c, 0x72, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x6c, 0x72, 0xd83c, 0xddf1, 0xd83c, 0xddfe, 0x3a, 0x6c, 0x79, + 0x3a, 0x6c, 0x79, 0xd83c, 0xddf1, 0xd83c, 0xddfe, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x5f, 0x6c, 0x79, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6c, 0x79, 0xd83c, 0xddf1, + 0xd83c, 0xddee, 0x3a, 0x6c, 0x69, 0x3a, 0x6c, 0x69, 0xd83c, 0xddf1, 0xd83c, 0xddee, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6c, 0x69, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x6c, 0x69, 0xd83c, 0xddf1, 0xd83c, 0xddf9, 0x3a, 0x6c, 0x74, 0x3a, 0x6c, + 0x74, 0xd83c, 0xddf1, 0xd83c, 0xddf9, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6c, + 0x74, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6c, 0x74, 0xd83c, 0xddf1, 0xd83c, 0xddfa, + 0x3a, 0x6c, 0x75, 0x3a, 0x6c, 0x75, 0xd83c, 0xddf1, 0xd83c, 0xddfa, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x5f, 0x6c, 0x75, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6c, + 0x75, 0xd83c, 0xddf2, 0xd83c, 0xddf4, 0x3a, 0x6d, 0x6f, 0x3a, 0x6d, 0x6f, 0xd83c, + 0xddf2, 0xd83c, 0xddf4, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x6f, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x6d, 0x6f, 0xd83c, 0xddf2, 0xd83c, 0xddf0, 0x3a, 0x6d, + 0x6b, 0x3a, 0x6d, 0x6b, 0xd83c, 0xddf2, 0xd83c, 0xddf0, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x5f, 0x6d, 0x6b, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6d, 0x6b, 0xd83c, + 0xddf2, 0xd83c, 0xddec, 0x3a, 0x6d, 0x67, 0x3a, 0x6d, 0x67, 0xd83c, 0xddf2, 0xd83c, + 0xddec, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x67, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x6d, 0x67, 0xd83c, 0xddf2, 0xd83c, 0xddfc, 0x3a, 0x6d, 0x77, 0x3a, + 0x6d, 0x77, 0xd83c, 0xddf2, 0xd83c, 0xddfc, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, + 0x6d, 0x77, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6d, 0x77, 0xd83c, 0xddf2, 0xd83c, + 0xddfe, 0x3a, 0x6d, 0x79, 0x3a, 0x6d, 0x79, 0xd83c, 0xddf2, 0xd83c, 0xddfe, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x79, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x6d, 0x79, 0xd83c, 0xddf2, 0xd83c, 0xddfb, 0x3a, 0x6d, 0x76, 0x3a, 0x6d, 0x76, + 0xd83c, 0xddf2, 0xd83c, 0xddfb, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x76, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6d, 0x76, 0xd83c, 0xddf2, 0xd83c, 0xddf1, 0x3a, + 0x6d, 0x6c, 0x3a, 0x6d, 0x6c, 0xd83c, 0xddf2, 0xd83c, 0xddf1, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x5f, 0x6d, 0x6c, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6d, 0x6c, + 0xd83c, 0xddf2, 0xd83c, 0xddf9, 0x3a, 0x6d, 0x74, 0x3a, 0x6d, 0x74, 0xd83c, 0xddf2, + 0xd83c, 0xddf9, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x74, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x6d, 0x74, 0xd83c, 0xddf2, 0xd83c, 0xdded, 0x3a, 0x6d, 0x68, + 0x3a, 0x6d, 0x68, 0xd83c, 0xddf2, 0xd83c, 0xdded, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x5f, 0x6d, 0x68, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6d, 0x68, 0xd83c, 0xddf2, + 0xd83c, 0xddf6, 0x3a, 0x6d, 0x71, 0x3a, 0x6d, 0x71, 0xd83c, 0xddf2, 0xd83c, 0xddf6, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x71, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x6d, 0x71, 0xd83c, 0xddf2, 0xd83c, 0xddf7, 0x3a, 0x6d, 0x72, 0x3a, 0x6d, + 0x72, 0xd83c, 0xddf2, 0xd83c, 0xddf7, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6d, + 0x72, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6d, 0x72, 0xd83c, 0xddf2, 0xd83c, 0xddfa, + 0x3a, 0x6d, 0x75, 0x3a, 0x6d, 0x75, 0xd83c, 0xddf2, 0xd83c, 0xddfa, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x75, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6d, + 0x75, 0xd83c, 0xddfe, 0xd83c, 0xddf9, 0x3a, 0x79, 0x74, 0x3a, 0x79, 0x74, 0xd83c, + 0xddfe, 0xd83c, 0xddf9, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x79, 0x74, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x79, 0x74, 0xd83c, 0xddf2, 0xd83c, 0xddfd, 0x3a, 0x6d, + 0x78, 0x3a, 0x6d, 0x78, 0xd83c, 0xddf2, 0xd83c, 0xddfd, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x5f, 0x6d, 0x78, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6d, 0x78, 0xd83c, + 0xddeb, 0xd83c, 0xddf2, 0x3a, 0x66, 0x6d, 0x3a, 0x66, 0x6d, 0xd83c, 0xddeb, 0xd83c, + 0xddf2, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x66, 0x6d, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x66, 0x6d, 0xd83c, 0xddf2, 0xd83c, 0xdde9, 0x3a, 0x6d, 0x64, 0x3a, + 0x6d, 0x64, 0xd83c, 0xddf2, 0xd83c, 0xdde9, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, + 0x6d, 0x64, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6d, 0x64, 0xd83c, 0xddf2, 0xd83c, + 0xdde8, 0x3a, 0x6d, 0x63, 0x3a, 0x6d, 0x63, 0xd83c, 0xddf2, 0xd83c, 0xdde8, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x63, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x6d, 0x63, 0xd83c, 0xddf2, 0xd83c, 0xddf3, 0x3a, 0x6d, 0x6e, 0x3a, 0x6d, 0x6e, + 0xd83c, 0xddf2, 0xd83c, 0xddf3, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x6e, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6d, 0x6e, 0xd83c, 0xddf2, 0xd83c, 0xddea, 0x3a, + 0x6d, 0x65, 0x3a, 0x6d, 0x65, 0xd83c, 0xddf2, 0xd83c, 0xddea, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6d, 0x65, + 0xd83c, 0xddf2, 0xd83c, 0xddf8, 0x3a, 0x6d, 0x73, 0x3a, 0x6d, 0x73, 0xd83c, 0xddf2, + 0xd83c, 0xddf8, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x73, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x6d, 0x73, 0xd83c, 0xddf2, 0xd83c, 0xdde6, 0x3a, 0x6d, 0x61, + 0x3a, 0x6d, 0x61, 0xd83c, 0xddf2, 0xd83c, 0xdde6, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x5f, 0x6d, 0x61, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6d, 0x61, 0xd83c, 0xddf2, + 0xd83c, 0xddff, 0x3a, 0x6d, 0x7a, 0x3a, 0x6d, 0x7a, 0xd83c, 0xddf2, 0xd83c, 0xddff, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x7a, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x6d, 0x7a, 0xd83c, 0xddf2, 0xd83c, 0xddf2, 0x3a, 0x6d, 0x6d, 0x3a, 0x6d, + 0x6d, 0xd83c, 0xddf2, 0xd83c, 0xddf2, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6d, + 0x6d, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6d, 0x6d, 0xd83c, 0xddf3, 0xd83c, 0xdde6, + 0x3a, 0x6e, 0x61, 0x3a, 0x6e, 0x61, 0xd83c, 0xddf3, 0xd83c, 0xdde6, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6e, + 0x61, 0xd83c, 0xddf3, 0xd83c, 0xddf7, 0x3a, 0x6e, 0x72, 0x3a, 0x6e, 0x72, 0xd83c, + 0xddf3, 0xd83c, 0xddf7, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x72, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x6e, 0x72, 0xd83c, 0xddf3, 0xd83c, 0xddf5, 0x3a, 0x6e, + 0x70, 0x3a, 0x6e, 0x70, 0xd83c, 0xddf3, 0xd83c, 0xddf5, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x5f, 0x6e, 0x70, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6e, 0x70, 0xd83c, + 0xddf3, 0xd83c, 0xddf1, 0x3a, 0x6e, 0x6c, 0x3a, 0x6e, 0x6c, 0xd83c, 0xddf3, 0xd83c, + 0xddf1, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x6c, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x6e, 0x6c, 0xd83c, 0xddf3, 0xd83c, 0xdde8, 0x3a, 0x6e, 0x63, 0x3a, + 0x6e, 0x63, 0xd83c, 0xddf3, 0xd83c, 0xdde8, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, + 0x6e, 0x63, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6e, 0x63, 0xd83c, 0xddf3, 0xd83c, + 0xddff, 0x3a, 0x6e, 0x7a, 0x3a, 0x6e, 0x7a, 0xd83c, 0xddf3, 0xd83c, 0xddff, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x7a, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x6e, 0x7a, 0xd83c, 0xddf3, 0xd83c, 0xddee, 0x3a, 0x6e, 0x69, 0x3a, 0x6e, 0x69, + 0xd83c, 0xddf3, 0xd83c, 0xddee, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x69, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6e, 0x69, 0xd83c, 0xddf3, 0xd83c, 0xddea, 0x3a, + 0x6e, 0x65, 0x3a, 0x6e, 0x65, 0xd83c, 0xddf3, 0xd83c, 0xddea, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x5f, 0x6e, 0x65, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6e, 0x65, + 0xd83c, 0xddf3, 0xd83c, 0xddec, 0x3a, 0x6e, 0x69, 0x67, 0x65, 0x72, 0x69, 0x61, + 0x3a, 0x6e, 0x69, 0x67, 0x65, 0x72, 0x69, 0x61, 0xd83c, 0xddf3, 0xd83c, 0xddec, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x67, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x6e, 0x67, 0xd83c, 0xddf3, 0xd83c, 0xddfa, 0x3a, 0x6e, 0x75, 0x3a, 0x6e, + 0x75, 0xd83c, 0xddf3, 0xd83c, 0xddfa, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6e, + 0x75, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6e, 0x75, 0xd83c, 0xddf3, 0xd83c, 0xddeb, + 0x3a, 0x6e, 0x66, 0x3a, 0x6e, 0x66, 0xd83c, 0xddf3, 0xd83c, 0xddeb, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x66, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6e, + 0x66, 0xd83c, 0xddf0, 0xd83c, 0xddf5, 0x3a, 0x6b, 0x70, 0x3a, 0x6b, 0x70, 0xd83c, + 0xddf0, 0xd83c, 0xddf5, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6b, 0x70, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x6b, 0x70, 0xd83c, 0xddf2, 0xd83c, 0xddf5, 0x3a, 0x6d, + 0x70, 0x3a, 0x6d, 0x70, 0xd83c, 0xddf2, 0xd83c, 0xddf5, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x5f, 0x6d, 0x70, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6d, 0x70, 0xd83c, + 0xddf3, 0xd83c, 0xddf4, 0x3a, 0x73, 0x6a, 0x3a, 0x73, 0x6a, 0xd83c, 0xddf3, 0xd83c, + 0xddf4, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x6a, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x73, 0x6a, 0xd83c, 0xddf3, 0xd83c, 0xddf4, 0x3a, 0x6e, 0x6f, 0x3a, + 0x6e, 0x6f, 0xd83c, 0xddf3, 0xd83c, 0xddf4, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, + 0x6e, 0x6f, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6e, 0x6f, 0xd83c, 0xddf3, 0xd83c, + 0xddf4, 0x3a, 0x62, 0x76, 0x3a, 0x62, 0x76, 0xd83c, 0xddf3, 0xd83c, 0xddf4, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x62, 0x76, 0x3a, 0x62, 0x76, 0x66, 0x6c, + 0x61, 0x67, 0xd83c, 0xddf4, 0xd83c, 0xddf2, 0x3a, 0x6f, 0x6d, 0x3a, 0x6f, 0x6d, + 0xd83c, 0xddf4, 0xd83c, 0xddf2, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6f, 0x6d, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6f, 0x6d, 0xd83c, 0xddf5, 0xd83c, 0xddf0, 0x3a, + 0x70, 0x6b, 0x3a, 0x70, 0x6b, 0xd83c, 0xddf5, 0xd83c, 0xddf0, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x5f, 0x70, 0x6b, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x70, 0x6b, + 0xd83c, 0xddf5, 0xd83c, 0xddfc, 0x3a, 0x70, 0x77, 0x3a, 0x70, 0x77, 0xd83c, 0xddf5, + 0xd83c, 0xddfc, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x70, 0x77, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x70, 0x77, 0xd83c, 0xddf5, 0xd83c, 0xddf8, 0x3a, 0x70, 0x73, + 0x3a, 0x70, 0x73, 0xd83c, 0xddf5, 0xd83c, 0xddf8, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x5f, 0x70, 0x73, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x70, 0x73, 0xd83c, 0xddf5, + 0xd83c, 0xdde6, 0x3a, 0x70, 0x61, 0x3a, 0x70, 0x61, 0xd83c, 0xddf5, 0xd83c, 0xdde6, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x70, 0x61, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x70, 0x61, 0xd83c, 0xddf5, 0xd83c, 0xddec, 0x3a, 0x70, 0x67, 0x3a, 0x70, + 0x67, 0xd83c, 0xddf5, 0xd83c, 0xddec, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x70, + 0x67, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x70, 0x67, 0xd83c, 0xddf5, 0xd83c, 0xddfe, + 0x3a, 0x70, 0x79, 0x3a, 0x70, 0x79, 0xd83c, 0xddf5, 0xd83c, 0xddfe, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x5f, 0x70, 0x79, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x70, + 0x79, 0xd83c, 0xddf5, 0xd83c, 0xddea, 0x3a, 0x70, 0x65, 0x3a, 0x70, 0x65, 0xd83c, + 0xddf5, 0xd83c, 0xddea, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x70, 0x65, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x70, 0x65, 0xd83c, 0xddf5, 0xd83c, 0xdded, 0x3a, 0x70, + 0x68, 0x3a, 0x70, 0x68, 0xd83c, 0xddf5, 0xd83c, 0xdded, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x5f, 0x70, 0x68, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x70, 0x68, 0xd83c, + 0xddf5, 0xd83c, 0xddf3, 0x3a, 0x70, 0x6e, 0x3a, 0x70, 0x6e, 0xd83c, 0xddf5, 0xd83c, + 0xddf3, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x70, 0x6e, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x70, 0x6e, 0xd83c, 0xddf5, 0xd83c, 0xddf1, 0x3a, 0x70, 0x6c, 0x3a, + 0x70, 0x6c, 0xd83c, 0xddf5, 0xd83c, 0xddf1, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, + 0x70, 0x6c, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x70, 0x6c, 0xd83c, 0xddf5, 0xd83c, + 0xddf9, 0x3a, 0x70, 0x74, 0x3a, 0x70, 0x74, 0xd83c, 0xddf5, 0xd83c, 0xddf9, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x70, 0x74, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x70, 0x74, 0xd83c, 0xddf5, 0xd83c, 0xddf7, 0x3a, 0x70, 0x72, 0x3a, 0x70, 0x72, + 0xd83c, 0xddf5, 0xd83c, 0xddf7, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x70, 0x72, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x70, 0x72, 0xd83c, 0xddf6, 0xd83c, 0xdde6, 0x3a, + 0x71, 0x61, 0x3a, 0x71, 0x61, 0xd83c, 0xddf6, 0xd83c, 0xdde6, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x5f, 0x71, 0x61, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x71, 0x61, + 0xd83c, 0xddf7, 0xd83c, 0xddea, 0x3a, 0x72, 0x65, 0x3a, 0x72, 0x65, 0xd83c, 0xddf7, + 0xd83c, 0xddea, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x72, 0x65, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x72, 0x65, 0xd83c, 0xddf7, 0xd83c, 0xddf4, 0x3a, 0x72, 0x6f, + 0x3a, 0x72, 0x6f, 0xd83c, 0xddf7, 0xd83c, 0xddf4, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x5f, 0x72, 0x6f, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x72, 0x6f, 0xd83c, 0xddf7, + 0xd83c, 0xddfa, 0x3a, 0x72, 0x75, 0x3a, 0x72, 0x75, 0xd83c, 0xddf7, 0xd83c, 0xddfa, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x72, 0x75, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x72, 0x75, 0xd83c, 0xddf7, 0xd83c, 0xddfc, 0x3a, 0x72, 0x77, 0x3a, 0x72, + 0x77, 0xd83c, 0xddf7, 0xd83c, 0xddfc, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x72, + 0x77, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x72, 0x77, 0xd83c, 0xddfc, 0xd83c, 0xddf8, + 0x3a, 0x77, 0x73, 0x3a, 0x77, 0x73, 0xd83c, 0xddfc, 0xd83c, 0xddf8, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x5f, 0x77, 0x73, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x77, + 0x73, 0xd83c, 0xddf8, 0xd83c, 0xddf2, 0x3a, 0x73, 0x6d, 0x3a, 0x73, 0x6d, 0xd83c, + 0xddf8, 0xd83c, 0xddf2, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x6d, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x6d, 0xd83c, 0xddf8, 0xd83c, 0xddf9, 0x3a, 0x73, + 0x74, 0x3a, 0x73, 0x74, 0xd83c, 0xddf8, 0xd83c, 0xddf9, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x5f, 0x73, 0x74, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x74, 0xd83c, + 0xddf8, 0xd83c, 0xdde6, 0x3a, 0x73, 0x61, 0x75, 0x64, 0x69, 0x3a, 0x73, 0x61, + 0x75, 0x64, 0x69, 0xd83c, 0xddf8, 0xd83c, 0xdde6, 0x3a, 0x73, 0x61, 0x75, 0x64, + 0x69, 0x61, 0x72, 0x61, 0x62, 0x69, 0x61, 0x3a, 0x73, 0x61, 0x75, 0x64, + 0x69, 0x61, 0x72, 0x61, 0x62, 0x69, 0x61, 0xd83c, 0xddf8, 0xd83c, 0xdde6, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x61, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x73, 0x61, 0xd83c, 0xddf8, 0xd83c, 0xddf3, 0x3a, 0x73, 0x6e, 0x3a, 0x73, 0x6e, + 0xd83c, 0xddf8, 0xd83c, 0xddf3, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x6e, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x6e, 0xd83c, 0xddf7, 0xd83c, 0xddf8, 0x3a, + 0x72, 0x73, 0x3a, 0x72, 0x73, 0xd83c, 0xddf7, 0xd83c, 0xddf8, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x5f, 0x72, 0x73, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x72, 0x73, + 0xd83c, 0xddf8, 0xd83c, 0xdde8, 0x3a, 0x73, 0x63, 0x3a, 0x73, 0x63, 0xd83c, 0xddf8, + 0xd83c, 0xdde8, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x63, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x73, 0x63, 0xd83c, 0xddf8, 0xd83c, 0xddf1, 0x3a, 0x73, 0x6c, + 0x3a, 0x73, 0x6c, 0xd83c, 0xddf8, 0xd83c, 0xddf1, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x5f, 0x73, 0x6c, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x6c, 0xd83c, 0xddf8, + 0xd83c, 0xddec, 0x3a, 0x73, 0x67, 0x3a, 0x73, 0x67, 0xd83c, 0xddf8, 0xd83c, 0xddec, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x67, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x67, 0xd83c, 0xddf8, 0xd83c, 0xddfd, 0x3a, 0x73, 0x78, 0x3a, 0x73, + 0x78, 0xd83c, 0xddf8, 0xd83c, 0xddfd, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, + 0x78, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x78, 0xd83c, 0xddf8, 0xd83c, 0xddf0, + 0x3a, 0x73, 0x6b, 0x3a, 0x73, 0x6b, 0xd83c, 0xddf8, 0xd83c, 0xddf0, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x6b, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x73, + 0x6b, 0xd83c, 0xddf8, 0xd83c, 0xddee, 0x3a, 0x73, 0x69, 0x3a, 0x73, 0x69, 0xd83c, + 0xddf8, 0xd83c, 0xddee, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x69, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x69, 0xd83c, 0xddec, 0xd83c, 0xddf8, 0x3a, 0x67, + 0x73, 0x3a, 0x67, 0x73, 0xd83c, 0xddec, 0xd83c, 0xddf8, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x5f, 0x67, 0x73, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x67, 0x73, 0xd83c, + 0xddf8, 0xd83c, 0xdde7, 0x3a, 0x73, 0x62, 0x3a, 0x73, 0x62, 0xd83c, 0xddf8, 0xd83c, + 0xdde7, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x62, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x73, 0x62, 0xd83c, 0xddf8, 0xd83c, 0xddf4, 0x3a, 0x73, 0x6f, 0x3a, + 0x73, 0x6f, 0xd83c, 0xddf8, 0xd83c, 0xddf4, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, + 0x73, 0x6f, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x6f, 0xd83c, 0xddff, 0xd83c, + 0xdde6, 0x3a, 0x7a, 0x61, 0x3a, 0x7a, 0x61, 0xd83c, 0xddff, 0xd83c, 0xdde6, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x7a, 0x61, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x7a, 0x61, 0xd83c, 0xddf0, 0xd83c, 0xddf7, 0x3a, 0x6b, 0x72, 0x3a, 0x6b, 0x72, + 0xd83c, 0xddf0, 0xd83c, 0xddf7, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6b, 0x72, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6b, 0x72, 0xd83c, 0xddf8, 0xd83c, 0xddf8, 0x3a, + 0x73, 0x73, 0x3a, 0x73, 0x73, 0xd83c, 0xddf8, 0xd83c, 0xddf8, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x5f, 0x73, 0x73, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x73, + 0xd83c, 0xddea, 0xd83c, 0xddf8, 0x3a, 0x65, 0x73, 0x3a, 0x65, 0x73, 0xd83c, 0xddea, + 0xd83c, 0xddf8, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x65, 0x73, 0x3a, 0x65, + 0x73, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xddea, 0xd83c, 0xddf8, 0x3a, 0x65, 0x61, + 0x3a, 0x65, 0x61, 0xd83c, 0xddea, 0xd83c, 0xddf8, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x5f, 0x65, 0x61, 0x3a, 0x65, 0x61, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xddf1, + 0xd83c, 0xddf0, 0x3a, 0x6c, 0x6b, 0x3a, 0x6c, 0x6b, 0xd83c, 0xddf1, 0xd83c, 0xddf0, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6c, 0x6b, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x6c, 0x6b, 0xd83c, 0xdde7, 0xd83c, 0xddf1, 0x3a, 0x62, 0x6c, 0x3a, 0x62, + 0x6c, 0xd83c, 0xdde7, 0xd83c, 0xddf1, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x62, + 0x6c, 0x3a, 0x62, 0x6c, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xddf8, 0xd83c, 0xdded, + 0x3a, 0x74, 0x61, 0x3a, 0x74, 0x61, 0xd83c, 0xddf8, 0xd83c, 0xdded, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x61, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x74, + 0x61, 0xd83c, 0xddf8, 0xd83c, 0xdded, 0x3a, 0x73, 0x68, 0x3a, 0x73, 0x68, 0xd83c, + 0xddf8, 0xd83c, 0xdded, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x68, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x73, 0x68, 0xd83c, 0xddf8, 0xd83c, 0xdded, 0x3a, 0x61, + 0x63, 0x3a, 0x61, 0x63, 0xd83c, 0xddf8, 0xd83c, 0xdded, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x5f, 0x61, 0x63, 0x3a, 0x61, 0x63, 0x66, 0x6c, 0x61, 0x67, 0xd83c, + 0xddf0, 0xd83c, 0xddf3, 0x3a, 0x6b, 0x6e, 0x3a, 0x6b, 0x6e, 0xd83c, 0xddf0, 0xd83c, + 0xddf3, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x6b, 0x6e, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x6b, 0x6e, 0xd83c, 0xddf1, 0xd83c, 0xdde8, 0x3a, 0x6c, 0x63, 0x3a, + 0x6c, 0x63, 0xd83c, 0xddf1, 0xd83c, 0xdde8, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, + 0x6c, 0x63, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x6c, 0x63, 0xd83c, 0xddf5, 0xd83c, + 0xddf2, 0x3a, 0x70, 0x6d, 0x3a, 0x70, 0x6d, 0xd83c, 0xddf5, 0xd83c, 0xddf2, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x70, 0x6d, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x70, 0x6d, 0xd83c, 0xddfb, 0xd83c, 0xdde8, 0x3a, 0x76, 0x63, 0x3a, 0x76, 0x63, + 0xd83c, 0xddfb, 0xd83c, 0xdde8, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x76, 0x63, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x76, 0x63, 0xd83c, 0xddf8, 0xd83c, 0xdde9, 0x3a, + 0x73, 0x64, 0x3a, 0x73, 0x64, 0xd83c, 0xddf8, 0xd83c, 0xdde9, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x5f, 0x73, 0x64, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x64, + 0xd83c, 0xddf8, 0xd83c, 0xddf7, 0x3a, 0x73, 0x72, 0x3a, 0x73, 0x72, 0xd83c, 0xddf8, + 0xd83c, 0xddf7, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x72, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x73, 0x72, 0xd83c, 0xddf8, 0xd83c, 0xddff, 0x3a, 0x73, 0x7a, + 0x3a, 0x73, 0x7a, 0xd83c, 0xddf8, 0xd83c, 0xddff, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x5f, 0x73, 0x7a, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x7a, 0xd83c, 0xddf8, + 0xd83c, 0xddea, 0x3a, 0x73, 0x65, 0x3a, 0x73, 0x65, 0xd83c, 0xddf8, 0xd83c, 0xddea, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x65, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x73, 0x65, 0xd83c, 0xdde8, 0xd83c, 0xdded, 0x3a, 0x63, 0x68, 0x3a, 0x63, + 0x68, 0xd83c, 0xdde8, 0xd83c, 0xdded, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x63, + 0x68, 0x3a, 0x63, 0x68, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xddf8, 0xd83c, 0xddfe, + 0x3a, 0x73, 0x79, 0x3a, 0x73, 0x79, 0xd83c, 0xddf8, 0xd83c, 0xddfe, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x5f, 0x73, 0x79, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x73, + 0x79, 0xd83c, 0xddf9, 0xd83c, 0xddfc, 0x3a, 0x74, 0x77, 0x3a, 0x74, 0x77, 0xd83c, + 0xddf9, 0xd83c, 0xddfc, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x77, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x74, 0x77, 0xd83c, 0xddf9, 0xd83c, 0xddef, 0x3a, 0x74, + 0x6a, 0x3a, 0x74, 0x6a, 0xd83c, 0xddf9, 0xd83c, 0xddef, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x5f, 0x74, 0x6a, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x74, 0x6a, 0xd83c, + 0xddf9, 0xd83c, 0xddff, 0x3a, 0x74, 0x7a, 0x3a, 0x74, 0x7a, 0xd83c, 0xddf9, 0xd83c, + 0xddff, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x7a, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x74, 0x7a, 0xd83c, 0xddf9, 0xd83c, 0xdded, 0x3a, 0x74, 0x68, 0x3a, + 0x74, 0x68, 0xd83c, 0xddf9, 0xd83c, 0xdded, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, + 0x74, 0x68, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x74, 0x68, 0xd83c, 0xddf9, 0xd83c, + 0xddf1, 0x3a, 0x74, 0x6c, 0x3a, 0x74, 0x6c, 0xd83c, 0xddf9, 0xd83c, 0xddf1, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x6c, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x74, 0x6c, 0xd83c, 0xddf9, 0xd83c, 0xddec, 0x3a, 0x74, 0x67, 0x3a, 0x74, 0x67, + 0xd83c, 0xddf9, 0xd83c, 0xddec, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x67, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x74, 0x67, 0xd83c, 0xddf9, 0xd83c, 0xddf0, 0x3a, + 0x74, 0x6b, 0x3a, 0x74, 0x6b, 0xd83c, 0xddf9, 0xd83c, 0xddf0, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x5f, 0x74, 0x6b, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x74, 0x6b, + 0xd83c, 0xddf9, 0xd83c, 0xddf4, 0x3a, 0x74, 0x6f, 0x3a, 0x74, 0x6f, 0xd83c, 0xddf9, + 0xd83c, 0xddf4, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x6f, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x74, 0x6f, 0xd83c, 0xddf9, 0xd83c, 0xddf9, 0x3a, 0x74, 0x74, + 0x3a, 0x74, 0x74, 0xd83c, 0xddf9, 0xd83c, 0xddf9, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x5f, 0x74, 0x74, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x74, 0x74, 0xd83c, 0xddf9, + 0xd83c, 0xddf3, 0x3a, 0x74, 0x6e, 0x3a, 0x74, 0x6e, 0xd83c, 0xddf9, 0xd83c, 0xddf3, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x6e, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x74, 0x6e, 0xd83c, 0xddf9, 0xd83c, 0xddf7, 0x3a, 0x74, 0x72, 0x3a, 0x74, + 0x72, 0xd83c, 0xddf9, 0xd83c, 0xddf7, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, + 0x72, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x74, 0x72, 0xd83c, 0xddf9, 0xd83c, 0xddf2, + 0x3a, 0x74, 0x75, 0x72, 0x6b, 0x6d, 0x65, 0x6e, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x3a, 0x74, 0x75, 0x72, 0x6b, 0x6d, 0x65, 0x6e, 0x69, 0x73, 0x74, + 0x61, 0x6e, 0xd83c, 0xddf9, 0xd83c, 0xddf2, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, + 0x74, 0x6d, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x74, 0x6d, 0xd83c, 0xddf9, 0xd83c, + 0xdde8, 0x3a, 0x74, 0x63, 0x3a, 0x74, 0x63, 0xd83c, 0xddf9, 0xd83c, 0xdde8, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x63, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x74, 0x63, 0xd83c, 0xddf9, 0xd83c, 0xddfb, 0x3a, 0x74, 0x75, 0x76, 0x61, 0x6c, + 0x75, 0x3a, 0x74, 0x75, 0x76, 0x61, 0x6c, 0x75, 0xd83c, 0xddf9, 0xd83c, 0xddfb, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x74, 0x76, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x74, 0x76, 0xd83c, 0xddfb, 0xd83c, 0xddee, 0x3a, 0x76, 0x69, 0x3a, 0x76, + 0x69, 0xd83c, 0xddfb, 0xd83c, 0xddee, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x76, + 0x69, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x76, 0x69, 0xd83c, 0xddfa, 0xd83c, 0xddec, + 0x3a, 0x75, 0x67, 0x3a, 0x75, 0x67, 0xd83c, 0xddfa, 0xd83c, 0xddec, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x5f, 0x75, 0x67, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x75, + 0x67, 0xd83c, 0xddfa, 0xd83c, 0xdde6, 0x3a, 0x75, 0x61, 0x3a, 0x75, 0x61, 0xd83c, + 0xddfa, 0xd83c, 0xdde6, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x75, 0x61, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x75, 0x61, 0xd83c, 0xdde6, 0xd83c, 0xddea, 0x3a, 0x61, + 0x65, 0x3a, 0x61, 0x65, 0xd83c, 0xdde6, 0xd83c, 0xddea, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x5f, 0x61, 0x65, 0x3a, 0x61, 0x65, 0x66, 0x6c, 0x61, 0x67, 0xd83c, + 0xddec, 0xd83c, 0xdde7, 0x3a, 0x67, 0x62, 0x3a, 0x67, 0x62, 0xd83c, 0xddec, 0xd83c, + 0xdde7, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x67, 0x62, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x67, 0x62, 0xd83c, 0xdff4, 0xdb40, 0xdc67, 0xdb40, 0xdc62, 0xdb40, 0xdc65, + 0xdb40, 0xdc6e, 0xdb40, 0xdc67, 0xdb40, 0xdc7f, 0x3a, 0x65, 0x6e, 0x67, 0x6c, 0x61, + 0x6e, 0x64, 0x3a, 0x65, 0x6e, 0x67, 0x6c, 0x61, 0x6e, 0x64, 0xd83c, 0xdff4, + 0xdb40, 0xdc67, 0xdb40, 0xdc62, 0xdb40, 0xdc73, 0xdb40, 0xdc63, 0xdb40, 0xdc74, 0xdb40, 0xdc7f, + 0x3a, 0x73, 0x63, 0x6f, 0x74, 0x6c, 0x61, 0x6e, 0x64, 0x3a, 0x73, 0x63, + 0x6f, 0x74, 0x6c, 0x61, 0x6e, 0x64, 0xd83c, 0xdff4, 0xdb40, 0xdc67, 0xdb40, 0xdc62, + 0xdb40, 0xdc77, 0xdb40, 0xdc6c, 0xdb40, 0xdc73, 0xdb40, 0xdc7f, 0x3a, 0x77, 0x61, 0x6c, + 0x65, 0x73, 0x3a, 0x77, 0x61, 0x6c, 0x65, 0x73, 0xd83c, 0xddfa, 0xd83c, 0xddf8, + 0x3a, 0x75, 0x73, 0x3a, 0x75, 0x73, 0xd83c, 0xddfa, 0xd83c, 0xddf8, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x5f, 0x75, 0x73, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x75, + 0x73, 0xd83c, 0xddfa, 0xd83c, 0xddf8, 0x3a, 0x75, 0x6d, 0x3a, 0x75, 0x6d, 0xd83c, + 0xddfa, 0xd83c, 0xddf8, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x75, 0x6d, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x75, 0x6d, 0xd83c, 0xddfa, 0xd83c, 0xddfe, 0x3a, 0x75, + 0x79, 0x3a, 0x75, 0x79, 0xd83c, 0xddfa, 0xd83c, 0xddfe, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x5f, 0x75, 0x79, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x75, 0x79, 0xd83c, + 0xddfa, 0xd83c, 0xddff, 0x3a, 0x75, 0x7a, 0x3a, 0x75, 0x7a, 0xd83c, 0xddfa, 0xd83c, + 0xddff, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x75, 0x7a, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x75, 0x7a, 0xd83c, 0xddfb, 0xd83c, 0xddfa, 0x3a, 0x76, 0x75, 0x3a, + 0x76, 0x75, 0xd83c, 0xddfb, 0xd83c, 0xddfa, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, + 0x76, 0x75, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x76, 0x75, 0xd83c, 0xddfb, 0xd83c, + 0xdde6, 0x3a, 0x76, 0x61, 0x3a, 0x76, 0x61, 0xd83c, 0xddfb, 0xd83c, 0xdde6, 0x3a, + 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x76, 0x61, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x76, 0x61, 0xd83c, 0xddfb, 0xd83c, 0xddea, 0x3a, 0x76, 0x65, 0x3a, 0x76, 0x65, + 0xd83c, 0xddfb, 0xd83c, 0xddea, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x76, 0x65, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x76, 0x65, 0xd83c, 0xddfb, 0xd83c, 0xddf3, 0x3a, + 0x76, 0x6e, 0x3a, 0x76, 0x6e, 0xd83c, 0xddfb, 0xd83c, 0xddf3, 0x3a, 0x66, 0x6c, + 0x61, 0x67, 0x5f, 0x76, 0x6e, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x76, 0x6e, + 0xd83c, 0xddfc, 0xd83c, 0xddeb, 0x3a, 0x77, 0x66, 0x3a, 0x77, 0x66, 0xd83c, 0xddfc, + 0xd83c, 0xddeb, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x77, 0x66, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x77, 0x66, 0xd83c, 0xddea, 0xd83c, 0xdded, 0x3a, 0x65, 0x68, + 0x3a, 0x65, 0x68, 0xd83c, 0xddea, 0xd83c, 0xdded, 0x3a, 0x66, 0x6c, 0x61, 0x67, + 0x5f, 0x65, 0x68, 0x3a, 0x65, 0x68, 0x66, 0x6c, 0x61, 0x67, 0xd83c, 0xddfe, + 0xd83c, 0xddea, 0x3a, 0x79, 0x65, 0x3a, 0x79, 0x65, 0xd83c, 0xddfe, 0xd83c, 0xddea, + 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x79, 0x65, 0x3a, 0x66, 0x6c, 0x61, + 0x67, 0x79, 0x65, 0xd83c, 0xddff, 0xd83c, 0xddf2, 0x3a, 0x7a, 0x6d, 0x3a, 0x7a, + 0x6d, 0xd83c, 0xddff, 0xd83c, 0xddf2, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x5f, 0x7a, + 0x6d, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x7a, 0x6d, 0xd83c, 0xddff, 0xd83c, 0xddfc, + 0x3a, 0x7a, 0x77, 0x3a, 0x7a, 0x77, 0xd83c, 0xddff, 0xd83c, 0xddfc, 0x3a, 0x66, + 0x6c, 0x61, 0x67, 0x5f, 0x7a, 0x77, 0x3a, 0x66, 0x6c, 0x61, 0x67, 0x7a, + 0x77 }; const small ReplacementWordLengths[] = { -8, 6, 5, 4, 9, 8, 5, 5, 3, 5, 8, 2, -7, 3, 4, 7, 5, 8, 4, 8, 7, 6, 5, 4, -4, 6, 4, 6, 4, 8, 4, 5, 5, 7, 7, 4, -7, 7, 6, 4, 7, 3, 3, 3, 5, 6, 7, 6, -4, 3, 5, 6, 3, 5, 6, 4, 5, 5, 5, 5, -4, 7, 7, 4, 4, 4, 10, 5, 4, 5, 6, 4, -3, 4, 6, 5, 8, 12, 7, 7, 8, 4, 8, 8, -5, 6, 4, 8, 5, 9, 9, 10, 4, 5, 5, 7, -5, 4, 5, 2, 4, 7, 14, 6, 8, 9, 5, 4, -10, 5, 4, 7, 6, 7, 4, 5, 3, 12, 8, 5, -8, 4, 3, 5, 6, 8, 4, 4, 7, 4, 4, 7, -3, 4, 8, 8, 4, 4, 5, 9, 4, 5, 6, 5, -6, 4, 4, 9, 6, 4, 8, 4, 4, 11, 4, 4, -11, 7, 4, 4, 4, 7, 4, 3, 7, 3, 8, 4, -6, 8, 3, 6, 4, 4, 5, 8, 5, 3, 10, 5, -10, 5, 5, 7, 5, 4, 5, 5, 4, 7, 1, 3, -6, 3, 5, 3, 3, 3, 4, 5, 3, 5, 3, 7, -3, 6, 3, 6, 4, 3, 7, 5, 4, 5, 6, 4, -4, 5, 7, 9, 4, 7, 2, 8, 7, 9, 2, 10, -5, 4, 4, 4, 6, 4, 4, 4, 5, 6, 4, 5, -3, 7, 6, 4, 5, 6, 4, 7, 7, 1, 5, 2, -4, 3, 5, 4, 2, 4, 5, 5, 5, 1, 5, 2, -4, 5, 5, 2, 4, 6, 4, 4, 2, 4, 4, 2, -6, 7, 4, 6, 7, 4, 4, 7, 3, 7, 7, 4, -6, 4, 6, 4, 4, 6, 4, 4, 4, 2, 4, 2, -6, 8, 6, 4, 6, 8, 4, 6, 6, 4, 7, 6, -4, 4, 4, 8, 4, 4, 6, 3, 4, 10, 3, 4, -4, 2, 10, 8, 4, 8, 4, 2, 10, 5, 2, 10, -4, 3, 4, 3, 5, 5, 6, 5, 5, 6, 3, 5, -4, 6, 4, 5, 6, 6, 3, 5, 7, 5, 5, 3, -3, 3, 2, 4, 3, 7, 3, 4, 6, 7, 5, 3, -6, 7, 3, 6, 4, 6, 6, 7, 7, 6, 5, 3, -7, 6, 3, 7, 6, 12, 5, 6, 12, 3, 6, 12, -6, 5, 5, 5, 3, 9, 5, 9, 5, 9, 3, 2, -6, 3, 3, 9, 6, 5, 6, 6, 3, 6, 6, 5, -6, 3, 4, 5, 4, 3, 7, 5, 3, 7, 6, 5, -3, 6, 7, 5, 3, 7, 7, 5, 6, 7, 3, 6, -12, 5, 3, 12, 6, 5, 6, 3, 6, 6, 8, 5, -3, 8, 9, 5, 3, 9, 6, 5, 6, 3, 11, 5, -11, 3, 5, 5, 3, 5, 9, 5, 9, 3, 5, 5, -5, 3, 9, 6, 5, 3, 5, 8, 6, 5, 4, 4, -2, 3, 6, 5, 9, 5, 8, 5, 6, 5, 6, 3, -3, 6, 6, 4, 7, 5, 4, 11, 6, 4, 6, 7, -4, 3, 7, 9, 2, 5, 4, 2, 9, 2, 6, 9, -3, 2, 9, 2, 5, 2, 5, 9, 2, 6, 9, 3, -2, 4, 7, 5, 4, 7, 4, 6, 7, 4, 3, 7, -11, 5, 11, 3, 8, 4, 4, 11, 6, 9, 5, 5, -6, 9, 3, 9, 7, 5, 4, 6, 7, 4, 6, 7, -3, 7, 8, 5, 8, 6, 8, 3, 7, 7, 5, 7, -7, 7, 6, 7, 7, 3, 4, 7, 7, 5, 7, 7, -7, 6, 4, 7, 3, 7, 8, 2, 10, 3, 4, 6, -6, 4, 7, 3, 5, 4, 8, 4, 5, 7, 5, 4, -8, 6, 4, 5, 4, 3, 8, 4, 7, 5, 3, 7, -7, 6, 7, 7, 5, 3, 7, 6, 6, 7, 6, 5, -7, 3, 5, 5, 7, 3, 3, 6, 5, 4, 6, 5, -3, 4, 5, 6, 5, 4, 2, 6, 2, 6, 5, 2, -4, 6, 2, 10, 4, 3, 5, 10, 2, 4, 2, 10, -2, 4, 2, 6, 3, 6, 3, 5, 6, 3, 6, 4, -6, 4, 6, 4, 6, 3, 6, 3, 6, 4, 6, 4, -6, 4, 6, 3, 6, 3, 6, 4, 6, 4, 6, 4, -3, 6, 5, 6, 4, 5, 3, 6, 4, 5, 3, 3, -6, 5, 6, 4, 4, 5, 3, 6, 3, 6, 4, 3, -3, 6, 4, 3, 3, 3, 6, 3, 6, 4, 4, 3, -7, 6, 5, 5, 7, 5, 6, 6, 4, 4, 6, 4, -4, 4, 8, 4, 3, 6, 6, 5, 6, 5, 5, 6, -5, 4, 5, 6, 4, 7, 6, 5, 5, 7, 9, 10, -4, 10, 6, 8, 9, 3, 3, 5, 7, 6, 4, 3, -3, 4, 4, 5, 5, 5, 4, 4, 4, 3, 3, 4, -3, 4, 4, 6, 4, 2, 3, 4, 4, 2, 4, 2, -5, 6, 7, 7, 4, 4, 5, 5, 8, 5, 7, 4, -5, 3, 3, 4, 4, 5, 4, 7, 7, 3, 3, 9, -5, 5, 6, 3, 6, 6, 3, 6, 5, 6, 8, 4, -5, 7, 6, 4, 8, 4, 8, 7, 5, 5, 6, 9, -7, 6, 7, 5, 2, 4, 4, 5, 9, 5, 8, 10, -5, 7, 9, 4, 4, 3, 5, 4, 6, 4, 7, 6, -4, 2, 5, 4, 7, 6, 3, 8, 3, 6, 4, 6, -6, 4, 6, 9, 4, 9, 4, 9, 4, 4, 4, 8, -4, 8, 6, 4, 4, 6, 8, 4, 6, 6, 4, 4, -5, 8, 3, 2, 4, 7, 5, 4, 6, 6, 4, 6, -9, 7, 7, 6, 8, 8, 5, 6, 5, 4, 5, 4, -4, 7, 4, 6, 4, 4, 7, 8, 4, 6, 4, 3, -8, 4, 6, 5, 4, 7, 7, 4, 6, 4, 4, 3, -4, 4, 4, 4, 4, 4, 3, 4, 4, 5, 4, 7, -4, 4, 4, 4, 7, 4, 8, 4, 5, 4, 5, 8, -3, 5, 4, 4, 5, 5, 5, 5, 3, 5, 4, 5, -5, 3, 5, 6, 5, 6, 5, 3, 5, 5, 3, 5, -6, 5, 4, 3, 5, 4, 5, 4, 3, 5, 7, 5, -5, 4, 4, 5, 4, 3, 5, 4, 7, 5, 4, 7, -5, 9, 4, 5, 9, 5, 4, 4, 5, 4, 8, 7, -9, 7, 4, 4, 4, 5, 7, 4, 5, 7, 3, 5, -7, 5, 5, 8, 5, 5, 5, 4, 9, 5, 6, 10, -6, 10, 5, 8, 5, 9, 9, 4, 7, 6, 8, 8, -6, 4, 3, 6, 6, 6, 5, 8, 6, 7, 7, 5, -3, 9, 5, 8, 5, 5, 6, 6, 5, 6, 3, 7, -5, 8, 5, 6, 3, 7, 4, 4, 2, 5, 3, 3, -6, 9, 5, 4, 7, 9, 7, 4, 7, 5, 5, 5, -6, 4, 2, 3, 7, 9, 5, 4, 4, 4, 5, 5, -5, 4, 4, 4, 7, 4, 4, 5, 3, 6, 5, 3, -8, 4, 8, 4, 7, 7, 8, 5, 3, 9, 7, 8, -6, 5, 4, 2, 4, 4, 6, 6, 3, 4, 4, 5, -8, 5, 9, 5, 5, 4, 6, 5, 7, 8, 5, 8, -6, 4, 7, 4, 9, 5, 3, 4, 5, 3, 4, 5, -5, 4, 4, 5, 5, 6, 10, 8, 8, 6, 10, 8, -5, 5, 5, 6, 4, 4, 9, 4, 3, 4, 6, 5, -6, 4, 3, 7, 7, 4, 4, 7, 3, 5, 3, 3, -4, 7, 4, 6, 6, 6, 5, 6, 7, 4, 7, 7, -3, 5, 3, 5, 11, 7, 7, 5, 7, 3, 7, 6, -6, 6, 7, 6, 7, 7, 6, 7, 6, 5, 9, 3, -9, 9, 9, 6, 9, 12, 5, 12, 3, 9, 9, 5, -6, 4, 8, 5, 4, 8, 3, 4, 6, 4, 10, 6, -4, 8, 6, 8, 7, 5, 8, 8, 6, 7, 8, 3, -7, 7, 5, 7, 3, 6, 7, 6, 7, 5, 3, 7, -6, 6, 7, 8, 5, 3, 8, 7, 6, 8, 7, 4, -5, 5, 3, 7, 4, 5, 4, 5, 6, 7, 4, 5, -4, 6, 5, 4, 3, 6, 7, 4, 6, 6, 5, 6, -6, 5, 6, 3, 9, 6, 6, 6, 8, 5, 6, 3, -8, 9, 8, 6, 8, 6, 7, 4, 5, 4, 5, 6, -5, 5, 8, 5, 5, 5, 5, 5, 5, 5, 6, 5, -6, 5, 5, 5, 5, 5, 6, 7, 8, 6, 6, 9, -7, 7, 6, 4, 8, 5, 8, 3, 7, 8, 8, 6, -4, 10, 3, 7, 10, 10, 7, 5, 8, 7, 4, 10, -4, 4, 9, 7, 6, 6, 3, 4, 4, 7, 4, 5, -7, 4, 3, 3, 4, 4, 3, 3, 10, 3, 6, 3, -4, 3, 6, 9, 6, 4, 7, 5, 11, 5, 7, 7, -4, 9, 5, 7, 10, 6, 10, 5, 8, 3, 8, 6, -3, 8, 10, 8, 8, 4, 6, 7, 8, 8, 7, 10, -3, 7, 5, 8, 7, 8, 11, 4, 11, 5, 5, 4, -10, 5, 6, 5, 4, 7, 10, 8, 5, 8, 5, 8, -8, 9, 8, 8, 6, 7, 9, 4, 5, 5, 8, 9, -9, 9, 4, 6, 4, 5, 4, 6, 12, 8, 7, 5, -7, 8, 5, 7, 3, 5, 3, 5, 7, 2, 6, 8, -5, 5, 6, 8, 6, 8, 7, 6, 5, 7, 6, 8, -5, 6, 2, 8, 5, 8, 5, 8, 4, 5, 6, 6, -6, 8, 6, 8, 4, 8, 4, 4, 5, 7, 6, 7, -4, 8, 5, 7, 5, 8, 8, 12, 12, 4, 7, 5, -6, 5, 4, 9, 5, 5, 8, 8, 5, 9, 5, 6, -10, 5, 6, 4, 8, 6, 4, 8, 4, 5, 11, 5, -6, 5, 4, 7, 8, 9, 6, 6, 9, 5, 6, 6, -5, 4, 5, 8, 4, 4, 7, 9, 4, 7, 5, 8, -9, 4, 7, 4, 6, 4, 4, 9, 5, 5, 4, 5, -3, 2, 6, 5, 5, 5, 6, 7, 8, 8, 8, 7, -7, 7, 6, 5, 5, 6, 5, 5, 9, 8, 11, 8, -4, 6, 2, 3, 3, 6, 6, 5, 4, 6, 5, 6, -5, 4, 9, 9, 4, 6, 8, 9, 9, 5, 3, 2, -5, 10, 6, 11, 5, 6, 7, 5, 9, 5, 5, 5, -5, 5, 5, 11, 5, 9, 7, 9, 4, 9, 7, 8, -4, 4, 10, 6, 11, 4, 3, 3, 5, 5, 4, 6, -3, 4, 5, 8, 4, 6, 3, 6, 6, 6, 3, 6, -4, 6, 4, 3, 6, 6, 5, 4, 3, 4, 3, 4, -6, 3, 4, 5, 6, 5, 6, 7, 6, 6, 7, 6, -7, 3, 3, 7, 4, 7, 5, 6, 6, 7, 9, 10, -4, 4, 7, 11, 6, 7, 5, 6, 7, 4, 4, 7, -7, 3, 3, 3, 4, 4, 3, 5, 4, 5, 3, 13, -8, 5, 7, 4, 5, 5, 4, 8, 8, 7, 4, 8, -4, 7, 5, 6, 4, 8, 4, 5, 7, 7, 5, 4, -8, 5, 8, 4, 8, 8, 5, 1, 4, 6, 4, 5, -4, 6, 4, 7, 5, 6, 7, 7, 4, 7, 4, 4, -7, 2, 4, 7, 4, 6, 6, 4, 4, 4, 6, 4, -2, 8, 4, 3, 5, 5, 5, 7, 4, 5, 9, 5, -4, 4, 3, 6, 7, 6, 8, 3, 6, 8, 6, 8, -4, 4, 5, 3, 4, 4, 3, 4, 6, 6, 3, 4, -6, 3, 7, 4, 9, 4, 6, 4, 6, 4, 4, 8, -5, 8, 9, 6, 2, 10, 9, 8, 5, 10, 8, 4, -6, 4, 6, 4, 5, 4, 4, 4, 6, 5, 4, 8, -4, 9, 6, 10, 10, 5, 10, 5, 8, 7, 7, 5, -8, 9, 4, 5, 3, 9, 3, 8, 4, 5, 3, 8, -3, 5, 3, 4, 5, 10, 10, 6, 4, 5, 6, 4, -6, 7, 3, 3, 5, 3, 4, 3, 4, 6, 3, 4, -4, 4, 6, 5, 5, 6, 5, 5, 4, 5, 5, 6, -5, 5, 6, 5, 11, 5, 5, 4, 8, 11, 5, 6, -3, 6, 9, 9, 10, 5, 9, 5, 4, 5, 10, 5, -5, 6, 5, 5, 5, 5, 3, 8, 4, 2, 6, 6, -2, 5, 5, 2, 4, 7, 3, 4, 7, 4, 3, 5, -8, 6, 7, 2, 5, 7, 9, 5, 6, 6, 6, 3, -5, 5, 8, 11, 9, 8, 6, 2, 4, 6, 4, 6, -11, 4, 11, 9, 4, 9, 6, 3, 5, 4, 9, 5, -5, 5, 5, 5, 5, 5, 7, 4, 2, 6, 5, 9, -9, 6, 15, 5, 5, 5, 5, 1, 1, 2, 2, 2, -3, 1, 1, 4, 4, 9, 4, 5, 2, 5, 4, 5, -2, 4, 3, 5, 10, 2, 11, 2, 6, 3, 8, 2, -3, 7, 5, 8, 6, 2, 6, 2, 7, 11, 11, 4, -8, 4, 8, 8, 11, 10, 3, 10, 4, 11, 4, 4, -7, 8, 8, 7, 2, 5, 3, 8, 7, 5, 4, 5, -5, 5, 7, 8, 5, 6, 5, 4, 8, 7, 5, 9, -4, 1, 7, 3, 6, 5, 4, 1, 7, 3, 3, 2, -10, 7, 5, 2, 7, 8, 7, 7, 5, 4, 7, 4, -6, 4, 6, 8, 2, 3, 6, 5, 3, 6, 6, 8, -4, 7, 11, 6, 3, 4, 4, 7, 2, 2, 2, 4, -3, 4, 4, 3, 3, 5, 4, 4, 3, 5, 5, 4, -6, 3, 4, 4, 8, 6, 8, 5, 7, 3, 6, 8, -6, 5, 5, 4, 6, 4, 6, 6, 4, 5, 4, 5, -8, 5, 8, 5, 4, 7, 6, 5, 6, 2, 5, 6, -4, 5, 8, 5, 5, 2, 5, 4, 5, 5, 5, 5, -4, 5, 2, 5, 4, 5, 5, 5, 5, 5, 5, 5, -4, 5, 5, 4, 5, 5, 4, 2, 5, 4, 5, 5, -4, 5, 5, 4, 9, 4, 5, 7, 2, 5, 4, 7, -6, 10, 7, 6, 3, 6, 6, 16, 6, 9, 7, 4, -5, 5, 4, 4, 5, 5, 4, 8, 5, 4, 5, 14, -1, 6, 5, 4, 8, 8, 2, 9, 10, 4, 4, 5, -4, 4, 3, 4, 2, 3, 4, 5, 5, 4, 6, 3, -5, 4, 6, 5, 6, 5, 5, 6, 6, 3, 4, 6, -3, 5, 8, 4, 3, 5, 8, 7, 6, 5, 4, 7, -5, 7, 5, 6, 4, 7, 5, 6, 6, 5, 5, 6, -6, 5, 5, 6, 5, 6, 5, 5, 6, 5, 6, 6, -5, 6, 5, 5, 6, 6, 6, 6, 5, 5, 5, 6, -5, 6, 5, 7, 4, 5, 4, 5, 4, 4, 2, 4, -11, 6, 4, 6, 4, 6, 6, 3, 2, 6, 7, 6, -7, 7, 5, 6, 5, 5, 5, 6, 5, 6, 8, 5, -5, 5, 6, 7, 7, 6, 6, 6, 6, 6, 6, 6, -6, 6, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, -8, 8, 9, 9, 9, 4, 6, 5, 4, 5, 5, 4, -6, 5, 4, 9, 4, 4, 2, 4, 10, 4, 3, 5, -4, 7, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, -2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, -2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, -2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 4, 2, -2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, -2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, -2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, -2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, -4, 2, 2, 2, 4, 2, 4, 2, 2, 2, 4, 2, -2, 4, 2, 2, 4, 2, 2, 4, 2, 4, 2, 2, -2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 4, 2, -2, 4, 2, 4, 2, 2, 2, 4, 2, 4, 2, 5, -2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, -2, 4, 2, 4, 2, 2, 2, 4, 5, 2, 4, 2, -2, 4, 2, 2, 4, 2, 2, 4, 2, 4, 2, 2, -2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, -2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, -2, 4, 2, 2, 4, 2, 4, 2, 2, 4, 2, 2, -2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, -2, 4, 2, 4, 2, 2, 2, 4, 2, 2, 4, 2, -4, 2, 2, 4, 2, 2, 2, 4, 2, 4, 2, 2, -4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, -4, 2, 2, 2, 4, 2, 4, 2, 2, 4, 2, 2, -4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, -4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, -4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, -4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 9, -4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, -4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, -4, 2, 7, 5, 2, 4, 2, 2, 4, 2, 2, 4, -2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, -2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, -2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, -2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, -2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, -2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, -2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, -2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, -2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, -2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, -2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, -2, 2, 4, 2, 7, 4, 2, 2, 4, 2, 2, 4, -2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, -2, 2, 2, 4, 2, 4, 2, 2, 4, 2, 2, 4, -2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, -2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, -2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, -2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, -2, 2, 4, 2, 2, 4, 2, 5, 11, 4, 2, 2, -4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, -4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, -4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, -4, 2, 2, 4, 2, 2, 2, 4, 2, 2, 4, 2, -4, 2, 2, 2, 4, 2, 4, 2, 2, 4, 2, 2, -2, 4, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, -4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, -4, 2, 2, 2, 4, 2, 4, 2, 2, 4, 2, 2, -4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, -4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, -4, 2, 2, 4, 2, 12, 4, 2, 2, 4, 2, 6, -4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, -2, 4, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, -4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, -4, 2, 2, 4, 2, 2, 4, 2, 2, 2, 4, 2, -4, 2, 2, 4, 2, 2, 4, 2 }; + 8, 6, 5, 4, 9, 8, 5, 5, 3, 5, 8, 2, + 7, 3, 4, 7, 5, 8, 4, 8, 7, 6, 5, 4, + 4, 6, 4, 6, 4, 8, 4, 5, 5, 7, 7, 4, + 7, 7, 6, 4, 7, 3, 3, 5, 6, 6, 4, 3, + 5, 6, 3, 3, 5, 6, 7, 5, 4, 7, 4, 6, + 4, 4, 7, 4, 4, 4, 4, 10, 4, 6, 5, 8, + 12, 7, 7, 8, 4, 8, 8, 5, 6, 4, 8, 5, + 9, 9, 10, 4, 5, 5, 3, 3, 7, 5, 4, 4, + 5, 4, 7, 4, 9, 4, 7, 6, 7, 4, 5, 12, + 8, 5, 4, 7, 7, 3, 4, 8, 8, 4, 4, 5, + 4, 4, 4, 8, 4, 4, 5, 5, 2, 4, 7, 14, + 9, 4, 4, 7, 4, 4, 7, 6, 8, 9, 5, 4, + 10, 8, 5, 8, 4, 6, 5, 4, 4, 5, 6, 5, + 6, 4, 4, 9, 4, 8, 6, 4, 8, 4, 4, 11, + 4, 4, 11, 7, 4, 4, 4, 7, 4, 4, 5, 5, + 5, 5, 6, 4, 3, 4, 6, 3, 7, 3, 8, 4, + 6, 8, 5, 4, 5, 3, 6, 4, 4, 5, 8, 5, + 3, 10, 5, 10, 5, 5, 7, 5, 4, 5, 5, 4, + 7, 1, 3, 6, 3, 5, 3, 3, 3, 4, 5, 3, + 5, 3, 7, 3, 6, 3, 6, 4, 3, 7, 5, 8, + 2, 5, 4, 5, 6, 4, 5, 7, 9, 4, 7, 2, + 8, 7, 9, 2, 10, 5, 4, 4, 4, 6, 4, 4, + 4, 5, 6, 4, 5, 3, 7, 6, 4, 5, 6, 4, + 7, 7, 1, 7, 4, 3, 5, 2, 4, 3, 5, 4, + 2, 4, 5, 5, 5, 1, 5, 2, 4, 5, 5, 2, + 4, 6, 4, 4, 2, 4, 4, 2, 6, 7, 4, 6, + 7, 4, 4, 7, 3, 7, 7, 4, 6, 4, 6, 4, + 4, 6, 4, 4, 4, 2, 4, 2, 6, 8, 6, 4, + 6, 8, 4, 6, 6, 4, 7, 4, 8, 4, 4, 6, + 3, 4, 10, 3, 4, 5, 4, 2, 10, 8, 4, 8, + 4, 2, 10, 5, 2, 10, 4, 4, 5, 3, 5, 5, + 3, 5, 6, 5, 5, 6, 3, 5, 4, 6, 4, 5, + 6, 6, 7, 6, 7, 5, 5, 5, 5, 3, 5, 3, + 3, 3, 2, 4, 3, 7, 3, 4, 6, 7, 5, 3, + 6, 7, 3, 6, 4, 6, 6, 7, 9, 4, 5, 7, + 6, 5, 3, 7, 6, 3, 7, 6, 12, 5, 6, 12, + 3, 6, 12, 6, 5, 5, 5, 3, 9, 5, 9, 5, + 9, 3, 2, 6, 3, 3, 9, 6, 5, 6, 6, 3, + 6, 6, 5, 6, 3, 4, 5, 4, 3, 7, 5, 3, + 7, 6, 5, 3, 6, 7, 5, 3, 7, 7, 5, 6, + 7, 3, 6, 12, 5, 3, 12, 6, 5, 6, 3, 6, + 6, 8, 5, 3, 8, 9, 5, 3, 9, 6, 5, 6, + 3, 11, 5, 11, 3, 5, 5, 3, 5, 9, 5, 9, + 3, 5, 5, 5, 3, 5, 4, 4, 2, 3, 6, 8, + 6, 9, 6, 5, 3, 5, 4, 5, 4, 4, 3, 3, + 5, 3, 3, 3, 7, 5, 7, 3, 7, 5, 6, 6, + 3, 6, 5, 5, 5, 5, 3, 7, 9, 6, 5, 5, + 5, 5, 3, 5, 9, 5, 8, 5, 6, 7, 6, 5, + 6, 3, 3, 6, 6, 4, 7, 5, 4, 11, 6, 4, + 6, 7, 4, 3, 7, 9, 2, 5, 4, 2, 9, 2, + 6, 9, 3, 2, 9, 2, 5, 2, 5, 9, 2, 6, + 9, 3, 2, 4, 7, 5, 4, 7, 4, 6, 7, 4, + 3, 7, 11, 5, 11, 3, 8, 4, 4, 11, 6, 9, + 5, 6, 9, 3, 9, 7, 5, 4, 6, 7, 4, 6, + 7, 3, 7, 8, 5, 8, 6, 8, 3, 7, 7, 5, + 7, 7, 7, 6, 7, 7, 3, 4, 7, 7, 5, 7, + 7, 7, 6, 4, 7, 3, 7, 2, 4, 6, 5, 2, + 6, 4, 6, 2, 3, 4, 6, 4, 4, 6, 6, 6, + 4, 7, 3, 5, 4, 8, 4, 5, 7, 5, 4, 8, + 6, 4, 5, 4, 3, 8, 4, 8, 2, 10, 3, 4, + 7, 5, 3, 7, 7, 6, 7, 7, 5, 3, 7, 6, + 6, 7, 6, 5, 7, 3, 5, 5, 7, 3, 3, 6, + 5, 4, 6, 5, 3, 4, 5, 6, 5, 4, 2, 6, + 2, 6, 5, 2, 4, 6, 2, 10, 4, 3, 5, 10, + 2, 4, 2, 10, 2, 4, 2, 6, 3, 6, 3, 5, + 6, 3, 6, 4, 6, 4, 6, 4, 6, 3, 6, 3, + 6, 4, 6, 4, 6, 4, 6, 3, 6, 3, 6, 4, + 6, 4, 6, 4, 3, 6, 5, 6, 4, 5, 3, 6, + 4, 5, 3, 3, 6, 5, 6, 4, 4, 5, 3, 6, + 3, 6, 4, 3, 3, 6, 4, 3, 3, 3, 6, 3, + 6, 4, 4, 3, 4, 7, 6, 5, 5, 7, 5, 6, + 6, 4, 4, 6, 4, 4, 4, 8, 4, 5, 6, 5, + 6, 6, 3, 3, 6, 5, 6, 5, 6, 5, 4, 5, + 6, 4, 5, 4, 5, 5, 7, 9, 7, 6, 10, 4, + 10, 6, 8, 3, 3, 5, 7, 6, 4, 3, 3, 4, + 4, 5, 5, 5, 4, 4, 4, 3, 3, 4, 3, 4, + 4, 6, 4, 2, 3, 4, 4, 2, 4, 2, 5, 6, + 7, 7, 4, 4, 5, 5, 8, 5, 7, 4, 5, 3, + 3, 4, 4, 5, 4, 7, 7, 3, 3, 9, 5, 6, + 3, 7, 6, 6, 3, 8, 6, 5, 6, 3, 1, 8, + 7, 5, 6, 4, 8, 4, 8, 4, 7, 5, 6, 5, + 9, 6, 7, 5, 7, 8, 10, 5, 5, 9, 5, 7, + 7, 5, 2, 4, 9, 4, 3, 5, 4, 4, 4, 6, + 4, 7, 6, 4, 2, 5, 4, 7, 6, 3, 8, 8, + 3, 6, 4, 6, 6, 4, 6, 9, 4, 9, 4, 9, + 4, 4, 4, 8, 4, 8, 6, 4, 4, 6, 8, 4, + 6, 6, 4, 4, 5, 8, 5, 3, 2, 4, 7, 5, + 4, 6, 6, 4, 6, 8, 7, 6, 7, 9, 4, 3, + 4, 4, 4, 4, 4, 4, 5, 4, 7, 4, 4, 4, + 4, 7, 4, 4, 4, 3, 4, 4, 4, 7, 4, 6, + 4, 4, 7, 8, 4, 6, 4, 3, 8, 4, 6, 5, + 4, 7, 7, 4, 6, 8, 4, 8, 5, 6, 5, 4, + 5, 5, 4, 5, 8, 3, 5, 4, 5, 4, 5, 7, + 4, 5, 7, 7, 5, 5, 5, 3, 5, 4, 5, 5, + 3, 5, 6, 5, 6, 5, 3, 5, 5, 3, 5, 5, + 6, 5, 4, 3, 5, 4, 5, 4, 3, 5, 5, 4, + 4, 5, 4, 3, 5, 4, 7, 5, 4, 7, 5, 9, + 4, 5, 9, 5, 4, 4, 5, 4, 9, 8, 7, 7, + 4, 4, 4, 7, 5, 5, 8, 9, 5, 3, 5, 5, + 5, 4, 9, 5, 6, 10, 6, 10, 5, 8, 5, 9, + 7, 9, 4, 6, 8, 7, 8, 8, 3, 6, 4, 6, + 6, 6, 5, 9, 5, 8, 5, 5, 6, 7, 6, 5, + 6, 3, 7, 8, 5, 3, 4, 2, 3, 7, 4, 4, + 2, 3, 3, 6, 9, 5, 5, 8, 4, 7, 9, 7, + 4, 7, 5, 5, 5, 6, 4, 2, 3, 7, 6, 4, + 9, 5, 4, 5, 5, 5, 8, 5, 6, 4, 4, 4, + 7, 4, 4, 4, 6, 7, 4, 5, 3, 6, 5, 3, + 8, 3, 4, 8, 4, 7, 7, 8, 5, 3, 9, 7, + 8, 6, 8, 6, 7, 7, 5, 3, 5, 4, 2, 4, + 4, 6, 6, 3, 3, 5, 4, 4, 4, 5, 8, 5, + 9, 5, 5, 4, 6, 5, 7, 8, 5, 8, 6, 4, + 7, 4, 9, 5, 3, 4, 5, 3, 4, 5, 5, 4, + 4, 5, 5, 4, 5, 4, 3, 7, 10, 6, 10, 8, + 8, 6, 10, 8, 5, 5, 5, 6, 4, 4, 9, 6, + 5, 6, 4, 3, 7, 7, 4, 4, 3, 4, 4, 7, + 3, 5, 3, 3, 4, 7, 4, 6, 6, 6, 5, 6, + 7, 4, 7, 7, 7, 4, 5, 4, 4, 3, 5, 7, + 5, 3, 5, 11, 7, 7, 5, 7, 3, 7, 6, 6, + 6, 7, 6, 7, 5, 9, 3, 9, 9, 9, 6, 9, + 12, 5, 12, 3, 9, 9, 5, 6, 4, 8, 5, 4, + 8, 3, 4, 6, 4, 10, 6, 4, 8, 6, 7, 6, + 7, 6, 8, 7, 5, 8, 8, 6, 7, 8, 3, 7, + 7, 5, 7, 3, 6, 7, 6, 5, 6, 2, 5, 8, + 5, 2, 5, 6, 8, 2, 5, 3, 8, 7, 5, 3, + 7, 6, 6, 7, 8, 5, 3, 8, 7, 6, 8, 7, + 4, 5, 5, 3, 7, 4, 5, 4, 5, 6, 7, 4, + 5, 4, 6, 5, 4, 3, 6, 7, 4, 6, 6, 8, + 5, 8, 6, 8, 3, 6, 8, 5, 6, 3, 8, 9, + 8, 6, 8, 6, 6, 5, 6, 3, 9, 6, 6, 6, + 5, 5, 5, 5, 5, 5, 5, 6, 5, 6, 5, 5, + 5, 5, 5, 5, 6, 5, 5, 8, 7, 8, 6, 6, + 9, 7, 7, 6, 4, 8, 5, 8, 3, 7, 8, 8, + 6, 4, 10, 3, 7, 10, 10, 7, 5, 8, 7, 4, + 10, 4, 4, 9, 7, 6, 6, 3, 4, 4, 7, 4, + 5, 7, 4, 3, 3, 4, 4, 3, 3, 10, 3, 6, + 3, 4, 3, 6, 9, 6, 4, 7, 5, 11, 5, 7, + 7, 4, 9, 5, 7, 10, 6, 10, 5, 8, 3, 8, + 6, 3, 8, 10, 8, 8, 4, 6, 7, 8, 8, 7, + 10, 3, 7, 5, 8, 7, 8, 11, 4, 11, 5, 5, + 4, 10, 5, 6, 5, 4, 7, 8, 8, 9, 8, 8, + 8, 5, 8, 5, 4, 7, 9, 6, 6, 6, 10, 5, + 5, 8, 9, 9, 9, 4, 6, 4, 5, 4, 6, 8, + 12, 5, 7, 8, 5, 7, 7, 3, 5, 3, 5, 7, + 2, 6, 5, 5, 6, 8, 6, 8, 7, 6, 5, 7, + 6, 8, 5, 8, 6, 2, 8, 5, 8, 5, 8, 4, + 5, 6, 6, 6, 6, 7, 8, 6, 8, 4, 8, 4, + 4, 5, 7, 4, 5, 6, 5, 4, 9, 5, 5, 8, + 8, 5, 9, 5, 8, 12, 12, 4, 7, 6, 10, 5, + 6, 4, 8, 6, 4, 8, 4, 5, 11, 5, 6, 5, + 4, 7, 8, 9, 6, 6, 9, 5, 6, 6, 8, 5, + 7, 5, 8, 5, 4, 5, 8, 4, 4, 7, 9, 4, + 7, 5, 8, 9, 4, 7, 4, 6, 4, 4, 9, 5, + 5, 4, 5, 3, 2, 6, 5, 5, 5, 6, 7, 8, + 8, 8, 7, 7, 7, 6, 5, 5, 6, 5, 5, 9, + 8, 11, 8, 4, 6, 2, 3, 3, 6, 6, 5, 4, + 6, 5, 6, 5, 4, 9, 9, 4, 6, 8, 9, 9, + 5, 3, 2, 5, 10, 6, 11, 5, 6, 7, 5, 9, + 5, 5, 5, 5, 5, 5, 11, 5, 9, 7, 9, 4, + 9, 7, 8, 4, 4, 10, 6, 4, 3, 3, 5, 5, + 4, 6, 3, 4, 5, 8, 4, 6, 3, 6, 6, 6, + 3, 6, 4, 6, 4, 3, 6, 6, 5, 4, 3, 4, + 3, 4, 6, 3, 4, 5, 6, 5, 6, 7, 6, 6, + 7, 6, 7, 3, 3, 7, 4, 7, 5, 6, 6, 7, + 9, 10, 4, 4, 7, 11, 6, 7, 5, 6, 7, 4, + 4, 7, 7, 3, 3, 3, 4, 4, 3, 5, 4, 5, + 3, 13, 8, 5, 7, 4, 5, 5, 4, 8, 8, 7, + 4, 8, 4, 7, 5, 6, 4, 8, 4, 5, 7, 7, + 5, 4, 8, 5, 8, 4, 8, 8, 5, 1, 4, 6, + 4, 5, 4, 6, 4, 7, 5, 6, 7, 7, 4, 7, + 4, 4, 7, 2, 4, 7, 4, 6, 6, 4, 4, 4, + 6, 4, 2, 8, 4, 3, 5, 5, 5, 7, 4, 5, + 9, 5, 4, 4, 3, 6, 7, 6, 8, 3, 6, 8, + 6, 8, 4, 11, 4, 5, 3, 4, 4, 3, 4, 6, + 6, 3, 4, 6, 3, 7, 4, 9, 4, 6, 4, 6, + 4, 4, 8, 5, 8, 9, 6, 2, 10, 9, 8, 5, + 10, 8, 4, 6, 4, 6, 4, 5, 4, 4, 4, 6, + 5, 4, 8, 4, 9, 6, 10, 10, 5, 10, 5, 8, + 7, 7, 5, 8, 9, 4, 5, 3, 9, 3, 8, 4, + 5, 3, 8, 3, 5, 3, 4, 5, 10, 10, 6, 4, + 5, 6, 4, 6, 7, 3, 3, 5, 3, 4, 3, 4, + 6, 3, 4, 4, 4, 6, 5, 5, 6, 5, 6, 5, + 5, 4, 5, 5, 6, 5, 5, 6, 5, 11, 5, 5, + 4, 8, 11, 5, 6, 3, 6, 9, 9, 10, 5, 9, + 5, 4, 5, 10, 5, 5, 6, 5, 5, 5, 5, 3, + 8, 4, 2, 6, 6, 2, 5, 5, 2, 4, 7, 3, + 4, 7, 4, 3, 5, 8, 6, 7, 2, 5, 7, 9, + 5, 6, 6, 6, 3, 5, 5, 8, 11, 9, 8, 6, + 2, 4, 6, 4, 6, 11, 4, 11, 9, 4, 9, 6, + 3, 5, 4, 9, 5, 5, 5, 5, 5, 5, 5, 7, + 4, 2, 6, 5, 9, 9, 6, 15, 5, 5, 5, 5, + 1, 1, 2, 2, 2, 3, 1, 1, 4, 4, 9, 4, + 5, 2, 5, 4, 5, 2, 4, 3, 5, 10, 2, 11, + 2, 6, 3, 8, 2, 3, 7, 5, 8, 6, 2, 6, + 2, 7, 11, 11, 4, 8, 4, 8, 8, 11, 10, 3, + 10, 4, 11, 4, 4, 7, 8, 8, 7, 2, 5, 3, + 8, 7, 5, 4, 5, 5, 5, 7, 8, 5, 6, 5, + 4, 8, 7, 5, 9, 4, 1, 7, 3, 6, 5, 4, + 1, 7, 3, 3, 2, 10, 7, 5, 2, 7, 8, 7, + 7, 5, 4, 7, 4, 6, 4, 6, 8, 2, 3, 6, + 5, 3, 6, 6, 8, 4, 7, 11, 6, 3, 4, 4, + 7, 2, 2, 2, 4, 3, 4, 4, 3, 3, 5, 4, + 4, 3, 5, 5, 4, 6, 3, 4, 4, 8, 6, 8, + 5, 6, 5, 5, 7, 3, 6, 8, 6, 5, 5, 4, + 6, 4, 6, 6, 4, 5, 4, 5, 8, 5, 8, 5, + 4, 7, 6, 5, 6, 2, 5, 6, 4, 5, 8, 5, + 5, 2, 5, 4, 5, 5, 5, 5, 4, 5, 2, 5, + 4, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 4, + 5, 5, 4, 2, 5, 4, 5, 5, 4, 5, 5, 4, + 9, 4, 5, 7, 2, 5, 4, 7, 6, 10, 7, 6, + 3, 6, 6, 16, 6, 9, 7, 4, 5, 5, 4, 4, + 5, 5, 4, 8, 5, 4, 5, 14, 1, 6, 5, 4, + 8, 8, 2, 9, 10, 6, 4, 6, 4, 6, 6, 3, + 2, 6, 3, 4, 2, 3, 4, 4, 4, 5, 4, 4, + 5, 5, 4, 6, 3, 5, 4, 6, 5, 6, 5, 5, + 6, 6, 3, 4, 6, 3, 5, 8, 4, 3, 5, 8, + 7, 6, 5, 4, 7, 5, 7, 5, 6, 4, 7, 5, + 6, 6, 5, 5, 6, 6, 5, 5, 6, 5, 6, 5, + 5, 6, 5, 6, 6, 5, 6, 5, 5, 6, 6, 6, + 6, 5, 5, 5, 6, 5, 6, 5, 7, 4, 5, 4, + 5, 4, 4, 2, 4, 11, 7, 6, 7, 7, 5, 6, + 5, 5, 5, 6, 5, 6, 8, 5, 5, 5, 6, 7, + 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, + 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, + 9, 4, 6, 5, 4, 5, 5, 4, 6, 5, 4, 9, + 4, 4, 2, 4, 10, 4, 3, 5, 4, 7, 7, 6, + 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, + 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, + 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, + 2, 2, 4, 2, 4, 2, 2, 2, 4, 2, 2, 4, + 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, + 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, + 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, + 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 4, 2, + 2, 2, 4, 2, 4, 2, 2, 2, 4, 2, 2, 4, + 2, 2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 4, + 2, 2, 4, 2, 4, 2, 2, 2, 4, 2, 2, 4, + 2, 4, 2, 2, 2, 4, 2, 4, 2, 5, 2, 4, + 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, + 2, 4, 2, 2, 2, 4, 5, 2, 4, 2, 2, 4, + 2, 2, 4, 2, 2, 4, 2, 4, 2, 2, 2, 4, + 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, + 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, + 2, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 4, + 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, + 2, 4, 2, 2, 2, 4, 2, 2, 4, 2, 4, 2, + 2, 4, 2, 2, 2, 4, 2, 4, 2, 2, 4, 2, + 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, + 2, 2, 4, 2, 4, 2, 2, 4, 2, 2, 4, 2, + 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, + 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, + 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, + 2, 4, 2, 2, 4, 2, 2, 4, 2, 9, 4, 2, + 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, + 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, + 7, 5, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, + 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, + 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, + 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, + 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, + 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, + 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, + 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, + 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, + 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, + 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, + 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, + 4, 2, 7, 4, 2, 2, 4, 2, 2, 4, 2, 2, + 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, + 2, 4, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, + 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, + 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, + 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, + 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, + 4, 2, 2, 4, 2, 5, 11, 4, 2, 2, 4, 2, + 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, + 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, + 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, + 2, 4, 2, 2, 2, 4, 2, 2, 4, 2, 4, 2, + 2, 2, 4, 2, 4, 2, 2, 4, 2, 2, 2, 4, + 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, + 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, + 2, 2, 4, 2, 4, 2, 2, 4, 2, 2, 4, 2, + 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, + 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, + 2, 4, 2, 12, 4, 2, 2, 4, 2, 6, 4, 2, + 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 2, 4, + 2, 4, 2, 7, 8, 5, 2, 4, 2, 2, 4, 2, + 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 4, 2, + 2, 4, 2, 2, 4, 2, 2, 4, 2, 2, 2, 4, + 2, 4, 2, 2, 4, 2, 2, 4, 2 }; const ReplacementStruct ReplacementInitData[] = { - { small(2), small(10), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(11), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(13), small(2) }, - { small(2), small(5), small(1) }, - { small(2), small(31), small(5) }, - { small(2), small(6), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(23), small(3) }, - { small(2), small(14), small(2) }, - { small(2), small(18), small(3) }, - { small(2), small(13), small(2) }, - { small(2), small(6), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(12), small(2) }, - { small(2), small(15), small(2) }, - { small(2), small(9), small(1) }, - { small(2), small(22), small(3) }, - { small(2), small(21), small(3) }, - { small(2), small(5), small(1) }, - { small(2), small(30), small(5) }, - { small(2), small(30), small(5) }, - { small(2), small(18), small(3) }, - { small(2), small(18), small(3) }, - { small(2), small(13), small(2) }, - { small(2), small(14), small(2) }, - { small(2), small(9), small(1) }, - { small(2), small(11), small(2) }, - { small(2), small(6), small(1) }, - { small(2), small(12), small(1) }, - { small(2), small(12), small(2) }, - { small(2), small(7), small(1) }, - { small(2), small(22), small(4) }, - { small(2), small(8), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(14), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(24), small(3) }, - { small(2), small(14), small(2) }, - { small(2), small(21), small(3) }, - { small(2), small(11), small(1) }, - { small(2), small(11), small(1) }, - { small(2), small(12), small(1) }, - { small(2), small(12), small(2) }, - { small(2), small(7), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(10), small(2) }, - { small(2), small(14), small(2) }, - { small(2), small(16), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(11), small(1) }, - { small(2), small(12), small(2) }, - { small(2), small(12), small(1) }, - { small(2), small(12), small(2) }, - { small(2), small(9), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(12), small(2) }, - { small(2), small(5), small(1) }, - { small(2), small(23), small(2) }, - { small(2), small(7), small(1) }, - { small(2), small(15), small(2) }, - { small(2), small(5), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(24), small(4) }, - { small(2), small(14), small(2) }, - { small(2), small(5), small(1) }, - { small(2), small(15), small(2) }, - { small(2), small(10), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(12), small(2) }, - { small(2), small(11), small(1) }, - { small(2), small(19), small(3) }, - { small(2), small(14), small(2) }, - { small(2), small(6), small(1) }, - { small(2), small(16), small(2) }, - { small(2), small(8), small(1) }, - { small(2), small(15), small(2) }, - { small(2), small(6), small(1) }, - { small(2), small(23), small(3) }, - { small(2), small(18), small(2) }, - { small(2), small(24), small(4) }, - { small(2), small(14), small(2) }, - { small(2), small(13), small(2) }, - { small(2), small(5), small(1) }, - { small(2), small(15), small(2) }, - { small(2), small(17), small(2) }, - { small(2), small(5), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(22), small(3) }, - { small(2), small(18), small(2) }, - { small(2), small(7), small(1) }, - { small(2), small(15), small(2) }, - { small(2), small(12), small(2) }, - { small(2), small(7), small(1) }, - { small(2), small(16), small(3) }, - { small(2), small(12), small(2) }, - { small(2), small(11), small(2) }, - { small(2), small(9), small(2) }, - { small(2), small(16), small(3) }, - { small(2), small(11), small(2) }, - { small(2), small(13), small(2) }, - { small(2), small(12), small(2) }, - { small(2), small(17), small(3) }, - { small(2), small(13), small(2) }, - { small(2), small(12), small(2) }, - { small(2), small(14), small(2) }, - { small(2), small(6), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(15), small(2) }, - { small(2), small(11), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(4), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(11), small(1) }, - { small(2), small(4), small(1) }, - { small(2), small(12), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(11), small(2) }, - { small(2), small(18), small(3) }, - { small(2), small(12), small(2) }, - { small(2), small(19), small(3) }, - { small(2), small(43), small(7) }, - { small(2), small(17), small(2) }, - { small(2), small(3), small(1) }, - { small(2), small(19), small(4) }, - { small(2), small(7), small(1) }, - { small(2), small(9), small(2) }, - { small(2), small(12), small(2) }, - { small(2), small(13), small(2) }, - { small(2), small(12), small(3) }, - { small(2), small(12), small(2) }, - { small(2), small(10), small(2) }, - { small(2), small(13), small(2) }, - { small(2), small(14), small(3) }, - { small(2), small(21), small(4) }, - { small(2), small(34), small(5) }, - { small(2), small(14), small(2) }, - { small(2), small(55), small(9) }, - { small(2), small(8), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(14), small(3) }, - { small(2), small(9), small(2) }, - { small(2), small(8), small(1) }, - { small(2), small(43), small(6) }, - { small(2), small(15), small(2) }, - { small(2), small(14), small(2) }, - { small(2), small(8), small(1) }, - { small(2), small(11), small(2) }, - { small(2), small(6), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(5), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(12), small(1) }, - { small(2), small(5), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(29), small(4) }, - { small(2), small(15), small(2) }, - { small(2), small(20), small(3) }, - { small(2), small(21), small(3) }, - { small(2), small(6), small(1) }, - { small(2), small(5), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(5), small(1) }, - { small(2), small(7), small(1) }, - { small(5), small(20), small(3) }, - { small(2), small(18), small(3) }, - { small(2), small(24), small(4) }, - { small(2), small(21), small(3) }, - { small(2), small(11), small(2) }, - { small(2), small(9), small(1) }, - { small(2), small(13), small(2) }, - { small(2), small(21), small(5) }, - { small(2), small(22), small(4) }, - { small(5), small(22), small(3) }, - { small(2), small(20), small(3) }, - { small(2), small(17), small(3) }, - { small(2), small(23), small(3) }, - { small(5), small(22), small(3) }, - { small(2), small(20), small(3) }, - { small(2), small(5), small(1) }, - { small(2), small(16), small(2) }, - { small(5), small(27), small(3) }, - { small(2), small(25), small(3) }, - { small(2), small(21), small(2) }, - { small(5), small(13), small(2) }, - { small(2), small(11), small(2) }, - { small(2), small(11), small(1) }, - { small(2), small(7), small(1) }, - { small(6), small(17), small(2) }, - { small(3), small(15), small(2) }, - { small(3), small(15), small(3) }, - { small(3), small(5), small(1) }, - { small(3), small(11), small(1) }, - { small(5), small(21), small(3) }, - { small(5), small(19), small(3) }, - { small(5), small(14), small(2) }, - { small(5), small(12), small(2) }, - { small(5), small(12), small(2) }, - { small(5), small(10), small(2) }, - { small(5), small(15), small(2) }, - { small(5), small(13), small(2) }, - { small(5), small(14), small(2) }, - { small(5), small(12), small(2) }, - { small(5), small(15), small(2) }, - { small(5), small(13), small(2) }, - { small(5), small(22), small(3) }, - { small(5), small(20), small(3) }, - { small(5), small(20), small(2) }, - { small(5), small(18), small(2) }, - { small(5), small(21), small(3) }, - { small(5), small(19), small(3) }, - { small(5), small(16), small(2) }, - { small(5), small(14), small(2) }, - { small(5), small(17), small(2) }, - { small(5), small(15), small(2) }, - { small(5), small(14), small(2) }, - { small(5), small(12), small(2) }, - { small(5), small(19), small(2) }, - { small(5), small(17), small(2) }, - { small(5), small(13), small(2) }, - { small(5), small(11), small(2) }, - { small(5), small(17), small(2) }, - { small(5), small(15), small(2) }, - { small(5), small(13), small(2) }, - { small(5), small(11), small(2) }, - { small(2), small(18), small(2) }, - { small(2), small(11), small(2) }, - { small(2), small(7), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(17), small(3) }, - { small(2), small(15), small(3) }, - { small(2), small(7), small(1) }, - { small(2), small(17), small(2) }, - { small(2), small(16), small(2) }, - { small(5), small(14), small(2) }, - { small(2), small(12), small(2) }, - { small(2), small(5), small(1) }, - { small(2), small(15), small(2) }, - { small(2), small(20), small(3) }, - { small(2), small(25), small(3) }, - { small(2), small(21), small(3) }, - { small(5), small(18), small(3) }, - { small(2), small(20), small(3) }, - { small(2), small(9), small(2) }, - { small(2), small(21), small(3) }, - { small(5), small(18), small(3) }, - { small(2), small(20), small(3) }, - { small(2), small(10), small(2) }, - { small(2), small(21), small(3) }, - { small(5), small(18), small(3) }, - { small(2), small(20), small(3) }, - { small(2), small(14), small(2) }, - { small(2), small(21), small(3) }, - { small(5), small(18), small(3) }, - { small(5), small(19), small(2) }, - { small(5), small(17), small(2) }, - { small(5), small(10), small(1) }, - { small(5), small(11), small(2) }, - { small(5), small(20), small(2) }, - { small(5), small(17), small(2) }, - { small(5), small(7), small(1) }, - { small(5), small(18), small(2) }, - { small(5), small(15), small(2) }, - { small(2), small(15), small(2) }, - { small(2), small(26), small(4) }, - { small(2), small(16), small(2) }, - { small(5), small(13), small(2) }, - { small(2), small(16), small(2) }, - { small(2), small(17), small(2) }, - { small(5), small(14), small(2) }, - { small(2), small(23), small(3) }, - { small(2), small(9), small(1) }, - { small(2), small(24), small(3) }, - { small(5), small(21), small(3) }, - { small(2), small(28), small(4) }, - { small(2), small(9), small(1) }, - { small(2), small(24), small(3) }, - { small(5), small(26), small(4) }, - { small(2), small(33), small(5) }, - { small(2), small(8), small(1) }, - { small(2), small(13), small(2) }, - { small(2), small(13), small(2) }, - { small(2), small(32), small(5) }, - { small(2), small(9), small(1) }, - { small(2), small(33), small(5) }, - { small(5), small(30), small(5) }, - { small(5), small(15), small(2) }, - { small(2), small(13), small(2) }, - { small(2), small(9), small(1) }, - { small(2), small(16), small(2) }, - { small(5), small(15), small(2) }, - { small(2), small(13), small(2) }, - { small(2), small(8), small(1) }, - { small(2), small(16), small(2) }, - { small(2), small(8), small(1) }, - { small(2), small(25), small(4) }, - { small(2), small(23), small(4) }, - { small(2), small(19), small(3) }, - { small(2), small(29), small(5) }, - { small(8), small(22), small(4) }, - { small(8), small(11), small(2) }, - { small(8), small(22), small(4) }, - { small(8), small(11), small(2) }, - { small(2), small(12), small(1) }, - { small(2), small(16), small(3) }, - { small(11), small(15), small(2) }, - { small(11), small(9), small(2) }, - { small(11), small(15), small(2) }, - { small(11), small(9), small(2) }, - { small(2), small(8), small(1) }, - { small(2), small(22), small(4) }, - { small(8), small(12), small(2) }, - { small(11), small(13), small(2) }, - { small(11), small(13), small(2) }, - { small(11), small(13), small(2) }, - { small(8), small(12), small(2) }, - { small(8), small(12), small(2) }, - { small(11), small(13), small(2) }, - { small(11), small(13), small(2) }, - { small(11), small(13), small(2) }, - { small(8), small(12), small(2) }, - { small(8), small(12), small(2) }, - { small(11), small(13), small(2) }, - { small(11), small(13), small(2) }, - { small(11), small(13), small(2) }, - { small(5), small(18), small(3) }, - { small(5), small(19), small(3) }, - { small(8), small(23), small(4) }, - { small(8), small(22), small(4) }, - { small(8), small(24), small(4) }, - { small(5), small(16), small(3) }, - { small(5), small(17), small(3) }, - { small(8), small(21), small(4) }, - { small(8), small(20), small(4) }, - { small(8), small(22), small(4) }, - { small(2), small(16), small(2) }, - { small(2), small(7), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(11), small(2) }, - { small(2), small(8), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(11), small(2) }, - { small(2), small(15), small(2) }, - { small(2), small(12), small(2) }, - { small(2), small(8), small(1) }, - { small(2), small(14), small(2) }, - { small(2), small(7), small(1) }, - { small(1), small(25), small(4) }, - { small(1), small(19), small(3) }, - { small(2), small(16), small(2) }, - { small(2), small(7), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(11), small(1) }, - { small(2), small(12), small(1) }, - { small(2), small(17), small(2) }, - { small(2), small(17), small(2) }, - { small(2), small(11), small(1) }, - { small(2), small(5), small(1) }, - { small(2), small(5), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(10), small(2) }, - { small(2), small(5), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(12), small(2) }, - { small(2), small(7), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(11), small(2) }, - { small(2), small(5), small(1) }, - { small(2), small(5), small(1) }, - { small(2), small(10), small(2) }, - { small(2), small(6), small(1) }, - { small(2), small(13), small(2) }, - { small(2), small(13), small(3) }, - { small(2), small(14), small(3) }, - { small(2), small(15), small(3) }, - { small(2), small(8), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(12), small(2) }, - { small(2), small(16), small(2) }, - { small(2), small(15), small(2) }, - { small(2), small(6), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(5), small(1) }, - { small(2), small(5), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(14), small(2) }, - { small(2), small(9), small(1) }, - { small(2), small(5), small(1) }, - { small(2), small(5), small(1) }, - { small(2), small(11), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(5), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(12), small(2) }, - { small(2), small(8), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(15), small(2) }, - { small(2), small(6), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(11), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(15), small(2) }, - { small(2), small(4), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(17), small(2) }, - { small(2), small(7), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(12), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(11), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(5), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(15), small(3) }, - { small(2), small(6), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(5), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(12), small(2) }, - { small(2), small(6), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(13), small(2) }, - { small(2), small(8), small(1) }, - { small(2), small(16), small(2) }, - { small(2), small(16), small(2) }, - { small(2), small(16), small(2) }, - { small(2), small(11), small(2) }, - { small(2), small(10), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(18), small(3) }, - { small(2), small(8), small(1) }, - { small(2), small(15), small(2) }, - { small(2), small(8), small(1) }, - { small(2), small(13), small(2) }, - { small(2), small(12), small(2) }, - { small(2), small(10), small(1) }, - { small(2), small(13), small(3) }, - { small(2), small(9), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(15), small(2) }, - { small(2), small(13), small(2) }, - { small(2), small(11), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(16), small(2) }, - { small(2), small(10), small(1) }, - { small(2), small(16), small(2) }, - { small(2), small(14), small(2) }, - { small(2), small(12), small(2) }, - { small(2), small(11), small(2) }, - { small(2), small(21), small(3) }, - { small(2), small(19), small(3) }, - { small(2), small(22), small(3) }, - { small(2), small(10), small(2) }, - { small(2), small(22), small(3) }, - { small(2), small(20), small(3) }, - { small(2), small(21), small(3) }, - { small(2), small(20), small(4) }, - { small(2), small(21), small(4) }, - { small(2), small(15), small(3) }, - { small(2), small(30), small(5) }, - { small(2), small(29), small(5) }, - { small(2), small(15), small(2) }, - { small(2), small(7), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(7), small(1) }, - { small(1), small(10), small(1) }, - { small(2), small(5), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(28), small(5) }, - { small(2), small(23), small(4) }, - { small(2), small(14), small(2) }, - { small(2), small(24), small(4) }, - { small(2), small(17), small(3) }, - { small(2), small(34), small(6) }, - { small(2), small(22), small(4) }, - { small(2), small(9), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(17), small(3) }, - { small(2), small(12), small(2) }, - { small(1), small(24), small(4) }, - { small(1), small(20), small(3) }, - { small(2), small(22), small(3) }, - { small(2), small(17), small(2) }, - { small(2), small(17), small(3) }, - { small(2), small(12), small(2) }, - { small(2), small(10), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(11), small(1) }, - { small(2), small(19), small(3) }, - { small(2), small(6), small(1) }, - { small(2), small(20), small(3) }, - { small(2), small(15), small(2) }, - { small(2), small(5), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(13), small(2) }, - { small(2), small(10), small(1) }, - { small(2), small(13), small(2) }, - { small(2), small(7), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(11), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(12), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(12), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(11), small(1) }, - { small(2), small(11), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(12), small(2) }, - { small(2), small(8), small(1) }, - { small(2), small(14), small(2) }, - { small(2), small(10), small(1) }, - { small(2), small(16), small(2) }, - { small(2), small(9), small(1) }, - { small(2), small(11), small(2) }, - { small(2), small(11), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(16), small(2) }, - { small(2), small(14), small(2) }, - { small(2), small(14), small(2) }, - { small(2), small(8), small(1) }, - { small(2), small(5), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(14), small(2) }, - { small(2), small(13), small(2) }, - { small(2), small(14), small(3) }, - { small(2), small(7), small(1) }, - { small(2), small(9), small(2) }, - { small(2), small(8), small(1) }, - { small(2), small(11), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(14), small(2) }, - { small(2), small(19), small(2) }, - { small(2), small(6), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(13), small(2) }, - { small(2), small(7), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(21), small(4) }, - { small(2), small(11), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(11), small(2) }, - { small(2), small(7), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(11), small(2) }, - { small(2), small(6), small(1) }, - { small(2), small(14), small(2) }, - { small(2), small(6), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(12), small(2) }, - { small(2), small(11), small(2) }, - { small(2), small(10), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(15), small(2) }, - { small(2), small(9), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(15), small(3) }, - { small(2), small(6), small(1) }, - { small(2), small(13), small(2) }, - { small(2), small(8), small(1) }, - { small(2), small(5), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(16), small(2) }, - { small(2), small(17), small(2) }, - { small(2), small(12), small(2) }, - { small(2), small(8), small(1) }, - { small(2), small(15), small(2) }, - { small(2), small(10), small(1) }, - { small(2), small(16), small(2) }, - { small(2), small(26), small(4) }, - { small(2), small(11), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(16), small(3) }, - { small(2), small(27), small(5) }, - { small(2), small(18), small(3) }, - { small(2), small(8), small(1) }, - { small(2), small(12), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(12), small(1) }, - { small(2), small(16), small(2) }, - { small(2), small(7), small(1) }, - { small(2), small(14), small(2) }, - { small(2), small(11), small(2) }, - { small(2), small(11), small(1) }, - { small(2), small(10), small(2) }, - { small(2), small(6), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(14), small(2) }, - { small(2), small(18), small(3) }, - { small(2), small(14), small(2) }, - { small(2), small(6), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(15), small(3) }, - { small(2), small(23), small(4) }, - { small(2), small(15), small(2) }, - { small(2), small(14), small(2) }, - { small(2), small(16), small(2) }, - { small(2), small(22), small(3) }, - { small(1), small(11), small(2) }, - { small(2), small(5), small(1) }, - { small(1), small(7), small(1) }, - { small(2), small(13), small(1) }, - { small(6), small(23), small(3) }, - { small(3), small(21), small(3) }, - { small(3), small(15), small(2) }, - { small(3), small(8), small(1) }, - { small(3), small(24), small(3) }, - { small(2), small(9), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(16), small(2) }, - { small(5), small(17), small(2) }, - { small(5), small(15), small(2) }, - { small(5), small(11), small(1) }, - { small(5), small(11), small(1) }, - { small(5), small(18), small(2) }, - { small(5), small(20), small(2) }, - { small(5), small(18), small(2) }, - { small(5), small(11), small(1) }, - { small(5), small(24), small(3) }, - { small(5), small(21), small(3) }, - { small(2), small(19), small(3) }, - { small(2), small(18), small(3) }, - { small(2), small(19), small(2) }, - { small(2), small(22), small(3) }, - { small(5), small(24), small(3) }, - { small(5), small(10), small(1) }, - { small(5), small(25), small(3) }, - { small(5), small(22), small(3) }, - { small(6), small(15), small(2) }, - { small(3), small(13), small(2) }, - { small(3), small(8), small(1) }, - { small(3), small(16), small(2) }, - { small(5), small(15), small(2) }, - { small(2), small(13), small(2) }, - { small(2), small(8), small(1) }, - { small(2), small(16), small(2) }, - { small(5), small(16), small(2) }, - { small(2), small(14), small(2) }, - { small(2), small(9), small(1) }, - { small(2), small(17), small(2) }, - { small(5), small(26), small(4) }, - { small(5), small(24), small(4) }, - { small(5), small(12), small(2) }, - { small(5), small(27), small(4) }, - { small(5), small(19), small(3) }, - { small(2), small(17), small(3) }, - { small(2), small(9), small(1) }, - { small(2), small(20), small(3) }, - { small(2), small(14), small(2) }, - { small(5), small(14), small(2) }, - { small(2), small(12), small(2) }, - { small(2), small(11), small(1) }, - { small(2), small(15), small(2) }, - { small(5), small(23), small(3) }, - { small(2), small(21), small(3) }, - { small(2), small(20), small(2) }, - { small(2), small(24), small(3) }, - { small(2), small(25), small(4) }, - { small(2), small(14), small(2) }, - { small(2), small(7), small(1) }, - { small(2), small(16), small(2) }, - { small(2), small(19), small(3) }, - { small(2), small(13), small(2) }, - { small(2), small(20), small(3) }, - { small(2), small(14), small(2) }, - { small(2), small(19), small(3) }, - { small(2), small(13), small(2) }, - { small(2), small(8), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(17), small(2) }, - { small(2), small(8), small(1) }, - { small(2), small(19), small(2) }, - { small(2), small(9), small(1) }, - { small(2), small(13), small(2) }, - { small(5), small(16), small(2) }, - { small(5), small(14), small(2) }, - { small(5), small(9), small(1) }, - { small(5), small(10), small(1) }, - { small(5), small(17), small(2) }, - { small(2), small(17), small(2) }, - { small(2), small(5), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(12), small(1) }, - { small(2), small(12), small(1) }, - { small(2), small(15), small(2) }, - { small(2), small(18), small(2) }, - { small(2), small(22), small(3) }, - { small(2), small(6), small(1) }, - { small(2), small(11), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(10), small(2) }, - { small(2), small(6), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(12), small(2) }, - { small(2), small(14), small(2) }, - { small(2), small(9), small(2) }, - { small(2), small(6), small(1) }, - { small(2), small(10), small(2) }, - { small(2), small(5), small(1) }, - { small(2), small(12), small(1) }, - { small(2), small(12), small(2) }, - { small(2), small(10), small(2) }, - { small(2), small(12), small(2) }, - { small(2), small(11), small(1) }, - { small(2), small(13), small(2) }, - { small(2), small(9), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(19), small(2) }, - { small(2), small(9), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(11), small(1) }, - { small(2), small(15), small(2) }, - { small(2), small(19), small(2) }, - { small(2), small(12), small(1) }, - { small(2), small(16), small(2) }, - { small(2), small(21), small(3) }, - { small(2), small(14), small(2) }, - { small(2), small(21), small(2) }, - { small(2), small(15), small(2) }, - { small(2), small(16), small(2) }, - { small(2), small(19), small(2) }, - { small(2), small(20), small(2) }, - { small(2), small(13), small(2) }, - { small(2), small(7), small(1) }, - { small(2), small(18), small(2) }, - { small(2), small(10), small(1) }, - { small(2), small(18), small(2) }, - { small(2), small(19), small(2) }, - { small(2), small(12), small(2) }, - { small(2), small(18), small(2) }, - { small(2), small(8), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(12), small(1) }, - { small(2), small(16), small(2) }, - { small(2), small(16), small(2) }, - { small(2), small(10), small(1) }, - { small(2), small(20), small(2) }, - { small(2), small(19), small(2) }, - { small(2), small(8), small(1) }, - { small(2), small(19), small(2) }, - { small(2), small(6), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(11), small(1) }, - { small(2), small(11), small(1) }, - { small(2), small(16), small(2) }, - { small(2), small(13), small(2) }, - { small(1), small(7), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(14), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(24), small(3) }, - { small(2), small(15), small(2) }, - { small(2), small(11), small(2) }, - { small(2), small(5), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(19), small(3) }, - { small(2), small(10), small(1) }, - { small(2), small(13), small(2) }, - { small(2), small(17), small(2) }, - { small(2), small(17), small(2) }, - { small(2), small(9), small(1) }, - { small(2), small(14), small(2) }, - { small(2), small(16), small(2) }, - { small(2), small(16), small(2) }, - { small(1), small(20), small(3) }, - { small(1), small(16), small(2) }, - { small(2), small(21), small(3) }, - { small(2), small(7), small(1) }, - { small(2), small(15), small(2) }, - { small(2), small(8), small(1) }, - { small(1), small(10), small(1) }, - { small(2), small(22), small(3) }, - { small(2), small(15), small(2) }, - { small(2), small(12), small(2) }, - { small(2), small(9), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(16), small(2) }, - { small(2), small(15), small(2) }, - { small(2), small(10), small(1) }, - { small(2), small(23), small(2) }, - { small(2), small(19), small(2) }, - { small(2), small(9), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(19), small(3) }, - { small(2), small(17), small(2) }, - { small(2), small(7), small(1) }, - { small(2), small(25), small(3) }, - { small(2), small(17), small(2) }, - { small(2), small(8), small(1) }, - { small(2), small(18), small(2) }, - { small(2), small(13), small(2) }, - { small(2), small(22), small(3) }, - { small(2), small(10), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(19), small(2) }, - { small(2), small(8), small(1) }, - { small(2), small(12), small(2) }, - { small(2), small(9), small(1) }, - { small(2), small(20), small(2) }, - { small(2), small(8), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(11), small(1) }, - { small(2), small(7), small(1) }, - { small(1), small(15), small(2) }, - { small(2), small(7), small(1) }, - { small(2), small(12), small(2) }, - { small(2), small(15), small(2) }, - { small(2), small(6), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(24), small(3) }, - { small(2), small(7), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(11), small(1) }, - { small(2), small(14), small(2) }, - { small(2), small(13), small(2) }, - { small(2), small(11), small(2) }, - { small(2), small(11), small(1) }, - { small(2), small(18), small(3) }, - { small(2), small(11), small(2) }, - { small(2), small(17), small(3) }, - { small(2), small(7), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(18), small(2) }, - { small(2), small(9), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(20), small(3) }, - { small(2), small(20), small(3) }, - { small(2), small(11), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(13), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(13), small(2) }, - { small(2), small(4), small(1) }, - { small(2), small(5), small(1) }, - { small(2), small(5), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(19), small(3) }, - { small(2), small(14), small(2) }, - { small(2), small(14), small(2) }, - { small(2), small(16), small(2) }, - { small(2), small(11), small(1) }, - { small(2), small(13), small(2) }, - { small(2), small(20), small(2) }, - { small(2), small(11), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(5), small(1) }, - { small(2), small(4), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(19), small(2) }, - { small(2), small(13), small(1) }, - { small(2), small(14), small(2) }, - { small(2), small(15), small(2) }, - { small(1), small(11), small(1) }, - { small(1), small(13), small(2) }, - { small(1), small(7), small(1) }, - { small(1), small(13), small(2) }, - { small(2), small(19), small(2) }, - { small(2), small(7), small(1) }, - { small(2), small(11), small(1) }, - { small(1), small(24), small(3) }, - { small(2), small(11), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(15), small(2) }, - { small(2), small(6), small(1) }, - { small(2), small(12), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(13), small(1) }, - { small(2), small(10), small(2) }, - { small(2), small(5), small(1) }, - { small(2), small(18), small(3) }, - { small(2), small(8), small(1) }, - { small(2), small(5), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(13), small(2) }, - { small(2), small(5), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(8), small(1) }, - { small(1), small(17), small(3) }, - { small(1), small(13), small(2) }, - { small(2), small(19), small(3) }, - { small(2), small(7), small(1) }, - { small(1), small(6), small(1) }, - { small(2), small(14), small(3) }, - { small(2), small(6), small(1) }, - { small(1), small(8), small(1) }, - { small(2), small(5), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(14), small(2) }, - { small(2), small(8), small(1) }, - { small(2), small(16), small(2) }, - { small(2), small(8), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(13), small(2) }, - { small(2), small(5), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(14), small(2) }, - { small(2), small(14), small(2) }, - { small(2), small(8), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(11), small(1) }, - { small(2), small(12), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(13), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(15), small(2) }, - { small(2), small(8), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(14), small(2) }, - { small(2), small(9), small(1) }, - { small(2), small(5), small(1) }, - { small(2), small(9), small(2) }, - { small(2), small(6), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(16), small(3) }, - { small(2), small(7), small(1) }, - { small(2), small(5), small(1) }, - { small(2), small(24), small(2) }, - { small(2), small(20), small(3) }, - { small(2), small(13), small(2) }, - { small(2), small(15), small(2) }, - { small(2), small(18), small(2) }, - { small(2), small(15), small(2) }, - { small(2), small(6), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(15), small(2) }, - { small(2), small(6), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(17), small(2) }, - { small(2), small(12), small(2) }, - { small(2), small(10), small(1) }, - { small(2), small(21), small(3) }, - { small(2), small(19), small(2) }, - { small(2), small(7), small(1) }, - { small(2), small(8), small(2) }, - { small(2), small(13), small(2) }, - { small(2), small(12), small(2) }, - { small(2), small(13), small(2) }, - { small(2), small(9), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(16), small(2) }, - { small(2), small(9), small(1) }, - { small(2), small(19), small(3) }, - { small(2), small(22), small(4) }, - { small(2), small(9), small(1) }, - { small(2), small(13), small(2) }, - { small(2), small(8), small(1) }, - { small(2), small(16), small(3) }, - { small(2), small(16), small(3) }, - { small(2), small(15), small(2) }, - { small(2), small(11), small(2) }, - { small(2), small(26), small(4) }, - { small(2), small(28), small(4) }, - { small(2), small(17), small(3) }, - { small(2), small(16), small(2) }, - { small(2), small(21), small(3) }, - { small(2), small(17), small(2) }, - { small(2), small(10), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(12), small(2) }, - { small(2), small(15), small(3) }, - { small(2), small(10), small(2) }, - { small(2), small(24), small(4) }, - { small(2), small(12), small(2) }, - { small(2), small(14), small(2) }, - { small(2), small(11), small(1) }, - { small(2), small(13), small(2) }, - { small(2), small(18), small(3) }, - { small(2), small(21), small(3) }, - { small(2), small(10), small(1) }, - { small(2), small(21), small(3) }, - { small(2), small(12), small(1) }, - { small(2), small(11), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(32), small(4) }, - { small(2), small(8), small(1) }, - { small(2), small(13), small(2) }, - { small(2), small(12), small(2) }, - { small(2), small(11), small(2) }, - { small(2), small(13), small(2) }, - { small(2), small(7), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(11), small(1) }, - { small(2), small(19), small(2) }, - { small(2), small(12), small(1) }, - { small(2), small(18), small(2) }, - { small(2), small(16), small(2) }, - { small(2), small(9), small(1) }, - { small(2), small(15), small(2) }, - { small(2), small(10), small(1) }, - { small(2), small(26), small(4) }, - { small(2), small(15), small(2) }, - { small(2), small(25), small(4) }, - { small(2), small(14), small(2) }, - { small(2), small(11), small(2) }, - { small(2), small(23), small(3) }, - { small(2), small(12), small(1) }, - { small(2), small(19), small(3) }, - { small(2), small(8), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(5), small(1) }, - { small(2), small(11), small(2) }, - { small(2), small(19), small(4) }, - { small(2), small(22), small(4) }, - { small(2), small(6), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(14), small(2) }, - { small(2), small(13), small(2) }, - { small(2), small(12), small(2) }, - { small(2), small(14), small(2) }, - { small(2), small(13), small(2) }, - { small(2), small(14), small(2) }, - { small(2), small(39), small(5) }, - { small(2), small(19), small(2) }, - { small(2), small(12), small(2) }, - { small(2), small(18), small(2) }, - { small(2), small(11), small(1) }, - { small(2), small(12), small(1) }, - { small(2), small(17), small(2) }, - { small(2), small(7), small(1) }, - { small(2), small(12), small(2) }, - { small(2), small(18), small(2) }, - { small(2), small(14), small(2) }, - { small(2), small(7), small(1) }, - { small(2), small(13), small(2) }, - { small(2), small(7), small(1) }, - { small(2), small(19), small(3) }, - { small(2), small(11), small(2) }, - { small(2), small(17), small(3) }, - { small(2), small(15), small(3) }, - { small(2), small(18), small(3) }, - { small(2), small(9), small(1) }, - { small(2), small(10), small(2) }, - { small(2), small(16), small(2) }, - { small(2), small(16), small(2) }, - { small(2), small(18), small(3) }, - { small(1), small(11), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(5), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(13), small(1) }, - { small(2), small(11), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(4), small(1) }, - { small(2), small(13), small(2) }, - { small(2), small(6), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(18), small(2) }, - { small(2), small(13), small(1) }, - { small(2), small(16), small(2) }, - { small(2), small(11), small(1) }, - { small(2), small(18), small(3) }, - { small(2), small(16), small(2) }, - { small(2), small(7), small(1) }, - { small(3), small(7), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(26), small(4) }, - { small(2), small(4), small(1) }, - { small(2), small(14), small(2) }, - { small(2), small(21), small(2) }, - { small(2), small(8), small(1) }, - { small(2), small(17), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(7), small(1) }, - { small(3), small(3), small(1) }, - { small(3), small(3), small(1) }, - { small(2), small(4), small(1) }, - { small(2), small(4), small(1) }, - { small(3), small(4), small(1) }, - { small(2), small(5), small(1) }, - { small(1), small(3), small(1) }, - { small(2), small(3), small(1) }, - { small(2), small(11), small(2) }, - { small(2), small(16), small(2) }, - { small(2), small(10), small(2) }, - { small(2), small(12), small(2) }, - { small(2), small(15), small(3) }, - { small(2), small(5), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(12), small(1) }, - { small(2), small(16), small(2) }, - { small(2), small(15), small(3) }, - { small(2), small(13), small(2) }, - { small(2), small(19), small(3) }, - { small(2), small(10), small(1) }, - { small(2), small(18), small(3) }, - { small(2), small(12), small(2) }, - { small(2), small(13), small(1) }, - { small(1), small(18), small(2) }, - { small(1), small(10), small(1) }, - { small(1), small(15), small(2) }, - { small(2), small(10), small(1) }, - { small(2), small(13), small(1) }, - { small(2), small(16), small(2) }, - { small(2), small(17), small(2) }, - { small(2), small(23), small(3) }, - { small(2), small(9), small(1) }, - { small(2), small(19), small(2) }, - { small(2), small(9), small(1) }, - { small(2), small(14), small(3) }, - { small(2), small(10), small(1) }, - { small(2), small(9), small(1) }, - { small(1), small(18), small(3) }, - { small(3), small(7), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(23), small(3) }, - { small(1), small(29), small(4) }, - { small(2), small(22), small(3) }, - { small(2), small(33), small(6) }, - { small(2), small(3), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(5), small(1) }, - { small(2), small(5), small(1) }, - { small(2), small(4), small(1) }, - { small(2), small(12), small(1) }, - { small(3), small(9), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(4), small(1) }, - { small(2), small(18), small(2) }, - { small(2), small(9), small(1) }, - { small(2), small(15), small(2) }, - { small(2), small(14), small(2) }, - { small(2), small(6), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(13), small(2) }, - { small(2), small(10), small(1) }, - { small(2), small(25), small(5) }, - { small(2), small(8), small(1) }, - { small(2), small(17), small(2) }, - { small(2), small(6), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(20), small(2) }, - { small(2), small(5), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(14), small(2) }, - { small(2), small(4), small(1) }, - { small(2), small(4), small(1) }, - { small(2), small(4), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(5), small(1) }, - { small(2), small(6), small(1) }, - { small(3), small(6), small(1) }, - { small(3), small(5), small(1) }, - { small(3), small(5), small(1) }, - { small(3), small(7), small(1) }, - { small(3), small(6), small(1) }, - { small(3), small(6), small(1) }, - { small(3), small(5), small(1) }, - { small(3), small(7), small(1) }, - { small(3), small(7), small(1) }, - { small(3), small(6), small(1) }, - { small(2), small(12), small(2) }, - { small(2), small(6), small(1) }, - { small(3), small(6), small(1) }, - { small(3), small(17), small(2) }, - { small(3), small(10), small(1) }, - { small(2), small(15), small(2) }, - { small(1), small(21), small(3) }, - { small(1), small(14), small(2) }, - { small(1), small(12), small(2) }, - { small(1), small(13), small(2) }, - { small(1), small(15), small(2) }, - { small(1), small(12), small(2) }, - { small(1), small(12), small(2) }, - { small(1), small(16), small(2) }, - { small(1), small(16), small(2) }, - { small(1), small(14), small(2) }, - { small(1), small(8), small(1) }, - { small(1), small(17), small(3) }, - { small(1), small(19), small(3) }, - { small(2), small(16), small(2) }, - { small(2), small(16), small(3) }, - { small(2), small(18), small(3) }, - { small(2), small(13), small(2) }, - { small(2), small(12), small(2) }, - { small(2), small(10), small(2) }, - { small(2), small(12), small(2) }, - { small(2), small(19), small(3) }, - { small(2), small(19), small(3) }, - { small(2), small(18), small(3) }, - { small(2), small(18), small(3) }, - { small(2), small(15), small(3) }, - { small(2), small(18), small(3) }, - { small(2), small(18), small(3) }, - { small(2), small(27), small(4) }, - { small(2), small(18), small(3) }, - { small(2), small(20), small(3) }, - { small(2), small(27), small(3) }, - { small(2), small(8), small(1) }, - { small(2), small(12), small(2) }, - { small(2), small(25), small(2) }, - { small(2), small(18), small(2) }, - { small(2), small(14), small(2) }, - { small(2), small(7), small(1) }, - { small(1), small(17), small(3) }, - { small(1), small(18), small(3) }, - { small(1), small(21), small(3) }, - { small(2), small(24), small(3) }, - { small(2), small(19), small(3) }, - { small(2), small(19), small(2) }, - { small(1), small(4), small(1) }, - { small(1), small(11), small(1) }, - { small(1), small(12), small(1) }, - { small(1), small(11), small(2) }, - { small(1), small(12), small(2) }, - { small(1), small(6), small(1) }, - { small(2), small(5), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(4), small(1) }, - { small(2), small(5), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(18), small(3) }, - { small(2), small(23), small(4) }, - { small(2), small(14), small(2) }, - { small(2), small(14), small(2) }, - { small(2), small(14), small(2) }, - { small(2), small(12), small(2) }, - { small(2), small(13), small(2) }, - { small(2), small(20), small(3) }, - { small(2), small(25), small(4) }, - { small(2), small(22), small(3) }, - { small(2), small(20), small(3) }, - { small(2), small(22), small(3) }, - { small(2), small(20), small(3) }, - { small(2), small(21), small(3) }, - { small(2), small(21), small(3) }, - { small(2), small(20), small(3) }, - { small(2), small(20), small(3) }, - { small(2), small(27), small(4) }, - { small(2), small(27), small(4) }, - { small(2), small(21), small(3) }, - { small(2), small(21), small(3) }, - { small(2), small(20), small(3) }, - { small(2), small(20), small(3) }, - { small(2), small(9), small(1) }, - { small(2), small(6), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(12), small(2) }, - { small(2), small(6), small(1) }, - { small(2), small(9), small(2) }, - { small(2), small(6), small(1) }, - { small(2), small(13), small(1) }, - { small(2), small(20), small(3) }, - { small(2), small(13), small(2) }, - { small(5), small(22), small(4) }, - { small(2), small(16), small(2) }, - { small(2), small(17), small(2) }, - { small(2), small(20), small(3) }, - { small(2), small(13), small(2) }, - { small(2), small(8), small(1) }, - { small(2), small(7), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(13), small(2) }, - { small(2), small(22), small(3) }, - { small(3), small(9), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(8), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(9), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(10), small(1) }, - { small(2), small(11), small(1) }, - { small(2), small(11), small(1) }, - { small(2), small(11), small(1) }, - { small(2), small(19), small(3) }, - { small(2), small(12), small(2) }, - { small(2), small(19), small(3) }, - { small(2), small(12), small(2) }, - { small(2), small(16), small(2) }, - { small(2), small(25), small(4) }, - { small(6), small(16), small(3) }, - { small(6), small(14), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(7), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(7), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(11), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(2), small(15), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(9), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(7), small(1) }, - { small(4), small(13), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(14), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(8), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, - { small(4), small(4), small(1) }, - { small(4), small(9), small(2) }, + { small(2), small(10), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(11), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(13), small(2) }, + { small(2), small(5), small(1) }, + { small(2), small(31), small(5) }, + { small(2), small(6), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(23), small(3) }, + { small(2), small(14), small(2) }, + { small(2), small(18), small(3) }, + { small(2), small(13), small(2) }, + { small(2), small(6), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(12), small(2) }, + { small(2), small(15), small(2) }, + { small(2), small(9), small(1) }, + { small(2), small(22), small(3) }, + { small(2), small(21), small(3) }, + { small(2), small(5), small(1) }, + { small(2), small(18), small(3) }, + { small(2), small(30), small(5) }, + { small(2), small(30), small(5) }, + { small(2), small(12), small(2) }, + { small(2), small(26), small(4) }, + { small(2), small(19), small(3) }, + { small(2), small(11), small(2) }, + { small(2), small(6), small(1) }, + { small(2), small(12), small(1) }, + { small(2), small(13), small(2) }, + { small(2), small(7), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(14), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(24), small(3) }, + { small(2), small(14), small(2) }, + { small(2), small(21), small(3) }, + { small(2), small(11), small(1) }, + { small(2), small(11), small(1) }, + { small(2), small(12), small(1) }, + { small(2), small(12), small(2) }, + { small(2), small(7), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(30), small(5) }, + { small(2), small(16), small(2) }, + { small(2), small(9), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(12), small(2) }, + { small(2), small(23), small(2) }, + { small(2), small(7), small(1) }, + { small(2), small(14), small(2) }, + { small(2), small(9), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(15), small(2) }, + { small(2), small(10), small(1) }, + { small(2), small(27), small(5) }, + { small(2), small(15), small(2) }, + { small(2), small(6), small(1) }, + { small(2), small(12), small(2) }, + { small(2), small(10), small(2) }, + { small(2), small(14), small(2) }, + { small(2), small(16), small(1) }, + { small(2), small(11), small(1) }, + { small(2), small(24), small(4) }, + { small(2), small(14), small(2) }, + { small(2), small(8), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(11), small(1) }, + { small(2), small(12), small(2) }, + { small(2), small(12), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(15), small(2) }, + { small(2), small(8), small(1) }, + { small(2), small(12), small(2) }, + { small(2), small(19), small(3) }, + { small(2), small(14), small(2) }, + { small(2), small(6), small(1) }, + { small(2), small(16), small(2) }, + { small(2), small(15), small(2) }, + { small(2), small(8), small(1) }, + { small(2), small(15), small(2) }, + { small(2), small(6), small(1) }, + { small(2), small(23), small(3) }, + { small(2), small(18), small(2) }, + { small(2), small(24), small(4) }, + { small(2), small(14), small(2) }, + { small(2), small(18), small(3) }, + { small(2), small(13), small(2) }, + { small(2), small(22), small(4) }, + { small(2), small(8), small(1) }, + { small(2), small(13), small(2) }, + { small(2), small(5), small(1) }, + { small(2), small(15), small(2) }, + { small(2), small(17), small(2) }, + { small(2), small(12), small(2) }, + { small(2), small(7), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(22), small(3) }, + { small(2), small(18), small(2) }, + { small(2), small(7), small(1) }, + { small(2), small(15), small(2) }, + { small(2), small(12), small(2) }, + { small(2), small(7), small(1) }, + { small(2), small(16), small(3) }, + { small(2), small(12), small(2) }, + { small(2), small(11), small(2) }, + { small(2), small(9), small(2) }, + { small(2), small(16), small(3) }, + { small(2), small(11), small(2) }, + { small(2), small(13), small(2) }, + { small(2), small(12), small(2) }, + { small(2), small(17), small(3) }, + { small(2), small(13), small(2) }, + { small(2), small(19), small(3) }, + { small(2), small(12), small(2) }, + { small(2), small(14), small(2) }, + { small(2), small(6), small(1) }, + { small(2), small(15), small(2) }, + { small(2), small(11), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(4), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(11), small(1) }, + { small(2), small(4), small(1) }, + { small(2), small(12), small(1) }, + { small(2), small(7), small(1) }, + { small(1), small(6), small(1) }, + { small(2), small(11), small(2) }, + { small(2), small(18), small(3) }, + { small(2), small(12), small(2) }, + { small(2), small(19), small(3) }, + { small(2), small(43), small(7) }, + { small(2), small(17), small(2) }, + { small(2), small(3), small(1) }, + { small(2), small(18), small(3) }, + { small(2), small(19), small(4) }, + { small(2), small(7), small(1) }, + { small(2), small(9), small(2) }, + { small(2), small(12), small(2) }, + { small(2), small(13), small(2) }, + { small(2), small(12), small(3) }, + { small(2), small(12), small(2) }, + { small(2), small(10), small(2) }, + { small(1), small(13), small(2) }, + { small(2), small(14), small(3) }, + { small(2), small(21), small(4) }, + { small(2), small(34), small(5) }, + { small(2), small(14), small(2) }, + { small(2), small(55), small(9) }, + { small(2), small(8), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(14), small(3) }, + { small(2), small(9), small(2) }, + { small(2), small(8), small(1) }, + { small(2), small(43), small(6) }, + { small(2), small(15), small(2) }, + { small(2), small(14), small(2) }, + { small(2), small(6), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(12), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(29), small(4) }, + { small(2), small(15), small(2) }, + { small(2), small(20), small(3) }, + { small(2), small(21), small(3) }, + { small(2), small(6), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(5), small(1) }, + { small(5), small(20), small(3) }, + { small(5), small(18), small(3) }, + { small(5), small(24), small(4) }, + { small(5), small(21), small(3) }, + { small(2), small(16), small(2) }, + { small(2), small(9), small(1) }, + { small(2), small(13), small(2) }, + { small(2), small(13), small(2) }, + { small(2), small(11), small(2) }, + { small(2), small(21), small(5) }, + { small(2), small(22), small(4) }, + { small(5), small(22), small(3) }, + { small(5), small(20), small(3) }, + { small(5), small(17), small(3) }, + { small(5), small(23), small(3) }, + { small(2), small(22), small(3) }, + { small(5), small(22), small(3) }, + { small(5), small(20), small(3) }, + { small(5), small(5), small(1) }, + { small(5), small(16), small(2) }, + { small(5), small(27), small(3) }, + { small(5), small(25), small(3) }, + { small(5), small(21), small(2) }, + { small(5), small(13), small(2) }, + { small(5), small(11), small(2) }, + { small(5), small(11), small(1) }, + { small(5), small(7), small(1) }, + { small(6), small(17), small(2) }, + { small(6), small(15), small(2) }, + { small(6), small(15), small(3) }, + { small(6), small(5), small(1) }, + { small(6), small(11), small(1) }, + { small(5), small(21), small(3) }, + { small(5), small(19), small(3) }, + { small(5), small(14), small(2) }, + { small(5), small(12), small(2) }, + { small(5), small(12), small(2) }, + { small(5), small(10), small(2) }, + { small(5), small(15), small(2) }, + { small(5), small(13), small(2) }, + { small(5), small(14), small(2) }, + { small(5), small(12), small(2) }, + { small(5), small(15), small(2) }, + { small(5), small(13), small(2) }, + { small(5), small(22), small(3) }, + { small(5), small(20), small(3) }, + { small(5), small(20), small(2) }, + { small(5), small(18), small(2) }, + { small(5), small(21), small(3) }, + { small(5), small(19), small(3) }, + { small(5), small(16), small(2) }, + { small(5), small(14), small(2) }, + { small(5), small(17), small(2) }, + { small(5), small(15), small(2) }, + { small(5), small(14), small(2) }, + { small(5), small(12), small(2) }, + { small(5), small(19), small(2) }, + { small(5), small(17), small(2) }, + { small(5), small(13), small(2) }, + { small(5), small(11), small(2) }, + { small(5), small(17), small(2) }, + { small(5), small(15), small(2) }, + { small(5), small(13), small(2) }, + { small(5), small(11), small(2) }, + { small(2), small(17), small(3) }, + { small(2), small(15), small(3) }, + { small(2), small(10), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(18), small(2) }, + { small(2), small(11), small(2) }, + { small(2), small(7), small(1) }, + { small(5), small(12), small(2) }, + { small(5), small(6), small(1) }, + { small(5), small(10), small(2) }, + { small(5), small(11), small(2) }, + { small(5), small(5), small(1) }, + { small(5), small(9), small(2) }, + { small(5), small(15), small(2) }, + { small(5), small(9), small(1) }, + { small(5), small(13), small(2) }, + { small(5), small(14), small(2) }, + { small(5), small(8), small(1) }, + { small(5), small(12), small(2) }, + { small(5), small(13), small(2) }, + { small(5), small(7), small(1) }, + { small(5), small(11), small(2) }, + { small(5), small(9), small(1) }, + { small(5), small(11), small(1) }, + { small(5), small(8), small(1) }, + { small(5), small(13), small(2) }, + { small(5), small(7), small(1) }, + { small(5), small(11), small(2) }, + { small(2), small(7), small(1) }, + { small(2), small(17), small(2) }, + { small(2), small(16), small(2) }, + { small(2), small(16), small(2) }, + { small(5), small(14), small(2) }, + { small(5), small(12), small(2) }, + { small(5), small(5), small(1) }, + { small(5), small(15), small(2) }, + { small(5), small(20), small(3) }, + { small(5), small(25), small(3) }, + { small(5), small(21), small(3) }, + { small(5), small(18), small(3) }, + { small(5), small(20), small(3) }, + { small(5), small(9), small(2) }, + { small(5), small(21), small(3) }, + { small(5), small(18), small(3) }, + { small(5), small(20), small(3) }, + { small(5), small(10), small(2) }, + { small(5), small(21), small(3) }, + { small(5), small(18), small(3) }, + { small(5), small(20), small(3) }, + { small(5), small(14), small(2) }, + { small(5), small(21), small(3) }, + { small(5), small(18), small(3) }, + { small(5), small(19), small(2) }, + { small(5), small(17), small(2) }, + { small(5), small(10), small(1) }, + { small(5), small(11), small(2) }, + { small(5), small(20), small(2) }, + { small(5), small(17), small(2) }, + { small(5), small(18), small(2) }, + { small(5), small(15), small(2) }, + { small(5), small(15), small(2) }, + { small(5), small(26), small(4) }, + { small(5), small(16), small(2) }, + { small(5), small(13), small(2) }, + { small(5), small(16), small(2) }, + { small(5), small(17), small(2) }, + { small(5), small(14), small(2) }, + { small(5), small(23), small(3) }, + { small(5), small(9), small(1) }, + { small(5), small(24), small(3) }, + { small(5), small(21), small(3) }, + { small(5), small(28), small(4) }, + { small(5), small(9), small(1) }, + { small(5), small(24), small(3) }, + { small(5), small(26), small(4) }, + { small(5), small(22), small(4) }, + { small(5), small(23), small(4) }, + { small(5), small(20), small(4) }, + { small(2), small(11), small(2) }, + { small(2), small(8), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(13), small(2) }, + { small(2), small(13), small(2) }, + { small(5), small(32), small(5) }, + { small(5), small(9), small(1) }, + { small(5), small(33), small(5) }, + { small(5), small(30), small(5) }, + { small(2), small(33), small(5) }, + { small(5), small(15), small(2) }, + { small(5), small(13), small(2) }, + { small(5), small(9), small(1) }, + { small(5), small(16), small(2) }, + { small(5), small(15), small(2) }, + { small(5), small(13), small(2) }, + { small(5), small(8), small(1) }, + { small(5), small(16), small(2) }, + { small(2), small(8), small(1) }, + { small(2), small(25), small(4) }, + { small(2), small(23), small(4) }, + { small(2), small(19), small(3) }, + { small(2), small(29), small(5) }, + { small(8), small(22), small(4) }, + { small(8), small(11), small(2) }, + { small(8), small(22), small(4) }, + { small(8), small(11), small(2) }, + { small(2), small(12), small(1) }, + { small(2), small(16), small(3) }, + { small(11), small(15), small(2) }, + { small(11), small(9), small(2) }, + { small(11), small(15), small(2) }, + { small(11), small(9), small(2) }, + { small(2), small(8), small(1) }, + { small(2), small(22), small(4) }, + { small(8), small(12), small(2) }, + { small(11), small(13), small(2) }, + { small(11), small(13), small(2) }, + { small(11), small(13), small(2) }, + { small(8), small(12), small(2) }, + { small(8), small(12), small(2) }, + { small(11), small(13), small(2) }, + { small(11), small(13), small(2) }, + { small(11), small(13), small(2) }, + { small(8), small(12), small(2) }, + { small(8), small(12), small(2) }, + { small(11), small(13), small(2) }, + { small(11), small(13), small(2) }, + { small(11), small(13), small(2) }, + { small(5), small(18), small(3) }, + { small(5), small(19), small(3) }, + { small(8), small(23), small(4) }, + { small(8), small(22), small(4) }, + { small(8), small(24), small(4) }, + { small(5), small(16), small(3) }, + { small(5), small(17), small(3) }, + { small(8), small(21), small(4) }, + { small(8), small(20), small(4) }, + { small(8), small(22), small(4) }, + { small(2), small(6), small(1) }, + { small(2), small(16), small(2) }, + { small(2), small(7), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(11), small(2) }, + { small(2), small(8), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(11), small(2) }, + { small(2), small(15), small(2) }, + { small(2), small(7), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(12), small(2) }, + { small(2), small(12), small(2) }, + { small(2), small(14), small(2) }, + { small(1), small(25), small(4) }, + { small(1), small(19), small(3) }, + { small(2), small(7), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(11), small(1) }, + { small(2), small(16), small(2) }, + { small(2), small(12), small(1) }, + { small(2), small(17), small(2) }, + { small(2), small(17), small(2) }, + { small(2), small(5), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(10), small(2) }, + { small(2), small(5), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(12), small(2) }, + { small(2), small(7), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(11), small(2) }, + { small(2), small(5), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(10), small(2) }, + { small(2), small(6), small(1) }, + { small(2), small(13), small(2) }, + { small(2), small(13), small(3) }, + { small(2), small(14), small(3) }, + { small(2), small(15), small(3) }, + { small(2), small(8), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(12), small(2) }, + { small(2), small(16), small(2) }, + { small(2), small(15), small(2) }, + { small(2), small(6), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(14), small(2) }, + { small(2), small(9), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(11), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(12), small(2) }, + { small(2), small(10), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(7), small(2) }, + { small(2), small(10), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(15), small(2) }, + { small(2), small(6), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(11), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(12), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(17), small(2) }, + { small(2), small(7), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(15), small(2) }, + { small(2), small(4), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(11), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(15), small(3) }, + { small(2), small(6), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(12), small(2) }, + { small(2), small(6), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(13), small(2) }, + { small(2), small(8), small(1) }, + { small(2), small(16), small(2) }, + { small(2), small(16), small(2) }, + { small(2), small(16), small(2) }, + { small(2), small(11), small(2) }, + { small(2), small(10), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(18), small(3) }, + { small(2), small(8), small(1) }, + { small(2), small(15), small(2) }, + { small(2), small(8), small(1) }, + { small(2), small(13), small(2) }, + { small(2), small(12), small(2) }, + { small(2), small(10), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(13), small(3) }, + { small(2), small(9), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(15), small(2) }, + { small(2), small(13), small(2) }, + { small(2), small(10), small(1) }, + { small(2), small(16), small(2) }, + { small(2), small(9), small(1) }, + { small(2), small(11), small(1) }, + { small(2), small(15), small(3) }, + { small(2), small(21), small(4) }, + { small(2), small(30), small(5) }, + { small(2), small(29), small(5) }, + { small(2), small(20), small(4) }, + { small(2), small(11), small(2) }, + { small(2), small(21), small(3) }, + { small(2), small(19), small(3) }, + { small(2), small(22), small(3) }, + { small(2), small(10), small(2) }, + { small(2), small(22), small(3) }, + { small(2), small(20), small(3) }, + { small(2), small(21), small(3) }, + { small(2), small(15), small(2) }, + { small(2), small(16), small(2) }, + { small(2), small(14), small(2) }, + { small(2), small(12), small(2) }, + { small(2), small(7), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(7), small(1) }, + { small(1), small(10), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(20), small(3) }, + { small(2), small(15), small(2) }, + { small(2), small(9), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(28), small(5) }, + { small(2), small(23), small(4) }, + { small(2), small(14), small(2) }, + { small(2), small(24), small(4) }, + { small(2), small(17), small(3) }, + { small(2), small(7), small(1) }, + { small(2), small(34), small(6) }, + { small(2), small(22), small(4) }, + { small(2), small(17), small(3) }, + { small(2), small(12), small(2) }, + { small(1), small(24), small(4) }, + { small(1), small(20), small(3) }, + { small(2), small(22), small(3) }, + { small(2), small(17), small(2) }, + { small(2), small(17), small(3) }, + { small(2), small(12), small(2) }, + { small(2), small(11), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(19), small(3) }, + { small(2), small(6), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(13), small(2) }, + { small(2), small(10), small(1) }, + { small(2), small(11), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(13), small(2) }, + { small(2), small(7), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(11), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(12), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(12), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(11), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(11), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(12), small(2) }, + { small(2), small(6), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(14), small(2) }, + { small(2), small(11), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(16), small(2) }, + { small(2), small(14), small(2) }, + { small(2), small(9), small(1) }, + { small(2), small(14), small(2) }, + { small(2), small(8), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(13), small(3) }, + { small(2), small(13), small(2) }, + { small(2), small(14), small(3) }, + { small(2), small(9), small(2) }, + { small(2), small(8), small(1) }, + { small(2), small(11), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(14), small(2) }, + { small(2), small(19), small(2) }, + { small(2), small(6), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(13), small(2) }, + { small(2), small(7), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(21), small(4) }, + { small(2), small(13), small(2) }, + { small(2), small(11), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(14), small(2) }, + { small(2), small(11), small(2) }, + { small(2), small(6), small(1) }, + { small(2), small(14), small(2) }, + { small(2), small(11), small(2) }, + { small(2), small(16), small(2) }, + { small(2), small(6), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(12), small(2) }, + { small(2), small(11), small(2) }, + { small(2), small(10), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(15), small(2) }, + { small(2), small(9), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(16), small(2) }, + { small(2), small(9), small(1) }, + { small(2), small(11), small(2) }, + { small(2), small(15), small(3) }, + { small(2), small(6), small(1) }, + { small(2), small(13), small(2) }, + { small(2), small(8), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(16), small(3) }, + { small(2), small(6), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(16), small(2) }, + { small(2), small(17), small(2) }, + { small(2), small(12), small(2) }, + { small(2), small(8), small(1) }, + { small(2), small(15), small(2) }, + { small(2), small(10), small(1) }, + { small(2), small(16), small(2) }, + { small(2), small(26), small(4) }, + { small(2), small(11), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(16), small(3) }, + { small(2), small(27), small(5) }, + { small(2), small(18), small(3) }, + { small(2), small(17), small(3) }, + { small(2), small(13), small(2) }, + { small(2), small(12), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(12), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(12), small(1) }, + { small(2), small(16), small(2) }, + { small(2), small(7), small(1) }, + { small(2), small(14), small(2) }, + { small(2), small(11), small(2) }, + { small(2), small(11), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(14), small(2) }, + { small(2), small(18), small(3) }, + { small(2), small(14), small(2) }, + { small(2), small(10), small(2) }, + { small(2), small(6), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(15), small(3) }, + { small(2), small(23), small(4) }, + { small(2), small(15), small(2) }, + { small(2), small(14), small(2) }, + { small(2), small(16), small(2) }, + { small(2), small(22), small(3) }, + { small(2), small(25), small(4) }, + { small(2), small(6), small(1) }, + { small(1), small(11), small(2) }, + { small(2), small(15), small(2) }, + { small(2), small(5), small(1) }, + { small(1), small(7), small(1) }, + { small(2), small(13), small(1) }, + { small(6), small(23), small(3) }, + { small(6), small(21), small(3) }, + { small(6), small(15), small(2) }, + { small(6), small(8), small(1) }, + { small(6), small(24), small(3) }, + { small(5), small(17), small(2) }, + { small(5), small(15), small(2) }, + { small(5), small(11), small(1) }, + { small(5), small(11), small(1) }, + { small(5), small(18), small(2) }, + { small(5), small(20), small(2) }, + { small(5), small(18), small(2) }, + { small(5), small(11), small(1) }, + { small(5), small(24), small(3) }, + { small(5), small(21), small(3) }, + { small(5), small(19), small(3) }, + { small(5), small(18), small(3) }, + { small(5), small(19), small(2) }, + { small(5), small(22), small(3) }, + { small(2), small(9), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(16), small(2) }, + { small(5), small(24), small(3) }, + { small(5), small(10), small(1) }, + { small(5), small(25), small(3) }, + { small(5), small(22), small(3) }, + { small(6), small(15), small(2) }, + { small(6), small(13), small(2) }, + { small(6), small(8), small(1) }, + { small(6), small(16), small(2) }, + { small(2), small(14), small(2) }, + { small(5), small(25), small(4) }, + { small(5), small(26), small(4) }, + { small(5), small(23), small(4) }, + { small(5), small(15), small(2) }, + { small(5), small(13), small(2) }, + { small(5), small(8), small(1) }, + { small(5), small(16), small(2) }, + { small(5), small(16), small(2) }, + { small(5), small(14), small(2) }, + { small(5), small(9), small(1) }, + { small(5), small(17), small(2) }, + { small(5), small(26), small(4) }, + { small(5), small(24), small(4) }, + { small(5), small(12), small(2) }, + { small(5), small(27), small(4) }, + { small(5), small(19), small(3) }, + { small(5), small(17), small(3) }, + { small(5), small(9), small(1) }, + { small(5), small(20), small(3) }, + { small(5), small(16), small(2) }, + { small(5), small(17), small(2) }, + { small(5), small(14), small(2) }, + { small(5), small(23), small(3) }, + { small(5), small(21), small(3) }, + { small(5), small(20), small(2) }, + { small(5), small(24), small(3) }, + { small(5), small(14), small(2) }, + { small(5), small(12), small(2) }, + { small(5), small(11), small(1) }, + { small(5), small(15), small(2) }, + { small(2), small(8), small(1) }, + { small(2), small(19), small(3) }, + { small(2), small(13), small(2) }, + { small(2), small(20), small(3) }, + { small(2), small(14), small(2) }, + { small(2), small(19), small(3) }, + { small(2), small(13), small(2) }, + { small(2), small(14), small(2) }, + { small(2), small(7), small(1) }, + { small(2), small(16), small(2) }, + { small(2), small(9), small(1) }, + { small(2), small(17), small(2) }, + { small(2), small(8), small(1) }, + { small(2), small(19), small(2) }, + { small(2), small(9), small(1) }, + { small(2), small(13), small(2) }, + { small(5), small(16), small(2) }, + { small(5), small(14), small(2) }, + { small(5), small(9), small(1) }, + { small(5), small(10), small(1) }, + { small(5), small(17), small(2) }, + { small(2), small(17), small(2) }, + { small(2), small(5), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(12), small(1) }, + { small(2), small(12), small(1) }, + { small(2), small(15), small(2) }, + { small(2), small(18), small(2) }, + { small(2), small(22), small(3) }, + { small(2), small(6), small(1) }, + { small(2), small(11), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(10), small(2) }, + { small(2), small(6), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(12), small(2) }, + { small(2), small(14), small(2) }, + { small(2), small(9), small(2) }, + { small(2), small(6), small(1) }, + { small(2), small(10), small(2) }, + { small(2), small(5), small(1) }, + { small(2), small(12), small(1) }, + { small(2), small(12), small(2) }, + { small(2), small(10), small(2) }, + { small(2), small(12), small(2) }, + { small(2), small(11), small(1) }, + { small(2), small(13), small(2) }, + { small(2), small(9), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(19), small(2) }, + { small(2), small(9), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(11), small(1) }, + { small(2), small(15), small(2) }, + { small(2), small(19), small(2) }, + { small(2), small(12), small(1) }, + { small(2), small(16), small(2) }, + { small(2), small(21), small(3) }, + { small(2), small(14), small(2) }, + { small(2), small(21), small(2) }, + { small(2), small(15), small(2) }, + { small(2), small(16), small(2) }, + { small(2), small(19), small(2) }, + { small(2), small(20), small(2) }, + { small(2), small(13), small(2) }, + { small(2), small(7), small(1) }, + { small(2), small(18), small(2) }, + { small(2), small(10), small(1) }, + { small(2), small(18), small(2) }, + { small(2), small(19), small(2) }, + { small(2), small(12), small(2) }, + { small(2), small(18), small(2) }, + { small(2), small(8), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(20), small(2) }, + { small(2), small(19), small(2) }, + { small(2), small(16), small(2) }, + { small(2), small(16), small(2) }, + { small(2), small(6), small(1) }, + { small(2), small(19), small(2) }, + { small(2), small(8), small(1) }, + { small(2), small(15), small(2) }, + { small(2), small(12), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(11), small(1) }, + { small(2), small(11), small(1) }, + { small(2), small(16), small(2) }, + { small(2), small(13), small(2) }, + { small(1), small(7), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(14), small(1) }, + { small(2), small(24), small(3) }, + { small(2), small(15), small(2) }, + { small(2), small(9), small(1) }, + { small(2), small(11), small(2) }, + { small(2), small(5), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(19), small(3) }, + { small(2), small(13), small(2) }, + { small(2), small(17), small(2) }, + { small(2), small(17), small(2) }, + { small(2), small(9), small(1) }, + { small(2), small(14), small(2) }, + { small(2), small(16), small(2) }, + { small(2), small(16), small(2) }, + { small(2), small(10), small(1) }, + { small(1), small(20), small(3) }, + { small(1), small(16), small(2) }, + { small(2), small(21), small(3) }, + { small(2), small(7), small(1) }, + { small(2), small(15), small(2) }, + { small(2), small(8), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(9), small(1) }, + { small(1), small(10), small(1) }, + { small(2), small(22), small(3) }, + { small(2), small(15), small(2) }, + { small(2), small(12), small(2) }, + { small(2), small(9), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(19), small(3) }, + { small(2), small(17), small(2) }, + { small(2), small(7), small(1) }, + { small(2), small(25), small(3) }, + { small(2), small(17), small(2) }, + { small(2), small(23), small(2) }, + { small(2), small(19), small(2) }, + { small(2), small(9), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(18), small(2) }, + { small(2), small(13), small(2) }, + { small(2), small(22), small(3) }, + { small(2), small(10), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(19), small(2) }, + { small(2), small(8), small(1) }, + { small(2), small(12), small(2) }, + { small(2), small(9), small(1) }, + { small(2), small(20), small(2) }, + { small(2), small(8), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(11), small(1) }, + { small(2), small(7), small(1) }, + { small(1), small(15), small(2) }, + { small(2), small(16), small(2) }, + { small(2), small(15), small(2) }, + { small(2), small(10), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(12), small(2) }, + { small(2), small(15), small(2) }, + { small(2), small(6), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(24), small(3) }, + { small(2), small(7), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(11), small(1) }, + { small(2), small(14), small(2) }, + { small(2), small(13), small(2) }, + { small(2), small(11), small(2) }, + { small(2), small(11), small(1) }, + { small(2), small(18), small(3) }, + { small(2), small(11), small(2) }, + { small(2), small(17), small(3) }, + { small(2), small(7), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(18), small(2) }, + { small(2), small(9), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(20), small(3) }, + { small(2), small(20), small(3) }, + { small(2), small(11), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(13), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(13), small(2) }, + { small(2), small(4), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(19), small(3) }, + { small(2), small(14), small(2) }, + { small(2), small(14), small(2) }, + { small(2), small(16), small(2) }, + { small(2), small(11), small(1) }, + { small(2), small(13), small(2) }, + { small(2), small(20), small(2) }, + { small(2), small(11), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(4), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(19), small(2) }, + { small(2), small(13), small(1) }, + { small(2), small(14), small(2) }, + { small(2), small(15), small(2) }, + { small(1), small(11), small(1) }, + { small(1), small(13), small(2) }, + { small(1), small(7), small(1) }, + { small(1), small(13), small(2) }, + { small(2), small(19), small(2) }, + { small(2), small(7), small(1) }, + { small(2), small(11), small(1) }, + { small(1), small(24), small(3) }, + { small(2), small(11), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(15), small(2) }, + { small(2), small(6), small(1) }, + { small(2), small(12), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(10), small(2) }, + { small(2), small(5), small(1) }, + { small(2), small(18), small(3) }, + { small(2), small(8), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(13), small(2) }, + { small(2), small(5), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(8), small(1) }, + { small(1), small(17), small(3) }, + { small(1), small(13), small(2) }, + { small(2), small(19), small(3) }, + { small(2), small(7), small(1) }, + { small(1), small(6), small(1) }, + { small(2), small(14), small(3) }, + { small(2), small(6), small(1) }, + { small(1), small(8), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(14), small(2) }, + { small(2), small(8), small(1) }, + { small(2), small(16), small(2) }, + { small(2), small(8), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(13), small(2) }, + { small(2), small(5), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(14), small(2) }, + { small(2), small(14), small(2) }, + { small(2), small(8), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(11), small(1) }, + { small(2), small(12), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(13), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(15), small(2) }, + { small(2), small(8), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(14), small(2) }, + { small(2), small(9), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(9), small(2) }, + { small(2), small(6), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(16), small(3) }, + { small(2), small(7), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(24), small(2) }, + { small(2), small(20), small(3) }, + { small(2), small(13), small(2) }, + { small(2), small(15), small(2) }, + { small(2), small(18), small(2) }, + { small(2), small(15), small(2) }, + { small(2), small(6), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(15), small(2) }, + { small(2), small(6), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(17), small(2) }, + { small(2), small(12), small(2) }, + { small(2), small(10), small(1) }, + { small(2), small(21), small(3) }, + { small(2), small(19), small(2) }, + { small(2), small(7), small(1) }, + { small(2), small(8), small(2) }, + { small(2), small(13), small(2) }, + { small(2), small(12), small(2) }, + { small(2), small(13), small(2) }, + { small(2), small(9), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(16), small(2) }, + { small(2), small(9), small(1) }, + { small(2), small(19), small(3) }, + { small(2), small(22), small(4) }, + { small(2), small(9), small(1) }, + { small(2), small(13), small(2) }, + { small(2), small(8), small(1) }, + { small(2), small(16), small(3) }, + { small(2), small(16), small(3) }, + { small(2), small(15), small(2) }, + { small(2), small(11), small(2) }, + { small(2), small(26), small(4) }, + { small(2), small(28), small(4) }, + { small(2), small(17), small(3) }, + { small(2), small(16), small(2) }, + { small(2), small(21), small(3) }, + { small(2), small(17), small(2) }, + { small(2), small(10), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(13), small(1) }, + { small(2), small(12), small(2) }, + { small(2), small(15), small(3) }, + { small(2), small(10), small(2) }, + { small(2), small(24), small(4) }, + { small(2), small(12), small(2) }, + { small(2), small(14), small(2) }, + { small(2), small(11), small(1) }, + { small(2), small(13), small(2) }, + { small(2), small(18), small(3) }, + { small(2), small(21), small(3) }, + { small(2), small(10), small(1) }, + { small(2), small(21), small(3) }, + { small(2), small(12), small(1) }, + { small(2), small(11), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(32), small(4) }, + { small(2), small(8), small(1) }, + { small(2), small(13), small(2) }, + { small(2), small(12), small(2) }, + { small(2), small(11), small(2) }, + { small(2), small(13), small(2) }, + { small(2), small(7), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(11), small(1) }, + { small(2), small(19), small(2) }, + { small(2), small(12), small(1) }, + { small(2), small(18), small(2) }, + { small(2), small(16), small(2) }, + { small(2), small(9), small(1) }, + { small(2), small(15), small(2) }, + { small(2), small(10), small(1) }, + { small(2), small(26), small(4) }, + { small(2), small(15), small(2) }, + { small(2), small(25), small(4) }, + { small(2), small(14), small(2) }, + { small(2), small(11), small(2) }, + { small(2), small(23), small(3) }, + { small(2), small(12), small(1) }, + { small(2), small(19), small(3) }, + { small(2), small(8), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(11), small(2) }, + { small(2), small(19), small(4) }, + { small(2), small(22), small(4) }, + { small(2), small(6), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(14), small(2) }, + { small(2), small(14), small(2) }, + { small(2), small(13), small(2) }, + { small(2), small(12), small(2) }, + { small(2), small(14), small(2) }, + { small(2), small(13), small(2) }, + { small(2), small(14), small(2) }, + { small(2), small(39), small(5) }, + { small(2), small(19), small(2) }, + { small(2), small(12), small(2) }, + { small(2), small(18), small(2) }, + { small(2), small(11), small(1) }, + { small(2), small(12), small(1) }, + { small(2), small(17), small(2) }, + { small(2), small(7), small(1) }, + { small(2), small(12), small(2) }, + { small(2), small(18), small(2) }, + { small(2), small(14), small(2) }, + { small(2), small(7), small(1) }, + { small(2), small(13), small(2) }, + { small(2), small(7), small(1) }, + { small(2), small(19), small(3) }, + { small(2), small(11), small(2) }, + { small(2), small(17), small(3) }, + { small(2), small(15), small(3) }, + { small(2), small(18), small(3) }, + { small(2), small(9), small(1) }, + { small(2), small(10), small(2) }, + { small(2), small(16), small(2) }, + { small(2), small(16), small(2) }, + { small(2), small(18), small(3) }, + { small(1), small(11), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(13), small(1) }, + { small(2), small(11), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(4), small(1) }, + { small(2), small(13), small(2) }, + { small(2), small(6), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(18), small(2) }, + { small(2), small(13), small(1) }, + { small(2), small(16), small(2) }, + { small(2), small(11), small(1) }, + { small(2), small(18), small(3) }, + { small(2), small(16), small(2) }, + { small(2), small(7), small(1) }, + { small(3), small(7), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(7), small(1) }, + { small(3), small(7), small(1) }, + { small(2), small(26), small(4) }, + { small(2), small(4), small(1) }, + { small(2), small(14), small(2) }, + { small(2), small(21), small(2) }, + { small(2), small(8), small(1) }, + { small(2), small(17), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(7), small(1) }, + { small(3), small(3), small(1) }, + { small(3), small(3), small(1) }, + { small(2), small(4), small(1) }, + { small(2), small(4), small(1) }, + { small(3), small(4), small(1) }, + { small(2), small(5), small(1) }, + { small(1), small(3), small(1) }, + { small(2), small(3), small(1) }, + { small(2), small(11), small(2) }, + { small(2), small(16), small(2) }, + { small(2), small(10), small(2) }, + { small(2), small(12), small(2) }, + { small(2), small(15), small(3) }, + { small(2), small(5), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(12), small(1) }, + { small(2), small(16), small(2) }, + { small(2), small(15), small(3) }, + { small(2), small(13), small(2) }, + { small(2), small(19), small(3) }, + { small(2), small(10), small(1) }, + { small(2), small(18), small(3) }, + { small(2), small(12), small(2) }, + { small(2), small(13), small(1) }, + { small(1), small(18), small(2) }, + { small(1), small(10), small(1) }, + { small(1), small(15), small(2) }, + { small(2), small(10), small(1) }, + { small(2), small(13), small(1) }, + { small(2), small(16), small(2) }, + { small(2), small(17), small(2) }, + { small(2), small(23), small(3) }, + { small(2), small(9), small(1) }, + { small(2), small(19), small(2) }, + { small(2), small(9), small(1) }, + { small(2), small(14), small(3) }, + { small(2), small(10), small(1) }, + { small(2), small(9), small(1) }, + { small(1), small(18), small(3) }, + { small(3), small(7), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(23), small(3) }, + { small(1), small(29), small(4) }, + { small(2), small(22), small(3) }, + { small(2), small(33), small(6) }, + { small(2), small(3), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(4), small(1) }, + { small(2), small(12), small(1) }, + { small(3), small(9), small(1) }, + { small(2), small(7), small(1) }, + { small(3), small(4), small(1) }, + { small(2), small(18), small(2) }, + { small(2), small(9), small(1) }, + { small(2), small(15), small(2) }, + { small(2), small(14), small(2) }, + { small(2), small(6), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(13), small(2) }, + { small(2), small(10), small(1) }, + { small(2), small(25), small(5) }, + { small(2), small(8), small(1) }, + { small(2), small(17), small(2) }, + { small(2), small(6), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(20), small(2) }, + { small(2), small(5), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(14), small(2) }, + { small(2), small(4), small(1) }, + { small(2), small(4), small(1) }, + { small(2), small(4), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(6), small(1) }, + { small(3), small(6), small(1) }, + { small(3), small(5), small(1) }, + { small(3), small(5), small(1) }, + { small(3), small(7), small(1) }, + { small(3), small(6), small(1) }, + { small(3), small(6), small(1) }, + { small(3), small(5), small(1) }, + { small(3), small(7), small(1) }, + { small(3), small(7), small(1) }, + { small(3), small(6), small(1) }, + { small(2), small(12), small(2) }, + { small(2), small(6), small(1) }, + { small(3), small(6), small(1) }, + { small(3), small(17), small(2) }, + { small(3), small(10), small(1) }, + { small(2), small(14), small(2) }, + { small(2), small(7), small(1) }, + { small(2), small(15), small(2) }, + { small(1), small(21), small(3) }, + { small(1), small(14), small(2) }, + { small(1), small(12), small(2) }, + { small(1), small(13), small(2) }, + { small(1), small(15), small(2) }, + { small(1), small(12), small(2) }, + { small(1), small(12), small(2) }, + { small(1), small(16), small(2) }, + { small(1), small(16), small(2) }, + { small(1), small(14), small(2) }, + { small(1), small(8), small(1) }, + { small(1), small(17), small(3) }, + { small(1), small(19), small(3) }, + { small(2), small(16), small(2) }, + { small(2), small(16), small(3) }, + { small(2), small(18), small(3) }, + { small(2), small(13), small(2) }, + { small(2), small(12), small(2) }, + { small(2), small(10), small(2) }, + { small(2), small(12), small(2) }, + { small(2), small(19), small(3) }, + { small(2), small(19), small(3) }, + { small(2), small(18), small(3) }, + { small(2), small(18), small(3) }, + { small(2), small(15), small(3) }, + { small(2), small(18), small(3) }, + { small(2), small(18), small(3) }, + { small(2), small(27), small(4) }, + { small(2), small(18), small(3) }, + { small(2), small(20), small(3) }, + { small(2), small(27), small(3) }, + { small(2), small(8), small(1) }, + { small(2), small(12), small(2) }, + { small(2), small(25), small(2) }, + { small(2), small(18), small(2) }, + { small(2), small(14), small(2) }, + { small(2), small(7), small(1) }, + { small(1), small(17), small(3) }, + { small(1), small(18), small(3) }, + { small(1), small(21), small(3) }, + { small(2), small(24), small(3) }, + { small(2), small(19), small(3) }, + { small(2), small(19), small(2) }, + { small(2), small(4), small(1) }, + { small(2), small(11), small(1) }, + { small(2), small(12), small(1) }, + { small(2), small(20), small(3) }, + { small(2), small(13), small(2) }, + { small(5), small(22), small(4) }, + { small(2), small(5), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(4), small(1) }, + { small(2), small(5), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(11), small(2) }, + { small(1), small(12), small(2) }, + { small(1), small(6), small(1) }, + { small(2), small(18), small(3) }, + { small(2), small(23), small(4) }, + { small(2), small(14), small(2) }, + { small(2), small(14), small(2) }, + { small(2), small(14), small(2) }, + { small(2), small(12), small(2) }, + { small(2), small(13), small(2) }, + { small(2), small(20), small(3) }, + { small(2), small(25), small(4) }, + { small(2), small(22), small(3) }, + { small(2), small(20), small(3) }, + { small(2), small(22), small(3) }, + { small(2), small(20), small(3) }, + { small(2), small(21), small(3) }, + { small(2), small(21), small(3) }, + { small(2), small(20), small(3) }, + { small(2), small(20), small(3) }, + { small(2), small(27), small(4) }, + { small(2), small(27), small(4) }, + { small(2), small(21), small(3) }, + { small(2), small(21), small(3) }, + { small(2), small(20), small(3) }, + { small(2), small(20), small(3) }, + { small(2), small(9), small(1) }, + { small(2), small(6), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(12), small(2) }, + { small(2), small(6), small(1) }, + { small(2), small(9), small(2) }, + { small(2), small(6), small(1) }, + { small(2), small(13), small(1) }, + { small(2), small(16), small(2) }, + { small(2), small(17), small(2) }, + { small(2), small(20), small(3) }, + { small(2), small(13), small(2) }, + { small(2), small(8), small(1) }, + { small(2), small(7), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(13), small(2) }, + { small(2), small(22), small(3) }, + { small(3), small(9), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(8), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(9), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(10), small(1) }, + { small(2), small(11), small(1) }, + { small(2), small(11), small(1) }, + { small(2), small(11), small(1) }, + { small(3), small(19), small(3) }, + { small(3), small(12), small(2) }, + { small(2), small(19), small(3) }, + { small(2), small(12), small(2) }, + { small(2), small(16), small(2) }, + { small(2), small(25), small(4) }, + { small(6), small(16), small(3) }, + { small(6), small(14), small(2) }, + { small(4), small(16), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(7), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(7), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(11), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(2), small(15), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(9), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(7), small(1) }, + { small(4), small(13), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(14), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(8), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(14), small(9), small(1) }, + { small(14), small(10), small(1) }, + { small(14), small(7), small(1) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, + { small(4), small(4), small(1) }, + { small(4), small(9), small(2) }, }; const medium ReplacementIndices[] = { -131, 135, 1208, 1284, 151, 671, 54, 61, 63, 107, 109, 143, -159, 240, 241, 246, 247, 257, 372, 431, 507, 508, 509, 545, -563, 564, 578, 661, 662, 682, 683, 684, 688, 762, 770, 771, -796, 800, 811, 813, 829, 830, 831, 832, 833, 846, 889, 922, -962, 987, 989, 992, 1006, 1010, 1028, 1031, 1047, 1147, 1158, 1168, -1171, 1172, 1173, 1188, 1195, 1197, 1209, 1226, 1237, 1240, 1244, 1264, -1265, 1266, 1286, 1287, 1288, 1300, 1301, 1302, 1303, 1304, 1305, 1306, -1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, -1319, 1322, 1323, 1379, 1380, 1420, 1421, 1422, 1423, 1424, 1425, 1428, -1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, -1441, 1442, 1443, 1444, 1445, 1448, 1449, 1450, 1451, 1452, 1453, 1850, -1851, 1906, 1907, 11, 94, 95, 155, 156, 159, 182, 183, 184, -185, 189, 190, 191, 192, 255, 260, 261, 262, 263, 304, 308, -310, 311, 336, 351, 353, 354, 356, 358, 359, 366, 370, 375, -383, 395, 412, 413, 419, 421, 425, 426, 427, 430, 444, 452, -491, 498, 504, 505, 531, 537, 539, 554, 568, 592, 593, 594, -599, 603, 612, 622, 624, 633, 639, 645, 649, 650, 658, 665, -667, 674, 679, 683, 685, 686, 710, 711, 712, 713, 714, 735, -736, 738, 740, 741, 742, 743, 744, 745, 746, 747, 785, 790, -791, 803, 810, 820, 821, 849, 865, 866, 867, 881, 886, 888, -895, 901, 922, 932, 933, 968, 970, 992, 996, 1007, 1008, 1009, -1020, 1021, 1022, 1023, 1030, 1034, 1038, 1041, 1065, 1066, 1076, 1077, -1078, 1079, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1108, 1109, 1112, -1129, 1131, 1132, 1176, 1177, 1185, 1196, 1206, 1213, 1222, 1224, 1225, -1231, 1252, 1256, 1289, 1290, 1292, 1293, 1302, 1339, 1344, 1345, 1347, -1349, 1353, 1355, 1356, 1357, 1358, 1360, 1362, 1364, 1370, 1371, 1374, -1376, 1377, 1378, 1379, 1385, 1414, 1415, 1454, 1455, 1456, 1457, 1458, -1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1470, -1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1488, -1489, 1490, 1491, 1492, 1493, 1494, 1495, 1506, 1507, 1763, 1764, 1844, -1845, 23, 26, 35, 36, 37, 38, 44, 50, 68, 69, 107, -108, 114, 115, 116, 117, 118, 119, 120, 121, 122, 125, 143, -144, 162, 163, 169, 197, 204, 206, 207, 208, 222, 223, 250, -251, 320, 323, 324, 325, 326, 327, 328, 329, 331, 333, 361, -376, 377, 378, 386, 389, 401, 410, 413, 414, 415, 438, 449, -454, 456, 457, 469, 477, 482, 483, 490, 505, 513, 515, 523, -532, 534, 535, 537, 538, 539, 540, 542, 543, 544, 545, 546, -547, 548, 549, 550, 556, 557, 573, 581, 582, 583, 587, 591, -595, 596, 598, 620, 623, 626, 630, 632, 636, 638, 639, 642, -646, 651, 652, 656, 658, 659, 679, 680, 706, 707, 708, 709, -764, 772, 788, 790, 793, 794, 795, 809, 814, 816, 838, 843, -847, 858, 859, 862, 863, 871, 876, 881, 882, 897, 901, 902, -916, 917, 918, 919, 926, 927, 929, 936, 939, 942, 943, 944, -945, 958, 960, 962, 963, 964, 972, 982, 994, 1000, 1003, 1007, -1028, 1029, 1036, 1041, 1045, 1056, 1063, 1066, 1067, 1068, 1071, 1072, -1073, 1075, 1076, 1077, 1080, 1081, 1084, 1090, 1092, 1115, 1116, 1123, -1140, 1145, 1146, 1147, 1154, 1161, 1167, 1190, 1198, 1228, 1233, 1235, -1238, 1242, 1250, 1251, 1252, 1259, 1266, 1270, 1322, 1323, 1331, 1333, -1336, 1343, 1344, 1346, 1347, 1348, 1349, 1382, 1386, 1388, 1389, 1390, -1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, -1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1416, 1498, 1499, -1500, 1501, 1504, 1505, 1510, 1511, 1514, 1515, 1516, 1517, 1518, 1519, -1520, 1521, 1522, 1523, 1526, 1527, 1528, 1529, 1530, 1531, 1532, 1533, -1534, 1535, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1545, 1582, 1583, -1652, 1868, 1869, 15, 16, 41, 64, 70, 71, 72, 133, 152, -213, 214, 217, 265, 305, 306, 307, 309, 365, 385, 388, 416, -445, 455, 456, 467, 472, 473, 480, 481, 485, 524, 555, 560, -561, 605, 628, 641, 657, 709, 777, 778, 783, 784, 832, 868, -875, 888, 891, 918, 929, 930, 938, 940, 974, 977, 998, 999, -1027, 1043, 1068, 1074, 1084, 1085, 1090, 1142, 1149, 1150, 1212, 1230, -1240, 1289, 1300, 1301, 1304, 1308, 1313, 1318, 1328, 1330, 1335, 1351, -1352, 1353, 1354, 1355, 1384, 1426, 1427, 1484, 1485, 1546, 1547, 1548, -1549, 1550, 1551, 1552, 1553, 1596, 1597, 19, 22, 23, 25, 26, -58, 77, 78, 117, 165, 175, 178, 179, 258, 308, 310, 311, -384, 406, 407, 408, 417, 458, 484, 497, 507, 508, 509, 580, -597, 797, 858, 893, 969, 979, 1046, 1047, 1048, 1049, 1050, 1133, -1134, 1185, 1205, 1207, 1218, 1219, 1237, 1281, 1331, 1338, 1376, 1554, -1555, 1556, 1557, 1562, 1563, 1564, 1565, 1566, 1567, 1568, 1569, 1838, -1839, 1840, 1841, 1928, 1929, 8, 13, 15, 28, 30, 32, 35, -37, 45, 46, 47, 48, 51, 57, 60, 64, 65, 67, 72, -77, 80, 83, 85, 88, 90, 92, 93, 94, 111, 121, 138, -139, 140, 141, 142, 143, 144, 157, 159, 165, 166, 177, 220, -221, 230, 231, 242, 243, 280, 281, 282, 283, 284, 290, 293, -294, 295, 300, 303, 335, 336, 337, 338, 339, 340, 341, 342, -343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, -355, 356, 357, 358, 359, 360, 393, 394, 396, 400, 404, 405, -423, 442, 443, 479, 481, 490, 494, 501, 510, 516, 518, 519, -520, 521, 522, 529, 530, 554, 558, 594, 601, 608, 610, 616, -620, 634, 661, 662, 663, 666, 670, 678, 684, 698, 699, 700, -752, 753, 797, 821, 844, 848, 856, 861, 873, 883, 915, 923, -938, 943, 946, 948, 952, 966, 971, 1004, 1032, 1033, 1039, 1064, -1076, 1080, 1082, 1083, 1110, 1111, 1187, 1230, 1272, 1277, 1278, 1288, -1298, 1386, 1412, 1413, 1414, 1415, 1416, 1417, 1418, 1419, 1421, 1423, -1425, 1427, 1429, 1431, 1433, 1435, 1437, 1439, 1441, 1443, 1445, 1447, -1449, 1451, 1453, 1455, 1457, 1459, 1461, 1463, 1465, 1467, 1469, 1471, -1473, 1475, 1477, 1479, 1481, 1483, 1485, 1487, 1489, 1491, 1493, 1495, -1497, 1499, 1501, 1503, 1505, 1507, 1509, 1511, 1513, 1515, 1517, 1519, -1521, 1523, 1525, 1527, 1529, 1531, 1533, 1535, 1537, 1539, 1541, 1543, -1545, 1547, 1549, 1551, 1553, 1555, 1557, 1559, 1561, 1563, 1565, 1567, -1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1579, 1580, 1581, -1583, 1585, 1587, 1589, 1591, 1593, 1595, 1597, 1599, 1601, 1603, 1605, -1607, 1609, 1611, 1613, 1615, 1617, 1619, 1621, 1623, 1625, 1627, 1629, -1631, 1633, 1635, 1637, 1639, 1641, 1643, 1645, 1647, 1649, 1651, 1652, -1654, 1656, 1658, 1660, 1662, 1664, 1666, 1668, 1670, 1672, 1674, 1676, -1678, 1680, 1682, 1684, 1686, 1688, 1690, 1692, 1694, 1696, 1698, 1700, -1702, 1704, 1706, 1708, 1710, 1712, 1714, 1715, 1716, 1718, 1720, 1722, -1724, 1726, 1728, 1730, 1732, 1734, 1736, 1738, 1740, 1742, 1744, 1746, -1748, 1750, 1752, 1754, 1756, 1758, 1760, 1762, 1764, 1766, 1768, 1770, -1772, 1774, 1776, 1778, 1780, 1782, 1784, 1786, 1788, 1790, 1792, 1794, -1796, 1798, 1800, 1802, 1804, 1806, 1809, 1811, 1813, 1815, 1817, 1819, -1821, 1823, 1825, 1827, 1829, 1831, 1833, 1835, 1837, 1839, 1841, 1843, -1845, 1847, 1849, 1851, 1853, 1855, 1857, 1859, 1861, 1863, 1865, 1867, -1869, 1871, 1873, 1875, 1877, 1879, 1881, 1883, 1885, 1887, 1889, 1891, -1893, 1895, 1897, 1899, 1901, 1903, 1905, 1907, 1909, 1911, 1913, 1915, -1917, 1919, 1921, 1923, 1925, 1927, 1929, 1931, 1933, 1935, 0, 3, -84, 99, 104, 186, 194, 196, 209, 210, 211, 212, 268, 269, -270, 271, 272, 274, 275, 296, 298, 299, 300, 302, 303, 352, -353, 355, 357, 358, 360, 461, 464, 511, 517, 563, 570, 613, -643, 651, 652, 653, 655, 675, 676, 680, 681, 685, 686, 719, -720, 721, 722, 781, 783, 786, 864, 885, 983, 993, 995, 1037, -1093, 1128, 1141, 1160, 1219, 1221, 1239, 1418, 1560, 1561, 1584, 1585, -1590, 1591, 1592, 1593, 1594, 1595, 1598, 1599, 1600, 1601, 1602, 1603, -1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615, -1616, 1617, 1618, 1619, 1620, 1621, 1826, 1827, 1908, 1909, 19, 20, -30, 31, 37, 59, 79, 94, 95, 101, 117, 123, 124, 127, -128, 143, 146, 148, 154, 155, 156, 157, 158, 159, 162, 165, -167, 180, 181, 189, 190, 191, 192, 218, 219, 264, 266, 267, -276, 277, 278, 279, 296, 297, 298, 299, 321, 322, 323, 324, -325, 327, 368, 373, 377, 378, 382, 391, 407, 414, 415, 422, -488, 506, 584, 590, 605, 606, 607, 677, 678, 715, 716, 717, -718, 739, 774, 828, 863, 884, 885, 886, 887, 888, 889, 894, -896, 899, 965, 966, 986, 987, 988, 989, 1013, 1061, 1126, 1127, -1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, -1141, 1142, 1210, 1225, 1285, 1315, 1316, 1317, 1318, 1326, 1327, 1328, -1329, 1330, 1343, 1383, 1446, 1447, 1536, 1537, 1622, 1623, 1624, 1625, -1626, 1627, 1628, 1629, 12, 96, 97, 110, 143, 180, 182, 183, -256, 265, 304, 629, 630, 631, 689, 868, 869, 925, 1044, 1048, -1052, 1075, 1084, 1122, 1170, 1188, 1223, 1240, 1258, 1263, 1376, 1482, -1483, 1502, 1503, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, -1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 7, 98, 99, -113, 116, 248, 249, 363, 765, 766, 767, 768, 769, 859, 907, -935, 1385, 1648, 1649, 1650, 1651, 1653, 1654, 1655, 1656, 20, 21, -22, 23, 119, 172, 330, 332, 334, 367, 397, 576, 577, 661, -662, 663, 687, 776, 837, 905, 928, 958, 997, 998, 1024, 1025, -1026, 1123, 1261, 1283, 1286, 1496, 1497, 1508, 1509, 1524, 1525, 1657, -1658, 1659, 1660, 1661, 1662, 1665, 1666, 1667, 1668, 1755, 1756, 1834, -1835, 1852, 1853, 5, 8, 82, 83, 113, 129, 139, 140, 149, -171, 173, 304, 399, 400, 436, 450, 490, 493, 494, 495, 512, -522, 547, 548, 567, 602, 637, 693, 694, 695, 696, 697, 800, -808, 822, 823, 850, 851, 855, 899, 957, 1028, 1044, 1051, 1055, -1091, 1099, 1101, 1108, 1110, 1113, 1115, 1122, 1123, 1124, 1145, 1162, -1164, 1212, 1224, 1230, 1253, 1258, 1306, 1310, 1311, 1312, 1314, 1316, -1336, 1337, 1354, 1355, 1364, 1365, 1369, 1373, 1374, 1375, 1669, 1670, -1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, -1683, 1684, 1685, 1686, 1842, 1843, 1854, 1855, 28, 29, 56, 62, -85, 86, 91, 143, 147, 159, 162, 163, 164, 165, 166, 187, -190, 193, 196, 197, 199, 200, 203, 207, 210, 214, 219, 221, -223, 225, 227, 229, 231, 233, 235, 236, 237, 239, 241, 243, -245, 247, 249, 250, 251, 256, 261, 267, 271, 275, 279, 281, -288, 292, 295, 299, 300, 301, 302, 303, 304, 306, 307, 311, -313, 317, 322, 324, 327, 328, 330, 333, 334, 336, 337, 338, -339, 340, 346, 347, 348, 349, 350, 356, 357, 358, 359, 360, -371, 375, 390, 405, 409, 475, 495, 496, 510, 511, 512, 513, -514, 515, 516, 517, 518, 519, 521, 522, 523, 572, 603, 643, -644, 688, 694, 702, 707, 711, 718, 720, 724, 728, 732, 736, -741, 744, 745, 746, 747, 749, 750, 751, 752, 754, 756, 766, -773, 775, 776, 787, 798, 804, 805, 806, 807, 814, 818, 819, -825, 840, 852, 853, 854, 870, 871, 872, 873, 880, 903, 912, -921, 932, 933, 937, 945, 955, 956, 963, 976, 981, 1012, 1050, -1056, 1057, 1058, 1059, 1117, 1120, 1121, 1133, 1152, 1178, 1179, 1216, -1226, 1233, 1238, 1239, 1241, 1254, 1324, 1327, 1329, 1343, 1360, 1361, -1362, 1363, 1367, 1372, 1387, 1578, 1579, 1687, 1688, 1689, 1690, 1691, -1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, -1704, 1705, 1706, 1707, 1708, 1709, 1710, 1713, 1714, 1717, 1718, 1719, -1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, -1732, 1757, 1758, 32, 33, 56, 57, 88, 169, 176, 268, 269, -270, 271, 364, 403, 406, 407, 408, 514, 518, 675, 909, 920, -922, 992, 1059, 1069, 1070, 1086, 1087, 1088, 1089, 1090, 1112, 1205, -1206, 1207, 1211, 1212, 1213, 1214, 1216, 1217, 1238, 1267, 1271, 1282, -1294, 1295, 1324, 1325, 1371, 1733, 1734, 1735, 1736, 1737, 1738, 1739, -1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 1749, 1750, 1751, -1752, 1753, 1754, 1761, 1762, 8, 25, 26, 27, 62, 98, 113, -123, 146, 148, 155, 156, 193, 195, 202, 203, 205, 215, 234, -235, 272, 273, 274, 275, 418, 440, 453, 472, 497, 559, 603, -616, 627, 643, 809, 810, 811, 812, 835, 855, 864, 890, 892, -893, 912, 974, 975, 1025, 1053, 1083, 1095, 1133, 1148, 1149, 1150, -1154, 1156, 1157, 1178, 1199, 1202, 1204, 1268, 1274, 1321, 1340, 1352, -1354, 1417, 1765, 1766, 42, 49, 100, 103, 122, 126, 137, 149, -150, 151, 152, 153, 159, 191, 192, 196, 201, 202, 203, 205, -244, 245, 253, 254, 259, 263, 265, 266, 270, 274, 278, 283, -284, 287, 289, 290, 291, 292, 294, 298, 302, 308, 310, 311, -315, 319, 380, 381, 396, 402, 403, 411, 463, 468, 472, 478, -486, 536, 565, 574, 575, 584, 585, 586, 588, 589, 590, 600, -602, 604, 609, 615, 616, 635, 640, 658, 662, 663, 673, 684, -697, 700, 705, 709, 712, 713, 714, 715, 717, 718, 722, 726, -730, 731, 732, 733, 734, 738, 743, 747, 752, 753, 754, 755, -756, 757, 769, 770, 795, 809, 842, 892, 893, 909, 910, 931, -946, 947, 951, 969, 980, 987, 988, 991, 1008, 1014, 1018, 1032, -1033, 1054, 1060, 1061, 1063, 1064, 1069, 1071, 1100, 1101, 1102, 1105, -1106, 1108, 1109, 1110, 1111, 1113, 1114, 1118, 1119, 1122, 1130, 1143, -1144, 1151, 1156, 1169, 1178, 1185, 1211, 1214, 1216, 1226, 1247, 1250, -1258, 1290, 1291, 1296, 1297, 1326, 1386, 1417, 1418, 1586, 1587, 1767, -1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, -1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789, 1790, 1856, -1857, 512, 516, 521, 522, 1220, 1221, 1791, 1792, 8, 9, 10, -18, 55, 70, 77, 78, 111, 112, 124, 141, 142, 150, 154, -156, 157, 159, 165, 170, 276, 277, 278, 279, 316, 317, 318, -319, 392, 459, 460, 462, 465, 470, 474, 476, 497, 500, 502, -539, 540, 541, 543, 544, 545, 546, 618, 624, 625, 626, 670, -735, 736, 737, 738, 739, 748, 759, 760, 788, 793, 794, 806, -808, 815, 816, 818, 822, 834, 862, 878, 879, 908, 949, 954, -1040, 1086, 1103, 1104, 1106, 1121, 1136, 1174, 1175, 1232, 1257, 1293, -1299, 1305, 1309, 1310, 1314, 1315, 1319, 1320, 1321, 1334, 1345, 1348, -1350, 1351, 1379, 1380, 1419, 1793, 1794, 1795, 1796, 1797, 1798, 1799, -1800, 1812, 1813, 1, 2, 4, 6, 13, 14, 22, 25, 26, -27, 34, 39, 45, 46, 66, 68, 73, 74, 75, 76, 87, -89, 90, 96, 102, 105, 106, 107, 108, 110, 114, 115, 118, -120, 127, 146, 157, 158, 168, 180, 181, 182, 183, 215, 216, -224, 225, 226, 227, 238, 239, 252, 285, 286, 287, 288, 304, -362, 369, 371, 372, 379, 385, 406, 408, 428, 429, 432, 433, -435, 437, 439, 441, 446, 466, 487, 489, 503, 520, 525, 526, -527, 533, 534, 535, 536, 537, 538, 539, 540, 549, 550, 551, -552, 553, 561, 571, 586, 588, 601, 609, 610, 613, 614, 616, -617, 619, 621, 629, 648, 660, 664, 689, 690, 691, 692, 723, -724, 725, 726, 727, 728, 729, 730, 748, 749, 754, 755, 775, -779, 787, 802, 805, 815, 820, 823, 827, 829, 830, 835, 836, -839, 841, 842, 843, 845, 855, 860, 871, 872, 882, 891, 897, -898, 904, 906, 908, 911, 912, 913, 914, 916, 917, 920, 955, -957, 959, 966, 967, 984, 1000, 1001, 1002, 1015, 1019, 1031, 1034, -1035, 1036, 1062, 1069, 1070, 1071, 1072, 1104, 1107, 1139, 1143, 1147, -1148, 1150, 1151, 1155, 1165, 1166, 1171, 1174, 1176, 1185, 1189, 1200, -1203, 1204, 1207, 1217, 1236, 1237, 1238, 1240, 1249, 1256, 1260, 1262, -1263, 1279, 1280, 1292, 1303, 1304, 1326, 1327, 1328, 1330, 1342, 1350, -1351, 1352, 1353, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, -1365, 1366, 1368, 1369, 1374, 1375, 1376, 1377, 1381, 1558, 1559, 1759, -1760, 1803, 1804, 1805, 1806, 1807, 1808, 1809, 1810, 1811, 1814, 1815, -1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1828, 1829, -1830, 1831, 1836, 1837, 1848, 1849, 1860, 1861, 1862, 1863, 1864, 1865, -1866, 1867, 1870, 1871, 8, 25, 26, 27, 51, 53, 80, 81, -92, 93, 130, 132, 134, 136, 146, 174, 198, 199, 200, 201, -228, 229, 232, 233, 256, 264, 266, 267, 321, 322, 374, 398, -434, 442, 451, 471, 483, 484, 485, 486, 492, 499, 545, 546, -556, 557, 566, 579, 611, 647, 655, 657, 668, 672, 756, 757, -758, 761, 762, 763, 764, 780, 789, 792, 799, 801, 812, 813, -817, 824, 826, 850, 851, 857, 877, 878, 879, 932, 933, 934, -949, 950, 953, 960, 961, 990, 1011, 1016, 1017, 1035, 1042, 1052, -1053, 1065, 1067, 1068, 1103, 1135, 1159, 1229, 1275, 1276, 1283, 1294, -1295, 1296, 1297, 1319, 1332, 1341, 1350, 1351, 1378, 1417, 1512, 1513, -1588, 1589, 1846, 1847, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, -1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, -1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 15, 16, 40, 151, -153, 386, 387, 423, 424, 562, 687, 688, 864, 865, 866, 1004, -1005, 1064, 1067, 1086, 1125, 1180, 1181, 1182, 1183, 1184, 1191, 1192, -1193, 1194, 1215, 1234, 1248, 1269, 1300, 1303, 1307, 1309, 1312, 1313, -1317, 1902, 1903, 1904, 1905, 1910, 1911, 1912, 1913, 1914, 1915, 1916, -1917, 145, 160, 255, 669, 782, 786, 850, 874, 941, 944, 1163, -1179, 1186, 1289, 1486, 1487, 1858, 1859, 1900, 1901, 1918, 1919, 1920, -1921, 1922, 1923, 1924, 1925, 17, 25, 37, 43, 47, 52, 77, -92, 94, 143, 157, 159, 161, 165, 167, 188, 189, 191, 195, -196, 197, 198, 199, 200, 201, 202, 206, 207, 208, 209, 213, -218, 219, 220, 222, 224, 226, 228, 230, 231, 232, 234, 235, -236, 238, 240, 242, 244, 246, 248, 255, 258, 259, 260, 264, -268, 272, 273, 276, 280, 285, 289, 290, 293, 296, 300, 308, -310, 311, 312, 313, 314, 315, 316, 321, 323, 324, 325, 326, -327, 330, 331, 332, 336, 341, 342, 343, 344, 345, 351, 352, -353, 354, 355, 361, 373, 377, 378, 420, 433, 447, 448, 452, -501, 502, 511, 513, 515, 517, 518, 519, 520, 521, 522, 534, -535, 537, 538, 539, 540, 543, 547, 549, 554, 556, 569, 595, -653, 654, 658, 662, 693, 694, 695, 697, 701, 702, 703, 704, -705, 706, 710, 712, 715, 719, 723, 727, 731, 732, 733, 734, -735, 740, 744, 748, 765, 777, 852, 861, 866, 885, 900, 920, -921, 924, 943, 973, 976, 985, 989, 1018, 1032, 1045, 1047, 1058, -1059, 1063, 1067, 1068, 1078, 1090, 1122, 1123, 1149, 1155, 1156, 1187, -1214, 1227, 1233, 1239, 1240, 1245, 1246, 1255, 1316, 1335, 1344, 1346, -1356, 1359, 1361, 1363, 1365, 1412, 1413, 1414, 1801, 1802, 1926, 1927, -1201, 1329, 1663, 1664, 24, 978, 1127, 1153, 1711, 1712, 1930, 1931, -85, 86, 528, 1243, 1273, 1832, 1833, 1932, 1933, 1934, 1935 }; + 140, 144, 1283, 1359, 161, 736, 52, 79, 81, 116, 118, 152, + 169, 198, 207, 254, 255, 260, 261, 292, 413, 475, 572, 573, + 574, 598, 615, 616, 633, 723, 724, 747, 748, 749, 753, 835, + 843, 844, 869, 873, 884, 886, 901, 902, 903, 904, 905, 920, + 957, 996, 1036, 1060, 1062, 1065, 1079, 1083, 1101, 1104, 1120, 1222, + 1233, 1243, 1246, 1247, 1248, 1263, 1270, 1272, 1284, 1301, 1312, 1315, + 1319, 1339, 1340, 1341, 1361, 1362, 1365, 1377, 1378, 1379, 1380, 1381, + 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, + 1394, 1395, 1396, 1399, 1400, 1456, 1457, 1498, 1499, 1500, 1501, 1502, + 1503, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1515, 1516, + 1517, 1518, 1519, 1520, 1521, 1522, 1523, 1526, 1527, 1528, 1529, 1530, + 1531, 1928, 1929, 1984, 1985, 11, 97, 98, 165, 166, 169, 188, + 191, 192, 193, 196, 200, 201, 202, 203, 204, 264, 295, 296, + 297, 298, 299, 347, 349, 350, 351, 376, 391, 393, 394, 396, + 398, 399, 407, 411, 418, 420, 428, 440, 457, 458, 464, 466, + 470, 471, 472, 474, 489, 507, 541, 549, 555, 556, 581, 591, + 594, 607, 620, 634, 642, 643, 644, 651, 654, 664, 675, 678, + 690, 696, 706, 711, 712, 720, 726, 727, 730, 732, 739, 742, + 748, 750, 751, 775, 776, 777, 778, 779, 807, 808, 810, 814, + 815, 816, 817, 818, 819, 820, 821, 858, 863, 864, 876, 883, + 893, 894, 925, 939, 940, 941, 954, 956, 958, 966, 972, 996, + 1006, 1007, 1042, 1044, 1065, 1069, 1080, 1081, 1082, 1093, 1094, 1095, + 1096, 1103, 1107, 1111, 1114, 1138, 1139, 1150, 1151, 1152, 1153, 1166, + 1167, 1168, 1169, 1170, 1171, 1172, 1182, 1183, 1186, 1204, 1206, 1207, + 1251, 1252, 1260, 1271, 1281, 1288, 1297, 1299, 1300, 1306, 1327, 1331, + 1366, 1367, 1369, 1370, 1379, 1412, 1414, 1416, 1424, 1425, 1427, 1429, + 1433, 1435, 1436, 1437, 1438, 1440, 1442, 1444, 1450, 1451, 1454, 1455, + 1456, 1462, 1491, 1492, 1532, 1533, 1534, 1535, 1536, 1537, 1538, 1539, + 1540, 1541, 1542, 1543, 1544, 1545, 1546, 1547, 1548, 1549, 1550, 1551, + 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1566, 1567, 1568, 1569, + 1570, 1571, 1572, 1573, 1584, 1585, 1841, 1842, 1922, 1923, 23, 26, + 28, 40, 46, 49, 59, 101, 102, 107, 108, 116, 117, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 135, 152, 153, 172, + 173, 195, 210, 218, 220, 221, 222, 236, 237, 268, 269, 342, + 360, 363, 364, 365, 366, 367, 368, 369, 371, 373, 401, 402, + 418, 421, 422, 423, 432, 434, 446, 455, 458, 459, 460, 476, + 488, 496, 504, 505, 509, 518, 526, 532, 533, 540, 555, 566, + 568, 571, 580, 584, 585, 588, 589, 591, 592, 593, 594, 595, + 596, 597, 598, 599, 600, 601, 602, 603, 625, 628, 635, 637, + 638, 641, 646, 647, 649, 652, 669, 673, 680, 681, 682, 686, + 689, 693, 695, 696, 699, 700, 707, 709, 713, 714, 718, 720, + 721, 728, 742, 743, 757, 771, 772, 773, 774, 811, 812, 813, + 837, 845, 861, 863, 866, 867, 868, 882, 887, 889, 912, 917, + 922, 931, 932, 935, 936, 947, 950, 958, 959, 968, 972, 973, + 990, 991, 992, 993, 1000, 1001, 1003, 1010, 1013, 1016, 1017, 1018, + 1019, 1032, 1034, 1036, 1037, 1038, 1046, 1055, 1067, 1073, 1076, 1080, + 1101, 1102, 1109, 1114, 1118, 1129, 1136, 1139, 1140, 1141, 1144, 1145, + 1146, 1149, 1150, 1151, 1154, 1155, 1158, 1164, 1166, 1189, 1190, 1197, + 1215, 1220, 1221, 1222, 1229, 1236, 1242, 1265, 1273, 1303, 1308, 1310, + 1313, 1317, 1325, 1326, 1327, 1334, 1341, 1345, 1399, 1400, 1408, 1410, + 1421, 1423, 1424, 1426, 1427, 1428, 1429, 1459, 1463, 1465, 1466, 1467, + 1468, 1469, 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, + 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1493, 1576, 1577, + 1578, 1579, 1582, 1583, 1588, 1589, 1592, 1593, 1594, 1595, 1596, 1597, + 1598, 1599, 1600, 1601, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, + 1612, 1613, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1660, 1661, + 1730, 1946, 1947, 15, 16, 37, 60, 83, 84, 86, 142, 162, + 227, 228, 231, 301, 344, 345, 346, 348, 406, 431, 433, 461, + 492, 504, 515, 516, 521, 522, 530, 531, 535, 575, 608, 609, + 610, 655, 676, 684, 698, 719, 774, 850, 851, 856, 857, 902, + 942, 944, 956, 962, 992, 1003, 1004, 1012, 1014, 1047, 1050, 1071, + 1072, 1100, 1116, 1141, 1147, 1158, 1159, 1164, 1217, 1224, 1225, 1287, + 1305, 1315, 1366, 1377, 1378, 1381, 1385, 1390, 1395, 1405, 1407, 1420, + 1431, 1432, 1433, 1434, 1435, 1461, 1504, 1505, 1562, 1563, 1624, 1625, + 1626, 1627, 1628, 1629, 1630, 1631, 1674, 1675, 19, 22, 23, 26, + 27, 29, 55, 73, 75, 76, 126, 175, 183, 186, 187, 274, + 275, 276, 293, 347, 349, 350, 430, 451, 452, 453, 462, 501, + 534, 548, 572, 573, 574, 632, 648, 870, 931, 964, 1043, 1052, + 1119, 1120, 1121, 1122, 1123, 1208, 1209, 1260, 1280, 1282, 1293, 1294, + 1312, 1356, 1363, 1364, 1408, 1414, 1415, 1632, 1633, 1634, 1635, 1640, + 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1916, 1917, 1918, 1919, 1988, + 2009, 2010, 8, 13, 15, 28, 29, 30, 31, 41, 42, 43, + 44, 47, 54, 56, 58, 62, 65, 67, 68, 70, 72, 75, + 78, 84, 86, 87, 90, 91, 93, 95, 96, 97, 99, 101, + 107, 120, 130, 147, 148, 149, 150, 151, 152, 153, 167, 169, + 175, 176, 185, 234, 235, 244, 245, 256, 257, 289, 290, 291, + 295, 316, 317, 318, 319, 320, 325, 328, 329, 330, 335, 338, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 438, 439, 441, 445, 449, 450, 468, 490, 491, 529, + 531, 540, 544, 552, 558, 559, 560, 561, 562, 563, 569, 582, + 583, 607, 614, 644, 658, 662, 668, 669, 677, 681, 682, 691, + 723, 724, 725, 731, 735, 741, 749, 780, 781, 782, 823, 824, + 870, 894, 909, 918, 921, 934, 937, 949, 960, 989, 997, 1012, + 1017, 1020, 1022, 1026, 1040, 1045, 1077, 1105, 1106, 1112, 1137, 1150, + 1154, 1156, 1157, 1184, 1185, 1262, 1305, 1347, 1352, 1353, 1365, 1375, + 1463, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1499, 1501, 1503, + 1505, 1507, 1509, 1511, 1513, 1515, 1517, 1519, 1521, 1523, 1525, 1527, + 1529, 1531, 1533, 1535, 1537, 1539, 1541, 1543, 1545, 1547, 1549, 1551, + 1553, 1555, 1557, 1559, 1561, 1563, 1565, 1567, 1569, 1571, 1573, 1575, + 1577, 1579, 1581, 1583, 1585, 1587, 1589, 1591, 1593, 1595, 1597, 1599, + 1601, 1603, 1605, 1607, 1609, 1611, 1613, 1615, 1617, 1619, 1621, 1623, + 1625, 1627, 1629, 1631, 1633, 1635, 1637, 1639, 1641, 1643, 1645, 1647, + 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1657, 1658, 1659, 1661, + 1663, 1665, 1667, 1669, 1671, 1673, 1675, 1677, 1679, 1681, 1683, 1685, + 1687, 1689, 1691, 1693, 1695, 1697, 1699, 1701, 1703, 1705, 1707, 1709, + 1711, 1713, 1715, 1717, 1719, 1721, 1723, 1725, 1727, 1729, 1730, 1732, + 1734, 1736, 1738, 1740, 1742, 1744, 1746, 1748, 1750, 1752, 1754, 1756, + 1758, 1760, 1762, 1764, 1766, 1768, 1770, 1772, 1774, 1776, 1778, 1780, + 1782, 1784, 1786, 1788, 1790, 1792, 1793, 1794, 1796, 1798, 1800, 1802, + 1804, 1806, 1808, 1810, 1812, 1814, 1816, 1818, 1820, 1822, 1824, 1826, + 1828, 1830, 1832, 1834, 1836, 1838, 1840, 1842, 1844, 1846, 1848, 1850, + 1852, 1854, 1856, 1858, 1860, 1862, 1864, 1866, 1868, 1870, 1872, 1874, + 1876, 1878, 1880, 1882, 1884, 1887, 1889, 1891, 1893, 1895, 1897, 1899, + 1901, 1903, 1905, 1907, 1909, 1911, 1913, 1915, 1917, 1919, 1921, 1923, + 1925, 1927, 1929, 1931, 1933, 1935, 1937, 1939, 1941, 1943, 1945, 1947, + 1949, 1951, 1953, 1955, 1957, 1959, 1961, 1963, 1965, 1967, 1969, 1971, + 1973, 1975, 1977, 1979, 1981, 1983, 1985, 1987, 1992, 1994, 1996, 1998, + 2000, 2002, 2004, 2006, 2008, 2010, 2012, 2014, 2016, 0, 3, 74, + 106, 113, 155, 194, 205, 209, 223, 224, 225, 226, 283, 284, + 285, 304, 305, 306, 307, 308, 310, 311, 331, 333, 334, 335, + 337, 338, 392, 393, 395, 397, 398, 400, 415, 500, 506, 514, + 564, 570, 615, 622, 665, 704, 713, 714, 715, 717, 743, 744, + 745, 746, 750, 751, 787, 788, 789, 790, 854, 856, 859, 938, + 953, 1056, 1066, 1068, 1110, 1167, 1203, 1216, 1235, 1294, 1296, 1314, + 1495, 1638, 1639, 1662, 1663, 1668, 1669, 1670, 1671, 1672, 1673, 1676, + 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, + 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1904, + 1905, 1986, 1987, 19, 20, 55, 62, 63, 64, 67, 77, 97, + 98, 101, 110, 126, 133, 134, 136, 137, 152, 156, 158, 164, + 165, 166, 167, 168, 169, 172, 175, 177, 189, 190, 200, 201, + 202, 203, 215, 232, 233, 300, 302, 303, 312, 313, 314, 315, + 331, 332, 333, 334, 361, 362, 363, 364, 365, 367, 409, 419, + 421, 422, 427, 436, 452, 459, 460, 467, 527, 538, 554, 636, + 655, 656, 657, 703, 740, 741, 783, 784, 785, 786, 791, 847, + 910, 936, 952, 953, 954, 955, 956, 957, 965, 967, 970, 1039, + 1040, 1059, 1060, 1061, 1062, 1086, 1134, 1200, 1201, 1202, 1203, 1204, + 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1216, 1217, + 1285, 1300, 1360, 1392, 1393, 1394, 1395, 1403, 1404, 1405, 1406, 1407, + 1423, 1460, 1524, 1525, 1614, 1615, 1700, 1701, 1702, 1703, 1704, 1705, + 1706, 1707, 12, 103, 104, 119, 152, 189, 191, 192, 265, 301, + 339, 340, 341, 351, 685, 686, 687, 756, 792, 793, 794, 942, + 943, 999, 1117, 1121, 1125, 1149, 1158, 1196, 1245, 1263, 1298, 1315, + 1333, 1338, 1414, 1560, 1561, 1580, 1581, 1708, 1709, 1710, 1711, 1712, + 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, + 1725, 7, 105, 106, 122, 125, 262, 263, 404, 838, 839, 840, + 841, 842, 932, 981, 1009, 1462, 1726, 1727, 1728, 1729, 1731, 1732, + 1733, 1734, 20, 21, 22, 23, 128, 180, 370, 372, 374, 408, + 442, 629, 630, 723, 724, 725, 752, 849, 911, 976, 1002, 1032, + 1070, 1071, 1097, 1098, 1099, 1197, 1336, 1358, 1361, 1574, 1575, 1586, + 1587, 1602, 1603, 1735, 1736, 1737, 1738, 1739, 1740, 1743, 1744, 1745, + 1746, 1833, 1834, 1912, 1913, 1930, 1931, 5, 8, 69, 70, 122, + 138, 148, 149, 155, 159, 179, 181, 351, 444, 445, 482, 498, + 540, 543, 544, 545, 561, 565, 600, 601, 619, 653, 694, 761, + 762, 763, 764, 765, 792, 793, 794, 873, 881, 895, 896, 923, + 924, 929, 970, 1031, 1101, 1117, 1124, 1128, 1165, 1173, 1175, 1182, + 1184, 1187, 1189, 1196, 1197, 1198, 1220, 1237, 1239, 1287, 1299, 1305, + 1328, 1333, 1383, 1387, 1388, 1389, 1391, 1393, 1412, 1413, 1421, 1422, + 1434, 1435, 1444, 1445, 1449, 1453, 1747, 1748, 1749, 1750, 1751, 1752, + 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, 1764, + 1920, 1921, 1932, 1933, 30, 54, 67, 71, 80, 87, 88, 94, + 99, 100, 152, 157, 169, 172, 173, 174, 175, 176, 199, 201, + 208, 209, 210, 212, 213, 217, 221, 224, 228, 233, 235, 237, + 239, 241, 243, 245, 247, 249, 250, 251, 253, 255, 257, 259, + 261, 263, 265, 268, 269, 271, 272, 273, 276, 279, 282, 285, + 286, 287, 288, 291, 297, 303, 307, 311, 315, 317, 323, 327, + 330, 334, 335, 336, 337, 338, 341, 345, 346, 350, 351, 353, + 357, 362, 364, 367, 368, 370, 373, 374, 376, 377, 378, 379, + 380, 386, 387, 388, 389, 390, 396, 397, 398, 399, 400, 412, + 420, 435, 450, 454, 524, 545, 546, 559, 560, 561, 562, 563, + 564, 565, 566, 567, 568, 569, 570, 571, 624, 652, 654, 704, + 705, 753, 762, 767, 772, 776, 786, 788, 794, 796, 800, 804, + 808, 813, 814, 815, 816, 817, 819, 823, 825, 827, 829, 830, + 831, 839, 846, 848, 849, 860, 871, 877, 878, 879, 880, 887, + 891, 892, 898, 915, 926, 927, 928, 946, 947, 948, 949, 974, + 980, 986, 995, 1006, 1007, 1011, 1019, 1029, 1030, 1037, 1049, 1054, + 1085, 1123, 1129, 1130, 1131, 1132, 1191, 1194, 1195, 1208, 1227, 1253, + 1254, 1291, 1301, 1308, 1313, 1314, 1316, 1329, 1401, 1404, 1406, 1423, + 1440, 1441, 1442, 1443, 1447, 1452, 1464, 1656, 1657, 1765, 1766, 1767, + 1768, 1769, 1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, + 1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1791, 1792, 1795, + 1796, 1797, 1798, 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, + 1808, 1809, 1810, 1835, 1836, 31, 32, 71, 72, 90, 184, 304, + 305, 306, 307, 342, 405, 448, 451, 452, 453, 562, 567, 744, + 983, 994, 996, 1065, 1132, 1142, 1143, 1160, 1161, 1162, 1163, 1164, + 1186, 1280, 1281, 1282, 1286, 1287, 1288, 1289, 1291, 1292, 1313, 1342, + 1346, 1357, 1371, 1372, 1401, 1402, 1451, 1497, 1811, 1812, 1813, 1814, + 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, + 1827, 1828, 1829, 1830, 1831, 1832, 1839, 1840, 8, 25, 26, 27, + 54, 67, 80, 105, 122, 133, 156, 158, 165, 166, 206, 207, + 208, 216, 217, 219, 229, 248, 249, 308, 309, 310, 311, 463, + 485, 508, 521, 548, 613, 652, 654, 668, 683, 704, 882, 883, + 884, 885, 907, 929, 938, 961, 963, 964, 986, 1047, 1048, 1098, + 1126, 1157, 1169, 1201, 1208, 1223, 1224, 1225, 1229, 1231, 1232, 1253, + 1274, 1277, 1279, 1343, 1349, 1398, 1417, 1432, 1434, 1494, 1843, 1844, + 38, 45, 109, 112, 131, 132, 146, 159, 160, 161, 162, 163, + 169, 178, 202, 203, 204, 209, 214, 216, 217, 219, 258, 259, + 266, 267, 294, 299, 301, 302, 306, 310, 314, 319, 320, 322, + 324, 325, 326, 327, 329, 333, 337, 340, 347, 349, 350, 355, + 359, 425, 426, 441, 447, 448, 456, 511, 517, 521, 528, 536, + 590, 617, 626, 627, 636, 639, 640, 645, 650, 653, 659, 661, + 667, 668, 688, 692, 697, 701, 702, 703, 720, 724, 725, 738, + 749, 765, 770, 774, 777, 778, 779, 782, 783, 785, 786, 790, + 792, 793, 794, 798, 802, 803, 804, 805, 806, 810, 812, 817, + 821, 823, 824, 825, 826, 827, 828, 842, 843, 868, 882, 916, + 963, 964, 983, 984, 1005, 1020, 1021, 1025, 1043, 1053, 1060, 1061, + 1064, 1081, 1087, 1091, 1105, 1106, 1127, 1133, 1134, 1136, 1137, 1142, + 1144, 1174, 1175, 1176, 1179, 1180, 1182, 1183, 1184, 1185, 1187, 1188, + 1192, 1193, 1196, 1205, 1218, 1219, 1226, 1231, 1244, 1253, 1260, 1286, + 1289, 1291, 1301, 1322, 1325, 1333, 1367, 1368, 1373, 1374, 1403, 1463, + 1494, 1495, 1664, 1665, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, + 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, + 1865, 1866, 1867, 1868, 1934, 1935, 560, 561, 565, 569, 1295, 1296, + 1869, 1870, 8, 9, 10, 18, 29, 53, 60, 75, 76, 120, + 121, 134, 150, 151, 160, 164, 166, 167, 169, 175, 312, 313, + 314, 315, 339, 340, 341, 356, 357, 358, 359, 424, 437, 483, + 502, 503, 510, 512, 519, 523, 525, 548, 551, 553, 586, 594, + 595, 596, 597, 598, 599, 671, 678, 679, 680, 735, 754, 791, + 807, 808, 809, 810, 832, 833, 861, 866, 867, 879, 881, 888, + 889, 891, 895, 908, 935, 978, 979, 982, 1023, 1028, 1113, 1160, + 1177, 1178, 1180, 1195, 1211, 1249, 1250, 1307, 1332, 1370, 1376, 1382, + 1386, 1387, 1391, 1392, 1396, 1397, 1398, 1411, 1425, 1428, 1430, 1431, + 1456, 1457, 1496, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1890, + 1891, 1, 2, 4, 6, 13, 14, 22, 25, 26, 27, 33, + 34, 35, 41, 42, 50, 54, 57, 59, 61, 68, 82, 85, + 89, 92, 93, 103, 111, 114, 115, 116, 117, 119, 123, 124, + 127, 129, 136, 156, 167, 168, 189, 190, 191, 192, 229, 230, + 238, 239, 240, 241, 252, 253, 270, 321, 322, 323, 339, 340, + 341, 343, 351, 403, 410, 412, 413, 414, 416, 429, 431, 451, + 453, 473, 477, 478, 479, 481, 484, 486, 487, 495, 513, 537, + 539, 547, 557, 558, 576, 577, 578, 587, 588, 589, 590, 591, + 592, 594, 595, 602, 603, 604, 605, 606, 610, 623, 640, 660, + 661, 662, 665, 666, 668, 670, 672, 674, 677, 685, 701, 709, + 710, 722, 726, 729, 754, 755, 756, 757, 758, 759, 760, 795, + 796, 797, 798, 799, 800, 801, 802, 825, 826, 829, 848, 852, + 860, 875, 878, 888, 893, 896, 900, 904, 905, 906, 907, 909, + 913, 914, 916, 917, 919, 929, 933, 947, 948, 959, 962, 968, + 969, 975, 977, 982, 985, 986, 987, 988, 990, 991, 994, 1029, + 1031, 1033, 1040, 1041, 1057, 1073, 1074, 1075, 1088, 1092, 1104, 1107, + 1108, 1109, 1135, 1142, 1143, 1144, 1145, 1178, 1181, 1214, 1218, 1222, + 1223, 1225, 1226, 1230, 1240, 1241, 1246, 1249, 1251, 1260, 1264, 1275, + 1278, 1279, 1282, 1292, 1311, 1312, 1313, 1315, 1324, 1331, 1335, 1337, + 1338, 1354, 1355, 1363, 1369, 1380, 1381, 1403, 1404, 1405, 1407, 1412, + 1413, 1414, 1419, 1430, 1431, 1432, 1433, 1436, 1437, 1438, 1439, 1440, + 1441, 1442, 1443, 1444, 1445, 1446, 1448, 1449, 1454, 1458, 1636, 1637, + 1837, 1838, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1892, + 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1906, + 1907, 1908, 1909, 1914, 1915, 1926, 1927, 1938, 1939, 1940, 1941, 1942, + 1943, 1944, 1945, 1948, 1949, 1989, 8, 25, 26, 27, 47, 51, + 65, 66, 95, 96, 132, 139, 141, 143, 145, 156, 182, 211, + 212, 213, 214, 242, 243, 246, 247, 265, 300, 302, 303, 361, + 362, 417, 443, 480, 483, 490, 497, 520, 533, 534, 535, 536, + 542, 550, 584, 585, 598, 599, 618, 631, 663, 708, 717, 719, + 727, 733, 737, 822, 827, 828, 834, 835, 836, 837, 853, 862, + 865, 872, 874, 885, 886, 890, 897, 899, 923, 924, 930, 951, + 978, 979, 1006, 1007, 1008, 1023, 1024, 1027, 1034, 1035, 1063, 1084, + 1089, 1090, 1108, 1115, 1125, 1126, 1138, 1140, 1141, 1177, 1210, 1234, + 1304, 1350, 1351, 1358, 1371, 1372, 1373, 1374, 1396, 1409, 1418, 1430, + 1431, 1455, 1494, 1590, 1591, 1666, 1667, 1924, 1925, 1950, 1951, 1952, + 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961, 1962, 1963, 1964, + 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, + 1977, 15, 16, 36, 132, 161, 163, 432, 468, 469, 611, 612, + 752, 753, 938, 939, 940, 1077, 1078, 1137, 1140, 1160, 1199, 1255, + 1256, 1257, 1258, 1259, 1266, 1267, 1268, 1269, 1290, 1309, 1323, 1344, + 1377, 1380, 1384, 1386, 1389, 1390, 1394, 1497, 1980, 1981, 1982, 1983, + 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 91, 154, 170, 264, + 277, 278, 279, 734, 855, 859, 923, 945, 1015, 1018, 1238, 1254, + 1261, 1366, 1564, 1565, 1936, 1937, 1978, 1979, 1999, 2000, 2001, 2002, + 2003, 2004, 2005, 2006, 17, 27, 29, 30, 39, 43, 48, 54, + 67, 75, 95, 97, 101, 152, 167, 169, 171, 175, 177, 197, + 200, 202, 206, 209, 210, 211, 212, 213, 214, 215, 216, 220, + 221, 222, 223, 227, 232, 233, 234, 236, 238, 240, 242, 244, + 245, 246, 248, 249, 250, 252, 254, 256, 258, 260, 262, 264, + 271, 274, 277, 280, 283, 289, 293, 294, 296, 300, 304, 308, + 309, 312, 316, 321, 324, 325, 328, 331, 335, 339, 347, 349, + 350, 352, 353, 354, 355, 356, 361, 363, 364, 365, 366, 367, + 370, 371, 372, 376, 381, 382, 383, 384, 385, 391, 392, 393, + 394, 395, 402, 419, 421, 422, 465, 478, 493, 494, 507, 552, + 553, 558, 559, 560, 561, 562, 564, 566, 568, 570, 584, 588, + 589, 591, 592, 594, 595, 596, 600, 602, 607, 621, 646, 709, + 715, 716, 720, 724, 726, 754, 761, 762, 763, 765, 766, 767, + 768, 769, 770, 771, 775, 777, 783, 787, 792, 795, 799, 803, + 804, 805, 806, 807, 811, 814, 818, 838, 850, 926, 934, 940, + 953, 971, 994, 995, 998, 1017, 1049, 1058, 1062, 1091, 1105, 1118, + 1120, 1131, 1132, 1136, 1140, 1141, 1148, 1152, 1164, 1196, 1197, 1224, + 1230, 1231, 1262, 1289, 1302, 1308, 1314, 1315, 1320, 1321, 1330, 1393, + 1420, 1424, 1426, 1436, 1439, 1441, 1443, 1445, 1489, 1490, 1491, 1879, + 1880, 1990, 2007, 2008, 1276, 1406, 1741, 1742, 24, 155, 1051, 1202, + 1228, 1789, 1790, 2011, 2012, 87, 88, 280, 281, 282, 499, 579, + 1318, 1348, 1910, 1911, 2013, 2014, 2015, 2016 }; struct ReplacementIndexStruct { utf16char ch; @@ -6100,201 +6407,208 @@ struct ReplacementIndexStruct { const checksum ReplacementChecksums[] = { -0xAE1DAB16U, 0x8F27A2AU, 0x465496D5U, 0x892E9135U, 0xD621DD31U, 0x40D5B583U, 0x23598B8CU, 0x174C4A14U, 0x9739B1DAU, 0xF448853DU, 0xF3DF7DF2U, 0x15D5108FU, -0xE8A0D4E8U, 0x8FBCAF62U, 0x95F9E2A9U, 0x47CEA738U, 0x839E1EBCU, 0xA58AFD2AU, 0xAAA850BDU, 0xBBEE1755U, 0x4F9A8CDDU, 0x77C2915FU, 0x42B9AA72U, 0xABB65511U, -0x984E9DE9U, 0x229620B8U, 0x11744AD7U, 0xDEA4DF8BU, 0x3DDDF327U, 0xC9016AA9U, 0xDD058F8EU, 0x33167FFDU, 0xCF4EB7B4U, 0x5E990F1U, 0xB6610B6U, 0xF3DA224AU, -0xDDF16CC9U, 0x26FBBFD8U, 0xF0D58D6U, 0x9F57820DU, 0xCAEFB5CCU, 0x868C5775U, 0x36F0B13EU, 0xC2104FC3U, 0x635ED438U, 0xFE76A6BFU, 0xAF98DEFEU, 0xC4A1CE0BU, -0x24A144DU, 0xA07F4113U, 0xA1B56E69U, 0x7AC6D4C1U, 0xA6737D27U, 0x3841C7E7U, 0x7BD9C74BU, 0x57960B20U, 0xA3016C3FU, 0x47DE3B8DU, 0x347522B4U, 0x3DD97630U, -0x283C812CU, 0x62FCCC72U, 0x2A8707F7U, 0x4CAAF872U, 0x7DE5251FU, 0xA1CE4738U, 0x65284ADEU, 0x3CAC3D83U, 0xBBB37EE8U, 0xB74B407AU, 0xBB721077U, 0xD5827C60U, -0xE79C25ACU, 0xF3A0B08AU, 0x754CB19FU, 0xC53F5EC8U, 0x2FB36C45U, 0x8A111CA0U, 0x16625752U, 0xC7DA2CAAU, 0x50A359D4U, 0x9E85659AU, 0xA6832DF5U, 0x7F7A32B5U, -0x349608E1U, 0x3CA5EFD1U, 0xBEEDA352U, 0x10FF4E8EU, 0x5A37598EU, 0x92500B16U, 0xD5E5CEF4U, 0xF9ABE6FBU, 0xEF0313FDU, 0x5D682C8AU, 0xD1D48498U, 0x4DA7CF6AU, -0x2B17F5C6U, 0xA903A376U, 0xCA823961U, 0x829E9619U, 0x8F456FB4U, 0xCC6B224AU, 0x75B42ABFU, 0xCD7DECEFU, 0x73290221U, 0xDF8E5CD8U, 0x1D568D7CU, 0x7F2FCD63U, -0x539DB28DU, 0xB9BB5841U, 0x88EB5D8DU, 0x30B6C9CCU, 0xEA5F5485U, 0xF282B417U, 0x46508060U, 0x8C9D5E3EU, 0xBC04162BU, 0xFA329E5DU, 0xC885E4CCU, 0xDCBF9DCAU, -0x4715B337U, 0x2FDC1366U, 0x3E3BBA50U, 0x9F2BF2CU, 0x73F18BAU, 0xB561B097U, 0x6DC1E6EFU, 0x9000A7E8U, 0xEE613496U, 0xCAD661B5U, 0xADEFBC1EU, 0x717A2494U, -0x10ED817CU, 0xD5497538U, 0xC264618U, 0xA723C789U, 0x365CA2E0U, 0xC4AE628U, 0xDAD44170U, 0x69B2A699U, 0xFA94A82BU, 0x9500E45FU, 0x641EDBEU, 0xBBC0F4D2U, -0xE21AA1F5U, 0x7FDEA451U, 0x5F8E4A17U, 0x9682906DU, 0x41B84148U, 0x6659DDC9U, 0xBA4A5BADU, 0x14B31920U, 0x1360E730U, 0x590C5708U, 0xF019A4AAU, 0x5089CA96U, -0xF0B0E775U, 0xFDD90E49U, 0x1BF1824BU, 0xE13025FCU, 0xEF137B9DU, 0x7935115AU, 0x718BD26AU, 0xF09E5811U, 0x7BA332A6U, 0xA7615393U, 0x73FAF11U, 0x55936B7CU, -0x141AF304U, 0x65E071DDU, 0x97589D6U, 0x73A15F22U, 0xB2FDF279U, 0xD6B59BAEU, 0x27ABA3E6U, 0x2367BEC9U, 0xE7C938F9U, 0x560FEC09U, 0x12C5119U, 0x5001267U, -0x85080CCDU, 0xA3B79EC5U, 0x960F8445U, 0xF895CC46U, 0x3A3AF35CU, 0xC4A951A1U, 0x6BE7869BU, 0xEA4D4D5BU, 0xAE72E7B2U, 0x4282D2C1U, 0x33ECB6EBU, 0x4415ADC3U, -0xC78A4A6EU, 0xA58D62B2U, 0xF3E3048EU, 0x1B8D6392U, 0x147A0701U, 0xE63DAAF0U, 0x8DDD9273U, 0xF5A4B231U, 0x9FF25F7FU, 0xDDEA0DB3U, 0x5CEB285U, 0x7DB792C7U, -0x750B1EB5U, 0x57AE509CU, 0xC8F777C2U, 0xBCD1360BU, 0x632D2CA8U, 0xBC462336U, 0x602E733DU, 0x2194100DU, 0x2FB69E71U, 0x58D9C98U, 0xD3907616U, 0x40B025B8U, -0x8638D05AU, 0xE4433DD5U, 0xB399E080U, 0xEB05158DU, 0x21E41D29U, 0xA97B497EU, 0x7DF9E406U, 0x2B2DDA74U, 0xBA0D8072U, 0x23F15693U, 0x69AB4478U, 0xE134102FU, -0x8522D229U, 0x1CDE04C8U, 0x1021B3B1U, 0x685893F3U, 0x548FAB48U, 0x3926C75EU, 0xCD7FFCC1U, 0x95E309CCU, 0x70DCC40DU, 0x5809E8BDU, 0xC3D9F1CBU, 0x15C41B45U, -0x461F4802U, 0xCE801C55U, 0x39156F0DU, 0x3AE08EU, 0x8D001528U, 0x51684523U, 0x85F53FF7U, 0x53E8D579U, 0x81AED8F1U, 0x5DC688FAU, 0x88B16330U, 0x43104043U, -0x364A68E3U, 0xA3F2B218U, 0x84AC213BU, 0x752D5FFCU, 0xA15A7026U, 0x2CD52C5U, 0x8C136450U, 0x1A32A58U, 0xBE1AD3FCU, 0x368587ABU, 0x24762692U, 0xDB6866FU, -0xDBFE03C1U, 0x32805E0BU, 0xBDB344CU, 0xB6576FD7U, 0xCE602BD5U, 0xD9A1C5D8U, 0x1E451C58U, 0xA3C947C3U, 0x8A5E6F27U, 0xA76375AEU, 0x5A7B58AAU, 0xE7F70331U, -0x9E18A785U, 0x5E2B2BB3U, 0x4E3D9008U, 0xF3B1CB93U, 0xFE1D8CFCU, 0xC732037FU, 0xE5F2028FU, 0x922F93ECU, 0x3B1CD1U, 0x489442A4U, 0xF7CEB34U, 0xE3308006U, -0x9E89A82AU, 0x88E25FD7U, 0xBA9183F8U, 0xC98F90D9U, 0x111E8936U, 0xAB056753U, 0x3E5DD491U, 0x83D04BE3U, 0x7419BEF7U, 0xDEC343D9U, 0xDF53B75BU, 0x8D38CBC1U, -0x9E65B31DU, 0x49E9647BU, 0x487990F9U, 0x8586DA3AU, 0x8D4BA4A5U, 0xE27A2FD3U, 0xCF0F75B3U, 0x506B7DCCU, 0x7729EE20U, 0x83A892CEU, 0x1724B686U, 0x1D5443E6U, -0xF994FF2AU, 0x606829CBU, 0x4F6BD1AEU, 0xB8F93024U, 0xF6C1C490U, 0x6F3D1271U, 0xE8119B5BU, 0xB7AC0B9EU, 0xA93D2434U, 0x9CBC7723U, 0x5384167CU, 0x6CC02C32U, -0xE3AEFA3BU, 0x96ACCCB8U, 0x93EDFEB5U, 0xB455ABEU, 0xE0468B3U, 0xD2638E77U, 0x85F33C85U, 0x53C0FE60U, 0x40A0CF69U, 0xCE296866U, 0xDD49596FU, 0x89ED9A7CU, -0xB2168218U, 0x2A16FE9FU, 0xC6158813U, 0x96D819A0U, 0xF1CB7821U, 0xF0B3234EU, 0xC76DD37CU, 0xF6999932U, 0xA6540881U, 0xC1476900U, 0xBF852F50U, 0x885BDF62U, -0x2B6EA5F0U, 0x7BA33443U, 0x1CB055C2U, 0x406B945CU, 0x21FBAB96U, 0x25A9EEF7U, 0x29D0280DU, 0xDCD83354U, 0x95D847CAU, 0x193AD0D7U, 0x65149603U, 0x875F1D51U, -0xF2D6AE5EU, 0x9E89C614U, 0x71040E80U, 0x2F6DB3B1U, 0x4FBD2D4DU, 0x382CE581U, 0x8682E54AU, 0xC6CE3C16U, 0xD0CDB310U, 0xC097D2DCU, 0x61442A6DU, 0x803FC77EU, -0xBFABF3D6U, 0x2AB83F69U, 0xB70E7066U, 0x1BED886U, 0xE496DD92U, 0x125067C1U, 0xF2BDF6E8U, 0xA1E56DA4U, 0x1D17DA74U, 0xD6E2180AU, 0x96AAE39BU, 0x9E79ED3CU, -0xFE814EF2U, 0x55E387B6U, 0x38A8B47FU, 0x1BD7ADCCU, 0xB200788AU, 0xC063E892U, 0x7E1CEC20U, 0x62C476EDU, 0xF83527BEU, 0xCB64655U, 0xF85F383EU, 0xEFE50809U, -0xA32D4B9DU, 0x14325108U, 0xC46CF3FCU, 0x8646A4A2U, 0x24231E6EU, 0xE8DC260CU, 0x9CA8A446U, 0x4A5517EBU, 0xCDBD569CU, 0xB4C0F066U, 0xF1C615D9U, 0x14C9784FU, -0xC35ACFA4U, 0xA1F99F39U, 0xDB5D327U, 0x16208387U, 0x487A6530U, 0x8B83FB15U, 0x47AA297BU, 0xA6838556U, 0xFE99F07BU, 0xAAC72C75U, 0xD7EE632BU, 0xCC9E80CU, -0xDC478D7BU, 0x7E2514C1U, 0xEC7A9229U, 0x7EFF1AE2U, 0xDA58F332U, 0x7FFD9AE0U, 0xD62250F0U, 0x36FF2FD3U, 0x5343E85AU, 0x8ADA0754U, 0x7DE1A231U, 0x73105D3AU, -0x9EA10A8CU, 0x454632DU, 0x2AFBA286U, 0x638306DBU, 0xD0EE5B94U, 0xBDBA49B8U, 0x26400C9AU, 0xB8A32501U, 0xED50973AU, 0x96A4B4A6U, 0x532A2EC9U, 0xC01BA957U, -0x11CDDFF8U, 0x38F60BF1U, 0xAA9B52FCU, 0x709E7D5BU, 0xD63F1DE9U, 0xE5D7E3BU, 0xF7AF95C2U, 0x3D792D12U, 0x77418D32U, 0x3AF7B59U, 0xDF7CC644U, 0x796A3A58U, -0x2A0F1115U, 0x8E3D8B1FU, 0x3EE734ECU, 0xA157B457U, 0x19AD5091U, 0xA348A4DCU, 0x4F107817U, 0xD65CF7B3U, 0xBD678059U, 0x5D63C132U, 0xB71ABEBBU, 0x3E76DFA6U, -0x7B931373U, 0x4C62A6D8U, 0x57F03940U, 0xB2A038EEU, 0x5FDF9A23U, 0xA0263983U, 0x7E882A01U, 0x9DFC1084U, 0x7072D927U, 0xD8FDE69FU, 0xE0E7157BU, 0x58F4B5B9U, -0x57E98EE9U, 0x2B7F17D5U, 0xBF5D536FU, 0x19B4B8DDU, 0x670EE546U, 0x759F5B56U, 0x521D3385U, 0x54FF4F92U, 0x2D9CBF6AU, 0xD0F0ACFBU, 0x41F4137CU, 0x3ECD73DCU, -0xD98F534U, 0xAFC9093DU, 0x11EB63E2U, 0x69341E0FU, 0x45C58EDBU, 0xDFF71D29U, 0xBACC8D3CU, 0x795F863CU, 0xDA5B599FU, 0x756A6CFCU, 0x492FD69AU, 0x29F01476U, -0x6E924FB3U, 0xE8B85ECU, 0x2AC4EC3FU, 0xF77C2327U, 0x4D7BA0B7U, 0xC9C38BCEU, 0xC46345A2U, 0xA8C65A6U, 0x1A0CBBA0U, 0xC6B953FBU, 0xF469483CU, 0xE8DBA058U, -0x55E1E9EDU, 0x220DF006U, 0x752BEE8CU, 0xFBB8B0D5U, 0x16F0C1B5U, 0x6F47CA15U, 0xE7DF0A66U, 0x93AA672CU, 0xA4B0DB5U, 0x9798D36AU, 0x210C73B2U, 0x2D884E0BU, -0x2CF555C5U, 0x2594AF17U, 0xF92DA22FU, 0x4C553278U, 0x559C4DCU, 0x2FEF17FCU, 0xF479A777U, 0x13EC6D08U, 0x507AFB0FU, 0x3DBD6B73U, 0xD3DAA910U, 0x56D07CCDU, -0x76F544DDU, 0x8D972880U, 0xFF842DA6U, 0xAB51C2E8U, 0xFE925847U, 0x1266FB35U, 0x9951A06U, 0xD3FF1DF6U, 0x51D302CEU, 0x66FB4072U, 0x3338DADDU, 0x67610EA3U, -0x8FD669ECU, 0xE3411213U, 0xA28A9DA9U, 0x170B62DFU, 0x46D9B7D7U, 0x3BAA86EEU, 0xF0257FF7U, 0x6DBF878BU, 0x520CEC4CU, 0x4A7596BEU, 0x732E55FDU, 0x36069DA1U, -0x17D3C5EEU, 0xCCBE59DCU, 0xF17154B8U, 0xFED05FF9U, 0x70F66BAAU, 0x668A255FU, 0x5E1E3F24U, 0xC6AA9101U, 0xA9DF1308U, 0x1CE8989FU, 0xF2C4756CU, 0x606CB509U, -0x2394B2A6U, 0x16C80794U, 0x2A219240U, 0xAE1222A3U, 0x8CB97B86U, 0x4CACE737U, 0x8EC4A97AU, 0xE6AE7EDU, 0xB911D42CU, 0x6C05079AU, 0x2A97030AU, 0x1E97978CU, -0xA9209129U, 0x859AA93BU, 0xC97EF510U, 0x66821408U, 0x54C18CD7U, 0x66B85367U, 0x5C604485U, 0x3A9FAE2U, 0x3CD0C352U, 0x92F9FA79U, 0xC17824C7U, 0xB803EAFU, -0x538FB0D3U, 0x948FC967U, 0x41D70FEBU, 0x8F21EB7FU, 0x90F8A446U, 0xD768A2BEU, 0xDDABF113U, 0xD17178C2U, 0x56378FD7U, 0xBED2C72U, 0x93D47BEAU, 0xAEA4D915U, -0xF5601C83U, 0x317F54CBU, 0x10AA0C84U, 0xD907DC46U, 0xE342A78AU, 0xBD65E28U, 0xB389E207U, 0x3BD7614EU, 0xC08B5199U, 0x4E118784U, 0x48C31E39U, 0x7CF71C84U, -0xB0B24B2CU, 0x1FE25283U, 0x629F7C2DU, 0x57EF2916U, 0x2B576B96U, 0xCE051BEAU, 0xEC16C919U, 0xBFF3A0CBU, 0xE838218DU, 0xEE352A21U, 0xE38E5B7FU, 0x3A8BB7DFU, -0x1F0ECE93U, 0x5385D9B7U, 0xAC29F8F4U, 0x575DB2ADU, 0xACBF183FU, 0x567EEE14U, 0xE8AD89DBU, 0xE3E9CEBBU, 0xD8CE4D00U, 0xBA789F5AU, 0xF87F77BBU, 0x4A4B351BU, -0xCF96A065U, 0x74744A1FU, 0xD93F0955U, 0x4F6722B3U, 0xFDCD24EEU, 0xE6A9F921U, 0x166CC0D6U, 0xB92186A0U, 0x29211071U, 0xD978BCDDU, 0xB14992FCU, 0x19854E77U, -0x3FE60A5U, 0x58FC1E58U, 0x10475664U, 0xDAFCA3E6U, 0xFDCAE1D1U, 0x82D2915DU, 0xE3DFF22AU, 0x130FDF55U, 0xD3B59A0FU, 0xD5F60290U, 0x6CCD0385U, 0x58438A99U, -0xDE26F199U, 0x3E40DEB9U, 0x706B5E46U, 0x3B8DBFD5U, 0x28CAFF29U, 0xD0A47AE4U, 0x3AA9B57AU, 0x8504AFF7U, 0x5E28BCA3U, 0xFBE90C93U, 0xEAD04C12U, 0xCB24B726U, -0xF6C65A18U, 0x2A34D380U, 0x62E270A6U, 0x6E546C36U, 0x31006A54U, 0x29503BFAU, 0xBF30759DU, 0xA18BD87CU, 0xA2D5259U, 0x34D4508EU, 0xCDF525B8U, 0xD28710F0U, -0xB2863FDDU, 0x9F9E5922U, 0xE1642FD1U, 0x12D001U, 0x16F6CE5BU, 0x70B1EF12U, 0xA6AC059CU, 0xBBEBD881U, 0x472BCFE6U, 0xE62890CU, 0xA80B1464U, 0xC5A27872U, -0x3BEA65ABU, 0xA8392847U, 0x279F356AU, 0x7F03C067U, 0x7D764E6CU, 0xA208B04BU, 0x110FA646U, 0xFC591AA1U, 0x4B671A82U, 0x8737FAAAU, 0x552AF746U, 0x21D61F84U, -0xB82AC965U, 0x3B3F074FU, 0x60BBD08AU, 0x426CB588U, 0xDB906369U, 0x9B6900FEU, 0x3017A86U, 0xEEDF7292U, 0xC60A5E22U, 0x19DDB430U, 0x7B87C150U, 0x49FFE8C2U, -0x875E3C9U, 0xEFB8D540U, 0xBB551FEU, 0x485E57B1U, 0x7171D832U, 0xAA37823U, 0xB678C79CU, 0x9AD6EC38U, 0x6CB5177AU, 0xE42A432DU, 0xA711D2F5U, 0xDF1942E9U, -0x92D028AU, 0xF00C77BCU, 0x7049BC1CU, 0xA2670B26U, 0x20B4D99EU, 0x8BEAF43BU, 0xEA39A146U, 0x14F38D7U, 0x3A72453FU, 0x464E138BU, 0xC1B90DE8U, 0x9EAD10B7U, -0x1E4CB9E4U, 0x2CF77C5BU, 0x8927E59AU, 0x7116D68AU, 0xBB545FEBU, 0x81B4AA98U, 0xD01859CAU, 0xDF71061U, 0x479A64C4U, 0x71B1C5DBU, 0x5964E96BU, 0xF1560394U, -0xF28823A4U, 0xE4E97619U, 0x1295A088U, 0x7049FDAU, 0xE592D573U, 0x3535BE69U, 0x1619B844U, 0xD727F3DEU, 0x13232E2BU, 0x51338796U, 0x4B84738U, 0xF482392DU, -0xAB40F973U, 0x9E36BDD6U, 0x3845F022U, 0xA2F40E8BU, 0xC698595DU, 0x87D8352DU, 0xEEB9CC7FU, 0xC644164DU, 0x4CDBDEAFU, 0xE2DE7491U, 0x31F7EB3DU, 0x9599038U, -0x9D918DA1U, 0x65E89B01U, 0x886E82A6U, 0xFFFE534AU, 0xE151673CU, 0x2026F087U, 0x6D682B4EU, 0xDEF444BDU, 0xF1416D33U, 0xBA2D6D03U, 0xEEFF589AU, 0xD41F5106U, -0xDE088E4CU, 0x999A79F6U, 0xE8AEA3D0U, 0xE93324AEU, 0xAD49F7U, 0x5FE7A23DU, 0xC1728CACU, 0x60B9C80EU, 0xE3F2AFEBU, 0x95F0722U, 0xA039D72EU, 0xD6262CCFU, -0x76C373F8U, 0xB040A838U, 0xCF9DD85FU, 0x89EE399BU, 0x4280BC28U, 0xFC69FC63U, 0x3D05B634U, 0x49B5C357U, 0x6E56C308U, 0x1754FB6U, 0xBB51865DU, 0x8715888CU, -0x1D1552DU, 0xB7351D91U, 0x4537E08EU, 0xAD2738D0U, 0xAE6891D3U, 0x3D480692U, 0x964B44CEU, 0x7F89BA71U, 0x2E2BD03U, 0x7686B89FU, 0xDC21E010U, 0xC76B9756U, -0x51599457U, 0x9E6B1EDU, 0x9A6FBFC1U, 0xBBC871A0U, 0xC3FAEA7CU, 0xFAD6BDE8U, 0x1D426A4FU, 0x54E93201U, 0x23516287U, 0x7D2AAB9U, 0x3D14944U, 0x20F91670U, -0x7A1502CDU, 0x5A8B6DF7U, 0x2D7BE547U, 0xC7686672U, 0x6101B9D7U, 0x6D9E58AFU, 0xEB0B3F26U, 0x92FD1CE6U, 0x10438777U, 0xB9A6DF98U, 0x8F21D6D6U, 0xA5DC42D9U, -0xAA8A7A11U, 0x97ABDF97U, 0xF820B371U, 0x12E7060FU, 0x7898B7E6U, 0xECC6032BU, 0x9CD6CAB9U, 0x3BC2405BU, 0x16974E59U, 0xB1168D81U, 0x2F1E6611U, 0xCEFB7A8CU, -0x399695C7U, 0x116814AFU, 0x588FA645U, 0xC9B298CDU, 0xC2BC200U, 0x264CB5CEU, 0x9C43107EU, 0xA1A8D07EU, 0xE6BF9B30U, 0xDAAEEB22U, 0x9AE019F0U, 0xE91C586BU, -0x2C799952U, 0xE5A1E7CEU, 0x405A2DB6U, 0x804346D2U, 0xBE708250U, 0x67B107D0U, 0xC596A1FBU, 0xB7E8AC33U, 0x829235A2U, 0xA0D9823DU, 0x46D24122U, 0x2B9EA93U, -0xA1C073C6U, 0xC4EAFBEU, 0x9CBCA0CEU, 0x87CB523EU, 0x93F53F24U, 0x30F100CBU, 0xC76E5C71U, 0xC5B21FE9U, 0xEEEE5BF8U, 0xBB647D0EU, 0xE0A73F06U, 0xC685C32DU, -0x1C5C9B9BU, 0x2A44CEAU, 0x9534296EU, 0x5A5EC350U, 0xB3780B29U, 0xE8A4B00U, 0xF8327784U, 0x996FC0C8U, 0xD67C8539U, 0x621659DDU, 0x1FD6996U, 0xB398D6D2U, -0xBBEC03D6U, 0x3F8504F6U, 0x9FA1B8CEU, 0x83ADB8A5U, 0x9004789FU, 0x99ED15F4U, 0x6883E2DU, 0x3C75FFACU, 0xD2391F74U, 0x66EE73F1U, 0x8FA89A21U, 0x801A7503U, -0x522E1784U, 0x36392E2EU, 0x19DF8128U, 0x6EA25305U, 0x846C8437U, 0x4EE0BEACU, 0xF690FDC5U, 0xF6832E1EU, 0xA48C9379U, 0x5F8921B0U, 0xFE3D1F9CU, 0x4B6BADFEU, -0x2DDBBD52U, 0xFA227036U, 0xFE4FE03AU, 0xD4BD8877U, 0xC255594EU, 0x8A61FE32U, 0x63B85E32U, 0xC24637DFU, 0x39229F39U, 0xF9B405A4U, 0x3EBF9329U, 0xF28B6E98U, -0x81DAA8C9U, 0x55ACEF34U, 0x296DE97FU, 0x5953C3AU, 0x7268DC76U, 0x49C2BAAAU, 0x1FD82E79U, 0xE54C1803U, 0x9CD98442U, 0x4C57DE89U, 0x7FD97D63U, 0x5B3CB6F5U, -0x67B3B2E4U, 0x3F4D318AU, 0x3EC0ABB7U, 0xEE3200C0U, 0x3FA3D082U, 0x4D0F7C4AU, 0x892D309CU, 0x56B3DD2CU, 0xEB5F7612U, 0x2EE42882U, 0xCF07E495U, 0xF2A9BC6BU, -0x9DA909A4U, 0x937B3A8U, 0x363217CFU, 0x9AED0006U, 0x60362015U, 0x5226B280U, 0x8524AEA3U, 0xFBC8F58DU, 0x7B172312U, 0x9CCC34DU, 0xA8AE6F61U, 0xE3CA111EU, -0x59FE8325U, 0x6EC95B2U, 0xF676DCD9U, 0x9A250AE3U, 0x99E585E7U, 0xA62C89BU, 0xC631DEF4U, 0x58BC30C1U, 0x470412E1U, 0xC05117F0U, 0xA51D983CU, 0x1E629C01U, -0x541C0E33U, 0xEB80059DU, 0x129D07E0U, 0x48EDAAD6U, 0x8397F485U, 0x1857F8F0U, 0x97497FE1U, 0xA8AEC1F6U, 0xC8027F76U, 0x736E96A8U, 0x1A578E1AU, 0x6B9FD701U, -0x8B4734B7U, 0x7102220U, 0x13FE645BU, 0xE25D1A59U, 0x7A7D69ECU, 0x9295838AU, 0x6761FB08U, 0x493105F6U, 0x13BF90E3U, 0x6691E578U, 0xC741FD85U, 0x62E01643U, -0xE782CAB0U, 0x3223B5F4U, 0xB36E1464U, 0x2C04AA45U, 0x9260D4CBU, 0x660DB966U, 0x41F2BCF7U, 0xF17D8432U, 0x17C405A6U, 0x87274585U, 0x537E9E9EU, 0x7B344BCU, -0x1E023531U, 0xDD6783A8U, 0xFA37738DU, 0xD7D7F72CU, 0xEAADB26BU, 0x5B511B45U, 0x240A687DU, 0x44E66B55U, 0xD0808C97U, 0xF31BFF35U, 0x9EE5345CU, 0x258906C2U, -0x9860CC4AU, 0xB9CCB14FU, 0x5580726EU, 0x26B182EU, 0x4F6C5C89U, 0x5D26775DU, 0xF0CA22ADU, 0x2DD7CAC5U, 0xD0EDAF27U, 0x8C09D6DU, 0xDCFB88F2U, 0x71C63BCFU, -0xAEC8C854U, 0xC3ADC8F6U, 0xE93C7B65U, 0xC698C893U, 0x8E574092U, 0x92FF3CB6U, 0xF8648ABAU, 0xB5BC2991U, 0x5E05BD9DU, 0xB09A78A0U, 0x15AB67C0U, 0x3FADF7CEU, -0x2927A3FDU, 0x445BA5DBU, 0xFA3008B2U, 0x2891DB6BU, 0xDBB845FU, 0x573B85ECU, 0x18F54327U, 0x74F4356BU, 0x95971E70U, 0x4470A211U, 0xB905173DU, 0x414D94A9U, -0xE929B3ADU, 0xAE3B8A7AU, 0xFF18EB1U, 0xEE383B0CU, 0x7B04D607U, 0x693E6DA4U, 0xC3FB577EU, 0x7AC48735U, 0x1A99C4ADU, 0x45B0C657U, 0x5CC05A5U, 0xE24AE587U, -0x884FA08EU, 0x5BCE0610U, 0xCCBADA00U, 0xEEBE62E2U, 0x1BED96D4U, 0xFF9731C4U, 0x5644B2A0U, 0x9119ABCAU, 0x28FC1FE4U, 0x983CF251U, 0xF92F5A3BU, 0xDC9DC061U, -0x5B150730U, 0xCB5F1CBDU, 0x5966470CU, 0xE5C92630U, 0x974502D1U, 0x2047F98CU, 0x444D6B88U, 0xFB8235EU, 0x359D6CU, 0xC34153C2U, 0x2A95D777U, 0x5B6E4E6FU, -0xB408F38U, 0x2423E46EU, 0x4C85DCE9U, 0xBBEEC84BU, 0xE9D46305U, 0x30187C97U, 0x181599U, 0xF4F90026U, 0x952F111CU, 0x5B9D9750U, 0x624304BEU, 0xCE566F2EU, -0xF5B066E3U, 0xC84AEDC4U, 0x26984E70U, 0xD637245CU, 0xAEADB1U, 0x7F65D377U, 0xDD7410C6U, 0xE156A6E8U, 0x2BDB808BU, 0x3107D6E5U, 0xA654151FU, 0x5DBD1349U, -0x29676B1CU, 0xD9B9A12BU, 0x559571C7U, 0x17D9B1EFU, 0x8EBB69EAU, 0x6E834FD7U, 0x22AF6658U, 0x50FD3DEBU, 0xA35B6E1U, 0x87B78513U, 0x5CA68B6U, 0xF3B77C65U, -0xDAE7ACC8U, 0xBD84E707U, 0xC0B1F2EEU, 0x7C5B280BU, 0x3C82C2A7U, 0xF1848767U, 0xCF397063U, 0x11293CECU, 0x86B3A406U, 0xCF0391E2U, 0xCAE6F488U, 0xA2130914U, -0x80443800U, 0x75A52C98U, 0x255D3BC5U, 0x70B8141FU, 0x52A6D7E8U, 0xF3773CB5U, 0x16682961U, 0xE291D23CU, 0xEA1AB08DU, 0x3AF6AC29U, 0xF077AF0BU, 0xDB42975FU, -0xE4B5A5C3U, 0x828767D9U, 0xCE511DFDU, 0x8FA20C6DU, 0xD4FEEEB4U, 0x3B75D536U, 0x81090466U, 0xB210CB77U, 0xA0A56499U, 0x601ADD2U, 0xAB167BEAU, 0xF706C300U, -0x1B058070U, 0x9F01D362U, 0x52CFBC44U, 0x96A9AB7BU, 0x966588D6U, 0xB899A286U, 0x5EE0407AU, 0x681CEAFFU, 0x4C40811U, 0xB20B7269U, 0x367237BFU, 0x428A0B94U, -0xD691C645U, 0xB12CFF27U, 0x9E6383BEU, 0x6176461EU, 0xFDB47228U, 0x51A94E60U, 0xFBD6A3E0U, 0xF187D05EU, 0x4DA143CFU, 0x49C7CCE6U, 0xB4B52BF7U, 0x3BA3A346U, -0xA803AAFEU, 0x9FC8C67BU, 0xA639766CU, 0x4C6B2408U, 0xED09AD3DU, 0xDBBD48U, 0xE0E2196DU, 0xE9FFEE62U, 0xB50384FU, 0xDFE188A2U, 0x3633AE21U, 0xAEF9F8C9U, -0x80178502U, 0xED42BC9CU, 0x85653DDDU, 0x394C79C4U, 0x71477B3DU, 0xF8C674CFU, 0xD4B8C4E9U, 0x2A5947F9U, 0xFC4C64D2U, 0x6B322B31U, 0xB9B20DFBU, 0x57BB1739U, -0x3D915162U, 0x5AAAA1ACU, 0x91EB2A66U, 0x35CA03C9U, 0xDE6D0202U, 0xCB2E089FU, 0x57048634U, 0xEEBBC058U, 0x3813A5F6U, 0x722CE848U, 0x8479A8A6U, 0xE92B8076U, -0x1B1F3F83U, 0x81D8932FU, 0xFDDDB092U, 0x30D5B4C9U, 0xC91CF267U, 0x36AD135BU, 0x71F52515U, 0xC089EF35U, 0x41038328U, 0x6456724BU, 0x1B2B3E23U, 0xD24210BBU, -0xC62FBD71U, 0xFCAD3662U, 0x8E3F7FF2U, 0xE48AE1B8U, 0xD23BC8ABU, 0xEF89F436U, 0x62BCE039U, 0x1A5DE46CU, 0x16236FU, 0xCA241E6DU, 0x9EEE203BU, 0x3D3879E4U, -0x1D1C6180U, 0xD378251U, 0xE2BA4A87U, 0x66DFA1A0U, 0x7418FB2CU, 0x6CB7295CU, 0x9F7002F9U, 0x1F7DE611U, 0x5FA0D6B3U, 0xA466F742U, 0x8E097065U, 0x7F7B3458U, -0x25360EB8U, 0xE8ADA4B0U, 0x18B1FE00U, 0x2AC22D1CU, 0x4186B027U, 0x959C76EAU, 0x8872FA1EU, 0x486317D3U, 0xED35E29BU, 0xB17E878U, 0x8F6CC5FCU, 0x2E8831DBU, -0xFA55FF05U, 0x6FEFF36U, 0xBE942D00U, 0x36B6480EU, 0x4C5D91EFU, 0xEB2C7AC2U, 0xEA33683AU, 0xB8A51C5EU, 0x8BF2227BU, 0xF37E24F6U, 0x864012FU, 0x5DE7786U, -0x3EFEC660U, 0xE2761ACU, 0x54A6C4ABU, 0x4047D505U, 0x37FBD45CU, 0x65D5D78BU, 0xBE3CF030U, 0x4A150EFBU, 0x2F283083U, 0xCB47C04DU, 0x973EDABU, 0xD6BC301FU, -0xD792EACU, 0xEEA55E7U, 0xAB40BD74U, 0x2CAC2CA8U, 0x9B8691CAU, 0xF0EF8D89U, 0xA743045FU, 0xB76BFEDU, 0x76DD731AU, 0x3752687U, 0x968C7740U, 0x770D8687U, -0xF6DE8D96U, 0x91B3A983U, 0x7228545U, 0xA8134914U, 0xFD9A01E6U, 0x72386ADDU, 0x845A80A6U, 0x10675D75U, 0x31032835U, 0xB6510D2AU, 0x67E9C2D9U, 0x8C073B5FU, -0x348F2BA5U, 0xE4DF38ECU, 0x535EDE00U, 0xE31FD2EFU, 0xAA5BD7DCU, 0x9D963F06U, 0x8D26D2E9U, 0x5D76C1A0U, 0x95131597U, 0x25521978U, 0xA549BA78U, 0xFC809EA1U, -0x9CC1A4E2U, 0x58043720U, 0xE3BD3B7BU, 0xED684815U, 0x8A1B48E8U, 0x9C5BFCA1U, 0x1C5A009AU, 0x7485B1C1U, 0xCA86F28AU, 0x32FA853AU, 0xB3626483U, 0x972DA82DU, -0xE492749AU, 0x35CA2D1DU, 0xC1E25D40U, 0xFAA559E2U, 0x27472E18U, 0xEA8FB72AU, 0x5D846824U, 0x77540CDAU, 0x45717960U, 0x57C4D68EU, 0xEF78B1EBU, 0x72AF8952U, -0xCA13EE37U, 0xD8A641D9U, 0x601A26BCU, 0x387936EAU, 0x80C5518FU, 0x47E9CBACU, 0xFF55ACC9U, 0xEDE00327U, 0x835DF178U, 0xDD2F69BU, 0xC178F605U, 0xCBBDFF1CU, -0x717FF82U, 0x8998F861U, 0x4532F8FFU, 0x9C12EA53U, 0x50B8EACDU, 0x2E8AEB86U, 0xE220EB18U, 0x6CAFECFBU, 0x6D9D258CU, 0xBC42E87CU, 0x61A4E33U, 0xCFB8C4FU, -0x81664E1AU, 0x13BBA529U, 0x5BFB8755U, 0x5B9E60F1U, 0x89633A85U, 0x3E0560D0U, 0x39A51A29U, 0x8EC3407CU, 0xE6DEDAE1U, 0x51B880B4U, 0xC3614311U, 0x74071944U, -0xEEA49D28U, 0x59C2C77DU, 0x236AF20EU, 0x940CA85BU, 0xF46B750FU, 0x430D2F5AU, 0xD1002AD3U, 0x66667086U, 0x44AD55A3U, 0xF3CB0FF6U, 0x31DF5DE0U, 0x86B907B5U, -0x5618FA4DU, 0xE17EA018U, 0x5E62BD84U, 0xE904E7D1U, 0x61C60A7FU, 0xD6A0502AU, 0x796DEC4CU, 0xCE0BB619U, 0xCBCFC2F4U, 0x7CA998A1U, 0x7373A591U, 0xC415FFC4U, -0x93ACD2A2U, 0x24CA88F7U, 0x6830EF86U, 0xDF56B5D3U, 0xEF283F18U, 0x584E654DU, 0xA5FE80A0U, 0x1298DAF5U, 0x8095DF7CU, 0x37F38529U, 0x78D0FE2U, 0xB0EB55B7U, -0x1D42E7C5U, 0xAA24BD90U, 0x1538A00CU, 0xA25EFA59U, 0x4521F793U, 0xF247ADC6U, 0xD8F6CF2AU, 0x6F90957FU, 0xF5E7D73FU, 0x42818D6AU, 0x72FF07A1U, 0xC5995DF4U, -0x92207092U, 0x25462AC7U, 0xE75278D1U, 0x50342284U, 0xD08C88E3U, 0x67EAD2B6U, 0x1838F762U, 0xAF5EAD37U, 0x6112CC53U, 0xD6749606U, 0x2F0C6FC3U, 0x986A3596U, -0xCA4360C4U, 0x7D253A91U, 0xB74B2F4EU, 0x2D751BU, 0xFF7482BU, 0xB891127EU, 0x5794587DU, 0xE0F20228U, 0xC8276ED0U, 0x7F413485U, 0x13AA1C8FU, 0xA4CC46DAU, -0x597CA337U, 0xEE1AF962U, 0x52EE48DAU, 0xE588128FU, 0x94B2CC11U, 0x23D49644U, 0xC239270DU, 0x755F7D58U, 0x20825E2AU, 0x97E4047FU, 0xC4AB9B8EU, 0x73CDC1DBU, -0x70716126U, 0xC7173B73U, 0xAC65B06DU, 0x1C7021BFU, 0x11FB361U, 0xB679E934U, 0x746DBB22U, 0xC30BE177U, 0xF3756BBCU, 0x441331E9U, 0xB9A3D404U, 0xEC58E51U, -0xFFF99EE2U, 0x489FC4B7U, 0x7C17FCEBU, 0xCB71A6BEU, 0x4106B2AAU, 0xD9C40950U, 0x36C14353U, 0x81A71906U, 0x1BD05B46U, 0xACB60113U, 0x9CC88BD8U, 0x2BAED18DU, -0x7117AB85U, 0xC671F1D0U, 0x860763FFU, 0x316139AAU, 0x2C0EAB74U, 0x9B68F121U, 0xCCD1DC47U, 0x7BB78612U, 0xDE6473A9U, 0x690229FCU, 0x2BC473EBU, 0x9CA229BEU, -0x9378148EU, 0x241E4EDBU, 0xEAF2C37U, 0xB9C97662U, 0xA4A6E4BCU, 0x13C0BEE9U, 0x252C88A1U, 0x924AD2F4U, 0xAA4E1FF6U, 0x1D2845A3U, 0x9764CE8AU, 0x200294DFU, -0x92F4B6BEU, 0x2592ECEBU, 0xCD89B85BU, 0x7AEFE20EU, 0x47D77DU, 0xB7218D28U, 0xE8E2E787U, 0x5F84BDD2U, 0x505E80E2U, 0xE738DAB7U, 0x660CD2E0U, 0xD16A88B5U, -0xE96E45B7U, 0x5E081FE2U, 0xDEB0B585U, 0x69D6EFD0U, 0xCC051A6BU, 0x7B63403EU, 0xFEA1FAFEU, 0x49C7A0ABU, 0x4B1DCAF5U, 0xFC7B90A0U, 0xB1D993CDU, 0x6BFC998U, -0x5F3AD998U, 0xE85C83CDU, 0x41E9EBBBU, 0xF68FB1EEU, 0xDA78A9ADU, 0x6D1EF3F8U, 0xC2EDE121U, 0x758BBB74U, 0x883B5E99U, 0x3F5D04CCU, 0x4D8F7676U, 0xFAE92C23U, -0xCB1B04D8U, 0x7C7D5E8DU, 0xBFE5AEABU, 0x883F4FEU, 0x759C9CEU, 0xB03F939BU, 0x80411950U, 0x37274305U, 0x308739FCU, 0x87E163A9U, 0xF5331113U, 0x42554B46U, -0x2A48D1DBU, 0x9D2E8B8EU, 0x1D9621E9U, 0xAAF07BBCU, 0xA52A468CU, 0x124C1CD9U, 0xE786BEFDU, 0x50E0E4A8U, 0x9A8EF177U, 0x2DE8AB22U, 0xB79FE962U, 0xF9B337U, -0x57409E51U, 0xE026C404U, 0x547CF459U, 0xE31AAE0CU, 0x6BD843A2U, 0xDCBE19F7U, 0x5C06B390U, 0xEB60E9C5U, 0xECC0933CU, 0x5BA6C969U, 0x2F71F45U, 0xB5914510U, -0xA0849007U, 0x17E2CA52U, 0x5D8F4DD1U, 0x785F2A36U, 0xBA4B7820U, 0xD2D2275U, 0xA8FED7CEU, 0x1F988D9BU, 0x77851706U, 0xC0E34D53U, 0xB2313FE9U, 0x55765BCU, -0xA8D588CU, 0xBDEB02D9U, 0x9F2027FCU, 0x28467DA9U, 0x34A54D47U, 0x83C31712U, 0x96D6C205U, 0x21B09850U, 0x335DBD17U, 0xF11165A8U, 0x46773FFDU, 0x9EAC85CCU, -0x29CADF99U, 0x3237F1C4U, 0x8551AB91U, 0x3A4DB60DU, 0x8D2BEC58U, 0x709B09B5U, 0xC7FD53E0U, 0x5FD0B10BU, 0xE8B6EB5EU, 0xC05D2919U, 0x773B734CU, 0x90447E86U, -0x272224D3U, 0xA82A11E2U, 0x1F4C4BB7U, 0x65E47EC4U, 0xD2822491U, 0xBA9FBE0CU, 0xDF9E459U, 0x523A8EF6U, 0xE55CD4A3U, 0xEA86E993U, 0x5DE0B3C6U, 0x3D876E92U, -0x8AE134C7U, 0x6D9E390DU, 0xDAF86358U, 0xCFEDB64FU, 0x788BEC1AU, 0x7751D12AU, 0xC0378B7FU, 0x83A9B574U, 0x34CFEF21U, 0xCCB2223U, 0xBBAD7876U, 0x461D9D9BU, -0xF17BC7CEU, 0x1604CA04U, 0xA1629051U, 0xF6DBBD37U, 0x41BDE762U, 0xAEB8AD61U, 0x19DEF734U, 0x911C1A9AU, 0x267A40CFU, 0x4B165EAU, 0xB3D73FBFU, 0x1E7E8DCDU, -0xA918D798U, 0x336F95D8U, 0x8409CF8DU, 0x21DA3A36U, 0x96BC6063U, 0xBC0D028FU, 0xB6B58DAU, 0x9CF62567U, 0x2B907F32U, 0x4E67DA52U, 0xF9018007U, 0x43678D3CU, -0xF401D769U, 0x54A83275U, 0xE3CE6820U, 0xC97F0ACCU, 0x7E195099U, 0x3B15D211U, 0x8C738844U, 0xEC145510U, 0x5B720F45U, 0x99665D53U, 0x2E000706U, 0x6376C247U, -0xD4109812U, 0xE46E12D9U, 0x5308488CU, 0x29A07DFFU, 0x9EC627AAU, 0xE5E2B0E9U, 0x5284EABCU, 0xA74E4898U, 0x102812CDU, 0xD478013U, 0xBA21DA46U, 0x17886834U, -0xA0EE3261U, 0x4FEB7862U, 0xF88D2237U, 0x62FA6077U, 0xD59C3A22U, 0x20569806U, 0x9730C253U, 0x6A8027BEU, 0xDDE67DEBU, 0x318A297CU, 0x77EFB560U, 0x3A997021U, -0x8DFF2A74U, 0x78358850U, 0xCF53D205U, 0x5D8A11A0U, 0xEAEC4BF5U, 0x8BD3F2BDU, 0x3CB5A8E8U, 0x8DAB26ADU, 0x3ACD7CF8U, 0x53DC7DAU, 0xB25B9D8FU, 0x5FEE1FB4U, -0xE88845E1U, 0x6468DCF4U, 0xD30E86A1U, 0xB3833366U, 0x4E56933U, 0xA94CDB41U, 0x1E2A8114U, 0x262E4C16U, 0x91481643U, 0xDC3ED302U, 0x6B588957U, 0xF9558CDEU, -0x4E33D68BU, 0x4993AC72U, 0xFEF5F627U, 0x535C4455U, 0xE43A1E00U, 0xA1369C88U, 0x1650C6DDU, 0x845DC354U, 0x333B9901U, 0x2E540BDFU, 0x9932518AU, 0xBBF974AFU, -0xC9F2EFAU, 0x9E922B73U, 0x29F47126U, 0x176200A7U, 0xA0045AF2U, 0x1E94E55EU, 0xA9F2BF0BU, 0x7129053AU, 0xC64F5F6FU, 0x4E8DB2C1U, 0xF9EBE894U, 0xE4847A4AU, -0x53E2201FU, 0x3B2B7CAEU, 0x8C4D26FBU, 0x107C1E14U, 0xA71A4441U, 0x3D6D0601U, 0x8A0B5C54U, 0xD1F96FEAU, 0x701F8A2FU, 0xEDCCFBF9U, 0x2C9B1FAU, 0xB5AFEBAFU, -0x6BE6ED1DU, 0xDC80B748U, 0xF0A36927U, 0x47C53372U, 0xA8C07971U, 0x1FA62324U, 0x7FC1FE70U, 0xC8A7A425U, 0x77BBB9B9U, 0xC0DDE3ECU, 0x351741C8U, 0x82711B9DU, -0x9F1E8943U, 0x2878D316U, 0x38FD7E35U, 0x8F9B2460U, 0x481F0E42U, 0xFF795417U, 0xBA75D69FU, 0xD138CCAU, 0x7DA5F064U, 0xCAC3AA31U, 0xF783D92BU, 0x40E5837EU, -0xA0BA3EB8U, 0x17DC64EDU, 0x7535DF3EU, 0xC253856BU, 0x8F25402AU, 0x38431A7FU, 0xC797F186U, 0x70F1ABD3U, 0x604AA84FU, 0xD72CF21AU, 0x47AF9114U, 0xF0C9CB41U, -0x27A2EE26U, 0x90C4B473U, 0xBEBDCAB7U, 0x9DB90E2U, 0xED4C310CU, 0x5A2A6B59U, 0x223D969U, 0xB545833CU, 0x96E86CBAU, 0x218E36EFU, 0xA06EF894U, 0x1708A2C1U, -0x6D74519EU, 0xDA120BCBU, 0x180659DDU, 0xAF600388U, 0xDDB27132U, 0x6AD42B67U, 0xD5C836FBU, 0x62AE6CAEU, 0x2474ECBDU, 0x9312B6E8U, 0xCF07DEDCU, 0x78618489U, -0x32DD9957U, 0x85BBC302U, 0x90AE1615U, 0x27C84C40U, 0xC0B7418AU, 0x77D11BDFU, 0x3AA7DE9EU, 0x8DC184CBU, 0xB5C549C9U, 0x2A3139CU, 0x62C4CEC8U, 0xD5A2949DU, -0x28127170U, 0x9F742B25U, 0xA770E627U, 0x1016BC72U, 0x206836B9U, 0x970E6CECU, 0x1FCC8142U, 0xA8AADB17U, 0x5036965U, 0xB2653330U, 0x52862C08U, 0xBA1F74F9U, -0xEDA6599FU, 0x5AC003CAU, 0x47526A2CU, 0x3D07A467U, 0xCFD318F0U, 0x78B542A5U, 0xA9981D6DU, 0x1EFE4738U, 0x8CF342B1U, 0x3B9518E4U, 0x9BD6956BU, 0x2CB0CF3EU, -0xD0584ECFU, 0x673E149AU, 0x76E3DDA5U, 0xC18587F0U, 0xC625FD09U, 0x7143A75CU, 0x195E3DC1U, 0xAE386794U, 0xBEB922FU, 0xBC8DC87AU, 0xD51CF0D7U, 0x627AAA82U, -0xA67301FU, 0xBD016A4AU, 0x8505A748U, 0x3263FD1DU, 0x52042049U, 0xE5627A1CU, 0x5CECDB03U, 0xEB8A8156U, 0xF22D0FA0U, 0x454B55F5U, 0x7453159DU, 0xC3354FC8U, -0x37734FDCU, 0x80151589U, 0x8D7F827U, 0xBFB1A272U }; + 0xAE1DAB16U, 0x8F27A2AU, 0x465496D5U, 0x892E9135U, 0xD621DD31U, 0x40D5B583U, 0x23598B8CU, 0x174C4A14U, 0x9739B1DAU, 0xF448853DU, 0xF3DF7DF2U, 0x15D5108FU, + 0xE8A0D4E8U, 0x8FBCAF62U, 0x95F9E2A9U, 0x47CEA738U, 0x839E1EBCU, 0xA58AFD2AU, 0xAAA850BDU, 0xBBEE1755U, 0x4F9A8CDDU, 0x77C2915FU, 0x42B9AA72U, 0xABB65511U, + 0x984E9DE9U, 0xDEA4DF8BU, 0x11744AD7U, 0x229620B8U, 0x19FC0474U, 0x498A1E2EU, 0xEB73F061U, 0xCF4EB7B4U, 0x5E990F1U, 0xB6610B6U, 0xA23C27B2U, 0x9F57820DU, + 0xCAEFB5CCU, 0x868C5775U, 0x36F0B13EU, 0xC2104FC3U, 0x635ED438U, 0xFE76A6BFU, 0xAF98DEFEU, 0xC4A1CE0BU, 0x24A144DU, 0xA07F4113U, 0xA1B56E69U, 0x7AC6D4C1U, + 0xA6737D27U, 0xB74B407AU, 0xF3A0B08AU, 0x3841C7E7U, 0x7BD9C74BU, 0x57960B20U, 0xC9542F16U, 0x488EB822U, 0xA1CE4738U, 0x65284ADEU, 0x3CAC3D83U, 0xBBB37EE8U, + 0xBB721077U, 0x754CB19FU, 0xDD058F8EU, 0x33167FFDU, 0xC7DA2CAAU, 0x50A359D4U, 0x9E85659AU, 0x448DCA70U, 0x645EA110U, 0xA6832DF5U, 0x7F7A32B5U, 0xA3016C3FU, + 0x47DE3B8DU, 0x347522B4U, 0x349608E1U, 0x8A111CA0U, 0x16625752U, 0x3DD97630U, 0x283C812CU, 0x62FCCC72U, 0x2A8707F7U, 0x4CAAF872U, 0x2FB36C45U, 0xD5827C60U, + 0xE79C25ACU, 0xC53F5EC8U, 0x7DE5251FU, 0x3CA5EFD1U, 0xBEEDA352U, 0x10FF4E8EU, 0x5A37598EU, 0x7CC72338U, 0x92500B16U, 0xD5E5CEF4U, 0xF9ABE6FBU, 0xEF0313FDU, + 0x5D682C8AU, 0xD1D48498U, 0x4DA7CF6AU, 0x3DDDF327U, 0xC9016AA9U, 0x26FBBFD8U, 0xF0D58D6U, 0x2B17F5C6U, 0xA903A376U, 0xCA823961U, 0x829E9619U, 0xF3DA224AU, + 0xDDF16CC9U, 0x8F456FB4U, 0xCC6B224AU, 0x75B42ABFU, 0xCD7DECEFU, 0x73290221U, 0xDF8E5CD8U, 0x1D568D7CU, 0x7F2FCD63U, 0x539DB28DU, 0xB9BB5841U, 0x88EB5D8DU, + 0x30B6C9CCU, 0xEA5F5485U, 0xF282B417U, 0x46508060U, 0x8C9D5E3EU, 0xBC04162BU, 0xFA329E5DU, 0xC885E4CCU, 0xDCBF9DCAU, 0x4715B337U, 0x2FDC1366U, 0x3E3BBA50U, + 0xC99E60F3U, 0x9F2BF2CU, 0x73F18BAU, 0xB561B097U, 0x9000A7E8U, 0xEE613496U, 0xCAD661B5U, 0xADEFBC1EU, 0x717A2494U, 0x10ED817CU, 0xD5497538U, 0xC264618U, + 0xA723C789U, 0x365CA2E0U, 0xC4AE628U, 0xDAD44170U, 0x69B2A699U, 0xFA94A82BU, 0x9500E45FU, 0x641EDBEU, 0xBBC0F4D2U, 0xE21AA1F5U, 0x7FDEA451U, 0xF6B2D68U, + 0x5F8E4A17U, 0x9682906DU, 0x41B84148U, 0x6659DDC9U, 0xBA4A5BADU, 0x14B31920U, 0x1360E730U, 0x590C5708U, 0xF019A4AAU, 0x5089CA96U, 0xF0B0E775U, 0xFDD90E49U, + 0x1BF1824BU, 0xE13025FCU, 0xEF137B9DU, 0x7935115AU, 0x718BD26AU, 0xF09E5811U, 0x7BA332A6U, 0xA7615393U, 0x73FAF11U, 0x55936B7CU, 0x6DC1E6EFU, 0x73A15F22U, + 0xB2FDF279U, 0xD6B59BAEU, 0x27ABA3E6U, 0x2367BEC9U, 0xE7C938F9U, 0x560FEC09U, 0x12C5119U, 0x5001267U, 0x5365E024U, 0x85080CCDU, 0xA3B79EC5U, 0x960F8445U, + 0xF895CC46U, 0x3A3AF35CU, 0x6BE7869BU, 0x14D9D708U, 0xC4A951A1U, 0xAE72E7B2U, 0x99D3DAE2U, 0xEA4D4D5BU, 0x4282D2C1U, 0x33ECB6EBU, 0x4415ADC3U, 0xC78A4A6EU, + 0xD72386B8U, 0xF3E3048EU, 0x1B8D6392U, 0x2C2C5EC2U, 0xA58D62B2U, 0x147A0701U, 0xE63DAAF0U, 0x8DDD9273U, 0xF5A4B231U, 0x9FF25F7FU, 0xDDEA0DB3U, 0x194D812DU, + 0x5CEB285U, 0x7DB792C7U, 0x750B1EB5U, 0x57AE509CU, 0xC8F777C2U, 0xBCD1360BU, 0x632D2CA8U, 0xBC462336U, 0x602E733DU, 0x2194100DU, 0x2FB69E71U, 0x58D9C98U, + 0xD3907616U, 0x40B025B8U, 0x8638D05AU, 0xE4433DD5U, 0xB399E080U, 0xEB05158DU, 0x21E41D29U, 0xA97B497EU, 0x7DF9E406U, 0x2B2DDA74U, 0xBA0D8072U, 0x23F15693U, + 0x69AB4478U, 0xE134102FU, 0x8522D229U, 0x1CDE04C8U, 0x1021B3B1U, 0x685893F3U, 0x548FAB48U, 0x3926C75EU, 0xCD7FFCC1U, 0x95E309CCU, 0x70DCC40DU, 0x5809E8BDU, + 0xC3D9F1CBU, 0x15C41B45U, 0x461F4802U, 0xCE801C55U, 0x39156F0DU, 0x3AE08EU, 0x8D001528U, 0x51684523U, 0x85F53FF7U, 0x53E8D579U, 0x81AED8F1U, 0x5DC688FAU, + 0x752D5FFCU, 0xA15A7026U, 0xA3F2B218U, 0x84AC213BU, 0x88B16330U, 0x43104043U, 0x364A68E3U, 0x7A3633D9U, 0x8133D145U, 0x2CE20DABU, 0x551CC37BU, 0x40826DDFU, + 0x72073AE0U, 0xCD0A52A0U, 0x7BF57C24U, 0x54F68441U, 0x311B04E2U, 0x3BF381E1U, 0xB98450B5U, 0x9365254FU, 0x959808U, 0x4F0D7544U, 0x70311041U, 0x51FFC7D2U, + 0xE66C3289U, 0x7830DA3CU, 0xEBC0677BU, 0xA4588A37U, 0x2CD52C5U, 0x8C136450U, 0x1A32A58U, 0xBDC4CE8BU, 0xBE1AD3FCU, 0x368587ABU, 0x24762692U, 0xDB6866FU, + 0xDBFE03C1U, 0x32805E0BU, 0xBDB344CU, 0xB6576FD7U, 0xCE602BD5U, 0xD9A1C5D8U, 0x1E451C58U, 0xA3C947C3U, 0x8A5E6F27U, 0xA76375AEU, 0x5A7B58AAU, 0xE7F70331U, + 0x9E18A785U, 0x5E2B2BB3U, 0x4E3D9008U, 0xF3B1CB93U, 0xFE1D8CFCU, 0xC732037FU, 0xE5F2028FU, 0x922F93ECU, 0x3B1CD1U, 0x489442A4U, 0xE3308006U, 0x9E89A82AU, + 0x88E25FD7U, 0xBA9183F8U, 0xC98F90D9U, 0x111E8936U, 0xAB056753U, 0x3E5DD491U, 0x83D04BE3U, 0x7419BEF7U, 0xDEC343D9U, 0xDF53B75BU, 0x8D38CBC1U, 0x9E65B31DU, + 0x49E9647BU, 0x487990F9U, 0x8586DA3AU, 0x6AEC2F1DU, 0x3ADBB0DDU, 0x12950F5FU, 0x65E071DDU, 0x141AF304U, 0xE27A2FD3U, 0xCF0F75B3U, 0x506B7DCCU, 0x7729EE20U, + 0x83A892CEU, 0x1724B686U, 0x1D5443E6U, 0x8D4BA4A5U, 0xF994FF2AU, 0x606829CBU, 0x4F6BD1AEU, 0xB8F93024U, 0xF6C1C490U, 0x6F3D1271U, 0xE8119B5BU, 0xB7AC0B9EU, + 0xA93D2434U, 0x9CBC7723U, 0x5384167CU, 0x6CC02C32U, 0xE3AEFA3BU, 0x96ACCCB8U, 0x93EDFEB5U, 0xB455ABEU, 0xE0468B3U, 0xD2638E77U, 0x85F33C85U, 0x53C0FE60U, + 0x40A0CF69U, 0xCE296866U, 0xDD49596FU, 0x89ED9A7CU, 0xB2168218U, 0x2A16FE9FU, 0xC6158813U, 0x96D819A0U, 0xF1CB7821U, 0xF0B3234EU, 0xC76DD37CU, 0xF6999932U, + 0xA6540881U, 0xC1476900U, 0xBF852F50U, 0x885BDF62U, 0x2B6EA5F0U, 0x7BA33443U, 0x1CB055C2U, 0x406B945CU, 0x21FBAB96U, 0x25A9EEF7U, 0x29D0280DU, 0xDCD83354U, + 0x95D847CAU, 0x193AD0D7U, 0x65149603U, 0x875F1D51U, 0xF2D6AE5EU, 0xB48C2023U, 0x9E89C614U, 0x71040E80U, 0x2F6DB3B1U, 0x4FBD2D4DU, 0x382CE581U, 0x8682E54AU, + 0xC6CE3C16U, 0xD0CDB310U, 0xC097D2DCU, 0x61442A6DU, 0x803FC77EU, 0xBFABF3D6U, 0xBB1662DBU, 0x639138F2U, 0xA01171D6U, 0xB70E7066U, 0x4F4D5F1AU, 0x2AB83F69U, + 0x1BED886U, 0x125067C1U, 0xF2BDF6E8U, 0xE496DD92U, 0x97589D6U, 0x1D17DA74U, 0xD6E2180AU, 0x96AAE39BU, 0x9E79ED3CU, 0xA1E56DA4U, 0xFE814EF2U, 0x55E387B6U, + 0x38A8B47FU, 0xB200788AU, 0xC063E892U, 0x7E1CEC20U, 0x62C476EDU, 0xF83527BEU, 0xCB64655U, 0xF85F383EU, 0xEFE50809U, 0xA32D4B9DU, 0x14325108U, 0xC46CF3FCU, + 0x8646A4A2U, 0x24231E6EU, 0xE8DC260CU, 0x9CA8A446U, 0x4A5517EBU, 0xCDBD569CU, 0xB4C0F066U, 0xF1C615D9U, 0x14C9784FU, 0xC35ACFA4U, 0xA1F99F39U, 0xDB5D327U, + 0x16208387U, 0x487A6530U, 0x8B83FB15U, 0x47AA297BU, 0xA6838556U, 0xFE99F07BU, 0xAAC72C75U, 0xD7EE632BU, 0xCC9E80CU, 0xDC478D7BU, 0x7E2514C1U, 0xEC7A9229U, + 0x7EFF1AE2U, 0xDA58F332U, 0x7FFD9AE0U, 0xD62250F0U, 0x36FF2FD3U, 0x5343E85AU, 0x7DE1A231U, 0x73105D3AU, 0x8694822BU, 0x9EA10A8CU, 0x454632DU, 0xBDBA49B8U, + 0x2AFBA286U, 0x638306DBU, 0xD0EE5B94U, 0xFA67DEA8U, 0x54739A2DU, 0xED50973AU, 0xB8A32501U, 0x96A4B4A6U, 0x26400C9AU, 0x11CDDFF8U, 0x532A2EC9U, 0xC01BA957U, + 0x38F60BF1U, 0x709E7D5BU, 0xD63F1DE9U, 0xAA9B52FCU, 0xE5D7E3BU, 0x3D792D12U, 0xF7AF95C2U, 0x23FE045AU, 0xA348A4DCU, 0x3EE734ECU, 0xA157B457U, 0x19AD5091U, + 0x2A0F1115U, 0x8E3D8B1FU, 0xF7640767U, 0x77418D32U, 0x3AF7B59U, 0xDF7CC644U, 0x4F107817U, 0xD65CF7B3U, 0x5D63C132U, 0xB71ABEBBU, 0xBD678059U, 0x796A3A58U, + 0x3E76DFA6U, 0x7B931373U, 0x4C62A6D8U, 0x57F03940U, 0xB2A038EEU, 0x5FDF9A23U, 0xA0263983U, 0x7E882A01U, 0x9DFC1084U, 0x7072D927U, 0xD8FDE69FU, 0x96F9AB93U, + 0xE0E7157BU, 0x58F4B5B9U, 0x57E98EE9U, 0x2B7F17D5U, 0xBF5D536FU, 0x19B4B8DDU, 0x670EE546U, 0x759F5B56U, 0x521D3385U, 0x54FF4F92U, 0x2D9CBF6AU, 0xD0F0ACFBU, + 0x41F4137CU, 0x3ECD73DCU, 0xD98F534U, 0xAFC9093DU, 0x11EB63E2U, 0x69341E0FU, 0x45C58EDBU, 0x8ADA0754U, 0xDFF71D29U, 0xBACC8D3CU, 0x795F863CU, 0xDA5B599FU, + 0x756A6CFCU, 0x492FD69AU, 0x2AC4EC3FU, 0xE8B85ECU, 0x6E924FB3U, 0x29F01476U, 0x16F0C1B5U, 0xFBB8B0D5U, 0x6F47CA15U, 0xE7DF0A66U, 0x752BEE8CU, 0xC46345A2U, + 0xA8C65A6U, 0x1A0CBBA0U, 0xC6B953FBU, 0xF469483CU, 0xE8DBA058U, 0x55E1E9EDU, 0x220DF006U, 0x93AA672CU, 0xF77C2327U, 0x4D7BA0B7U, 0xC9C38BCEU, 0xA4B0DB5U, + 0x9798D36AU, 0x210C73B2U, 0x2D884E0BU, 0x2CF555C5U, 0x559C4DCU, 0x4C553278U, 0x2594AF17U, 0xF92DA22FU, 0x46D9B7D7U, 0x3BAA86EEU, 0x8D972880U, 0x2FEF17FCU, + 0xF479A777U, 0x13EC6D08U, 0x507AFB0FU, 0x3DBD6B73U, 0xD3DAA910U, 0xFF842DA6U, 0x56D07CCDU, 0x76F544DDU, 0xAB51C2E8U, 0xFE925847U, 0x1266FB35U, 0x9951A06U, + 0xD3FF1DF6U, 0x51D302CEU, 0x66FB4072U, 0x3338DADDU, 0xE3411213U, 0x67610EA3U, 0x8FD669ECU, 0xA28A9DA9U, 0x170B62DFU, 0x520CEC4CU, 0x4A7596BEU, 0x732E55FDU, + 0x1BD7ADCCU, 0x6DBF878BU, 0xF0257FF7U, 0x36069DA1U, 0x17D3C5EEU, 0xCCBE59DCU, 0xF17154B8U, 0xFED05FF9U, 0x70F66BAAU, 0x668A255FU, 0x5E1E3F24U, 0xC6AA9101U, + 0xA9DF1308U, 0x1CE8989FU, 0xF2C4756CU, 0x606CB509U, 0xECE1CA0CU, 0x2394B2A6U, 0x16C80794U, 0xAE1222A3U, 0x8CB97B86U, 0x2A219240U, 0xB20CD4A6U, 0x4CACE737U, + 0xB911D42CU, 0xE6AE7EDU, 0x8EC4A97AU, 0x6C05079AU, 0x2A97030AU, 0x66821408U, 0x54C18CD7U, 0x66B85367U, 0x5C604485U, 0xACBF9192U, 0x3A9FAE2U, 0x3CD0C352U, + 0x92F9FA79U, 0xC17824C7U, 0x538FB0D3U, 0xB803EAFU, 0x3AD85536U, 0x41D70FEBU, 0x8F21EB7FU, 0xD768A2BEU, 0xDDABF113U, 0xD17178C2U, 0x56378FD7U, 0x90F8A446U, + 0xF445416FU, 0xBED2C72U, 0x93D47BEAU, 0xAEA4D915U, 0xF5601C83U, 0x317F54CBU, 0x10AA0C84U, 0xD907DC46U, 0xE342A78AU, 0xF2047AF4U, 0xBD65E28U, 0xB389E207U, + 0x3BD7614EU, 0x7CF71C84U, 0x4E118784U, 0x48C31E39U, 0x4112EFC5U, 0x948FC967U, 0xB0B24B2CU, 0x1FE25283U, 0x629F7C2DU, 0xC08B5199U, 0x2F114A8EU, 0x57EF2916U, + 0x2B576B96U, 0xCE051BEAU, 0xEC16C919U, 0xBFF3A0CBU, 0x36A16CCDU, 0xE838218DU, 0xEE352A21U, 0xE38E5B7FU, 0x3A8BB7DFU, 0x1F0ECE93U, 0x5385D9B7U, 0xAC29F8F4U, + 0x575DB2ADU, 0xACBF183FU, 0x567EEE14U, 0xE8AD89DBU, 0x1E97978CU, 0xA9209129U, 0x859AA93BU, 0xC97EF510U, 0xE3E9CEBBU, 0xD8CE4D00U, 0xBA789F5AU, 0xF87F77BBU, + 0x4A4B351BU, 0xB62AC6D9U, 0xCF96A065U, 0x74744A1FU, 0xD93F0955U, 0x4F6722B3U, 0xFDCD24EEU, 0xE6A9F921U, 0x166CC0D6U, 0xB92186A0U, 0x29211071U, 0xD978BCDDU, + 0xB14992FCU, 0x19854E77U, 0x3FE60A5U, 0x58FC1E58U, 0x10475664U, 0xDAFCA3E6U, 0x5BFB6CDBU, 0x19ABDD0BU, 0xD22AD479U, 0xFDCAE1D1U, 0x82D2915DU, 0xE3DFF22AU, + 0x130FDF55U, 0xD3B59A0FU, 0xD5F60290U, 0x6CCD0385U, 0x58438A99U, 0xDE26F199U, 0x3E40DEB9U, 0x706B5E46U, 0xD0A47AE4U, 0x3AA9B57AU, 0x8504AFF7U, 0x5E28BCA3U, + 0x3B8DBFD5U, 0x28CAFF29U, 0xFBE90C93U, 0xEAD04C12U, 0xCB24B726U, 0xF6C65A18U, 0x2A34D380U, 0x62E270A6U, 0x6E546C36U, 0x31006A54U, 0x20B4D99EU, 0xD625B3A1U, + 0x29503BFAU, 0x5F4FF005U, 0xBF30759DU, 0xA18BD87CU, 0xA2D5259U, 0x34D4508EU, 0xCDF525B8U, 0xD28710F0U, 0xB2863FDDU, 0x9F9E5922U, 0x70B1EF12U, 0xA6AC059CU, + 0xBBEBD881U, 0x472BCFE6U, 0xE62890CU, 0xA80B1464U, 0xC5A27872U, 0x3BEA65ABU, 0xA8392847U, 0x279F356AU, 0x7F03C067U, 0x7D764E6CU, 0xA208B04BU, 0x110FA646U, + 0xE1642FD1U, 0x12D001U, 0x16F6CE5BU, 0xFC591AA1U, 0x4B671A82U, 0x8737FAAAU, 0x552AF746U, 0x21D61F84U, 0xB82AC965U, 0x3B3F074FU, 0x60BBD08AU, 0x9AD6EC38U, + 0x3A123F0CU, 0x79EC7FD1U, 0xF5966D91U, 0x426CB588U, 0xDB906369U, 0x9B6900FEU, 0x3017A86U, 0xEEDF7292U, 0xC60A5E22U, 0x19DDB430U, 0x7B87C150U, 0x49FFE8C2U, + 0x875E3C9U, 0xEFB8D540U, 0xBB551FEU, 0x485E57B1U, 0x7171D832U, 0xAA37823U, 0xB678C79CU, 0x8D8B6024U, 0x18D3D3E6U, 0xA55E4C94U, 0x92D028AU, 0xF00C77BCU, + 0x7049BC1CU, 0xA2670B26U, 0x6CB5177AU, 0xE42A432DU, 0xA711D2F5U, 0xDF1942E9U, 0x8927E59AU, 0x3A72453FU, 0x464E138BU, 0xC1B90DE8U, 0x9EAD10B7U, 0x1E4CB9E4U, + 0x2CF77C5BU, 0x8BEAF43BU, 0xEA39A146U, 0x14F38D7U, 0x7116D68AU, 0xBB545FEBU, 0x81B4AA98U, 0xD01859CAU, 0xDF71061U, 0x479A64C4U, 0x71B1C5DBU, 0x5964E96BU, + 0xF1560394U, 0xF28823A4U, 0xE4E97619U, 0x1295A088U, 0x7049FDAU, 0xE592D573U, 0x3535BE69U, 0x1619B844U, 0xD727F3DEU, 0x13232E2BU, 0x51338796U, 0x4B84738U, + 0xF482392DU, 0xAB40F973U, 0x9E36BDD6U, 0x3845F022U, 0xA2F40E8BU, 0xC698595DU, 0x87D8352DU, 0xEEB9CC7FU, 0xC644164DU, 0x4CDBDEAFU, 0xE2DE7491U, 0x31F7EB3DU, + 0x9599038U, 0x9D918DA1U, 0x65E89B01U, 0x886E82A6U, 0xFFFE534AU, 0xE151673CU, 0x2026F087U, 0x6D682B4EU, 0xDEF444BDU, 0xF1416D33U, 0xBA2D6D03U, 0xEEFF589AU, + 0xD41F5106U, 0xDE088E4CU, 0x999A79F6U, 0xE8AEA3D0U, 0xE93324AEU, 0xAD49F7U, 0x5FE7A23DU, 0xC1728CACU, 0x60B9C80EU, 0xE3F2AFEBU, 0x95F0722U, 0xA039D72EU, + 0xD6262CCFU, 0x76C373F8U, 0xB040A838U, 0xCF9DD85FU, 0x89EE399BU, 0x4280BC28U, 0xFC69FC63U, 0x3D05B634U, 0x49B5C357U, 0x6E56C308U, 0x1754FB6U, 0xBB51865DU, + 0x8715888CU, 0xAD2738D0U, 0xAE6891D3U, 0x3D480692U, 0xB7351D91U, 0x4537E08EU, 0x2E2BD03U, 0x7F89BA71U, 0x964B44CEU, 0x24B54B9U, 0x1D1552DU, 0x7686B89FU, + 0xDC21E010U, 0xC76B9756U, 0x9E6B1EDU, 0x51599457U, 0x9A6FBFC1U, 0xBBC871A0U, 0xC3FAEA7CU, 0xFAD6BDE8U, 0x1D426A4FU, 0x23516287U, 0x54E93201U, 0x3D14944U, + 0x20F91670U, 0x7D2AAB9U, 0x7A1502CDU, 0x5A8B6DF7U, 0x2D7BE547U, 0xC7686672U, 0x6D9E58AFU, 0xEB0B3F26U, 0x92FD1CE6U, 0x10438777U, 0xB9A6DF98U, 0x8F21D6D6U, + 0xA5DC42D9U, 0x6101B9D7U, 0xAA8A7A11U, 0x97ABDF97U, 0xF820B371U, 0x12E7060FU, 0x7898B7E6U, 0xECC6032BU, 0xCEFB7A8CU, 0x2F1E6611U, 0x9CD6CAB9U, 0x3BC2405BU, + 0x16974E59U, 0xB1168D81U, 0x399695C7U, 0x116814AFU, 0xE6BF9B30U, 0xDAAEEB22U, 0x9AE019F0U, 0xE91C586BU, 0x2C799952U, 0xE5A1E7CEU, 0x264CB5CEU, 0x9C43107EU, + 0xA1A8D07EU, 0x405A2DB6U, 0x804346D2U, 0xBE708250U, 0x67B107D0U, 0xC596A1FBU, 0xB7E8AC33U, 0x829235A2U, 0xA0D9823DU, 0x46D24122U, 0x2B9EA93U, 0xA1C073C6U, + 0xC4EAFBEU, 0x9CBCA0CEU, 0x87CB523EU, 0x93F53F24U, 0x30F100CBU, 0xC76E5C71U, 0x588FA645U, 0xC9B298CDU, 0xC2BC200U, 0xC5B21FE9U, 0xEEEE5BF8U, 0xBB647D0EU, + 0xE0A73F06U, 0xC685C32DU, 0x1C5C9B9BU, 0x2A44CEAU, 0x9534296EU, 0x5A5EC350U, 0xB3780B29U, 0xE8A4B00U, 0xF8327784U, 0x996FC0C8U, 0xD67C8539U, 0x621659DDU, + 0x1FD6996U, 0xB398D6D2U, 0xBBEC03D6U, 0x3F8504F6U, 0x9FA1B8CEU, 0x83ADB8A5U, 0x9004789FU, 0x99ED15F4U, 0x6883E2DU, 0x3C75FFACU, 0xD2391F74U, 0x66EE73F1U, + 0x8FA89A21U, 0x801A7503U, 0x522E1784U, 0x36392E2EU, 0x19DF8128U, 0x6EA25305U, 0x846C8437U, 0x4EE0BEACU, 0xF690FDC5U, 0xF6832E1EU, 0xA48C9379U, 0x5F8921B0U, + 0xFE3D1F9CU, 0x4B6BADFEU, 0x2DDBBD52U, 0xFA227036U, 0xFE4FE03AU, 0xD4BD8877U, 0xC255594EU, 0x8A61FE32U, 0x63B85E32U, 0xC24637DFU, 0x39229F39U, 0xF9B405A4U, + 0x3EBF9329U, 0xF28B6E98U, 0x81DAA8C9U, 0x55ACEF34U, 0x296DE97FU, 0x5953C3AU, 0x7268DC76U, 0x49C2BAAAU, 0x1FD82E79U, 0xE54C1803U, 0x9CD98442U, 0x4C57DE89U, + 0x7FD97D63U, 0x5B3CB6F5U, 0x67B3B2E4U, 0x3EC0ABB7U, 0xEE3200C0U, 0x3FA3D082U, 0x4D0F7C4AU, 0x892D309CU, 0x56B3DD2CU, 0xEB5F7612U, 0x2EE42882U, 0xCF07E495U, + 0xF2A9BC6BU, 0x9DA909A4U, 0x937B3A8U, 0x363217CFU, 0x9AED0006U, 0x60362015U, 0x5226B280U, 0x8524AEA3U, 0xFBC8F58DU, 0x7B172312U, 0x9CCC34DU, 0xA8AE6F61U, + 0xE3CA111EU, 0x59FE8325U, 0x6EC95B2U, 0xF676DCD9U, 0x9A250AE3U, 0x99E585E7U, 0xA62C89BU, 0xC631DEF4U, 0x58BC30C1U, 0x470412E1U, 0xC05117F0U, 0xA51D983CU, + 0x1E629C01U, 0x541C0E33U, 0xEB80059DU, 0x129D07E0U, 0x48EDAAD6U, 0x8397F485U, 0x1857F8F0U, 0x97497FE1U, 0xA8AEC1F6U, 0xC8027F76U, 0x736E96A8U, 0x1A578E1AU, + 0x6B9FD701U, 0x8B4734B7U, 0x7102220U, 0x13FE645BU, 0xE25D1A59U, 0x7A7D69ECU, 0x9295838AU, 0x6761FB08U, 0x493105F6U, 0x13BF90E3U, 0x6691E578U, 0xC741FD85U, + 0x62E01643U, 0xE782CAB0U, 0x3223B5F4U, 0xB36E1464U, 0x2C04AA45U, 0x9260D4CBU, 0x660DB966U, 0x41F2BCF7U, 0xF17D8432U, 0x17C405A6U, 0x87274585U, 0x537E9E9EU, + 0x7B344BCU, 0x1E023531U, 0xDD6783A8U, 0xFA37738DU, 0xD7D7F72CU, 0xEAADB26BU, 0x5B511B45U, 0x240A687DU, 0x44E66B55U, 0xD0808C97U, 0xF31BFF35U, 0x9EE5345CU, + 0x258906C2U, 0x9860CC4AU, 0xB9CCB14FU, 0x5580726EU, 0x26B182EU, 0x4F6C5C89U, 0x5D26775DU, 0xF0CA22ADU, 0x2DD7CAC5U, 0xD0EDAF27U, 0x8C09D6DU, 0xDCFB88F2U, + 0x71C63BCFU, 0xAEC8C854U, 0xC3ADC8F6U, 0xE93C7B65U, 0xC698C893U, 0x8E574092U, 0x92FF3CB6U, 0xF8648ABAU, 0x3F4D318AU, 0xB5BC2991U, 0x5E05BD9DU, 0xB09A78A0U, + 0x15AB67C0U, 0x3FADF7CEU, 0x2927A3FDU, 0x445BA5DBU, 0xFA3008B2U, 0x2891DB6BU, 0xDBB845FU, 0x573B85ECU, 0x18F54327U, 0x74F4356BU, 0x95971E70U, 0x4470A211U, + 0xB905173DU, 0x414D94A9U, 0xE929B3ADU, 0xAE3B8A7AU, 0xFF18EB1U, 0xEE383B0CU, 0x7B04D607U, 0x693E6DA4U, 0xC3FB577EU, 0x7AC48735U, 0x1A99C4ADU, 0x45B0C657U, + 0x5CC05A5U, 0xE24AE587U, 0x884FA08EU, 0x5BCE0610U, 0xCCBADA00U, 0xEEBE62E2U, 0x1BED96D4U, 0xFF9731C4U, 0x5644B2A0U, 0x9119ABCAU, 0x28FC1FE4U, 0x983CF251U, + 0xF92F5A3BU, 0xDC9DC061U, 0x5B150730U, 0xCB5F1CBDU, 0x5966470CU, 0xE5C92630U, 0x974502D1U, 0x2047F98CU, 0x444D6B88U, 0xFB8235EU, 0x359D6CU, 0xC34153C2U, + 0x2A95D777U, 0xCE439251U, 0x5B6E4E6FU, 0xB408F38U, 0x2423E46EU, 0x4C85DCE9U, 0xBBEEC84BU, 0xE9D46305U, 0x30187C97U, 0x181599U, 0xF4F90026U, 0x952F111CU, + 0x5B9D9750U, 0x624304BEU, 0xCE566F2EU, 0xF5B066E3U, 0xC84AEDC4U, 0x26984E70U, 0xD637245CU, 0xAEADB1U, 0x7F65D377U, 0xDD7410C6U, 0xE156A6E8U, 0x2BDB808BU, + 0x3107D6E5U, 0xA654151FU, 0x5DBD1349U, 0x29676B1CU, 0xD9B9A12BU, 0x559571C7U, 0x17D9B1EFU, 0x8EBB69EAU, 0x6E834FD7U, 0x22AF6658U, 0x50FD3DEBU, 0xA35B6E1U, + 0x87B78513U, 0x5CA68B6U, 0xF3B77C65U, 0xDAE7ACC8U, 0xBD84E707U, 0xC0B1F2EEU, 0x7C5B280BU, 0x3C82C2A7U, 0xF1848767U, 0xCF397063U, 0x11293CECU, 0x86B3A406U, + 0xCF0391E2U, 0xCAE6F488U, 0xA2130914U, 0x80443800U, 0x75A52C98U, 0x255D3BC5U, 0x70B8141FU, 0x52A6D7E8U, 0xF3773CB5U, 0x16682961U, 0xE291D23CU, 0xEA1AB08DU, + 0x3AF6AC29U, 0xF077AF0BU, 0xDB42975FU, 0xE4B5A5C3U, 0x828767D9U, 0xCE511DFDU, 0x8FA20C6DU, 0xD4FEEEB4U, 0x3B75D536U, 0x81090466U, 0xB210CB77U, 0xA0A56499U, + 0x601ADD2U, 0xAB167BEAU, 0xF706C300U, 0x1B058070U, 0x9F01D362U, 0x52CFBC44U, 0x96A9AB7BU, 0x966588D6U, 0xB899A286U, 0x5EE0407AU, 0x681CEAFFU, 0x4C40811U, + 0xB20B7269U, 0x367237BFU, 0x428A0B94U, 0xD691C645U, 0xB12CFF27U, 0x9E6383BEU, 0x6176461EU, 0xFDB47228U, 0x51A94E60U, 0xFBD6A3E0U, 0xF187D05EU, 0x4DA143CFU, + 0x49C7CCE6U, 0xB4B52BF7U, 0x3BA3A346U, 0xA803AAFEU, 0x9FC8C67BU, 0xA639766CU, 0x4C6B2408U, 0xED09AD3DU, 0xDBBD48U, 0xE0E2196DU, 0xE9FFEE62U, 0xB50384FU, + 0xDFE188A2U, 0x3633AE21U, 0xAEF9F8C9U, 0x80178502U, 0xED42BC9CU, 0x85653DDDU, 0x394C79C4U, 0x71477B3DU, 0xF8C674CFU, 0xD4B8C4E9U, 0x2A5947F9U, 0xFC4C64D2U, + 0x6B322B31U, 0xB9B20DFBU, 0x57BB1739U, 0x3D915162U, 0x5AAAA1ACU, 0x91EB2A66U, 0x35CA03C9U, 0xDE6D0202U, 0xCB2E089FU, 0x57048634U, 0xEEBBC058U, 0x3813A5F6U, + 0x722CE848U, 0x8479A8A6U, 0xE92B8076U, 0x1B1F3F83U, 0x81D8932FU, 0xFDDDB092U, 0x30D5B4C9U, 0xC91CF267U, 0x36AD135BU, 0x71F52515U, 0xC089EF35U, 0x41038328U, + 0x6456724BU, 0x1B2B3E23U, 0xD24210BBU, 0xC62FBD71U, 0xFCAD3662U, 0x8E3F7FF2U, 0xE48AE1B8U, 0xD23BC8ABU, 0xEF89F436U, 0x62BCE039U, 0x1A5DE46CU, 0x16236FU, + 0xCA241E6DU, 0x9EEE203BU, 0x3D3879E4U, 0x1D1C6180U, 0xD378251U, 0xE2BA4A87U, 0x66DFA1A0U, 0xCFA93D5DU, 0x9F152D0U, 0x7418FB2CU, 0x6CB7295CU, 0x9F7002F9U, + 0x1F7DE611U, 0x5FA0D6B3U, 0xA466F742U, 0x8E097065U, 0x7F7B3458U, 0x25360EB8U, 0xE8ADA4B0U, 0x18B1FE00U, 0x2AC22D1CU, 0x4186B027U, 0x959C76EAU, 0x8872FA1EU, + 0x486317D3U, 0xED35E29BU, 0xB17E878U, 0x8F6CC5FCU, 0x2E8831DBU, 0xFA55FF05U, 0x6FEFF36U, 0xBE942D00U, 0x36B6480EU, 0x4C5D91EFU, 0xEB2C7AC2U, 0xEA33683AU, + 0xB8A51C5EU, 0x8BF2227BU, 0xF37E24F6U, 0x864012FU, 0x5DE7786U, 0x3EFEC660U, 0xE2761ACU, 0x54A6C4ABU, 0x4047D505U, 0x37FBD45CU, 0x65D5D78BU, 0xBE3CF030U, + 0x4A150EFBU, 0x2F283083U, 0xCB47C04DU, 0x973EDABU, 0xD6BC301FU, 0xD792EACU, 0xEEA55E7U, 0xAB40BD74U, 0x1C5A009AU, 0x7485B1C1U, 0xCA86F28AU, 0xA743045FU, + 0xB76BFEDU, 0x76DD731AU, 0x3752687U, 0x968C7740U, 0x2CAC2CA8U, 0x9B8691CAU, 0xF0EF8D89U, 0x770D8687U, 0xF6DE8D96U, 0x91B3A983U, 0x7228545U, 0xA8134914U, + 0xFD9A01E6U, 0x72386ADDU, 0x845A80A6U, 0x10675D75U, 0x31032835U, 0xB6510D2AU, 0x67E9C2D9U, 0x8C073B5FU, 0x348F2BA5U, 0xE4DF38ECU, 0x535EDE00U, 0xE31FD2EFU, + 0xAA5BD7DCU, 0x9D963F06U, 0x8D26D2E9U, 0x5D76C1A0U, 0x95131597U, 0x25521978U, 0xA549BA78U, 0xFC809EA1U, 0x9CC1A4E2U, 0x58043720U, 0xE3BD3B7BU, 0xED684815U, + 0x8A1B48E8U, 0x9C5BFCA1U, 0x32FA853AU, 0xB3626483U, 0x972DA82DU, 0xE492749AU, 0x35CA2D1DU, 0xC1E25D40U, 0xFAA559E2U, 0x27472E18U, 0xEA8FB72AU, 0x5D846824U, + 0x77540CDAU, 0x45717960U, 0x57C4D68EU, 0xEF78B1EBU, 0x72AF8952U, 0xCA13EE37U, 0xD8A641D9U, 0x601A26BCU, 0x387936EAU, 0x80C5518FU, 0x47E9CBACU, 0xFF55ACC9U, + 0xEDE00327U, 0x835DF178U, 0xDD2F69BU, 0xC178F605U, 0xCBBDFF1CU, 0x717FF82U, 0x8998F861U, 0x4532F8FFU, 0x9C12EA53U, 0x50B8EACDU, 0x2E8AEB86U, 0xE220EB18U, + 0x6CAFECFBU, 0x6D9D258CU, 0xBC42E87CU, 0x61A4E33U, 0xCFB8C4FU, 0x81664E1AU, 0x13BBA529U, 0x5BFB8755U, 0x5B9E60F1U, 0xAAF0E106U, 0x89633A85U, 0x3E0560D0U, + 0x39A51A29U, 0x8EC3407CU, 0xE6DEDAE1U, 0x51B880B4U, 0xC3614311U, 0x74071944U, 0xEEA49D28U, 0x59C2C77DU, 0x236AF20EU, 0x940CA85BU, 0xF46B750FU, 0x430D2F5AU, + 0xD1002AD3U, 0x66667086U, 0x44AD55A3U, 0xF3CB0FF6U, 0x31DF5DE0U, 0x86B907B5U, 0x5618FA4DU, 0xE17EA018U, 0x5E62BD84U, 0xE904E7D1U, 0x61C60A7FU, 0xD6A0502AU, + 0x796DEC4CU, 0xCE0BB619U, 0xCBCFC2F4U, 0x7CA998A1U, 0x7373A591U, 0xC415FFC4U, 0x93ACD2A2U, 0x24CA88F7U, 0x6830EF86U, 0xDF56B5D3U, 0xEF283F18U, 0x584E654DU, + 0xA5FE80A0U, 0x1298DAF5U, 0x8095DF7CU, 0x37F38529U, 0x78D0FE2U, 0xB0EB55B7U, 0x1D42E7C5U, 0xAA24BD90U, 0x1538A00CU, 0xA25EFA59U, 0x4521F793U, 0xF247ADC6U, + 0xD8F6CF2AU, 0x6F90957FU, 0xF5E7D73FU, 0x42818D6AU, 0x72FF07A1U, 0xC5995DF4U, 0x92207092U, 0x25462AC7U, 0xE75278D1U, 0x50342284U, 0xD08C88E3U, 0x67EAD2B6U, + 0x1838F762U, 0xAF5EAD37U, 0x6112CC53U, 0xD6749606U, 0x2F0C6FC3U, 0x986A3596U, 0xCA4360C4U, 0x7D253A91U, 0xB74B2F4EU, 0x2D751BU, 0xFF7482BU, 0xB891127EU, + 0x5794587DU, 0xE0F20228U, 0xC8276ED0U, 0x7F413485U, 0x13AA1C8FU, 0xA4CC46DAU, 0x597CA337U, 0xEE1AF962U, 0x52EE48DAU, 0xE588128FU, 0x94B2CC11U, 0x23D49644U, + 0xC239270DU, 0x755F7D58U, 0x20825E2AU, 0x97E4047FU, 0xC4AB9B8EU, 0x73CDC1DBU, 0x70716126U, 0xC7173B73U, 0xAC65B06DU, 0x1C7021BFU, 0x11FB361U, 0xB679E934U, + 0x746DBB22U, 0xC30BE177U, 0xF3756BBCU, 0x441331E9U, 0xB9A3D404U, 0xEC58E51U, 0xFFF99EE2U, 0x489FC4B7U, 0x7C17FCEBU, 0xCB71A6BEU, 0x4106B2AAU, 0xD9C40950U, + 0x36C14353U, 0x81A71906U, 0x1BD05B46U, 0xACB60113U, 0x9CC88BD8U, 0x2BAED18DU, 0x7117AB85U, 0xC671F1D0U, 0x860763FFU, 0x316139AAU, 0x2C0EAB74U, 0x9B68F121U, + 0xCCD1DC47U, 0x7BB78612U, 0xDE6473A9U, 0x690229FCU, 0x2BC473EBU, 0x9CA229BEU, 0x9378148EU, 0x241E4EDBU, 0xEAF2C37U, 0xB9C97662U, 0xA4A6E4BCU, 0x13C0BEE9U, + 0x252C88A1U, 0x924AD2F4U, 0xAA4E1FF6U, 0x1D2845A3U, 0x9764CE8AU, 0x200294DFU, 0x92F4B6BEU, 0x2592ECEBU, 0xCD89B85BU, 0x7AEFE20EU, 0x47D77DU, 0xB7218D28U, + 0xE8E2E787U, 0x5F84BDD2U, 0x505E80E2U, 0xE738DAB7U, 0x660CD2E0U, 0xD16A88B5U, 0xE96E45B7U, 0x5E081FE2U, 0xDEB0B585U, 0x69D6EFD0U, 0xCC051A6BU, 0x7B63403EU, + 0xFEA1FAFEU, 0x49C7A0ABU, 0x4B1DCAF5U, 0xFC7B90A0U, 0xB1D993CDU, 0x6BFC998U, 0x5F3AD998U, 0xE85C83CDU, 0x41E9EBBBU, 0xF68FB1EEU, 0xDA78A9ADU, 0x6D1EF3F8U, + 0xC2EDE121U, 0x758BBB74U, 0x883B5E99U, 0x3F5D04CCU, 0x4D8F7676U, 0xFAE92C23U, 0xCB1B04D8U, 0x7C7D5E8DU, 0xBFE5AEABU, 0x883F4FEU, 0x759C9CEU, 0xB03F939BU, + 0x80411950U, 0x37274305U, 0x308739FCU, 0x87E163A9U, 0xF5331113U, 0x42554B46U, 0x2A48D1DBU, 0x9D2E8B8EU, 0x1D9621E9U, 0xAAF07BBCU, 0xA52A468CU, 0x124C1CD9U, + 0xE786BEFDU, 0x50E0E4A8U, 0x9A8EF177U, 0x2DE8AB22U, 0xB79FE962U, 0xF9B337U, 0x57409E51U, 0xE026C404U, 0x547CF459U, 0xE31AAE0CU, 0x6BD843A2U, 0xDCBE19F7U, + 0x5C06B390U, 0xEB60E9C5U, 0xECC0933CU, 0x5BA6C969U, 0x2F71F45U, 0xB5914510U, 0xA0849007U, 0x17E2CA52U, 0x5D8F4DD1U, 0x785F2A36U, 0xBA4B7820U, 0xD2D2275U, + 0xA8FED7CEU, 0x1F988D9BU, 0x77851706U, 0xC0E34D53U, 0xB2313FE9U, 0x55765BCU, 0xA8D588CU, 0xBDEB02D9U, 0x9F2027FCU, 0x28467DA9U, 0x34A54D47U, 0x83C31712U, + 0x96D6C205U, 0x21B09850U, 0x335DBD17U, 0xF11165A8U, 0x46773FFDU, 0x9EAC85CCU, 0x29CADF99U, 0x3237F1C4U, 0x8551AB91U, 0x3A4DB60DU, 0x8D2BEC58U, 0x709B09B5U, + 0xC7FD53E0U, 0x5FD0B10BU, 0xE8B6EB5EU, 0xC05D2919U, 0x773B734CU, 0x90447E86U, 0x272224D3U, 0xA82A11E2U, 0x1F4C4BB7U, 0x65E47EC4U, 0xD2822491U, 0xBA9FBE0CU, + 0xDF9E459U, 0x523A8EF6U, 0xE55CD4A3U, 0xEA86E993U, 0x5DE0B3C6U, 0x3D876E92U, 0x8AE134C7U, 0x6D9E390DU, 0xDAF86358U, 0xCFEDB64FU, 0x788BEC1AU, 0x7751D12AU, + 0xC0378B7FU, 0x83A9B574U, 0x34CFEF21U, 0xCCB2223U, 0xBBAD7876U, 0x461D9D9BU, 0xF17BC7CEU, 0x1604CA04U, 0xA1629051U, 0xF6DBBD37U, 0x41BDE762U, 0xAEB8AD61U, + 0x19DEF734U, 0x911C1A9AU, 0x267A40CFU, 0x4B165EAU, 0xB3D73FBFU, 0x1E7E8DCDU, 0xA918D798U, 0x336F95D8U, 0x8409CF8DU, 0x21DA3A36U, 0x96BC6063U, 0xBC0D028FU, + 0xB6B58DAU, 0x9CF62567U, 0x2B907F32U, 0x4E67DA52U, 0xF9018007U, 0x43678D3CU, 0xF401D769U, 0x54A83275U, 0xE3CE6820U, 0xC97F0ACCU, 0x7E195099U, 0x3B15D211U, + 0x8C738844U, 0xEC145510U, 0x5B720F45U, 0x99665D53U, 0x2E000706U, 0x6376C247U, 0xD4109812U, 0xE46E12D9U, 0x5308488CU, 0x29A07DFFU, 0x9EC627AAU, 0xE5E2B0E9U, + 0x5284EABCU, 0xA74E4898U, 0x102812CDU, 0xD478013U, 0xBA21DA46U, 0x17886834U, 0xA0EE3261U, 0x4FEB7862U, 0xF88D2237U, 0x62FA6077U, 0xD59C3A22U, 0x20569806U, + 0x9730C253U, 0x6A8027BEU, 0xDDE67DEBU, 0x318A297CU, 0x77EFB560U, 0x3A997021U, 0x8DFF2A74U, 0x78358850U, 0xCF53D205U, 0x5D8A11A0U, 0xEAEC4BF5U, 0x8BD3F2BDU, + 0x3CB5A8E8U, 0x8DAB26ADU, 0x3ACD7CF8U, 0x53DC7DAU, 0xB25B9D8FU, 0x5FEE1FB4U, 0xE88845E1U, 0x6468DCF4U, 0xD30E86A1U, 0xB3833366U, 0x4E56933U, 0xA94CDB41U, + 0x1E2A8114U, 0x262E4C16U, 0x91481643U, 0xDC3ED302U, 0x6B588957U, 0xF9558CDEU, 0x4E33D68BU, 0x4993AC72U, 0xFEF5F627U, 0x535C4455U, 0xE43A1E00U, 0xA1369C88U, + 0x1650C6DDU, 0x845DC354U, 0x333B9901U, 0x2E540BDFU, 0x9932518AU, 0xBBF974AFU, 0xC9F2EFAU, 0x9E922B73U, 0x29F47126U, 0x176200A7U, 0xA0045AF2U, 0x1E94E55EU, + 0xA9F2BF0BU, 0x7129053AU, 0xC64F5F6FU, 0x4E8DB2C1U, 0xF9EBE894U, 0xE4847A4AU, 0x53E2201FU, 0x3B2B7CAEU, 0x8C4D26FBU, 0x107C1E14U, 0xA71A4441U, 0x3D6D0601U, + 0x8A0B5C54U, 0xD1F96FEAU, 0x701F8A2FU, 0xEDCCFBF9U, 0x2C9B1FAU, 0xB5AFEBAFU, 0x6BE6ED1DU, 0xDC80B748U, 0xF0A36927U, 0x47C53372U, 0xA8C07971U, 0x1FA62324U, + 0x7FC1FE70U, 0xC8A7A425U, 0x77BBB9B9U, 0xC0DDE3ECU, 0x351741C8U, 0x82711B9DU, 0x9F1E8943U, 0x2878D316U, 0x38FD7E35U, 0x8F9B2460U, 0x481F0E42U, 0xFF795417U, + 0xBA75D69FU, 0xD138CCAU, 0x7DA5F064U, 0xCAC3AA31U, 0xF783D92BU, 0x40E5837EU, 0xA0BA3EB8U, 0x17DC64EDU, 0x7535DF3EU, 0xC253856BU, 0x8F25402AU, 0x38431A7FU, + 0xC797F186U, 0x70F1ABD3U, 0x604AA84FU, 0xD72CF21AU, 0x47AF9114U, 0xF0C9CB41U, 0x27A2EE26U, 0x90C4B473U, 0xBEBDCAB7U, 0x9DB90E2U, 0xED4C310CU, 0x5A2A6B59U, + 0x223D969U, 0xB545833CU, 0x96E86CBAU, 0x218E36EFU, 0xA06EF894U, 0x1708A2C1U, 0x6D74519EU, 0xDA120BCBU, 0x180659DDU, 0xAF600388U, 0xDDB27132U, 0x6AD42B67U, + 0xD5C836FBU, 0x62AE6CAEU, 0x2474ECBDU, 0x9312B6E8U, 0xCF07DEDCU, 0x78618489U, 0x32DD9957U, 0x85BBC302U, 0x90AE1615U, 0x27C84C40U, 0xC0B7418AU, 0x77D11BDFU, + 0x3AA7DE9EU, 0x8DC184CBU, 0xB5C549C9U, 0x2A3139CU, 0x62C4CEC8U, 0xD5A2949DU, 0x28127170U, 0x9F742B25U, 0xA770E627U, 0x1016BC72U, 0x206836B9U, 0x970E6CECU, + 0x1FCC8142U, 0xA8AADB17U, 0x5036965U, 0xB2653330U, 0x52862C08U, 0xBA1F74F9U, 0xEDA6599FU, 0x5AC003CAU, 0x47526A2CU, 0x3D07A467U, 0xCFD318F0U, 0x78B542A5U, + 0xA9981D6DU, 0x1EFE4738U, 0x8CF342B1U, 0x3B9518E4U, 0x9BD6956BU, 0x2CB0CF3EU, 0xD0584ECFU, 0x673E149AU, 0x2A667589U, 0x1811A54AU, 0x45F31ACBU, 0x76E3DDA5U, + 0xC18587F0U, 0xC625FD09U, 0x7143A75CU, 0x195E3DC1U, 0xAE386794U, 0xBEB922FU, 0xBC8DC87AU, 0xD51CF0D7U, 0x627AAA82U, 0xA67301FU, 0xBD016A4AU, 0x8505A748U, + 0x3263FD1DU, 0x52042049U, 0xE5627A1CU, 0x5CECDB03U, 0xEB8A8156U, 0xF22D0FA0U, 0x454B55F5U, 0x7453159DU, 0xC3354FC8U, 0x37734FDCU, 0x80151589U, 0x8D7F827U, + 0xBFB1A272U }; const ReplacementIndexStruct ReplacementIndexData[] = { - { utf16char(43), medium(1) }, - { utf16char(45), medium(1) }, - { utf16char(49), medium(2) }, - { utf16char(50), medium(1) }, - { utf16char(56), medium(1) }, - { utf16char(97), medium(129) }, - { utf16char(98), medium(226) }, - { utf16char(99), medium(290) }, - { utf16char(100), medium(100) }, - { utf16char(101), medium(70) }, - { utf16char(102), medium(437) }, - { utf16char(103), medium(108) }, - { utf16char(104), medium(138) }, - { utf16char(105), medium(53) }, - { utf16char(106), medium(25) }, - { utf16char(107), medium(53) }, - { utf16char(108), medium(101) }, - { utf16char(109), medium(247) }, - { utf16char(110), medium(74) }, - { utf16char(111), medium(71) }, - { utf16char(112), medium(201) }, - { utf16char(113), medium(8) }, - { utf16char(114), medium(114) }, - { utf16char(115), medium(289) }, - { utf16char(116), medium(148) }, - { utf16char(117), medium(53) }, - { utf16char(118), medium(28) }, - { utf16char(119), medium(211) }, - { utf16char(120), medium(4) }, - { utf16char(121), medium(8) }, - { utf16char(122), medium(11) }, + { utf16char(43), medium(1) }, + { utf16char(45), medium(1) }, + { utf16char(49), medium(2) }, + { utf16char(50), medium(1) }, + { utf16char(56), medium(1) }, + { utf16char(97), medium(131) }, + { utf16char(98), medium(233) }, + { utf16char(99), medium(305) }, + { utf16char(100), medium(101) }, + { utf16char(101), medium(78) }, + { utf16char(102), medium(451) }, + { utf16char(103), medium(114) }, + { utf16char(104), medium(143) }, + { utf16char(105), medium(59) }, + { utf16char(106), medium(25) }, + { utf16char(107), medium(53) }, + { utf16char(108), medium(105) }, + { utf16char(109), medium(265) }, + { utf16char(110), medium(75) }, + { utf16char(111), medium(76) }, + { utf16char(112), medium(210) }, + { utf16char(113), medium(8) }, + { utf16char(114), medium(119) }, + { utf16char(115), medium(305) }, + { utf16char(116), medium(151) }, + { utf16char(117), medium(55) }, + { utf16char(118), medium(32) }, + { utf16char(119), medium(228) }, + { utf16char(120), medium(4) }, + { utf16char(121), medium(9) }, + { utf16char(122), medium(15) }, }; std::vector Replacements; diff --git a/TMessagesProj/jni/exoplayer/ffmpeg_jni.cc b/TMessagesProj/jni/exoplayer/ffmpeg_jni.cc index d459712f4..f3b769b75 100755 --- a/TMessagesProj/jni/exoplayer/ffmpeg_jni.cc +++ b/TMessagesProj/jni/exoplayer/ffmpeg_jni.cc @@ -27,6 +27,7 @@ extern "C" { #endif #include #include +#include #include #include } @@ -36,20 +37,36 @@ extern "C" { __VA_ARGS__)) #define DECODER_FUNC(RETURN_TYPE, NAME, ...) \ - JNIEXPORT RETURN_TYPE Java_com_google_android_exoplayer2_ext_ffmpeg_FfmpegDecoder_##NAME(JNIEnv* env, jobject thiz, ##__VA_ARGS__) + extern "C" { \ + JNIEXPORT RETURN_TYPE \ + Java_com_google_android_exoplayer2_ext_ffmpeg_FfmpegDecoder_ ## NAME \ + (JNIEnv* env, jobject thiz, ##__VA_ARGS__);\ + } \ + JNIEXPORT RETURN_TYPE \ + Java_com_google_android_exoplayer2_ext_ffmpeg_FfmpegDecoder_ ## NAME \ + (JNIEnv* env, jobject thiz, ##__VA_ARGS__)\ #define LIBRARY_FUNC(RETURN_TYPE, NAME, ...) \ - JNIEXPORT RETURN_TYPE Java_com_google_android_exoplayer2_ext_ffmpeg_FfmpegLibrary_##NAME(JNIEnv* env, jobject thiz, ##__VA_ARGS__) + extern "C" { \ + JNIEXPORT RETURN_TYPE \ + Java_com_google_android_exoplayer2_ext_ffmpeg_FfmpegLibrary_ ## NAME \ + (JNIEnv* env, jobject thiz, ##__VA_ARGS__);\ + } \ + JNIEXPORT RETURN_TYPE \ + Java_com_google_android_exoplayer2_ext_ffmpeg_FfmpegLibrary_ ## NAME \ + (JNIEnv* env, jobject thiz, ##__VA_ARGS__)\ #define ERROR_STRING_BUFFER_LENGTH 256 -extern "C" { - // Output format corresponding to AudioFormat.ENCODING_PCM_16BIT. static const AVSampleFormat OUTPUT_FORMAT_PCM_16BIT = AV_SAMPLE_FMT_S16; // Output format corresponding to AudioFormat.ENCODING_PCM_FLOAT. static const AVSampleFormat OUTPUT_FORMAT_PCM_FLOAT = AV_SAMPLE_FMT_FLT; +// Error codes matching FfmpegDecoder.java. +static const int DECODER_ERROR_INVALID_DATA = -1; +static const int DECODER_ERROR_OTHER = -2; + /** * Returns the AVCodec with the specified name, or NULL if it is not available. */ @@ -66,7 +83,7 @@ AVCodecContext *createContext(JNIEnv *env, AVCodec *codec, jbyteArray extraData, /** * Decodes the packet into the output buffer, returning the number of bytes - * written, or a negative value in the case of an error. + * written, or a negative DECODER_ERROR constant value in the case of an error. */ int decodePacket(AVCodecContext *context, AVPacket *packet, uint8_t *outputBuffer, int outputSize); @@ -101,7 +118,7 @@ DECODER_FUNC(jlong, ffmpegInitialize, jstring codecName, jbyteArray extraData, } DECODER_FUNC(jint, ffmpegDecode, jlong context, jobject inputData, - jint inputSize, jobject outputData, jint outputSize) { + jint inputSize, jobject outputData, jint outputSize) { if (!context) { LOGE("Context must be non-NULL."); return -1; @@ -162,10 +179,10 @@ DECODER_FUNC(jlong, ffmpegReset, jlong jContext, jbyteArray extraData) { return 0L; } jboolean outputFloat = - (jboolean)(context->request_sample_fmt == OUTPUT_FORMAT_PCM_FLOAT); + (jboolean)(context->request_sample_fmt == OUTPUT_FORMAT_PCM_FLOAT); return (jlong)createContext(env, codec, extraData, outputFloat, - /* rawSampleRate= */ -1, - /* rawChannelCount= */ -1); + /* rawSampleRate= */ -1, + /* rawChannelCount= */ -1); } avcodec_flush_buffers(context); @@ -197,12 +214,12 @@ AVCodecContext *createContext(JNIEnv *env, AVCodec *codec, jbyteArray extraData, return NULL; } context->request_sample_fmt = - outputFloat ? OUTPUT_FORMAT_PCM_FLOAT : OUTPUT_FORMAT_PCM_16BIT; + outputFloat ? OUTPUT_FORMAT_PCM_FLOAT : OUTPUT_FORMAT_PCM_16BIT; if (extraData) { jsize size = env->GetArrayLength(extraData); context->extradata_size = size; context->extradata = - (uint8_t *) av_malloc(size + AV_INPUT_BUFFER_PADDING_SIZE); + (uint8_t *) av_malloc(size + AV_INPUT_BUFFER_PADDING_SIZE); if (!context->extradata) { LOGE("Failed to allocate extradata."); releaseContext(context); @@ -216,6 +233,7 @@ AVCodecContext *createContext(JNIEnv *env, AVCodec *codec, jbyteArray extraData, context->channels = rawChannelCount; context->channel_layout = av_get_default_channel_layout(rawChannelCount); } + context->err_recognition = AV_EF_IGNORE_ERR; int result = avcodec_open2(context, codec, NULL); if (result < 0) { logError("avcodec_open2", result); @@ -232,7 +250,8 @@ int decodePacket(AVCodecContext *context, AVPacket *packet, result = avcodec_send_packet(context, packet); if (result) { logError("avcodec_send_packet", result); - return result; + return result == AVERROR_INVALIDDATA ? DECODER_ERROR_INVALID_DATA + : DECODER_ERROR_OTHER; } // Dequeue output data until it runs out. @@ -273,7 +292,7 @@ int decodePacket(AVCodecContext *context, AVPacket *packet, av_opt_set_int(resampleContext, "in_sample_fmt", sampleFormat, 0); // The output format is always the requested format. av_opt_set_int(resampleContext, "out_sample_fmt", - context->request_sample_fmt, 0); + context->request_sample_fmt, 0); result = avresample_open(resampleContext); if (result < 0) { logError("avresample_open", result); @@ -331,5 +350,3 @@ void releaseContext(AVCodecContext *context) { avcodec_free_context(&context); } -} - diff --git a/TMessagesProj/jni/exoplayer/flac_jni.cc b/TMessagesProj/jni/exoplayer/flac_jni.cc index 3b47751b8..298719d48 100755 --- a/TMessagesProj/jni/exoplayer/flac_jni.cc +++ b/TMessagesProj/jni/exoplayer/flac_jni.cc @@ -15,156 +15,166 @@ */ #include +#include #include #include "include/flac_parser.h" -#define DECODER_FUNC(RETURN_TYPE, NAME, ...) \ -RETURN_TYPE Java_com_google_android_exoplayer2_ext_flac_FlacDecoderJni_##NAME(JNIEnv *env, jobject thiz, ##__VA_ARGS__) +#define LOG_TAG "flac_jni" +#define ALOGE(...) \ + ((void)__android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)) +#define ALOGV(...) \ + ((void)__android_log_print(ANDROID_LOG_VERBOSE, LOG_TAG, __VA_ARGS__)) + +#define DECODER_FUNC(RETURN_TYPE, NAME, ...) \ + extern "C" { \ + JNIEXPORT RETURN_TYPE \ + Java_com_google_android_exoplayer2_ext_flac_FlacDecoderJni_##NAME( \ + JNIEnv *env, jobject thiz, ##__VA_ARGS__); \ + } \ + JNIEXPORT RETURN_TYPE \ + Java_com_google_android_exoplayer2_ext_flac_FlacDecoderJni_##NAME( \ + JNIEnv *env, jobject thiz, ##__VA_ARGS__) class JavaDataSource : public DataSource { -public: - void setFlacDecoderJni(JNIEnv *env, jobject flacDecoderJni) { - this->env = env; - this->flacDecoderJni = flacDecoderJni; - if (mid == NULL) { - jclass cls = env->GetObjectClass(this->flacDecoderJni); - mid = env->GetMethodID(cls, "read", "(Ljava/nio/ByteBuffer;)I"); - env->DeleteLocalRef(cls); - } + public: + void setFlacDecoderJni(JNIEnv *env, jobject flacDecoderJni) { + this->env = env; + this->flacDecoderJni = flacDecoderJni; + if (mid == NULL) { + jclass cls = env->GetObjectClass(flacDecoderJni); + mid = env->GetMethodID(cls, "read", "(Ljava/nio/ByteBuffer;)I"); + env->DeleteLocalRef(cls); } + } - ssize_t readAt(off64_t offset, void *const data, size_t size) { - jobject byteBuffer = env->NewDirectByteBuffer(data, size); - int result = env->CallIntMethod(flacDecoderJni, mid, byteBuffer); - if (env->ExceptionCheck()) { - // Exception is thrown in Java when returning from the native call. - result = -1; - } - env->DeleteLocalRef(byteBuffer); - return result; + ssize_t readAt(off64_t offset, void *const data, size_t size) { + jobject byteBuffer = env->NewDirectByteBuffer(data, size); + int result = env->CallIntMethod(flacDecoderJni, mid, byteBuffer); + if (env->ExceptionCheck()) { + // Exception is thrown in Java when returning from the native call. + result = -1; } + env->DeleteLocalRef(byteBuffer); + return result; + } -private: - JNIEnv *env; - jobject flacDecoderJni; - jmethodID mid; + private: + JNIEnv *env; + jobject flacDecoderJni; + jmethodID mid; }; struct Context { - JavaDataSource *source; - FLACParser *parser; + JavaDataSource *source; + FLACParser *parser; - Context() { - source = new JavaDataSource(); - parser = new FLACParser(source); - } + Context() { + source = new JavaDataSource(); + parser = new FLACParser(source); + } - ~Context() { - delete parser; - delete source; - } + ~Context() { + delete parser; + delete source; + } }; -extern "C" { - DECODER_FUNC(jlong, flacInit) { - Context *context = new Context; - if (!context->parser->init()) { - delete context; - return 0; - } - return reinterpret_cast(context); + Context *context = new Context; + if (!context->parser->init()) { + delete context; + return 0; + } + return reinterpret_cast(context); } DECODER_FUNC(jobject, flacDecodeMetadata, jlong jContext) { - Context *context = reinterpret_cast(jContext); - context->source->setFlacDecoderJni(env, thiz); - if (!context->parser->decodeMetadata()) { - return NULL; - } + Context *context = reinterpret_cast(jContext); + context->source->setFlacDecoderJni(env, thiz); + if (!context->parser->decodeMetadata()) { + return NULL; + } - const FLAC__StreamMetadata_StreamInfo &streamInfo = - context->parser->getStreamInfo(); + const FLAC__StreamMetadata_StreamInfo &streamInfo = + context->parser->getStreamInfo(); - jclass cls = env->FindClass( - "com/google/android/exoplayer2/util/" - "FlacStreamInfo"); - jmethodID constructor = env->GetMethodID(cls, "", "(IIIIIIIJ)V"); + jclass cls = env->FindClass( + "com/google/android/exoplayer2/util/" + "FlacStreamInfo"); + jmethodID constructor = env->GetMethodID(cls, "", "(IIIIIIIJ)V"); - return env->NewObject(cls, constructor, streamInfo.min_blocksize, - streamInfo.max_blocksize, streamInfo.min_framesize, - streamInfo.max_framesize, streamInfo.sample_rate, - streamInfo.channels, streamInfo.bits_per_sample, - streamInfo.total_samples); + return env->NewObject(cls, constructor, streamInfo.min_blocksize, + streamInfo.max_blocksize, streamInfo.min_framesize, + streamInfo.max_framesize, streamInfo.sample_rate, + streamInfo.channels, streamInfo.bits_per_sample, + streamInfo.total_samples); } DECODER_FUNC(jint, flacDecodeToBuffer, jlong jContext, jobject jOutputBuffer) { - Context *context = reinterpret_cast(jContext); - context->source->setFlacDecoderJni(env, thiz); - void *outputBuffer = env->GetDirectBufferAddress(jOutputBuffer); - jint outputSize = env->GetDirectBufferCapacity(jOutputBuffer); - return context->parser->readBuffer(outputBuffer, outputSize); + Context *context = reinterpret_cast(jContext); + context->source->setFlacDecoderJni(env, thiz); + void *outputBuffer = env->GetDirectBufferAddress(jOutputBuffer); + jint outputSize = env->GetDirectBufferCapacity(jOutputBuffer); + return context->parser->readBuffer(outputBuffer, outputSize); } DECODER_FUNC(jint, flacDecodeToArray, jlong jContext, jbyteArray jOutputArray) { - Context *context = reinterpret_cast(jContext); - context->source->setFlacDecoderJni(env, thiz); - jbyte *outputBuffer = env->GetByteArrayElements(jOutputArray, NULL); - jint outputSize = env->GetArrayLength(jOutputArray); - int count = context->parser->readBuffer(outputBuffer, outputSize); - env->ReleaseByteArrayElements(jOutputArray, outputBuffer, 0); - return count; + Context *context = reinterpret_cast(jContext); + context->source->setFlacDecoderJni(env, thiz); + jbyte *outputBuffer = env->GetByteArrayElements(jOutputArray, NULL); + jint outputSize = env->GetArrayLength(jOutputArray); + int count = context->parser->readBuffer(outputBuffer, outputSize); + env->ReleaseByteArrayElements(jOutputArray, outputBuffer, 0); + return count; } DECODER_FUNC(jlong, flacGetDecodePosition, jlong jContext) { - Context *context = reinterpret_cast(jContext); - return context->parser->getDecodePosition(); + Context *context = reinterpret_cast(jContext); + return context->parser->getDecodePosition(); } DECODER_FUNC(jlong, flacGetLastFrameTimestamp, jlong jContext) { - Context *context = reinterpret_cast(jContext); - return context->parser->getLastFrameTimestamp(); + Context *context = reinterpret_cast(jContext); + return context->parser->getLastFrameTimestamp(); } DECODER_FUNC(jlong, flacGetLastFrameFirstSampleIndex, jlong jContext) { - Context *context = reinterpret_cast(jContext); - return context->parser->getLastFrameFirstSampleIndex(); + Context *context = reinterpret_cast(jContext); + return context->parser->getLastFrameFirstSampleIndex(); } DECODER_FUNC(jlong, flacGetNextFrameFirstSampleIndex, jlong jContext) { - Context *context = reinterpret_cast(jContext); - return context->parser->getNextFrameFirstSampleIndex(); + Context *context = reinterpret_cast(jContext); + return context->parser->getNextFrameFirstSampleIndex(); } DECODER_FUNC(jlong, flacGetSeekPosition, jlong jContext, jlong timeUs) { - Context *context = reinterpret_cast(jContext); - return context->parser->getSeekPosition(timeUs); + Context *context = reinterpret_cast(jContext); + return context->parser->getSeekPosition(timeUs); } DECODER_FUNC(jstring, flacGetStateString, jlong jContext) { - Context *context = reinterpret_cast(jContext); - const char *str = context->parser->getDecoderStateString(); - return env->NewStringUTF(str); + Context *context = reinterpret_cast(jContext); + const char *str = context->parser->getDecoderStateString(); + return env->NewStringUTF(str); } DECODER_FUNC(jboolean, flacIsDecoderAtEndOfStream, jlong jContext) { - Context *context = reinterpret_cast(jContext); - return context->parser->isDecoderAtEndOfStream(); + Context *context = reinterpret_cast(jContext); + return context->parser->isDecoderAtEndOfStream(); } DECODER_FUNC(void, flacFlush, jlong jContext) { - Context *context = reinterpret_cast(jContext); - context->parser->flush(); + Context *context = reinterpret_cast(jContext); + context->parser->flush(); } DECODER_FUNC(void, flacReset, jlong jContext, jlong newPosition) { - Context *context = reinterpret_cast(jContext); - context->parser->reset(newPosition); + Context *context = reinterpret_cast(jContext); + context->parser->reset(newPosition); } DECODER_FUNC(void, flacRelease, jlong jContext) { - Context *context = reinterpret_cast(jContext); - delete context; -} - + Context *context = reinterpret_cast(jContext); + delete context; } diff --git a/TMessagesProj/jni/exoplayer/flac_parser.cc b/TMessagesProj/jni/exoplayer/flac_parser.cc index 26deac263..83d336741 100755 --- a/TMessagesProj/jni/exoplayer/flac_parser.cc +++ b/TMessagesProj/jni/exoplayer/flac_parser.cc @@ -52,31 +52,31 @@ const int endian = 1; // with the same parameter list, but discard redundant information. FLAC__StreamDecoderReadStatus FLACParser::read_callback( - const FLAC__StreamDecoder * /* decoder */, FLAC__byte buffer[], - size_t *bytes, void *client_data) { + const FLAC__StreamDecoder * /* decoder */, FLAC__byte buffer[], + size_t *bytes, void *client_data) { return reinterpret_cast(client_data) - ->readCallback(buffer, bytes); + ->readCallback(buffer, bytes); } FLAC__StreamDecoderSeekStatus FLACParser::seek_callback( - const FLAC__StreamDecoder * /* decoder */, - FLAC__uint64 absolute_byte_offset, void *client_data) { + const FLAC__StreamDecoder * /* decoder */, + FLAC__uint64 absolute_byte_offset, void *client_data) { return reinterpret_cast(client_data) - ->seekCallback(absolute_byte_offset); + ->seekCallback(absolute_byte_offset); } FLAC__StreamDecoderTellStatus FLACParser::tell_callback( - const FLAC__StreamDecoder * /* decoder */, - FLAC__uint64 *absolute_byte_offset, void *client_data) { + const FLAC__StreamDecoder * /* decoder */, + FLAC__uint64 *absolute_byte_offset, void *client_data) { return reinterpret_cast(client_data) - ->tellCallback(absolute_byte_offset); + ->tellCallback(absolute_byte_offset); } FLAC__StreamDecoderLengthStatus FLACParser::length_callback( - const FLAC__StreamDecoder * /* decoder */, FLAC__uint64 *stream_length, - void *client_data) { + const FLAC__StreamDecoder * /* decoder */, FLAC__uint64 *stream_length, + void *client_data) { return reinterpret_cast(client_data) - ->lengthCallback(stream_length); + ->lengthCallback(stream_length); } FLAC__bool FLACParser::eof_callback(const FLAC__StreamDecoder * /* decoder */, @@ -85,10 +85,10 @@ FLAC__bool FLACParser::eof_callback(const FLAC__StreamDecoder * /* decoder */, } FLAC__StreamDecoderWriteStatus FLACParser::write_callback( - const FLAC__StreamDecoder * /* decoder */, const FLAC__Frame *frame, - const FLAC__int32 *const buffer[], void *client_data) { + const FLAC__StreamDecoder * /* decoder */, const FLAC__Frame *frame, + const FLAC__int32 *const buffer[], void *client_data) { return reinterpret_cast(client_data) - ->writeCallback(frame, buffer); + ->writeCallback(frame, buffer); } void FLACParser::metadata_callback(const FLAC__StreamDecoder * /* decoder */, @@ -125,27 +125,27 @@ FLAC__StreamDecoderReadStatus FLACParser::readCallback(FLAC__byte buffer[], } FLAC__StreamDecoderSeekStatus FLACParser::seekCallback( - FLAC__uint64 absolute_byte_offset) { + FLAC__uint64 absolute_byte_offset) { mCurrentPos = absolute_byte_offset; mEOF = false; return FLAC__STREAM_DECODER_SEEK_STATUS_OK; } FLAC__StreamDecoderTellStatus FLACParser::tellCallback( - FLAC__uint64 *absolute_byte_offset) { + FLAC__uint64 *absolute_byte_offset) { *absolute_byte_offset = mCurrentPos; return FLAC__STREAM_DECODER_TELL_STATUS_OK; } FLAC__StreamDecoderLengthStatus FLACParser::lengthCallback( - FLAC__uint64 *stream_length) { + FLAC__uint64 *stream_length) { return FLAC__STREAM_DECODER_LENGTH_STATUS_UNSUPPORTED; } FLAC__bool FLACParser::eofCallback() { return mEOF; } FLAC__StreamDecoderWriteStatus FLACParser::writeCallback( - const FLAC__Frame *frame, const FLAC__int32 *const buffer[]) { + const FLAC__Frame *frame, const FLAC__int32 *const buffer[]) { if (mWriteRequested) { mWriteRequested = false; // FLAC parser doesn't free or realloc buffer until next frame or finish @@ -168,13 +168,13 @@ void FLACParser::metadataCallback(const FLAC__StreamMetadata *metadata) { } else { ALOGE("FLACParser::metadataCallback unexpected STREAMINFO"); } - break; + break; case FLAC__METADATA_TYPE_SEEKTABLE: mSeekTable = &metadata->data.seek_table; - break; + break; default: ALOGE("FLACParser::metadataCallback unexpected type %u", metadata->type); - break; + break; } } @@ -195,7 +195,7 @@ static void copyToByteArrayBigEndian(int8_t *dst, const int *const *src, // and then skip the first few bytes (most significant bytes) // depending on the bit depth const int8_t *byteSrc = - reinterpret_cast(&src[c][i]) + 4 - bytesPerSample; + reinterpret_cast(&src[c][i]) + 4 - bytesPerSample; memcpy(dst, byteSrc, bytesPerSample); dst = dst + bytesPerSample; } @@ -225,18 +225,18 @@ static void copyTrespass(int8_t * /* dst */, const int *const * /* src */, // FLACParser FLACParser::FLACParser(DataSource *source) - : mDataSource(source), - mCopy(copyTrespass), - mDecoder(NULL), - mSeekTable(NULL), - firstFrameOffset(0LL), - mCurrentPos(0LL), - mEOF(false), - mStreamInfoValid(false), - mWriteRequested(false), - mWriteCompleted(false), - mWriteBuffer(NULL), - mErrorStatus((FLAC__StreamDecoderErrorStatus)-1) { + : mDataSource(source), + mCopy(copyTrespass), + mDecoder(NULL), + mSeekTable(NULL), + firstFrameOffset(0LL), + mCurrentPos(0LL), + mEOF(false), + mStreamInfoValid(false), + mWriteRequested(false), + mWriteCompleted(false), + mWriteBuffer(NULL), + mErrorStatus((FLAC__StreamDecoderErrorStatus)-1) { ALOGV("FLACParser::FLACParser"); memset(&mStreamInfo, 0, sizeof(mStreamInfo)); memset(&mWriteHeader, 0, sizeof(mWriteHeader)); @@ -268,9 +268,9 @@ bool FLACParser::init() { FLAC__METADATA_TYPE_SEEKTABLE); FLAC__StreamDecoderInitStatus initStatus; initStatus = FLAC__stream_decoder_init_stream( - mDecoder, read_callback, seek_callback, tell_callback, length_callback, - eof_callback, write_callback, metadata_callback, error_callback, - reinterpret_cast(this)); + mDecoder, read_callback, seek_callback, tell_callback, length_callback, + eof_callback, write_callback, metadata_callback, error_callback, + reinterpret_cast(this)); if (initStatus != FLAC__STREAM_DECODER_INIT_STATUS_OK) { // A failure here probably indicates a programming error and so is // unlikely to happen. But we check and log here similarly to above. @@ -304,7 +304,7 @@ bool FLACParser::decodeMetadata() { break; default: ALOGE("unsupported bits per sample %u", getBitsPerSample()); - return false; + return false; } // check sample rate switch (getSampleRate()) { @@ -324,7 +324,7 @@ bool FLACParser::decodeMetadata() { break; default: ALOGE("unsupported sample rate %u", getSampleRate()); - return false; + return false; } // configure the appropriate copy function based on device endianness. if (isBigEndian()) { @@ -367,11 +367,11 @@ size_t FLACParser::readBuffer(void *output, size_t output_size) { mWriteHeader.channels != getChannels() || mWriteHeader.bits_per_sample != getBitsPerSample()) { ALOGE( - "FLACParser::readBuffer write changed parameters mid-stream: %d/%d/%d " - "-> %d/%d/%d", - getSampleRate(), getChannels(), getBitsPerSample(), - mWriteHeader.sample_rate, mWriteHeader.channels, - mWriteHeader.bits_per_sample); + "FLACParser::readBuffer write changed parameters mid-stream: %d/%d/%d " + "-> %d/%d/%d", + getSampleRate(), getChannels(), getBitsPerSample(), + mWriteHeader.sample_rate, mWriteHeader.channels, + mWriteHeader.bits_per_sample); return -1; } @@ -379,9 +379,9 @@ size_t FLACParser::readBuffer(void *output, size_t output_size) { size_t bufferSize = blocksize * getChannels() * bytesPerSample; if (bufferSize > output_size) { ALOGE( - "FLACParser::readBuffer not enough space in output buffer " - "%zu < %zu", - output_size, bufferSize); + "FLACParser::readBuffer not enough space in output buffer " + "%zu < %zu", + output_size, bufferSize); return -1; } @@ -402,7 +402,7 @@ int64_t FLACParser::getSeekPosition(int64_t timeUs) { int64_t sample = (timeUs * getSampleRate()) / 1000000LL; if (sample >= getTotalSamples()) { - sample = getTotalSamples(); + sample = getTotalSamples(); } FLAC__StreamMetadata_SeekPoint* points = mSeekTable->points; diff --git a/TMessagesProj/jni/exoplayer/opus_jni.cc b/TMessagesProj/jni/exoplayer/opus_jni.cc index dfa638919..bc50c959e 100755 --- a/TMessagesProj/jni/exoplayer/opus_jni.cc +++ b/TMessagesProj/jni/exoplayer/opus_jni.cc @@ -28,10 +28,24 @@ __VA_ARGS__)) #define DECODER_FUNC(RETURN_TYPE, NAME, ...) \ - JNIEXPORT RETURN_TYPE Java_com_google_android_exoplayer2_ext_opus_OpusDecoder_##NAME(JNIEnv* env, jobject thiz, ##__VA_ARGS__) + extern "C" { \ + JNIEXPORT RETURN_TYPE \ + Java_com_google_android_exoplayer2_ext_opus_OpusDecoder_ ## NAME \ + (JNIEnv* env, jobject thiz, ##__VA_ARGS__);\ + } \ + JNIEXPORT RETURN_TYPE \ + Java_com_google_android_exoplayer2_ext_opus_OpusDecoder_ ## NAME \ + (JNIEnv* env, jobject thiz, ##__VA_ARGS__)\ #define LIBRARY_FUNC(RETURN_TYPE, NAME, ...) \ - JNIEXPORT RETURN_TYPE Java_com_google_android_exoplayer2_ext_opus_OpusLibrary_##NAME(JNIEnv* env, jobject thiz, ##__VA_ARGS__) + extern "C" { \ + JNIEXPORT RETURN_TYPE \ + Java_com_google_android_exoplayer2_ext_opus_OpusLibrary_ ## NAME \ + (JNIEnv* env, jobject thiz, ##__VA_ARGS__);\ + } \ + JNIEXPORT RETURN_TYPE \ + Java_com_google_android_exoplayer2_ext_opus_OpusLibrary_ ## NAME \ + (JNIEnv* env, jobject thiz, ##__VA_ARGS__)\ // JNI references for SimpleOutputBuffer class. static jmethodID outputBufferInit; @@ -41,8 +55,6 @@ static const int kMaxOpusOutputPacketSizeSamples = 960 * 6; static int channelCount; static int errorCode; -extern "C" { - DECODER_FUNC(jlong, opusInit, jint sampleRate, jint channelCount, jint numStreams, jint numCoupled, jint gain, jbyteArray jStreamMap) { int status = OPUS_INVALID_STATE; @@ -142,5 +154,3 @@ LIBRARY_FUNC(jstring, opusIsSecureDecodeSupported) { LIBRARY_FUNC(jstring, opusGetVersion) { return env->NewStringUTF(opus_get_version_string()); } - -} diff --git a/TMessagesProj/jni/image.c b/TMessagesProj/jni/image.c index 2327ef9b5..00618d5b7 100644 --- a/TMessagesProj/jni/image.c +++ b/TMessagesProj/jni/image.c @@ -1,6 +1,9 @@ #include #include #include +#include +#include +#include #include #include #include @@ -438,6 +441,72 @@ static void fastBlur565(int32_t w, int32_t h, int32_t stride, uint8_t *pix, int3 free(rgb); } +JNIEXPORT int Java_org_telegram_messenger_Utilities_needInvert(JNIEnv *env, jclass class, jobject bitmap, jint unpin, jint width, jint height, jint stride) { + if (!bitmap) { + return 0; + } + + if (!width || !height || !stride || stride != width * 4 || width * height > 150 * 150) { + return 0; + } + + void *pixels = 0; + if (AndroidBitmap_lockPixels(env, bitmap, &pixels) < 0) { + return 0; + } + if (pixels == NULL) { + return 0; + } + uint8_t *pix = (uint8_t *) pixels; + + int32_t hasAlpha = 0; + float matching = 0; + float total = 0; + for (int32_t y = 0; y < height; y++) { + for (int32_t x = 0; x < width; x++) { + int32_t index = y * stride + x * 4; + uint8_t a = pix[index + 3]; + float alpha = a / 255.0f; + + uint8_t r = (uint8_t) (pix[index] * alpha); + uint8_t g = (uint8_t) (pix[index + 1] * alpha); + uint8_t b = (uint8_t) (pix[index + 2] * alpha); + + uint8_t cmax = (r > g) ? r : g; + if (b > cmax) { + cmax = b; + } + uint8_t cmin = (r < g) ? r : g; + if (b < cmin) { + cmin = b; + } + + float saturation; + float brightness = ((float) cmax) / 255.0f; + if (cmax != 0) { + saturation = ((float) (cmax - cmin)) / ((float) cmax); + } else { + saturation = 0; + } + + if (alpha < 1.0) { + hasAlpha = 1; + } + + if (alpha > 0.0) { + total += 1; + if (saturation < 0.1f && brightness < 0.25f) { + matching += 1; + } + } + } + } + if (unpin) { + AndroidBitmap_unlockPixels(env, bitmap); + } + return hasAlpha && matching / total > 0.85; +} + JNIEXPORT void Java_org_telegram_messenger_Utilities_blurBitmap(JNIEnv *env, jclass class, jobject bitmap, jint radius, jint unpin, jint width, jint height, jint stride) { if (!bitmap) { return; @@ -638,3 +707,230 @@ JNIEXPORT jboolean Java_org_telegram_messenger_Utilities_loadWebpImage(JNIEnv *e return 1; } + +#define SQUARE(i) ((i)*(i)) +#define MAX(a, b) (a>b ? a : b) +#define MIN(a, b) (a>b ? b : a) +inline static void zeroClearInt(int* p, size_t count) { memset(p, 0, sizeof(int) * count); } + +JNIEXPORT void Java_org_telegram_messenger_Utilities_stackBlurBitmap(JNIEnv* env, jclass class, jobject bitmap, jint radius){ + if(radius<1) return; + + AndroidBitmapInfo info; + if(AndroidBitmap_getInfo(env, bitmap, &info)!=ANDROID_BITMAP_RESULT_SUCCESS) + return; + if(info.format!=ANDROID_BITMAP_FORMAT_RGBA_8888) + return; + + int w=info.width; + int h=info.height; + + unsigned char* pixels=0; + AndroidBitmap_lockPixels(env, bitmap, (void **) &pixels); + if(!pixels){ + return; + } + // Constants + //const int radius = (int)inradius; // Transform unsigned into signed for further operations + const int wm = w - 1; + const int hm = h - 1; + const int wh = w*h; + const int div = radius + radius + 1; + const int r1 = radius + 1; + const int divsum = SQUARE((div+1)>>1); + + // Small buffers + int stack[div*3]; + zeroClearInt(stack, div*3); + + int vmin[MAX(w,h)]; + zeroClearInt(vmin, MAX(w,h)); + + // Large buffers + int *r = malloc(wh*sizeof(int)); + int *g = malloc(wh*sizeof(int)); + int *b = malloc(wh*sizeof(int)); + zeroClearInt(r, wh); + zeroClearInt(g, wh); + zeroClearInt(b, wh); + + const size_t dvcount = 256 * divsum; + int *dv = malloc(sizeof(int) * dvcount); + int i; + for (i = 0;(size_t)i < dvcount;i++) { + dv[i] = (i / divsum); + } + + // Variables + int x, y; + int *sir; + int routsum,goutsum,boutsum; + int rinsum,ginsum,binsum; + int rsum, gsum, bsum, p, yp; + int stackpointer; + int stackstart; + int rbs; + + int yw = 0, yi = 0; + for (y = 0;y < h;y++) { + rinsum = ginsum = binsum = routsum = goutsum = boutsum = rsum = gsum = bsum = 0; + + for(i = -radius;i <= radius;i++){ + sir = &stack[(i + radius)*3]; + int offset = (yi + MIN(wm, MAX(i, 0)))*4; + sir[0] = pixels[offset]; + sir[1] = pixels[offset + 1]; + sir[2] = pixels[offset + 2]; + + rbs = r1 - abs(i); + rsum += sir[0] * rbs; + gsum += sir[1] * rbs; + bsum += sir[2] * rbs; + if (i > 0){ + rinsum += sir[0]; + ginsum += sir[1]; + binsum += sir[2]; + } else { + routsum += sir[0]; + goutsum += sir[1]; + boutsum += sir[2]; + } + } + stackpointer = radius; + + for (x = 0;x < w;x++) { + r[yi] = dv[rsum]; + g[yi] = dv[gsum]; + b[yi] = dv[bsum]; + + rsum -= routsum; + gsum -= goutsum; + bsum -= boutsum; + + stackstart = stackpointer - radius + div; + sir = &stack[(stackstart % div)*3]; + + routsum -= sir[0]; + goutsum -= sir[1]; + boutsum -= sir[2]; + + if (y == 0){ + vmin[x] = MIN(x + radius + 1, wm); + } + + int offset = (yw + vmin[x])*4; + sir[0] = pixels[offset]; + sir[1] = pixels[offset + 1]; + sir[2] = pixels[offset + 2]; + rinsum += sir[0]; + ginsum += sir[1]; + binsum += sir[2]; + + rsum += rinsum; + gsum += ginsum; + bsum += binsum; + + stackpointer = (stackpointer + 1) % div; + sir = &stack[(stackpointer % div)*3]; + + routsum += sir[0]; + goutsum += sir[1]; + boutsum += sir[2]; + + rinsum -= sir[0]; + ginsum -= sir[1]; + binsum -= sir[2]; + + yi++; + } + yw += w; + } + + for (x = 0;x < w;x++) { + rinsum = ginsum = binsum = routsum = goutsum = boutsum = rsum = gsum = bsum = 0; + yp = -radius*w; + for(i = -radius;i <= radius;i++) { + yi = MAX(0, yp) + x; + + sir = &stack[(i + radius)*3]; + + sir[0] = r[yi]; + sir[1] = g[yi]; + sir[2] = b[yi]; + + rbs = r1 - abs(i); + + rsum += r[yi]*rbs; + gsum += g[yi]*rbs; + bsum += b[yi]*rbs; + + if (i > 0) { + rinsum += sir[0]; + ginsum += sir[1]; + binsum += sir[2]; + } else { + routsum += sir[0]; + goutsum += sir[1]; + boutsum += sir[2]; + } + + if (i < hm) { + yp += w; + } + } + yi = x; + stackpointer = radius; + for (y = 0;y < h;y++) { + int offset = yi*4; + pixels[offset] = dv[rsum]; + pixels[offset + 1] = dv[gsum]; + pixels[offset + 2] = dv[bsum]; + rsum -= routsum; + gsum -= goutsum; + bsum -= boutsum; + + stackstart = stackpointer - radius + div; + sir = &stack[(stackstart % div)*3]; + + routsum -= sir[0]; + goutsum -= sir[1]; + boutsum -= sir[2]; + + if (x == 0){ + vmin[y] = MIN(y + r1, hm)*w; + } + p = x + vmin[y]; + + sir[0] = r[p]; + sir[1] = g[p]; + sir[2] = b[p]; + + rinsum += sir[0]; + ginsum += sir[1]; + binsum += sir[2]; + + rsum += rinsum; + gsum += ginsum; + bsum += binsum; + + stackpointer = (stackpointer + 1) % div; + sir = &stack[stackpointer*3]; + + routsum += sir[0]; + goutsum += sir[1]; + boutsum += sir[2]; + + rinsum -= sir[0]; + ginsum -= sir[1]; + binsum -= sir[2]; + + yi += w; + } + } + + free(r); + free(g); + free(b); + free(dv); + AndroidBitmap_unlockPixels(env, bitmap); +} \ No newline at end of file diff --git a/TMessagesProj/jni/jni.c b/TMessagesProj/jni/jni.c index 83c776350..81144c3a0 100644 --- a/TMessagesProj/jni/jni.c +++ b/TMessagesProj/jni/jni.c @@ -10,6 +10,7 @@ #include #include #include "image.h" +#include "libtgvoip/client/android/tg_voip_jni.h" int registerNativeTgNetFunctions(JavaVM *vm, JNIEnv *env); @@ -28,6 +29,8 @@ jint JNI_OnLoad(JavaVM *vm, void *reserved) { if (registerNativeTgNetFunctions(vm, env) != JNI_TRUE) { return -1; } + + tgvoipRegisterNatives(env); return JNI_VERSION_1_6; } diff --git a/TMessagesProj/jni/libtgvoip b/TMessagesProj/jni/libtgvoip index bfa1e6ab7..564eada17 160000 --- a/TMessagesProj/jni/libtgvoip +++ b/TMessagesProj/jni/libtgvoip @@ -1 +1 @@ -Subproject commit bfa1e6ab76a467c6c6bff7eabb7c213acc7a1b34 +Subproject commit 564eada171b3fb97a9740c30899d617b98fe1714 diff --git a/TMessagesProj/jni/opus/celt/arch.h b/TMessagesProj/jni/opus/celt/arch.h index 9eb37d8f7..c627a744b 100644 --- a/TMessagesProj/jni/opus/celt/arch.h +++ b/TMessagesProj/jni/opus/celt/arch.h @@ -56,23 +56,40 @@ #define CELT_SIG_SCALE 32768.f -#define celt_fatal(str) _celt_fatal(str, __FILE__, __LINE__); -#ifdef ENABLE_ASSERTIONS +#define CELT_FATAL(str) celt_fatal(str, __FILE__, __LINE__); + +#if defined(ENABLE_ASSERTIONS) || defined(ENABLE_HARDENING) +#ifdef __GNUC__ +__attribute__((noreturn)) +#endif +void celt_fatal(const char *str, const char *file, int line); + +#if defined(CELT_C) && !defined(OVERRIDE_celt_fatal) #include #include #ifdef __GNUC__ __attribute__((noreturn)) #endif -static OPUS_INLINE void _celt_fatal(const char *str, const char *file, int line) +void celt_fatal(const char *str, const char *file, int line) { fprintf (stderr, "Fatal (internal) error in %s, line %d: %s\n", file, line, str); abort(); } -#define celt_assert(cond) {if (!(cond)) {celt_fatal("assertion failed: " #cond);}} -#define celt_assert2(cond, message) {if (!(cond)) {celt_fatal("assertion failed: " #cond "\n" message);}} +#endif + +#define celt_assert(cond) {if (!(cond)) {CELT_FATAL("assertion failed: " #cond);}} +#define celt_assert2(cond, message) {if (!(cond)) {CELT_FATAL("assertion failed: " #cond "\n" message);}} +#define MUST_SUCCEED(call) celt_assert((call) == OPUS_OK) #else #define celt_assert(cond) #define celt_assert2(cond, message) +#define MUST_SUCCEED(call) do {if((call) != OPUS_OK) {RESTORE_STACK; return OPUS_INTERNAL_ERROR;} } while (0) +#endif + +#if defined(ENABLE_ASSERTIONS) +#define celt_sig_assert(cond) {if (!(cond)) {CELT_FATAL("signal assertion failed: " #cond);}} +#else +#define celt_sig_assert(cond) #endif #define IMUL32(a,b) ((a)*(b)) @@ -101,11 +118,14 @@ static OPUS_INLINE void _celt_fatal(const char *str, const char *file, int line) typedef opus_int16 opus_val16; typedef opus_int32 opus_val32; +typedef opus_int64 opus_val64; typedef opus_val32 celt_sig; typedef opus_val16 celt_norm; typedef opus_val32 celt_ener; +#define celt_isnan(x) 0 + #define Q15ONE 32767 #define SIG_SHIFT 12 @@ -158,6 +178,7 @@ static OPUS_INLINE opus_int16 SAT16(opus_int32 x) { typedef float opus_val16; typedef float opus_val32; +typedef float opus_val64; typedef float celt_sig; typedef float celt_norm; @@ -258,9 +279,9 @@ static OPUS_INLINE int celt_isnan(float x) #ifndef GLOBAL_STACK_SIZE #ifdef FIXED_POINT -#define GLOBAL_STACK_SIZE 100000 +#define GLOBAL_STACK_SIZE 120000 #else -#define GLOBAL_STACK_SIZE 100000 +#define GLOBAL_STACK_SIZE 120000 #endif #endif diff --git a/TMessagesProj/jni/opus/celt/arm/arm2gnu.pl b/TMessagesProj/jni/opus/celt/arm/arm2gnu.pl index 6c922ac81..a2895f744 100755 --- a/TMessagesProj/jni/opus/celt/arm/arm2gnu.pl +++ b/TMessagesProj/jni/opus/celt/arm/arm2gnu.pl @@ -164,11 +164,11 @@ while (<>) { $prefix = ""; if ($proc) { - $prefix = $prefix.sprintf("\t.type\t%s, %%function; ",$proc) unless ($apple); + $prefix = $prefix.sprintf("\t.type\t%s, %%function", $proc) unless ($apple); # Make sure we $prefix isn't empty here (for the $apple case). # We handle mangling the label here, make sure it doesn't match # the label handling below (if $prefix would be empty). - $prefix = "; "; + $prefix = $prefix."; "; push(@proc_stack, $proc); s/^[A-Za-z_\.]\w+/$symprefix$&:/; } diff --git a/TMessagesProj/jni/opus/celt/arm/arm_celt_map.c b/TMessagesProj/jni/opus/celt/arm/arm_celt_map.c index 4d4d069a8..ca988b66f 100644 --- a/TMessagesProj/jni/opus/celt/arm/arm_celt_map.c +++ b/TMessagesProj/jni/opus/celt/arm/arm_celt_map.c @@ -35,12 +35,29 @@ #if defined(OPUS_HAVE_RTCD) +# if defined(OPUS_ARM_MAY_HAVE_NEON_INTR) && !defined(OPUS_ARM_PRESUME_NEON_INTR) +opus_val32 (*const CELT_INNER_PROD_IMPL[OPUS_ARCHMASK+1])(const opus_val16 *x, const opus_val16 *y, int N) = { + celt_inner_prod_c, /* ARMv4 */ + celt_inner_prod_c, /* EDSP */ + celt_inner_prod_c, /* Media */ + celt_inner_prod_neon /* NEON */ +}; + +void (*const DUAL_INNER_PROD_IMPL[OPUS_ARCHMASK+1])(const opus_val16 *x, const opus_val16 *y01, const opus_val16 *y02, + int N, opus_val32 *xy1, opus_val32 *xy2) = { + dual_inner_prod_c, /* ARMv4 */ + dual_inner_prod_c, /* EDSP */ + dual_inner_prod_c, /* Media */ + dual_inner_prod_neon /* NEON */ +}; +# endif + # if defined(FIXED_POINT) # if ((defined(OPUS_ARM_MAY_HAVE_NEON) && !defined(OPUS_ARM_PRESUME_NEON)) || \ (defined(OPUS_ARM_MAY_HAVE_MEDIA) && !defined(OPUS_ARM_PRESUME_MEDIA)) || \ (defined(OPUS_ARM_MAY_HAVE_EDSP) && !defined(OPUS_ARM_PRESUME_EDSP))) opus_val32 (*const CELT_PITCH_XCORR_IMPL[OPUS_ARCHMASK+1])(const opus_val16 *, - const opus_val16 *, opus_val32 *, int , int) = { + const opus_val16 *, opus_val32 *, int, int, int) = { celt_pitch_xcorr_c, /* ARMv4 */ MAY_HAVE_EDSP(celt_pitch_xcorr), /* EDSP */ MAY_HAVE_MEDIA(celt_pitch_xcorr), /* Media */ @@ -51,7 +68,7 @@ opus_val32 (*const CELT_PITCH_XCORR_IMPL[OPUS_ARCHMASK+1])(const opus_val16 *, # else /* !FIXED_POINT */ # if defined(OPUS_ARM_MAY_HAVE_NEON_INTR) && !defined(OPUS_ARM_PRESUME_NEON_INTR) void (*const CELT_PITCH_XCORR_IMPL[OPUS_ARCHMASK+1])(const opus_val16 *, - const opus_val16 *, opus_val32 *, int, int) = { + const opus_val16 *, opus_val32 *, int, int, int) = { celt_pitch_xcorr_c, /* ARMv4 */ celt_pitch_xcorr_c, /* EDSP */ celt_pitch_xcorr_c, /* Media */ diff --git a/TMessagesProj/jni/opus/celt/arm/celt_ne10_fft.c b/TMessagesProj/jni/opus/celt/arm/celt_fft_ne10.c similarity index 99% rename from TMessagesProj/jni/opus/celt/arm/celt_ne10_fft.c rename to TMessagesProj/jni/opus/celt/arm/celt_fft_ne10.c index 42d96a711..ea5fd7808 100644 --- a/TMessagesProj/jni/opus/celt/arm/celt_ne10_fft.c +++ b/TMessagesProj/jni/opus/celt/arm/celt_fft_ne10.c @@ -1,7 +1,7 @@ /* Copyright (c) 2015 Xiph.Org Foundation Written by Viswanath Puttagunta */ /** - @file celt_ne10_fft.c + @file celt_fft_ne10.c @brief ARM Neon optimizations for fft using NE10 library */ @@ -36,7 +36,6 @@ #endif #endif -#include #include #include "os_support.h" #include "kiss_fft.h" diff --git a/TMessagesProj/jni/opus/celt/arm/celt_ne10_mdct.c b/TMessagesProj/jni/opus/celt/arm/celt_mdct_ne10.c similarity index 99% rename from TMessagesProj/jni/opus/celt/arm/celt_ne10_mdct.c rename to TMessagesProj/jni/opus/celt/arm/celt_mdct_ne10.c index 293c3efd7..3531d02d1 100644 --- a/TMessagesProj/jni/opus/celt/arm/celt_ne10_mdct.c +++ b/TMessagesProj/jni/opus/celt/arm/celt_mdct_ne10.c @@ -1,7 +1,7 @@ /* Copyright (c) 2015 Xiph.Org Foundation Written by Viswanath Puttagunta */ /** - @file celt_ne10_mdct.c + @file celt_mdct_ne10.c @brief ARM Neon optimizations for mdct using NE10 library */ diff --git a/TMessagesProj/jni/opus/celt/arm/celt_neon_intr.c b/TMessagesProj/jni/opus/celt/arm/celt_neon_intr.c index 47bbe3dc2..effda769d 100644 --- a/TMessagesProj/jni/opus/celt/arm/celt_neon_intr.c +++ b/TMessagesProj/jni/opus/celt/arm/celt_neon_intr.c @@ -191,121 +191,21 @@ static void xcorr_kernel_neon_float(const float32_t *x, const float32_t *y, vst1q_f32(sum, SUMM); } -/* - * Function: xcorr_kernel_neon_float_process1 - * --------------------------------- - * Computes single correlation values and stores in *sum - */ -static void xcorr_kernel_neon_float_process1(const float32_t *x, - const float32_t *y, float32_t *sum, int len) { - float32x4_t XX[4]; - float32x4_t YY[4]; - float32x2_t XX_2; - float32x2_t YY_2; - float32x4_t SUMM; - float32x2_t SUMM_2[2]; - const float32_t *xi = x; - const float32_t *yi = y; - - SUMM = vdupq_n_f32(0); - - /* Work on 16 values per iteration */ - while (len >= 16) { - XX[0] = vld1q_f32(xi); - xi += 4; - XX[1] = vld1q_f32(xi); - xi += 4; - XX[2] = vld1q_f32(xi); - xi += 4; - XX[3] = vld1q_f32(xi); - xi += 4; - - YY[0] = vld1q_f32(yi); - yi += 4; - YY[1] = vld1q_f32(yi); - yi += 4; - YY[2] = vld1q_f32(yi); - yi += 4; - YY[3] = vld1q_f32(yi); - yi += 4; - - SUMM = vmlaq_f32(SUMM, YY[0], XX[0]); - SUMM = vmlaq_f32(SUMM, YY[1], XX[1]); - SUMM = vmlaq_f32(SUMM, YY[2], XX[2]); - SUMM = vmlaq_f32(SUMM, YY[3], XX[3]); - len -= 16; - } - - /* Work on 8 values */ - if (len >= 8) { - XX[0] = vld1q_f32(xi); - xi += 4; - XX[1] = vld1q_f32(xi); - xi += 4; - - YY[0] = vld1q_f32(yi); - yi += 4; - YY[1] = vld1q_f32(yi); - yi += 4; - - SUMM = vmlaq_f32(SUMM, YY[0], XX[0]); - SUMM = vmlaq_f32(SUMM, YY[1], XX[1]); - len -= 8; - } - - /* Work on 4 values */ - if (len >= 4) { - XX[0] = vld1q_f32(xi); - xi += 4; - YY[0] = vld1q_f32(yi); - yi += 4; - SUMM = vmlaq_f32(SUMM, YY[0], XX[0]); - len -= 4; - } - - /* Start accumulating results */ - SUMM_2[0] = vget_low_f32(SUMM); - if (len >= 2) { - /* While at it, consume 2 more values if available */ - XX_2 = vld1_f32(xi); - xi += 2; - YY_2 = vld1_f32(yi); - yi += 2; - SUMM_2[0] = vmla_f32(SUMM_2[0], YY_2, XX_2); - len -= 2; - } - SUMM_2[1] = vget_high_f32(SUMM); - SUMM_2[0] = vadd_f32(SUMM_2[0], SUMM_2[1]); - SUMM_2[0] = vpadd_f32(SUMM_2[0], SUMM_2[0]); - /* Ok, now we have result accumulated in SUMM_2[0].0 */ - - if (len > 0) { - /* Case when you have one value left */ - XX_2 = vld1_dup_f32(xi); - YY_2 = vld1_dup_f32(yi); - SUMM_2[0] = vmla_f32(SUMM_2[0], XX_2, YY_2); - } - - vst1_lane_f32(sum, SUMM_2[0], 0); -} - void celt_pitch_xcorr_float_neon(const opus_val16 *_x, const opus_val16 *_y, - opus_val32 *xcorr, int len, int max_pitch) { + opus_val32 *xcorr, int len, int max_pitch, int arch) { int i; + (void)arch; celt_assert(max_pitch > 0); - celt_assert((((unsigned char *)_x-(unsigned char *)NULL)&3)==0); + celt_sig_assert((((unsigned char *)_x-(unsigned char *)NULL)&3)==0); for (i = 0; i < (max_pitch-3); i += 4) { xcorr_kernel_neon_float((const float32_t *)_x, (const float32_t *)_y+i, (float32_t *)xcorr+i, len); } - /* In case max_pitch isn't multiple of 4 - * compute single correlation value per iteration - */ + /* In case max_pitch isn't a multiple of 4, do non-unrolled version. */ for (; i < max_pitch; i++) { - xcorr_kernel_neon_float_process1((const float32_t *)_x, - (const float32_t *)_y+i, (float32_t *)xcorr+i, len); + xcorr[i] = celt_inner_prod_neon(_x, _y+i, len); } } #endif diff --git a/TMessagesProj/jni/opus/celt/arm/celt_pitch_xcorr_arm-gnu.S b/TMessagesProj/jni/opus/celt/arm/celt_pitch_xcorr_arm-gnu.S index 5b2ee55a1..10668e54a 100644 --- a/TMessagesProj/jni/opus/celt/arm/celt_pitch_xcorr_arm-gnu.S +++ b/TMessagesProj/jni/opus/celt/arm/celt_pitch_xcorr_arm-gnu.S @@ -44,7 +44,7 @@ .if OPUS_ARM_MAY_HAVE_NEON @ Compute sum[k]=sum(x[j]*y[j+k],j=0...len-1), k=0...3 -; xcorr_kernel_neon: @ PROC + .type xcorr_kernel_neon, %function; xcorr_kernel_neon: @ PROC xcorr_kernel_neon_start: @ input: @ r3 = int len @@ -156,8 +156,8 @@ xcorr_kernel_neon_process1: .size xcorr_kernel_neon, .-xcorr_kernel_neon @ ENDP @ opus_val32 celt_pitch_xcorr_neon(opus_val16 *_x, opus_val16 *_y, -@ opus_val32 *xcorr, int len, int max_pitch) -; celt_pitch_xcorr_neon: @ PROC +@ opus_val32 *xcorr, int len, int max_pitch, int arch) + .type celt_pitch_xcorr_neon, %function; celt_pitch_xcorr_neon: @ PROC @ input: @ r0 = opus_val16 *_x @ r1 = opus_val16 *_y @@ -171,6 +171,8 @@ xcorr_kernel_neon_process1: @ r6 = int max_pitch @ r12 = int j @ q15 = int maxcorr[4] (q15 is not used by xcorr_kernel_neon()) + @ ignored: + @ int arch STMFD sp!, {r4-r6, lr} LDR r6, [sp, #16] VMOV.S32 q15, #1 @@ -260,7 +262,7 @@ celt_pitch_xcorr_neon_done: @ This will get used on ARMv7 devices without NEON, so it has been optimized @ to take advantage of dual-issuing where possible. -; xcorr_kernel_edsp: @ PROC + .type xcorr_kernel_edsp, %function; xcorr_kernel_edsp: @ PROC xcorr_kernel_edsp_start: @ input: @ r3 = int len @@ -344,7 +346,7 @@ xcorr_kernel_edsp_done: LDMFD sp!, {r2,r4,r5,pc} .size xcorr_kernel_edsp, .-xcorr_kernel_edsp @ ENDP -; celt_pitch_xcorr_edsp: @ PROC + .type celt_pitch_xcorr_edsp, %function; celt_pitch_xcorr_edsp: @ PROC @ input: @ r0 = opus_val16 *_x (must be 32-bit aligned) @ r1 = opus_val16 *_y (only needs to be 16-bit aligned) @@ -361,6 +363,8 @@ xcorr_kernel_edsp_done: @ r9 = opus_val32 sum3 @ r1 = int max_pitch @ r12 = int j + @ ignored: + @ int arch STMFD sp!, {r4-r11, lr} MOV r5, r1 LDR r1, [sp, #36] diff --git a/TMessagesProj/jni/opus/celt/arm/celt_pitch_xcorr_arm.s b/TMessagesProj/jni/opus/celt/arm/celt_pitch_xcorr_arm.s index f96e0a88b..6e873afc3 100644 --- a/TMessagesProj/jni/opus/celt/arm/celt_pitch_xcorr_arm.s +++ b/TMessagesProj/jni/opus/celt/arm/celt_pitch_xcorr_arm.s @@ -153,7 +153,7 @@ xcorr_kernel_neon_process1 ENDP ; opus_val32 celt_pitch_xcorr_neon(opus_val16 *_x, opus_val16 *_y, -; opus_val32 *xcorr, int len, int max_pitch) +; opus_val32 *xcorr, int len, int max_pitch, int arch) celt_pitch_xcorr_neon PROC ; input: ; r0 = opus_val16 *_x @@ -168,6 +168,8 @@ celt_pitch_xcorr_neon PROC ; r6 = int max_pitch ; r12 = int j ; q15 = int maxcorr[4] (q15 is not used by xcorr_kernel_neon()) + ; ignored: + ; int arch STMFD sp!, {r4-r6, lr} LDR r6, [sp, #16] VMOV.S32 q15, #1 @@ -358,6 +360,8 @@ celt_pitch_xcorr_edsp PROC ; r9 = opus_val32 sum3 ; r1 = int max_pitch ; r12 = int j + ; ignored: + ; int arch STMFD sp!, {r4-r11, lr} MOV r5, r1 LDR r1, [sp, #36] diff --git a/TMessagesProj/jni/opus/celt/arm/fft_arm.h b/TMessagesProj/jni/opus/celt/arm/fft_arm.h index 0cb55d8e2..0b78175f3 100644 --- a/TMessagesProj/jni/opus/celt/arm/fft_arm.h +++ b/TMessagesProj/jni/opus/celt/arm/fft_arm.h @@ -34,7 +34,6 @@ #if !defined(FFT_ARM_H) #define FFT_ARM_H -#include "config.h" #include "kiss_fft.h" #if defined(HAVE_ARM_NE10) diff --git a/TMessagesProj/jni/opus/celt/arm/fixed_armv4.h b/TMessagesProj/jni/opus/celt/arm/fixed_armv4.h index efb3b1896..d84888a77 100644 --- a/TMessagesProj/jni/opus/celt/arm/fixed_armv4.h +++ b/TMessagesProj/jni/opus/celt/arm/fixed_armv4.h @@ -37,7 +37,7 @@ static OPUS_INLINE opus_val32 MULT16_32_Q16_armv4(opus_val16 a, opus_val32 b) "#MULT16_32_Q16\n\t" "smull %0, %1, %2, %3\n\t" : "=&r"(rd_lo), "=&r"(rd_hi) - : "%r"(b),"r"(a<<16) + : "%r"(b),"r"(SHL32(a,16)) ); return rd_hi; } @@ -54,10 +54,10 @@ static OPUS_INLINE opus_val32 MULT16_32_Q15_armv4(opus_val16 a, opus_val32 b) "#MULT16_32_Q15\n\t" "smull %0, %1, %2, %3\n\t" : "=&r"(rd_lo), "=&r"(rd_hi) - : "%r"(b), "r"(a<<16) + : "%r"(b), "r"(SHL32(a,16)) ); /*We intentionally don't OR in the high bit of rd_lo for speed.*/ - return rd_hi<<1; + return SHL32(rd_hi,1); } #define MULT16_32_Q15(a, b) (MULT16_32_Q15_armv4(a, b)) diff --git a/TMessagesProj/jni/opus/celt/arm/fixed_armv5e.h b/TMessagesProj/jni/opus/celt/arm/fixed_armv5e.h index 36a632110..6bf73cbac 100644 --- a/TMessagesProj/jni/opus/celt/arm/fixed_armv5e.h +++ b/TMessagesProj/jni/opus/celt/arm/fixed_armv5e.h @@ -59,7 +59,7 @@ static OPUS_INLINE opus_val32 MULT16_32_Q15_armv5e(opus_val16 a, opus_val32 b) : "=r"(res) : "r"(b), "r"(a) ); - return res<<1; + return SHL32(res,1); } #define MULT16_32_Q15(a, b) (MULT16_32_Q15_armv5e(a, b)) @@ -76,7 +76,7 @@ static OPUS_INLINE opus_val32 MAC16_32_Q15_armv5e(opus_val32 c, opus_val16 a, "#MAC16_32_Q15\n\t" "smlawb %0, %1, %2, %3;\n" : "=r"(res) - : "r"(b<<1), "r"(a), "r"(c) + : "r"(SHL32(b,1)), "r"(a), "r"(c) ); return res; } diff --git a/TMessagesProj/jni/opus/celt/arm/mdct_arm.h b/TMessagesProj/jni/opus/celt/arm/mdct_arm.h index 49cbb4457..14200bac4 100644 --- a/TMessagesProj/jni/opus/celt/arm/mdct_arm.h +++ b/TMessagesProj/jni/opus/celt/arm/mdct_arm.h @@ -33,7 +33,6 @@ #if !defined(MDCT_ARM_H) #define MDCT_ARM_H -#include "config.h" #include "mdct.h" #if defined(HAVE_ARM_NE10) diff --git a/TMessagesProj/jni/opus/celt/arm/pitch_arm.h b/TMessagesProj/jni/opus/celt/arm/pitch_arm.h index 14331169e..bed8b04ea 100644 --- a/TMessagesProj/jni/opus/celt/arm/pitch_arm.h +++ b/TMessagesProj/jni/opus/celt/arm/pitch_arm.h @@ -30,11 +30,47 @@ # include "armcpu.h" +# if defined(OPUS_ARM_MAY_HAVE_NEON_INTR) +opus_val32 celt_inner_prod_neon(const opus_val16 *x, const opus_val16 *y, int N); +void dual_inner_prod_neon(const opus_val16 *x, const opus_val16 *y01, + const opus_val16 *y02, int N, opus_val32 *xy1, opus_val32 *xy2); + +# if !defined(OPUS_HAVE_RTCD) && defined(OPUS_ARM_PRESUME_NEON) +# define OVERRIDE_CELT_INNER_PROD (1) +# define OVERRIDE_DUAL_INNER_PROD (1) +# define celt_inner_prod(x, y, N, arch) ((void)(arch), PRESUME_NEON(celt_inner_prod)(x, y, N)) +# define dual_inner_prod(x, y01, y02, N, xy1, xy2, arch) ((void)(arch), PRESUME_NEON(dual_inner_prod)(x, y01, y02, N, xy1, xy2)) +# endif +# endif + +# if !defined(OVERRIDE_CELT_INNER_PROD) +# if defined(OPUS_HAVE_RTCD) && (defined(OPUS_ARM_MAY_HAVE_NEON_INTR) && !defined(OPUS_ARM_PRESUME_NEON_INTR)) +extern opus_val32 (*const CELT_INNER_PROD_IMPL[OPUS_ARCHMASK+1])(const opus_val16 *x, const opus_val16 *y, int N); +# define OVERRIDE_CELT_INNER_PROD (1) +# define celt_inner_prod(x, y, N, arch) ((*CELT_INNER_PROD_IMPL[(arch)&OPUS_ARCHMASK])(x, y, N)) +# elif defined(OPUS_ARM_PRESUME_NEON_INTR) +# define OVERRIDE_CELT_INNER_PROD (1) +# define celt_inner_prod(x, y, N, arch) ((void)(arch), celt_inner_prod_neon(x, y, N)) +# endif +# endif + +# if !defined(OVERRIDE_DUAL_INNER_PROD) +# if defined(OPUS_HAVE_RTCD) && (defined(OPUS_ARM_MAY_HAVE_NEON_INTR) && !defined(OPUS_ARM_PRESUME_NEON_INTR)) +extern void (*const DUAL_INNER_PROD_IMPL[OPUS_ARCHMASK+1])(const opus_val16 *x, + const opus_val16 *y01, const opus_val16 *y02, int N, opus_val32 *xy1, opus_val32 *xy2); +# define OVERRIDE_DUAL_INNER_PROD (1) +# define dual_inner_prod(x, y01, y02, N, xy1, xy2, arch) ((*DUAL_INNER_PROD_IMPL[(arch)&OPUS_ARCHMASK])(x, y01, y02, N, xy1, xy2)) +# elif defined(OPUS_ARM_PRESUME_NEON_INTR) +# define OVERRIDE_DUAL_INNER_PROD (1) +# define dual_inner_prod(x, y01, y02, N, xy1, xy2, arch) ((void)(arch), dual_inner_prod_neon(x, y01, y02, N, xy1, xy2)) +# endif +# endif + # if defined(FIXED_POINT) # if defined(OPUS_ARM_MAY_HAVE_NEON) opus_val32 celt_pitch_xcorr_neon(const opus_val16 *_x, const opus_val16 *_y, - opus_val32 *xcorr, int len, int max_pitch); + opus_val32 *xcorr, int len, int max_pitch, int arch); # endif # if defined(OPUS_ARM_MAY_HAVE_MEDIA) @@ -43,7 +79,7 @@ opus_val32 celt_pitch_xcorr_neon(const opus_val16 *_x, const opus_val16 *_y, # if defined(OPUS_ARM_MAY_HAVE_EDSP) opus_val32 celt_pitch_xcorr_edsp(const opus_val16 *_x, const opus_val16 *_y, - opus_val32 *xcorr, int len, int max_pitch); + opus_val32 *xcorr, int len, int max_pitch, int arch); # endif # if defined(OPUS_HAVE_RTCD) && \ @@ -52,18 +88,17 @@ opus_val32 celt_pitch_xcorr_edsp(const opus_val16 *_x, const opus_val16 *_y, (defined(OPUS_ARM_MAY_HAVE_EDSP) && !defined(OPUS_ARM_PRESUME_EDSP))) extern opus_val32 (*const CELT_PITCH_XCORR_IMPL[OPUS_ARCHMASK+1])(const opus_val16 *, - const opus_val16 *, opus_val32 *, int, int); + const opus_val16 *, opus_val32 *, int, int, int); # define OVERRIDE_PITCH_XCORR (1) # define celt_pitch_xcorr(_x, _y, xcorr, len, max_pitch, arch) \ ((*CELT_PITCH_XCORR_IMPL[(arch)&OPUS_ARCHMASK])(_x, _y, \ - xcorr, len, max_pitch)) + xcorr, len, max_pitch, arch)) # elif defined(OPUS_ARM_PRESUME_EDSP) || \ defined(OPUS_ARM_PRESUME_MEDIA) || \ defined(OPUS_ARM_PRESUME_NEON) # define OVERRIDE_PITCH_XCORR (1) -# define celt_pitch_xcorr(_x, _y, xcorr, len, max_pitch, arch) \ - ((void)(arch),PRESUME_NEON(celt_pitch_xcorr)(_x, _y, xcorr, len, max_pitch)) +# define celt_pitch_xcorr (PRESUME_NEON(celt_pitch_xcorr)) # endif @@ -99,25 +134,24 @@ extern void (*const XCORR_KERNEL_IMPL[OPUS_ARCHMASK + 1])( /* Float case */ #if defined(OPUS_ARM_MAY_HAVE_NEON_INTR) void celt_pitch_xcorr_float_neon(const opus_val16 *_x, const opus_val16 *_y, - opus_val32 *xcorr, int len, int max_pitch); + opus_val32 *xcorr, int len, int max_pitch, int arch); #endif # if defined(OPUS_HAVE_RTCD) && \ (defined(OPUS_ARM_MAY_HAVE_NEON_INTR) && !defined(OPUS_ARM_PRESUME_NEON_INTR)) extern void (*const CELT_PITCH_XCORR_IMPL[OPUS_ARCHMASK+1])(const opus_val16 *, - const opus_val16 *, opus_val32 *, int, int); + const opus_val16 *, opus_val32 *, int, int, int); # define OVERRIDE_PITCH_XCORR (1) # define celt_pitch_xcorr(_x, _y, xcorr, len, max_pitch, arch) \ ((*CELT_PITCH_XCORR_IMPL[(arch)&OPUS_ARCHMASK])(_x, _y, \ - xcorr, len, max_pitch)) + xcorr, len, max_pitch, arch)) # elif defined(OPUS_ARM_PRESUME_NEON_INTR) # define OVERRIDE_PITCH_XCORR (1) -# define celt_pitch_xcorr(_x, _y, xcorr, len, max_pitch, arch) \ - ((void)(arch),celt_pitch_xcorr_float_neon(_x, _y, xcorr, len, max_pitch)) +# define celt_pitch_xcorr celt_pitch_xcorr_float_neon # endif diff --git a/TMessagesProj/jni/opus/celt/arm/pitch_neon_intr.c b/TMessagesProj/jni/opus/celt/arm/pitch_neon_intr.c new file mode 100644 index 000000000..1ac38c433 --- /dev/null +++ b/TMessagesProj/jni/opus/celt/arm/pitch_neon_intr.c @@ -0,0 +1,290 @@ +/*********************************************************************** +Copyright (c) 2017 Google Inc. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +- Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. +- Neither the name of Internet Society, IETF or IETF Trust, nor the +names of specific contributors, may be used to endorse or promote +products derived from this software without specific prior written +permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +***********************************************************************/ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include "pitch.h" + +#ifdef FIXED_POINT + +opus_val32 celt_inner_prod_neon(const opus_val16 *x, const opus_val16 *y, int N) +{ + int i; + opus_val32 xy; + int16x8_t x_s16x8, y_s16x8; + int32x4_t xy_s32x4 = vdupq_n_s32(0); + int64x2_t xy_s64x2; + int64x1_t xy_s64x1; + + for (i = 0; i < N - 7; i += 8) { + x_s16x8 = vld1q_s16(&x[i]); + y_s16x8 = vld1q_s16(&y[i]); + xy_s32x4 = vmlal_s16(xy_s32x4, vget_low_s16 (x_s16x8), vget_low_s16 (y_s16x8)); + xy_s32x4 = vmlal_s16(xy_s32x4, vget_high_s16(x_s16x8), vget_high_s16(y_s16x8)); + } + + if (N - i >= 4) { + const int16x4_t x_s16x4 = vld1_s16(&x[i]); + const int16x4_t y_s16x4 = vld1_s16(&y[i]); + xy_s32x4 = vmlal_s16(xy_s32x4, x_s16x4, y_s16x4); + i += 4; + } + + xy_s64x2 = vpaddlq_s32(xy_s32x4); + xy_s64x1 = vadd_s64(vget_low_s64(xy_s64x2), vget_high_s64(xy_s64x2)); + xy = vget_lane_s32(vreinterpret_s32_s64(xy_s64x1), 0); + + for (; i < N; i++) { + xy = MAC16_16(xy, x[i], y[i]); + } + +#ifdef OPUS_CHECK_ASM + celt_assert(celt_inner_prod_c(x, y, N) == xy); +#endif + + return xy; +} + +void dual_inner_prod_neon(const opus_val16 *x, const opus_val16 *y01, const opus_val16 *y02, + int N, opus_val32 *xy1, opus_val32 *xy2) +{ + int i; + opus_val32 xy01, xy02; + int16x8_t x_s16x8, y01_s16x8, y02_s16x8; + int32x4_t xy01_s32x4 = vdupq_n_s32(0); + int32x4_t xy02_s32x4 = vdupq_n_s32(0); + int64x2_t xy01_s64x2, xy02_s64x2; + int64x1_t xy01_s64x1, xy02_s64x1; + + for (i = 0; i < N - 7; i += 8) { + x_s16x8 = vld1q_s16(&x[i]); + y01_s16x8 = vld1q_s16(&y01[i]); + y02_s16x8 = vld1q_s16(&y02[i]); + xy01_s32x4 = vmlal_s16(xy01_s32x4, vget_low_s16 (x_s16x8), vget_low_s16 (y01_s16x8)); + xy02_s32x4 = vmlal_s16(xy02_s32x4, vget_low_s16 (x_s16x8), vget_low_s16 (y02_s16x8)); + xy01_s32x4 = vmlal_s16(xy01_s32x4, vget_high_s16(x_s16x8), vget_high_s16(y01_s16x8)); + xy02_s32x4 = vmlal_s16(xy02_s32x4, vget_high_s16(x_s16x8), vget_high_s16(y02_s16x8)); + } + + if (N - i >= 4) { + const int16x4_t x_s16x4 = vld1_s16(&x[i]); + const int16x4_t y01_s16x4 = vld1_s16(&y01[i]); + const int16x4_t y02_s16x4 = vld1_s16(&y02[i]); + xy01_s32x4 = vmlal_s16(xy01_s32x4, x_s16x4, y01_s16x4); + xy02_s32x4 = vmlal_s16(xy02_s32x4, x_s16x4, y02_s16x4); + i += 4; + } + + xy01_s64x2 = vpaddlq_s32(xy01_s32x4); + xy02_s64x2 = vpaddlq_s32(xy02_s32x4); + xy01_s64x1 = vadd_s64(vget_low_s64(xy01_s64x2), vget_high_s64(xy01_s64x2)); + xy02_s64x1 = vadd_s64(vget_low_s64(xy02_s64x2), vget_high_s64(xy02_s64x2)); + xy01 = vget_lane_s32(vreinterpret_s32_s64(xy01_s64x1), 0); + xy02 = vget_lane_s32(vreinterpret_s32_s64(xy02_s64x1), 0); + + for (; i < N; i++) { + xy01 = MAC16_16(xy01, x[i], y01[i]); + xy02 = MAC16_16(xy02, x[i], y02[i]); + } + *xy1 = xy01; + *xy2 = xy02; + +#ifdef OPUS_CHECK_ASM + { + opus_val32 xy1_c, xy2_c; + dual_inner_prod_c(x, y01, y02, N, &xy1_c, &xy2_c); + celt_assert(xy1_c == *xy1); + celt_assert(xy2_c == *xy2); + } +#endif +} + +#else /* !FIXED_POINT */ + +/* ========================================================================== */ + +#ifdef OPUS_CHECK_ASM + +/* This part of code simulates floating-point NEON operations. */ + +/* celt_inner_prod_neon_float_c_simulation() simulates the floating-point */ +/* operations of celt_inner_prod_neon(), and both functions should have bit */ +/* exact output. */ +static opus_val32 celt_inner_prod_neon_float_c_simulation(const opus_val16 *x, const opus_val16 *y, int N) +{ + int i; + opus_val32 xy, xy0 = 0, xy1 = 0, xy2 = 0, xy3 = 0; + for (i = 0; i < N - 3; i += 4) { + xy0 = MAC16_16(xy0, x[i + 0], y[i + 0]); + xy1 = MAC16_16(xy1, x[i + 1], y[i + 1]); + xy2 = MAC16_16(xy2, x[i + 2], y[i + 2]); + xy3 = MAC16_16(xy3, x[i + 3], y[i + 3]); + } + xy0 += xy2; + xy1 += xy3; + xy = xy0 + xy1; + for (; i < N; i++) { + xy = MAC16_16(xy, x[i], y[i]); + } + return xy; +} + +/* dual_inner_prod_neon_float_c_simulation() simulates the floating-point */ +/* operations of dual_inner_prod_neon(), and both functions should have bit */ +/* exact output. */ +static void dual_inner_prod_neon_float_c_simulation(const opus_val16 *x, const opus_val16 *y01, const opus_val16 *y02, + int N, opus_val32 *xy1, opus_val32 *xy2) +{ + int i; + opus_val32 xy01, xy02, xy01_0 = 0, xy01_1 = 0, xy01_2 = 0, xy01_3 = 0, xy02_0 = 0, xy02_1 = 0, xy02_2 = 0, xy02_3 = 0; + for (i = 0; i < N - 3; i += 4) { + xy01_0 = MAC16_16(xy01_0, x[i + 0], y01[i + 0]); + xy01_1 = MAC16_16(xy01_1, x[i + 1], y01[i + 1]); + xy01_2 = MAC16_16(xy01_2, x[i + 2], y01[i + 2]); + xy01_3 = MAC16_16(xy01_3, x[i + 3], y01[i + 3]); + xy02_0 = MAC16_16(xy02_0, x[i + 0], y02[i + 0]); + xy02_1 = MAC16_16(xy02_1, x[i + 1], y02[i + 1]); + xy02_2 = MAC16_16(xy02_2, x[i + 2], y02[i + 2]); + xy02_3 = MAC16_16(xy02_3, x[i + 3], y02[i + 3]); + } + xy01_0 += xy01_2; + xy02_0 += xy02_2; + xy01_1 += xy01_3; + xy02_1 += xy02_3; + xy01 = xy01_0 + xy01_1; + xy02 = xy02_0 + xy02_1; + for (; i < N; i++) { + xy01 = MAC16_16(xy01, x[i], y01[i]); + xy02 = MAC16_16(xy02, x[i], y02[i]); + } + *xy1 = xy01; + *xy2 = xy02; +} + +#endif /* OPUS_CHECK_ASM */ + +/* ========================================================================== */ + +opus_val32 celt_inner_prod_neon(const opus_val16 *x, const opus_val16 *y, int N) +{ + int i; + opus_val32 xy; + float32x4_t xy_f32x4 = vdupq_n_f32(0); + float32x2_t xy_f32x2; + + for (i = 0; i < N - 7; i += 8) { + float32x4_t x_f32x4, y_f32x4; + x_f32x4 = vld1q_f32(&x[i]); + y_f32x4 = vld1q_f32(&y[i]); + xy_f32x4 = vmlaq_f32(xy_f32x4, x_f32x4, y_f32x4); + x_f32x4 = vld1q_f32(&x[i + 4]); + y_f32x4 = vld1q_f32(&y[i + 4]); + xy_f32x4 = vmlaq_f32(xy_f32x4, x_f32x4, y_f32x4); + } + + if (N - i >= 4) { + const float32x4_t x_f32x4 = vld1q_f32(&x[i]); + const float32x4_t y_f32x4 = vld1q_f32(&y[i]); + xy_f32x4 = vmlaq_f32(xy_f32x4, x_f32x4, y_f32x4); + i += 4; + } + + xy_f32x2 = vadd_f32(vget_low_f32(xy_f32x4), vget_high_f32(xy_f32x4)); + xy_f32x2 = vpadd_f32(xy_f32x2, xy_f32x2); + xy = vget_lane_f32(xy_f32x2, 0); + + for (; i < N; i++) { + xy = MAC16_16(xy, x[i], y[i]); + } + +#ifdef OPUS_CHECK_ASM + celt_assert(ABS32(celt_inner_prod_neon_float_c_simulation(x, y, N) - xy) <= VERY_SMALL); +#endif + + return xy; +} + +void dual_inner_prod_neon(const opus_val16 *x, const opus_val16 *y01, const opus_val16 *y02, + int N, opus_val32 *xy1, opus_val32 *xy2) +{ + int i; + opus_val32 xy01, xy02; + float32x4_t xy01_f32x4 = vdupq_n_f32(0); + float32x4_t xy02_f32x4 = vdupq_n_f32(0); + float32x2_t xy01_f32x2, xy02_f32x2; + + for (i = 0; i < N - 7; i += 8) { + float32x4_t x_f32x4, y01_f32x4, y02_f32x4; + x_f32x4 = vld1q_f32(&x[i]); + y01_f32x4 = vld1q_f32(&y01[i]); + y02_f32x4 = vld1q_f32(&y02[i]); + xy01_f32x4 = vmlaq_f32(xy01_f32x4, x_f32x4, y01_f32x4); + xy02_f32x4 = vmlaq_f32(xy02_f32x4, x_f32x4, y02_f32x4); + x_f32x4 = vld1q_f32(&x[i + 4]); + y01_f32x4 = vld1q_f32(&y01[i + 4]); + y02_f32x4 = vld1q_f32(&y02[i + 4]); + xy01_f32x4 = vmlaq_f32(xy01_f32x4, x_f32x4, y01_f32x4); + xy02_f32x4 = vmlaq_f32(xy02_f32x4, x_f32x4, y02_f32x4); + } + + if (N - i >= 4) { + const float32x4_t x_f32x4 = vld1q_f32(&x[i]); + const float32x4_t y01_f32x4 = vld1q_f32(&y01[i]); + const float32x4_t y02_f32x4 = vld1q_f32(&y02[i]); + xy01_f32x4 = vmlaq_f32(xy01_f32x4, x_f32x4, y01_f32x4); + xy02_f32x4 = vmlaq_f32(xy02_f32x4, x_f32x4, y02_f32x4); + i += 4; + } + + xy01_f32x2 = vadd_f32(vget_low_f32(xy01_f32x4), vget_high_f32(xy01_f32x4)); + xy02_f32x2 = vadd_f32(vget_low_f32(xy02_f32x4), vget_high_f32(xy02_f32x4)); + xy01_f32x2 = vpadd_f32(xy01_f32x2, xy01_f32x2); + xy02_f32x2 = vpadd_f32(xy02_f32x2, xy02_f32x2); + xy01 = vget_lane_f32(xy01_f32x2, 0); + xy02 = vget_lane_f32(xy02_f32x2, 0); + + for (; i < N; i++) { + xy01 = MAC16_16(xy01, x[i], y01[i]); + xy02 = MAC16_16(xy02, x[i], y02[i]); + } + *xy1 = xy01; + *xy2 = xy02; + +#ifdef OPUS_CHECK_ASM + { + opus_val32 xy1_c, xy2_c; + dual_inner_prod_neon_float_c_simulation(x, y01, y02, N, &xy1_c, &xy2_c); + celt_assert(ABS32(xy1_c - *xy1) <= VERY_SMALL); + celt_assert(ABS32(xy2_c - *xy2) <= VERY_SMALL); + } +#endif +} + +#endif /* FIXED_POINT */ diff --git a/TMessagesProj/jni/opus/celt/bands.c b/TMessagesProj/jni/opus/celt/bands.c index 05205554f..f7bb66a93 100644 --- a/TMessagesProj/jni/opus/celt/bands.c +++ b/TMessagesProj/jni/opus/celt/bands.c @@ -65,19 +65,19 @@ opus_uint32 celt_lcg_rand(opus_uint32 seed) /* This is a cos() approximation designed to be bit-exact on any platform. Bit exactness with this approximation is important because it has an impact on the bit allocation */ -static opus_int16 bitexact_cos(opus_int16 x) +opus_int16 bitexact_cos(opus_int16 x) { opus_int32 tmp; opus_int16 x2; tmp = (4096+((opus_int32)(x)*(x)))>>13; - celt_assert(tmp<=32767); + celt_sig_assert(tmp<=32767); x2 = tmp; x2 = (32767-x2) + FRAC_MUL16(x2, (-7651 + FRAC_MUL16(x2, (8277 + FRAC_MUL16(-626, x2))))); - celt_assert(x2<=32766); + celt_sig_assert(x2<=32766); return 1+x2; } -static int bitexact_log2tan(int isin,int icos) +int bitexact_log2tan(int isin,int icos) { int lc; int ls; @@ -92,10 +92,11 @@ static int bitexact_log2tan(int isin,int icos) #ifdef FIXED_POINT /* Compute the amplitude (sqrt energy) in each of the bands */ -void compute_band_energies(const CELTMode *m, const celt_sig *X, celt_ener *bandE, int end, int C, int LM) +void compute_band_energies(const CELTMode *m, const celt_sig *X, celt_ener *bandE, int end, int C, int LM, int arch) { int i, c, N; const opus_int16 *eBands = m->eBands; + (void)arch; N = m->shortMdctSize<eBands; @@ -164,7 +165,7 @@ void compute_band_energies(const CELTMode *m, const celt_sig *X, celt_ener *band for (i=0;inbEBands] = celt_sqrt(sum); /*printf ("%f ", bandE[i+c*m->nbEBands]);*/ } @@ -281,7 +282,7 @@ void anti_collapse(const CELTMode *m, celt_norm *X_, unsigned char *collapse_mas N0 = m->eBands[i+1]-m->eBands[i]; /* depth in 1/8 bits */ - celt_assert(pulses[i]>=0); + celt_sig_assert(pulses[i]>=0); depth = celt_udiv(1+pulses[i], (m->eBands[i+1]-m->eBands[i]))>>LM; #ifdef FIXED_POINT @@ -477,7 +478,7 @@ static void stereo_merge(celt_norm * OPUS_RESTRICT X, celt_norm * OPUS_RESTRICT /* Decide whether we should spread the pulses in the current frame */ int spreading_decision(const CELTMode *m, const celt_norm *X, int *average, int last_decision, int *hf_average, int *tapset_decision, int update_hf, - int end, int C, int M) + int end, int C, int M, const int *spread_weight) { int i, c, N0; int sum = 0, nbBands=0; @@ -518,8 +519,8 @@ int spreading_decision(const CELTMode *m, const celt_norm *X, int *average, if (i>m->nbEBands-4) hf_sum += celt_udiv(32*(tcount[1]+tcount[0]), N); tmp = (2*tcount[2] >= N) + (2*tcount[1] >= N) + (2*tcount[0] >= N); - sum += tmp*256; - nbBands++; + sum += tmp*spread_weight[i]; + nbBands+=spread_weight[i]; } } while (++c0); /* end has to be non-zero */ celt_assert(sum>=0); - sum = celt_udiv(sum, nbBands); + sum = celt_udiv((opus_int32)sum<<8, nbBands); /* Recursive averaging */ sum = (sum+*average)>>1; *average = sum; @@ -684,6 +685,7 @@ struct band_ctx { int arch; int theta_round; int disable_inv; + int avoid_split_noise; }; struct split_ctx { @@ -745,6 +747,20 @@ static void compute_theta(struct band_ctx *ctx, struct split_ctx *sctx, if (!stereo || ctx->theta_round == 0) { itheta = (itheta*(opus_int32)qn+8192)>>14; + if (!stereo && ctx->avoid_split_noise && itheta > 0 && itheta < qn) + { + /* Check if the selected value of theta will cause the bit allocation + to inject noise on one side. If so, make sure the energy of that side + is zero. */ + int unquantized = celt_udiv((opus_int32)itheta*16384, qn); + imid = bitexact_cos((opus_int16)unquantized); + iside = bitexact_cos((opus_int16)(16384-unquantized)); + delta = FRAC_MUL16((N-1)<<7,bitexact_log2tan(iside,imid)); + if (delta > *b) + itheta = qn; + else if (delta < -*b) + itheta = 0; + } } else { int down; /* Bias quantization towards itheta=0 and itheta=16384. */ @@ -1452,6 +1468,8 @@ void quant_all_bands(int encode, const CELTMode *m, int start, int end, ctx.disable_inv = disable_inv; ctx.resynth = resynth; ctx.theta_round = 0; + /* Avoid injecting noise in the first band on transients. */ + ctx.avoid_split_noise = B > 1; for (i=start;i 0); tell = ec_tell_frac(ec); /* Compute how many bits we want to allocate to this band */ @@ -1489,7 +1508,7 @@ void quant_all_bands(int encode, const CELTMode *m, int start, int end, b = 0; } -#ifdef ENABLE_UPDATE_DRAFT +#ifndef DISABLE_UPDATE_DRAFT if (resynth && (M*eBands[i]-N >= M*eBands[start] || i==start+1) && (update_lowband || lowband_offset==0)) lowband_offset = i; if (i == start+1) @@ -1523,7 +1542,7 @@ void quant_all_bands(int encode, const CELTMode *m, int start, int end, fold_start = lowband_offset; while(M*eBands[--fold_start] > effective_lowband+norm_offset); fold_end = lowband_offset-1; -#ifdef ENABLE_UPDATE_DRAFT +#ifndef DISABLE_UPDATE_DRAFT while(++fold_end < i && M*eBands[fold_end] < effective_lowband+norm_offset+N); #else while(M*eBands[++fold_end] < effective_lowband+norm_offset+N); @@ -1603,8 +1622,10 @@ void quant_all_bands(int encode, const CELTMode *m, int start, int end, ctx = ctx_save; OPUS_COPY(X, X_save, N); OPUS_COPY(Y, Y_save, N); +#ifndef DISABLE_UPDATE_DRAFT if (i == start+1) special_hybrid_folding(m, norm, norm2, start, M, dual_stereo); +#endif /* Encode and round up. */ ctx.theta_round = 1; x_cm = quant_band_stereo(&ctx, X, Y, N, b, B, @@ -1640,6 +1661,9 @@ void quant_all_bands(int encode, const CELTMode *m, int start, int end, /* Update the folding position only as long as we have 1 bit/sample depth. */ update_lowband = b>(N<nbEBands */ }; +#if defined(ENABLE_HARDENING) || defined(ENABLE_ASSERTIONS) +/* Make basic checks on the CELT state to ensure we don't end + up writing all over memory. */ +void validate_celt_decoder(CELTDecoder *st) +{ +#ifndef CUSTOM_MODES + celt_assert(st->mode == opus_custom_mode_create(48000, 960, NULL)); + celt_assert(st->overlap == 120); +#endif + celt_assert(st->channels == 1 || st->channels == 2); + celt_assert(st->stream_channels == 1 || st->stream_channels == 2); + celt_assert(st->downsample > 0); + celt_assert(st->start == 0 || st->start == 17); + celt_assert(st->start < st->end); + celt_assert(st->end <= 21); +#ifdef OPUS_ARCHMASK + celt_assert(st->arch >= 0); + celt_assert(st->arch <= OPUS_ARCHMASK); +#endif + celt_assert(st->last_pitch_index <= PLC_PITCH_LAG_MAX); + celt_assert(st->last_pitch_index >= PLC_PITCH_LAG_MIN || st->last_pitch_index == 0); + celt_assert(st->postfilter_period < MAX_PERIOD); + celt_assert(st->postfilter_period >= COMBFILTER_MINPERIOD || st->postfilter_period == 0); + celt_assert(st->postfilter_period_old < MAX_PERIOD); + celt_assert(st->postfilter_period_old >= COMBFILTER_MINPERIOD || st->postfilter_period_old == 0); + celt_assert(st->postfilter_tapset <= 2); + celt_assert(st->postfilter_tapset >= 0); + celt_assert(st->postfilter_tapset_old <= 2); + celt_assert(st->postfilter_tapset_old >= 0); +} +#endif + int celt_decoder_get_size(int channels) { const CELTMode *mode = opus_custom_mode_create(48000, 960, NULL); @@ -164,7 +204,7 @@ OPUS_CUSTOM_NOSTATIC int opus_custom_decoder_init(CELTDecoder *st, const CELTMod st->start = 0; st->end = st->mode->effEBands; st->signalling = 1; -#ifdef ENABLE_UPDATE_DRAFT +#ifndef DISABLE_UPDATE_DRAFT st->disable_inv = channels == 1; #else st->disable_inv = 0; @@ -437,14 +477,6 @@ static void tf_decode(int start, int end, int isTransient, int *tf_res, int LM, } } -/* The maximum pitch lag to allow in the pitch-based PLC. It's possible to save - CPU time in the PLC pitch search by making this smaller than MAX_PERIOD. The - current value corresponds to a pitch of 66.67 Hz. */ -#define PLC_PITCH_LAG_MAX (720) -/* The minimum pitch lag to allow in the pitch-based PLC. This corresponds to a - pitch of 480 Hz. */ -#define PLC_PITCH_LAG_MIN (100) - static int celt_plc_pitch_search(celt_sig *decode_mem[2], int C, int arch) { int pitch_index; @@ -554,12 +586,15 @@ static void celt_decode_lost(CELTDecoder * OPUS_RESTRICT st, int N, int LM) celt_synthesis(mode, X, out_syn, oldBandE, start, effEnd, C, C, 0, LM, st->downsample, 0, st->arch); } else { + int exc_length; /* Pitch-based PLC */ const opus_val16 *window; + opus_val16 *exc; opus_val16 fade = Q15ONE; int pitch_index; VARDECL(opus_val32, etmp); - VARDECL(opus_val16, exc); + VARDECL(opus_val16, _exc); + VARDECL(opus_val16, fir_tmp); if (loss_count == 0) { @@ -569,8 +604,14 @@ static void celt_decode_lost(CELTDecoder * OPUS_RESTRICT st, int N, int LM) fade = QCONST16(.8f,15); } + /* We want the excitation for 2 pitch periods in order to look for a + decaying signal, but we can't get more than MAX_PERIOD. */ + exc_length = IMIN(2*pitch_index, MAX_PERIOD); + ALLOC(etmp, overlap, opus_val32); - ALLOC(exc, MAX_PERIOD, opus_val16); + ALLOC(_exc, MAX_PERIOD+LPC_ORDER, opus_val16); + ALLOC(fir_tmp, exc_length, opus_val16); + exc = _exc+LPC_ORDER; window = mode->window; c=0; do { opus_val16 decay; @@ -579,13 +620,11 @@ static void celt_decode_lost(CELTDecoder * OPUS_RESTRICT st, int N, int LM) celt_sig *buf; int extrapolation_offset; int extrapolation_len; - int exc_length; int j; buf = decode_mem[c]; - for (i=0;iarch); + fir_tmp, exc_length, LPC_ORDER, st->arch); + OPUS_COPY(exc+MAX_PERIOD-exc_length, fir_tmp, exc_length); } /* Check if the waveform is decaying, and if so how fast. @@ -832,6 +864,7 @@ int celt_decode_with_ec(CELTDecoder * OPUS_RESTRICT st, const unsigned char *dat const opus_int16 *eBands; ALLOC_STACK; + VALIDATE_CELT_DECODER(st); mode = st->mode; nbEBands = mode->nbEBands; overlap = mode->overlap; @@ -1026,7 +1059,7 @@ int celt_decode_with_ec(CELTDecoder * OPUS_RESTRICT st, const unsigned char *dat ALLOC(pulses, nbEBands, int); ALLOC(fine_priority, nbEBands, int); - codedBands = compute_allocation(mode, start, end, offsets, cap, + codedBands = clt_compute_allocation(mode, start, end, offsets, cap, alloc_trim, &intensity, &dual_stereo, bits, &balance, pulses, fine_quant, fine_priority, C, LM, dec, 0, 0, 0); diff --git a/TMessagesProj/jni/opus/celt/celt_encoder.c b/TMessagesProj/jni/opus/celt/celt_encoder.c index de3053aa3..44cb0850a 100644 --- a/TMessagesProj/jni/opus/celt/celt_encoder.c +++ b/TMessagesProj/jni/opus/celt/celt_encoder.c @@ -73,7 +73,6 @@ struct OpusCustomEncoder { int constrained_vbr; /* If zero, VBR can do whatever it likes with the rate */ int loss_rate; int lsb_depth; - int variable_duration; int lfe; int disable_inv; int arch; @@ -363,6 +362,12 @@ static int transient_analysis(const opus_val32 * OPUS_RESTRICT in, int len, int /* Compute harmonic mean discarding the unreliable boundaries The data is smooth, so we only take 1/4th of the samples */ unmask=0; + /* We should never see NaNs here. If we find any, then something really bad happened and we better abort + before it does any damage later on. If these asserts are disabled (no hardening), then the table + lookup a few lines below (id = ...) is likely to crash dur to an out-of-bounds read. DO NOT FIX + that crash on NaN since it could result in a worse issue later on. */ + celt_assert(!celt_isnan(tmp[0])); + celt_assert(!celt_isnan(norm)); for (i=12;i> 10; + trim = QCONST16(4.f, 8) + QCONST16(1.f/16.f, 8)*frac; + } if (C==2) { opus_val16 sum = 0; /* Q10 */ @@ -836,7 +849,7 @@ static int alloc_trim_analysis(const CELTMode *m, const celt_norm *X, } while (++c=0;i--) + mask[i] = MAX16(mask[i], mask[i+1] - QCONST16(3.f, DB_SHIFT)); + for (i=0;i> shift; + } + /*for (i=0;i 50 && LM>=1 && !lfe) { @@ -1039,6 +1089,14 @@ static opus_val16 dynalloc_analysis(const opus_val16 *bandLogE, const opus_val16 } for (i=start;i=12) follower[i] = HALF16(follower[i]); + } +#ifdef DISABLE_FLOAT_API + (void)analysis; +#else + if (analysis->valid) + { + for (i=start;ileak_boost[i]; + } +#endif + for (i=start;i>BITRES>>3 > effectiveBytes/4) + && (tot_boost+boost_bits)>>BITRES>>3 > 2*effectiveBytes/3) { - opus_int32 cap = ((effectiveBytes/4)<valid) + gain1 = (opus_val16)(gain1 * analysis->max_pitch_ratio); +#else + (void)analysis; +#endif /* Gain threshold for enabling the prefilter/postfilter */ pf_threshold = QCONST16(.2f,15); @@ -1220,7 +1298,7 @@ static int compute_vbr(const CELTMode *mode, AnalysisInfo *analysis, opus_int32 int LM, opus_int32 bitrate, int lastCodedBands, int C, int intensity, int constrained_vbr, opus_val16 stereo_saving, int tot_boost, opus_val16 tf_estimate, int pitch_change, opus_val16 maxDepth, - int variable_duration, int lfe, int has_surround_mask, opus_val16 surround_masking, + int lfe, int has_surround_mask, opus_val16 surround_masking, opus_val16 temporal_vbr) { /* The target rate in 8th bits per frame */ @@ -1262,10 +1340,9 @@ static int compute_vbr(const CELTMode *mode, AnalysisInfo *analysis, opus_int32 SHR32(MULT16_16(stereo_saving-QCONST16(0.1f,8),(coded_stereo_dof<tonality-.15f)-0.09f; + tonal = MAX16(0.f,analysis->tonality-.15f)-0.12f; tonal_target = target + (opus_int32)((coded_bins<>3; } @@ -1582,10 +1662,10 @@ int celt_encode_with_ec(CELTEncoder * OPUS_RESTRICT st, const opus_val16 * pcm, int enabled; int qg; enabled = ((st->lfe&&nbAvailableBytes>3) || nbAvailableBytes>12*C) && !hybrid && !silence && !st->disable_pf - && st->complexity >= 5 && !(st->consec_transient && LM!=3 && st->variable_duration==OPUS_FRAMESIZE_VARIABLE); + && st->complexity >= 5; prefilter_tapset = st->tapset_decision; - pf_on = run_prefilter(st, in, prefilter_mem, CC, N, prefilter_tapset, &pitch_index, &gain1, &qg, enabled, nbAvailableBytes); + pf_on = run_prefilter(st, in, prefilter_mem, CC, N, prefilter_tapset, &pitch_index, &gain1, &qg, enabled, nbAvailableBytes, &st->analysis); if ((gain1 > QCONST16(.4f,15) || st->prefilter_gain > QCONST16(.4f,15)) && (!st->analysis.valid || st->analysis.tonality > .3) && (pitch_index > 1.26*st->prefilter_period || pitch_index < .79*st->prefilter_period)) pitch_change = 1; @@ -1615,7 +1695,7 @@ int celt_encode_with_ec(CELTEncoder * OPUS_RESTRICT st, const opus_val16 * pcm, /* Reduces the likelihood of energy instability on fricatives at low bitrate in hybrid mode. It seems like we still want to have real transients on vowels though (small SILK quantization offset value). */ - int allow_weak_transients = hybrid && effectiveBytes<15 && st->silk_info.offset >= 100; + int allow_weak_transients = hybrid && effectiveBytes<15 && st->silk_info.signalType != 2; isTransient = transient_analysis(in, N+overlap, CC, &tf_estimate, &tf_chan, allow_weak_transients, &weak_transient); } @@ -1637,16 +1717,19 @@ int celt_encode_with_ec(CELTEncoder * OPUS_RESTRICT st, const opus_val16 * pcm, if (secondMdct) { compute_mdcts(mode, 0, in, freq, C, CC, LM, st->upsample, st->arch); - compute_band_energies(mode, freq, bandE, effEnd, C, LM); + compute_band_energies(mode, freq, bandE, effEnd, C, LM, st->arch); amp2Log2(mode, effEnd, end, bandE, bandLogE2, C); for (i=0;iupsample, st->arch); + /* This should catch any NaN in the CELT input. Since we're not supposed to see any (they're filtered + at the Opus layer), just abort. */ + celt_assert(!celt_isnan(freq[0]) && (C==1 || !celt_isnan(freq[N]))); if (CC==2&&C==1) tf_chan = 0; - compute_band_energies(mode, freq, bandE, effEnd, C, LM); + compute_band_energies(mode, freq, bandE, effEnd, C, LM, st->arch); if (st->lfe) { @@ -1770,7 +1853,7 @@ int celt_encode_with_ec(CELTEncoder * OPUS_RESTRICT st, const opus_val16 * pcm, isTransient = 1; shortBlocks = M; compute_mdcts(mode, shortBlocks, in, freq, C, CC, LM, st->upsample, st->arch); - compute_band_energies(mode, freq, bandE, effEnd, C, LM); + compute_band_energies(mode, freq, bandE, effEnd, C, LM, st->arch); amp2Log2(mode, effEnd, end, bandE, bandLogE, C); /* Compensate for the scaling of short vs long mdcts */ for (i=0;i=15*C && !hybrid && st->complexity>=2 && !st->lfe; + + ALLOC(offsets, nbEBands, int); + ALLOC(importance, nbEBands, int); + ALLOC(spread_weight, nbEBands, int); + + maxDepth = dynalloc_analysis(bandLogE, bandLogE2, nbEBands, start, end, C, offsets, + st->lsb_depth, mode->logN, isTransient, st->vbr, st->constrained_vbr, + eBands, LM, effectiveBytes, &tot_boost, st->lfe, surround_dynalloc, &st->analysis, importance, spread_weight); + ALLOC(tf_res, nbEBands, int); /* Disable variable tf resolution for hybrid and at very low bitrate */ - if (effectiveBytes>=15*C && !hybrid && st->complexity>=2 && !st->lfe) + if (enable_tf_analysis) { int lambda; - lambda = IMAX(5, 1280/effectiveBytes + 2); - tf_select = tf_analysis(mode, effEnd, isTransient, tf_res, lambda, X, N, LM, tf_estimate, tf_chan); + lambda = IMAX(80, 20480/effectiveBytes + 2); + tf_select = tf_analysis(mode, effEnd, isTransient, tf_res, lambda, X, N, LM, tf_estimate, tf_chan, importance); for (i=effEnd;isilk_info.signalType != 2) { /* For low bitrate hybrid, we force temporal resolution to 5 ms rather than 2.5 ms. */ for (i=0;ispread_decision = spreading_decision(mode, X, &st->tonal_average, st->spread_decision, &st->hf_average, - &st->tapset_decision, pf_on&&!shortBlocks, effEnd, C, M); + &st->tapset_decision, pf_on&&!shortBlocks, effEnd, C, M, spread_weight); } /*printf("%d %d\n", st->tapset_decision, st->spread_decision);*/ /*printf("%f %d %f %d\n\n", st->analysis.tonality, st->spread_decision, st->analysis.tonality_slope, st->tapset_decision);*/ @@ -1883,11 +1976,6 @@ int celt_encode_with_ec(CELTEncoder * OPUS_RESTRICT st, const opus_val16 * pcm, ec_enc_icdf(enc, st->spread_decision, spread_icdf, 5); } - ALLOC(offsets, nbEBands, int); - - maxDepth = dynalloc_analysis(bandLogE, bandLogE2, nbEBands, start, end, C, offsets, - st->lsb_depth, mode->logN, isTransient, st->vbr, st->constrained_vbr, - eBands, LM, effectiveBytes, &tot_boost, st->lfe, surround_dynalloc); /* For LFE, everything interesting is in the first band */ if (st->lfe) offsets[0] = IMIN(8, effectiveBytes/3); @@ -1956,7 +2044,7 @@ int celt_encode_with_ec(CELTEncoder * OPUS_RESTRICT st, const opus_val16 * pcm, } else { alloc_trim = alloc_trim_analysis(mode, X, bandLogE, end, LM, C, N, &st->analysis, &st->stereo_saving, tf_estimate, - st->intensity, surround_trim, st->arch); + st->intensity, surround_trim, equiv_rate, st->arch); } ec_enc_icdf(enc, alloc_trim, trim_icdf, 7); tell = ec_tell_frac(enc); @@ -1990,7 +2078,7 @@ int celt_encode_with_ec(CELTEncoder * OPUS_RESTRICT st, const opus_val16 * pcm, target = compute_vbr(mode, &st->analysis, base_target, LM, equiv_rate, st->lastCodedBands, C, st->intensity, st->constrained_vbr, st->stereo_saving, tot_boost, tf_estimate, pitch_change, maxDepth, - st->variable_duration, st->lfe, st->energy_mask!=NULL, surround_masking, + st->lfe, st->energy_mask!=NULL, surround_masking, temporal_vbr); } else { target = base_target; @@ -1999,7 +2087,7 @@ int celt_encode_with_ec(CELTEncoder * OPUS_RESTRICT st, const opus_val16 * pcm, if (st->silk_info.offset > 100) target -= 18 << BITRES >> (3-LM); /* Boosting bitrate on transients and vowels with significant temporal spikes. */ - target += MULT16_16_Q14(tf_estimate-QCONST16(.25f,14), (50< QCONST16(.7f,14)) @@ -2103,7 +2191,7 @@ int celt_encode_with_ec(CELTEncoder * OPUS_RESTRICT st, const opus_val16 * pcm, #endif if (st->lfe) signalBandwidth = 1; - codedBands = compute_allocation(mode, start, end, offsets, cap, + codedBands = clt_compute_allocation(mode, start, end, offsets, cap, alloc_trim, &st->intensity, &dual_stereo, bits, &balance, pulses, fine_quant, fine_priority, C, LM, enc, 1, st->lastCodedBands, signalBandwidth); if (st->lastCodedBands) @@ -2409,12 +2497,6 @@ int opus_custom_encoder_ctl(CELTEncoder * OPUS_RESTRICT st, int request, ...) *value=st->lsb_depth; } break; - case OPUS_SET_EXPERT_FRAME_DURATION_REQUEST: - { - opus_int32 value = va_arg(ap, opus_int32); - st->variable_duration = value; - } - break; case OPUS_SET_PHASE_INVERSION_DISABLED_REQUEST: { opus_int32 value = va_arg(ap, opus_int32); diff --git a/TMessagesProj/jni/opus/celt/celt_lpc.c b/TMessagesProj/jni/opus/celt/celt_lpc.c index bc9eb2c82..8ecb693ee 100644 --- a/TMessagesProj/jni/opus/celt/celt_lpc.c +++ b/TMessagesProj/jni/opus/celt/celt_lpc.c @@ -89,58 +89,40 @@ int p void celt_fir_c( - const opus_val16 *_x, + const opus_val16 *x, const opus_val16 *num, - opus_val16 *_y, + opus_val16 *y, int N, int ord, - opus_val16 *mem, int arch) { int i,j; VARDECL(opus_val16, rnum); - VARDECL(opus_val16, x); SAVE_STACK; - + celt_assert(x != y); ALLOC(rnum, ord, opus_val16); - ALLOC(x, N+ord, opus_val16); for(i=0;i_i){ - celt_assert(p>q); + celt_sig_assert(p>q); _k=_n; do p=CELT_PVQ_U_ROW[--_k][_n]; while(p>_i); diff --git a/TMessagesProj/jni/opus/celt/entcode.h b/TMessagesProj/jni/opus/celt/entcode.h index 13d6c84ef..3763e3f28 100644 --- a/TMessagesProj/jni/opus/celt/entcode.h +++ b/TMessagesProj/jni/opus/celt/entcode.h @@ -122,7 +122,7 @@ opus_uint32 ec_tell_frac(ec_ctx *_this); /* Tested exhaustively for all n and for 1<=d<=256 */ static OPUS_INLINE opus_uint32 celt_udiv(opus_uint32 n, opus_uint32 d) { - celt_assert(d>0); + celt_sig_assert(d>0); #ifdef USE_SMALL_DIV_TABLE if (d>256) return n/d; @@ -138,7 +138,7 @@ static OPUS_INLINE opus_uint32 celt_udiv(opus_uint32 n, opus_uint32 d) { } static OPUS_INLINE opus_int32 celt_sudiv(opus_int32 n, opus_int32 d) { - celt_assert(d>0); + celt_sig_assert(d>0); #ifdef USE_SMALL_DIV_TABLE if (n<0) return -(opus_int32)celt_udiv(-n, d); diff --git a/TMessagesProj/jni/opus/celt/entdec.h b/TMessagesProj/jni/opus/celt/entdec.h index d8ab31873..025fc1870 100644 --- a/TMessagesProj/jni/opus/celt/entdec.h +++ b/TMessagesProj/jni/opus/celt/entdec.h @@ -85,7 +85,7 @@ int ec_dec_icdf(ec_dec *_this,const unsigned char *_icdf,unsigned _ftb); The bits must have been encoded with ec_enc_uint(). No call to ec_dec_update() is necessary after this call. _ft: The number of integers that can be decoded (one more than the max). - This must be at least one, and no more than 2**32-1. + This must be at least 2, and no more than 2**32-1. Return: The decoded bits.*/ opus_uint32 ec_dec_uint(ec_dec *_this,opus_uint32 _ft); diff --git a/TMessagesProj/jni/opus/celt/entenc.h b/TMessagesProj/jni/opus/celt/entenc.h index 796bc4d57..f502eaf66 100644 --- a/TMessagesProj/jni/opus/celt/entenc.h +++ b/TMessagesProj/jni/opus/celt/entenc.h @@ -67,7 +67,7 @@ void ec_enc_icdf(ec_enc *_this,int _s,const unsigned char *_icdf,unsigned _ftb); /*Encodes a raw unsigned integer in the stream. _fl: The integer to encode. _ft: The number of integers that can be encoded (one more than the max). - This must be at least one, and no more than 2**32-1.*/ + This must be at least 2, and no more than 2**32-1.*/ void ec_enc_uint(ec_enc *_this,opus_uint32 _fl,opus_uint32 _ft); /*Encodes a sequence of raw bits in the stream. diff --git a/TMessagesProj/jni/opus/celt/fixed_debug.h b/TMessagesProj/jni/opus/celt/fixed_debug.h index c9546a7d6..f43529523 100644 --- a/TMessagesProj/jni/opus/celt/fixed_debug.h +++ b/TMessagesProj/jni/opus/celt/fixed_debug.h @@ -61,9 +61,11 @@ extern opus_int64 celt_mips; /** Add two 32-bit values, ignore any overflows */ #define ADD32_ovflw(a,b) (celt_mips+=2,(opus_val32)((opus_uint32)(a)+(opus_uint32)(b))) -/** Subtract two 32-bit values, ignore any overflows */ +/** Subtract two 32-bit values, ignore any overflows */ #define SUB32_ovflw(a,b) (celt_mips+=2,(opus_val32)((opus_uint32)(a)-(opus_uint32)(b))) -#define NEG32_ovflw(a) (celt_mips+=2,(opus_val32)(-(opus_uint32)(a))) +/* Avoid MSVC warning C4146: unary minus operator applied to unsigned type */ +/** Negate 32-bit value, ignore any overflows */ +#define NEG32_ovflw(a) (celt_mips+=2,(opus_val32)(0-(opus_uint32)(a))) static OPUS_INLINE short NEG16(int x) { @@ -238,9 +240,6 @@ static OPUS_INLINE int SHL32_(opus_int64 a, int shift, char *file, int line) #define HALF16(x) (SHR16(x,1)) #define HALF32(x) (SHR32(x,1)) -//#define SHR(a,shift) ((a) >> (shift)) -//#define SHL(a,shift) ((a) << (shift)) - #define ADD16(a, b) ADD16_(a, b, __FILE__, __LINE__) static OPUS_INLINE short ADD16_(int a, int b, char *file, int line) { diff --git a/TMessagesProj/jni/opus/celt/fixed_generic.h b/TMessagesProj/jni/opus/celt/fixed_generic.h index 3561b93c3..5f4abda76 100644 --- a/TMessagesProj/jni/opus/celt/fixed_generic.h +++ b/TMessagesProj/jni/opus/celt/fixed_generic.h @@ -122,9 +122,11 @@ /** Add two 32-bit values, ignore any overflows */ #define ADD32_ovflw(a,b) ((opus_val32)((opus_uint32)(a)+(opus_uint32)(b))) -/** Subtract two 32-bit values, ignore any overflows */ +/** Subtract two 32-bit values, ignore any overflows */ #define SUB32_ovflw(a,b) ((opus_val32)((opus_uint32)(a)-(opus_uint32)(b))) -#define NEG32_ovflw(a) ((opus_val32)(-(opus_uint32)(a))) +/* Avoid MSVC warning C4146: unary minus operator applied to unsigned type */ +/** Negate 32-bit value, ignore any overflows */ +#define NEG32_ovflw(a) ((opus_val32)(0-(opus_uint32)(a))) /** 16x16 multiplication where the result fits in 16 bits */ #define MULT16_16_16(a,b) ((((opus_val16)(a))*((opus_val16)(b)))) diff --git a/TMessagesProj/jni/opus/celt/float_cast.h b/TMessagesProj/jni/opus/celt/float_cast.h index 98b40abcf..f218e8648 100644 --- a/TMessagesProj/jni/opus/celt/float_cast.h +++ b/TMessagesProj/jni/opus/celt/float_cast.h @@ -96,7 +96,7 @@ static OPUS_INLINE opus_int32 float2int(float x) {return _mm_cvt_ss2si(_mm_set_s #include #define float2int(x) lrint(x) -#elif (defined(_MSC_VER) && _MSC_VER >= 1400) && defined (_M_X64) +#elif (defined(_MSC_VER) && _MSC_VER >= 1400) && (defined(_M_X64) || (defined(_M_IX86_FP) && _M_IX86_FP >= 1)) #include __inline long int float2int(float value) diff --git a/TMessagesProj/jni/opus/celt/mathops.c b/TMessagesProj/jni/opus/celt/mathops.c index 21a01f52e..6ee9b9e10 100644 --- a/TMessagesProj/jni/opus/celt/mathops.c +++ b/TMessagesProj/jni/opus/celt/mathops.c @@ -38,7 +38,8 @@ #include "mathops.h" /*Compute floor(sqrt(_val)) with exact arithmetic. - This has been tested on all possible 32-bit inputs.*/ + _val must be greater than 0. + This has been tested on all possible 32-bit inputs greater than 0.*/ unsigned isqrt32(opus_uint32 _val){ unsigned b; unsigned g; @@ -182,7 +183,7 @@ opus_val32 celt_rcp(opus_val32 x) int i; opus_val16 n; opus_val16 r; - celt_assert2(x>0, "celt_rcp() only defined for positive values"); + celt_sig_assert(x>0); i = celt_ilog2(x); /* n is Q15 with range [0,1). */ n = VSHR32(x,i-15)-32768; diff --git a/TMessagesProj/jni/opus/celt/mathops.h b/TMessagesProj/jni/opus/celt/mathops.h index 1f8a20cb4..5e86ff0dd 100644 --- a/TMessagesProj/jni/opus/celt/mathops.h +++ b/TMessagesProj/jni/opus/celt/mathops.h @@ -72,7 +72,7 @@ static OPUS_INLINE float fast_atan2f(float y, float x) { #undef cA #undef cB #undef cC -#undef cD +#undef cE #endif @@ -179,7 +179,7 @@ static OPUS_INLINE float celt_exp2(float x) /** Integer log in base2. Undefined for zero and negative numbers */ static OPUS_INLINE opus_int16 celt_ilog2(opus_int32 x) { - celt_assert2(x>0, "celt_ilog2() only defined for strictly positive numbers"); + celt_sig_assert(x>0); return EC_ILOG(x)-1; } #endif diff --git a/TMessagesProj/jni/opus/celt/modes.c b/TMessagesProj/jni/opus/celt/modes.c index 911686e90..390c5e8ae 100644 --- a/TMessagesProj/jni/opus/celt/modes.c +++ b/TMessagesProj/jni/opus/celt/modes.c @@ -427,7 +427,7 @@ void opus_custom_mode_destroy(CELTMode *mode) } #endif /* CUSTOM_MODES_ONLY */ opus_free((opus_int16*)mode->eBands); - opus_free((opus_int16*)mode->allocVectors); + opus_free((unsigned char*)mode->allocVectors); opus_free((opus_val16*)mode->window); opus_free((opus_int16*)mode->logN); diff --git a/TMessagesProj/jni/opus/celt/pitch.c b/TMessagesProj/jni/opus/celt/pitch.c index bf46e7d56..872582a48 100644 --- a/TMessagesProj/jni/opus/celt/pitch.c +++ b/TMessagesProj/jni/opus/celt/pitch.c @@ -102,11 +102,9 @@ static void find_best_pitch(opus_val32 *xcorr, opus_val16 *y, int len, } } -static void celt_fir5(const opus_val16 *x, +static void celt_fir5(opus_val16 *x, const opus_val16 *num, - opus_val16 *y, - int N, - opus_val16 *mem) + int N) { int i; opus_val16 num0, num1, num2, num3, num4; @@ -116,11 +114,11 @@ static void celt_fir5(const opus_val16 *x, num2=num[2]; num3=num[3]; num4=num[4]; - mem0=mem[0]; - mem1=mem[1]; - mem2=mem[2]; - mem3=mem[3]; - mem4=mem[4]; + mem0=0; + mem1=0; + mem2=0; + mem3=0; + mem4=0; for (i=0;i>1, mem); + celt_fir5(x_lp, lpc2, len>>1); } /* Pure C implementation. */ @@ -220,13 +213,8 @@ opus_val32 #else void #endif -#if defined(OVERRIDE_PITCH_XCORR) celt_pitch_xcorr_c(const opus_val16 *_x, const opus_val16 *_y, - opus_val32 *xcorr, int len, int max_pitch) -#else -celt_pitch_xcorr(const opus_val16 *_x, const opus_val16 *_y, opus_val32 *xcorr, int len, int max_pitch, int arch) -#endif { #if 0 /* This is a simple version of the pitch correlation that should work @@ -261,15 +249,11 @@ celt_pitch_xcorr(const opus_val16 *_x, const opus_val16 *_y, opus_val32 maxcorr=1; #endif celt_assert(max_pitch>0); - celt_assert((((unsigned char *)_x-(unsigned char *)NULL)&3)==0); + celt_sig_assert((((unsigned char *)_x-(unsigned char *)NULL)&3)==0); for (i=0;i>1;j++) sum += SHR32(MULT16_16(x_lp[j],y[i+j]), shift); #else - sum = celt_inner_prod_c(x_lp, y+i, len>>1); + sum = celt_inner_prod(x_lp, y+i, len>>1, arch); #endif xcorr[i] = MAX32(-1, sum); #ifdef FIXED_POINT @@ -424,7 +404,7 @@ static opus_val16 compute_pitch_gain(opus_val32 xy, opus_val32 xx, opus_val32 yy sx = celt_ilog2(xx)-14; sy = celt_ilog2(yy)-14; shift = sx + sy; - x2y2 = MULT16_16_Q14(VSHR32(xx, sx), VSHR32(yy, sy)); + x2y2 = SHR32(MULT16_16(VSHR32(xx, sx), VSHR32(yy, sy)), 14); if (shift & 1) { if (x2y2 < 32768) { diff --git a/TMessagesProj/jni/opus/celt/pitch.h b/TMessagesProj/jni/opus/celt/pitch.h index d3503532a..e425f56ae 100644 --- a/TMessagesProj/jni/opus/celt/pitch.h +++ b/TMessagesProj/jni/opus/celt/pitch.h @@ -46,8 +46,7 @@ #include "mips/pitch_mipsr1.h" #endif -#if ((defined(OPUS_ARM_ASM) && defined(FIXED_POINT)) \ - || defined(OPUS_ARM_MAY_HAVE_NEON_INTR)) +#if (defined(OPUS_ARM_ASM) || defined(OPUS_ARM_MAY_HAVE_NEON_INTR)) # include "arm/pitch_arm.h" #endif @@ -184,17 +183,10 @@ opus_val32 void #endif celt_pitch_xcorr_c(const opus_val16 *_x, const opus_val16 *_y, - opus_val32 *xcorr, int len, int max_pitch); - -#if !defined(OVERRIDE_PITCH_XCORR) -#ifdef FIXED_POINT -opus_val32 -#else -void -#endif -celt_pitch_xcorr(const opus_val16 *_x, const opus_val16 *_y, opus_val32 *xcorr, int len, int max_pitch, int arch); +#ifndef OVERRIDE_PITCH_XCORR +# define celt_pitch_xcorr celt_pitch_xcorr_c #endif #endif diff --git a/TMessagesProj/jni/opus/celt/quant_bands.c b/TMessagesProj/jni/opus/celt/quant_bands.c index 56101b1cf..39a221eda 100644 --- a/TMessagesProj/jni/opus/celt/quant_bands.c +++ b/TMessagesProj/jni/opus/celt/quant_bands.c @@ -457,7 +457,7 @@ void unquant_coarse_energy(const CELTMode *m, int start, int end, opus_val16 *ol /* It would be better to express this invariant as a test on C at function entry, but that isn't enough to make the static analyzer happy. */ - celt_assert(c<2); + celt_sig_assert(c<2); tell = ec_tell(dec); if(budget-tell>=15) { diff --git a/TMessagesProj/jni/opus/celt/rate.c b/TMessagesProj/jni/opus/celt/rate.c index ca4cc870e..465e1ba26 100644 --- a/TMessagesProj/jni/opus/celt/rate.c +++ b/TMessagesProj/jni/opus/celt/rate.c @@ -529,7 +529,7 @@ static OPUS_INLINE int interp_bits2pulses(const CELTMode *m, int start, int end, return codedBands; } -int compute_allocation(const CELTMode *m, int start, int end, const int *offsets, const int *cap, int alloc_trim, int *intensity, int *dual_stereo, +int clt_compute_allocation(const CELTMode *m, int start, int end, const int *offsets, const int *cap, int alloc_trim, int *intensity, int *dual_stereo, opus_int32 total, opus_int32 *balance, int *pulses, int *ebits, int *fine_priority, int C, int LM, ec_ctx *ec, int encode, int prev, int signalBandwidth) { int lo, hi, len, j; diff --git a/TMessagesProj/jni/opus/celt/rate.h b/TMessagesProj/jni/opus/celt/rate.h index 515f7687c..852b9d6f6 100644 --- a/TMessagesProj/jni/opus/celt/rate.h +++ b/TMessagesProj/jni/opus/celt/rate.h @@ -95,7 +95,7 @@ static OPUS_INLINE int pulses2bits(const CELTMode *m, int band, int LM, int puls @param pulses Number of pulses per band (returned) @return Total number of bits allocated */ -int compute_allocation(const CELTMode *m, int start, int end, const int *offsets, const int *cap, int alloc_trim, int *intensity, int *dual_stero, +int clt_compute_allocation(const CELTMode *m, int start, int end, const int *offsets, const int *cap, int alloc_trim, int *intensity, int *dual_stero, opus_int32 total, opus_int32 *balance, int *pulses, int *ebits, int *fine_priority, int C, int LM, ec_ctx *ec, int encode, int prev, int signalBandwidth); #endif diff --git a/TMessagesProj/jni/opus/celt/static_modes_fixed_arm_ne10.h b/TMessagesProj/jni/opus/celt/static_modes_fixed_arm_ne10.h index b8ef0cee9..762309219 100644 --- a/TMessagesProj/jni/opus/celt/static_modes_fixed_arm_ne10.h +++ b/TMessagesProj/jni/opus/celt/static_modes_fixed_arm_ne10.h @@ -1,7 +1,7 @@ /* The contents of this file was automatically generated by * dump_mode_arm_ne10.c with arguments: 48000 960 * It contains static definitions for some pre-defined modes. */ -#include +#include #ifndef NE10_FFT_PARAMS48000_960 #define NE10_FFT_PARAMS48000_960 diff --git a/TMessagesProj/jni/opus/celt/static_modes_float_arm_ne10.h b/TMessagesProj/jni/opus/celt/static_modes_float_arm_ne10.h index 934a82a42..66e1abb10 100644 --- a/TMessagesProj/jni/opus/celt/static_modes_float_arm_ne10.h +++ b/TMessagesProj/jni/opus/celt/static_modes_float_arm_ne10.h @@ -1,7 +1,7 @@ /* The contents of this file was automatically generated by * dump_mode_arm_ne10.c with arguments: 48000 960 * It contains static definitions for some pre-defined modes. */ -#include +#include #ifndef NE10_FFT_PARAMS48000_960 #define NE10_FFT_PARAMS48000_960 diff --git a/TMessagesProj/jni/opus/celt/vq.c b/TMessagesProj/jni/opus/celt/vq.c index 1fac70e2b..a6b5552d6 100644 --- a/TMessagesProj/jni/opus/celt/vq.c +++ b/TMessagesProj/jni/opus/celt/vq.c @@ -67,7 +67,7 @@ static void exp_rotation1(celt_norm *X, int len, int stride, opus_val16 c, opus_ } #endif /* OVERRIDE_vq_exp_rotation1 */ -static void exp_rotation(celt_norm *X, int len, int dir, int stride, int K, int spread) +void exp_rotation(celt_norm *X, int len, int dir, int stride, int K, int spread) { static const int SPREAD_FACTOR[3]={15,10,5}; int i; @@ -214,7 +214,7 @@ opus_val16 op_pvq_search_c(celt_norm *X, int *iy, int K, int N, int arch) rcp = EXTRACT16(MULT16_32_Q16(K, celt_rcp(sum))); #else /* Using K+e with e < 1 guarantees we cannot get more than K pulses. */ - rcp = EXTRACT16(MULT16_32_Q16(K+0.8, celt_rcp(sum))); + rcp = EXTRACT16(MULT16_32_Q16(K+0.8f, celt_rcp(sum))); #endif j=0; do { #ifdef FIXED_POINT @@ -230,12 +230,12 @@ opus_val16 op_pvq_search_c(celt_norm *X, int *iy, int K, int N, int arch) pulsesLeft -= iy[j]; } while (++j=0, "Allocated too many pulses in the quick pass"); + celt_sig_assert(pulsesLeft>=0); /* This should never happen, but just in case it does (e.g. on silence) we fill the first bin with pulses. */ #ifdef FIXED_POINT_DEBUG - celt_assert2(pulsesLeft<=N+3, "Not enough pulses in the quick pass"); + celt_sig_assert(pulsesLeft<=N+3); #endif if (pulsesLeft > N+3) { diff --git a/TMessagesProj/jni/opus/celt/vq.h b/TMessagesProj/jni/opus/celt/vq.h index 5dbf9ce06..0dfe6af05 100644 --- a/TMessagesProj/jni/opus/celt/vq.h +++ b/TMessagesProj/jni/opus/celt/vq.h @@ -45,6 +45,8 @@ #include "mips/vq_mipsr1.h" #endif +void exp_rotation(celt_norm *X, int len, int dir, int stride, int K, int spread); + opus_val16 op_pvq_search_c(celt_norm *X, int *iy, int K, int N, int arch); #if !defined(OVERRIDE_OP_PVQ_SEARCH) diff --git a/TMessagesProj/jni/opus/celt/x86/celt_lpc_sse.h b/TMessagesProj/jni/opus/celt/x86/celt_lpc_sse.h index c5ec796ed..7d1ecf753 100644 --- a/TMessagesProj/jni/opus/celt/x86/celt_lpc_sse.h +++ b/TMessagesProj/jni/opus/celt/x86/celt_lpc_sse.h @@ -41,12 +41,11 @@ void celt_fir_sse4_1( opus_val16 *y, int N, int ord, - opus_val16 *mem, int arch); #if defined(OPUS_X86_PRESUME_SSE4_1) -#define celt_fir(x, num, y, N, ord, mem, arch) \ - ((void)arch, celt_fir_sse4_1(x, num, y, N, ord, mem, arch)) +#define celt_fir(x, num, y, N, ord, arch) \ + ((void)arch, celt_fir_sse4_1(x, num, y, N, ord, arch)) #else @@ -56,11 +55,10 @@ extern void (*const CELT_FIR_IMPL[OPUS_ARCHMASK + 1])( opus_val16 *y, int N, int ord, - opus_val16 *mem, int arch); -# define celt_fir(x, num, y, N, ord, mem, arch) \ - ((*CELT_FIR_IMPL[(arch) & OPUS_ARCHMASK])(x, num, y, N, ord, mem, arch)) +# define celt_fir(x, num, y, N, ord, arch) \ + ((*CELT_FIR_IMPL[(arch) & OPUS_ARCHMASK])(x, num, y, N, ord, arch)) #endif #endif diff --git a/TMessagesProj/jni/opus/celt/x86/celt_lpc_sse.c b/TMessagesProj/jni/opus/celt/x86/celt_lpc_sse4_1.c similarity index 66% rename from TMessagesProj/jni/opus/celt/x86/celt_lpc_sse.c rename to TMessagesProj/jni/opus/celt/x86/celt_lpc_sse4_1.c index 67e5592ac..547856884 100644 --- a/TMessagesProj/jni/opus/celt/x86/celt_lpc_sse.c +++ b/TMessagesProj/jni/opus/celt/x86/celt_lpc_sse4_1.c @@ -40,65 +40,23 @@ #if defined(FIXED_POINT) -void celt_fir_sse4_1(const opus_val16 *_x, +void celt_fir_sse4_1(const opus_val16 *x, const opus_val16 *num, - opus_val16 *_y, + opus_val16 *y, int N, int ord, - opus_val16 *mem, int arch) { int i,j; VARDECL(opus_val16, rnum); - VARDECL(opus_val16, x); __m128i vecNoA; opus_int32 noA ; SAVE_STACK; ALLOC(rnum, ord, opus_val16); - ALLOC(x, N+ord, opus_val16); for(i=0;i> 1; vecNoA = _mm_set_epi32(noA, noA, noA, noA); @@ -107,25 +65,24 @@ void celt_fir_sse4_1(const opus_val16 *_x, opus_val32 sums[4] = {0}; __m128i vecSum, vecX; - xcorr_kernel(rnum, x+i, sums, ord, arch); + xcorr_kernel(rnum, x+i-ord, sums, ord, arch); vecSum = _mm_loadu_si128((__m128i *)sums); vecSum = _mm_add_epi32(vecSum, vecNoA); vecSum = _mm_srai_epi32(vecSum, SIG_SHIFT); - vecX = OP_CVTEPI16_EPI32_M64(_x + i); + vecX = OP_CVTEPI16_EPI32_M64(x + i); vecSum = _mm_add_epi32(vecSum, vecX); vecSum = _mm_packs_epi32(vecSum, vecSum); - _mm_storel_epi64((__m128i *)(_y + i), vecSum); + _mm_storel_epi64((__m128i *)(y + i), vecSum); } for (;i=0, "Allocated too many pulses in the quick pass"); + celt_sig_assert(pulsesLeft>=0); /* This should never happen, but just in case it does (e.g. on silence) we fill the first bin with pulses. */ @@ -155,7 +155,6 @@ opus_val16 op_pvq_search_sse2(celt_norm *_X, int *iy, int K, int N, int arch) __m128 max, max2; __m128i count; __m128i pos; - best_id = 0; /* The squared magnitude term gets added anyway, so we might as well add it outside the loop */ yy = ADD16(yy, 1); diff --git a/TMessagesProj/jni/opus/celt/x86/x86_celt_map.c b/TMessagesProj/jni/opus/celt/x86/x86_celt_map.c index 80559a28e..d39d88ede 100644 --- a/TMessagesProj/jni/opus/celt/x86/x86_celt_map.c +++ b/TMessagesProj/jni/opus/celt/x86/x86_celt_map.c @@ -47,7 +47,6 @@ void (*const CELT_FIR_IMPL[OPUS_ARCHMASK + 1])( opus_val16 *y, int N, int ord, - opus_val16 *mem, int arch ) = { celt_fir_c, /* non-sse */ diff --git a/TMessagesProj/jni/opus/celt/x86/x86cpu.h b/TMessagesProj/jni/opus/celt/x86/x86cpu.h index 04fd48aac..1e2bf17b9 100644 --- a/TMessagesProj/jni/opus/celt/x86/x86cpu.h +++ b/TMessagesProj/jni/opus/celt/x86/x86cpu.h @@ -82,7 +82,9 @@ int opus_select_arch(void); (_mm_cvtepi8_epi32(*(__m128i *)(x))) #endif -# if !defined(__OPTIMIZE__) +/* similar reasoning about the instruction sequence as in the 32-bit macro above, + */ +# if defined(__clang__) || !defined(__OPTIMIZE__) # define OP_CVTEPI16_EPI32_M64(x) \ (_mm_cvtepi16_epi32(_mm_loadl_epi64((__m128i *)(x)))) # else diff --git a/TMessagesProj/jni/opus/include/opus.h b/TMessagesProj/jni/opus/include/opus.h index 5be73ddf4..d282f21d2 100644 --- a/TMessagesProj/jni/opus/include/opus.h +++ b/TMessagesProj/jni/opus/include/opus.h @@ -531,7 +531,7 @@ OPUS_EXPORT int opus_packet_parse( const unsigned char *frames[48], opus_int16 size[48], int *payload_offset -) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(4); +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(5); /** Gets the bandwidth of an Opus packet. * @param [in] data char*: Opus packet diff --git a/TMessagesProj/jni/opus/include/opus_defines.h b/TMessagesProj/jni/opus/include/opus_defines.h index 38a81432a..fbf5d0eb7 100644 --- a/TMessagesProj/jni/opus/include/opus_defines.h +++ b/TMessagesProj/jni/opus/include/opus_defines.h @@ -169,6 +169,9 @@ extern "C" { #define OPUS_SET_PHASE_INVERSION_DISABLED_REQUEST 4046 #define OPUS_GET_PHASE_INVERSION_DISABLED_REQUEST 4047 +/** Defines for the presence of extended APIs. */ +#define OPUS_HAVE_OPUS_PROJECTION_H + /* Macros to trigger compilation errors when the wrong types are provided to a CTL */ #define __opus_check_int(x) (((void)((x) == (opus_int32)0)), (opus_int32)(x)) #define __opus_check_int_ptr(ptr) ((ptr) + ((ptr) - (opus_int32*)(ptr))) @@ -573,7 +576,6 @@ extern "C" { *
OPUS_FRAMESIZE_80_MS
Use 80 ms frames.
*
OPUS_FRAMESIZE_100_MS
Use 100 ms frames.
*
OPUS_FRAMESIZE_120_MS
Use 120 ms frames.
- *
OPUS_FRAMESIZE_VARIABLE
Optimize the frame size dynamically.
* * @hideinitializer */ #define OPUS_SET_EXPERT_FRAME_DURATION(x) OPUS_SET_EXPERT_FRAME_DURATION_REQUEST, __opus_check_int(x) @@ -591,7 +593,6 @@ extern "C" { *
OPUS_FRAMESIZE_80_MS
Use 80 ms frames.
*
OPUS_FRAMESIZE_100_MS
Use 100 ms frames.
*
OPUS_FRAMESIZE_120_MS
Use 120 ms frames.
- *
OPUS_FRAMESIZE_VARIABLE
Optimize the frame size dynamically.
* * @hideinitializer */ #define OPUS_GET_EXPERT_FRAME_DURATION(x) OPUS_GET_EXPERT_FRAME_DURATION_REQUEST, __opus_check_int_ptr(x) diff --git a/TMessagesProj/jni/opus/include/opus_multistream.h b/TMessagesProj/jni/opus/include/opus_multistream.h index 3622e009f..babcee690 100644 --- a/TMessagesProj/jni/opus/include/opus_multistream.h +++ b/TMessagesProj/jni/opus/include/opus_multistream.h @@ -273,7 +273,7 @@ OPUS_EXPORT OPUS_WARN_UNUSED_RESULT OpusMSEncoder *opus_multistream_surround_enc unsigned char *mapping, int application, int *error -) OPUS_ARG_NONNULL(5); +) OPUS_ARG_NONNULL(4) OPUS_ARG_NONNULL(5) OPUS_ARG_NONNULL(6); /** Initialize a previously allocated multistream encoder state. * The memory pointed to by \a st must be at least the size returned by @@ -342,7 +342,7 @@ OPUS_EXPORT int opus_multistream_surround_encoder_init( int *coupled_streams, unsigned char *mapping, int application -) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(6); +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(5) OPUS_ARG_NONNULL(6) OPUS_ARG_NONNULL(7); /** Encodes a multistream Opus frame. * @param st OpusMSEncoder*: Multistream encoder state. diff --git a/TMessagesProj/jni/opus/include/opus_projection.h b/TMessagesProj/jni/opus/include/opus_projection.h new file mode 100644 index 000000000..9dabf4e85 --- /dev/null +++ b/TMessagesProj/jni/opus/include/opus_projection.h @@ -0,0 +1,568 @@ +/* Copyright (c) 2017 Google Inc. + Written by Andrew Allen */ +/* + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/** + * @file opus_projection.h + * @brief Opus projection reference API + */ + +#ifndef OPUS_PROJECTION_H +#define OPUS_PROJECTION_H + +#include "opus_multistream.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/** @cond OPUS_INTERNAL_DOC */ + +/** These are the actual encoder and decoder CTL ID numbers. + * They should not be used directly by applications.c + * In general, SETs should be even and GETs should be odd.*/ +/**@{*/ +#define OPUS_PROJECTION_GET_DEMIXING_MATRIX_GAIN_REQUEST 6001 +#define OPUS_PROJECTION_GET_DEMIXING_MATRIX_SIZE_REQUEST 6003 +#define OPUS_PROJECTION_GET_DEMIXING_MATRIX_REQUEST 6005 +/**@}*/ + + +/** @endcond */ + +/** @defgroup opus_projection_ctls Projection specific encoder and decoder CTLs + * + * These are convenience macros that are specific to the + * opus_projection_encoder_ctl() and opus_projection_decoder_ctl() + * interface. + * The CTLs from @ref opus_genericctls, @ref opus_encoderctls, + * @ref opus_decoderctls, and @ref opus_multistream_ctls may be applied to a + * projection encoder or decoder as well. + */ +/**@{*/ + +/** Gets the gain (in dB. S7.8-format) of the demixing matrix from the encoder. + * @param[out] x opus_int32 *: Returns the gain (in dB. S7.8-format) + * of the demixing matrix. + * @hideinitializer + */ +#define OPUS_PROJECTION_GET_DEMIXING_MATRIX_GAIN(x) OPUS_PROJECTION_GET_DEMIXING_MATRIX_GAIN_REQUEST, __opus_check_int_ptr(x) + + +/** Gets the size in bytes of the demixing matrix from the encoder. + * @param[out] x opus_int32 *: Returns the size in bytes of the + * demixing matrix. + * @hideinitializer + */ +#define OPUS_PROJECTION_GET_DEMIXING_MATRIX_SIZE(x) OPUS_PROJECTION_GET_DEMIXING_MATRIX_SIZE_REQUEST, __opus_check_int_ptr(x) + + +/** Copies the demixing matrix to the supplied pointer location. + * @param[out] x unsigned char *: Returns the demixing matrix to the + * supplied pointer location. + * @param y opus_int32: The size in bytes of the reserved memory at the + * pointer location. + * @hideinitializer + */ +#define OPUS_PROJECTION_GET_DEMIXING_MATRIX(x,y) OPUS_PROJECTION_GET_DEMIXING_MATRIX_REQUEST, x, __opus_check_int(y) + + +/**@}*/ + +/** Opus projection encoder state. + * This contains the complete state of a projection Opus encoder. + * It is position independent and can be freely copied. + * @see opus_projection_ambisonics_encoder_create + */ +typedef struct OpusProjectionEncoder OpusProjectionEncoder; + + +/** Opus projection decoder state. + * This contains the complete state of a projection Opus decoder. + * It is position independent and can be freely copied. + * @see opus_projection_decoder_create + * @see opus_projection_decoder_init + */ +typedef struct OpusProjectionDecoder OpusProjectionDecoder; + + +/**\name Projection encoder functions */ +/**@{*/ + +/** Gets the size of an OpusProjectionEncoder structure. + * @param channels int: The total number of input channels to encode. + * This must be no more than 255. + * @param mapping_family int: The mapping family to use for selecting + * the appropriate projection. + * @returns The size in bytes on success, or a negative error code + * (see @ref opus_errorcodes) on error. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_projection_ambisonics_encoder_get_size( + int channels, + int mapping_family +); + + +/** Allocates and initializes a projection encoder state. + * Call opus_projection_encoder_destroy() to release + * this object when finished. + * @param Fs opus_int32: Sampling rate of the input signal (in Hz). + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param channels int: Number of channels in the input signal. + * This must be at most 255. + * It may be greater than the number of + * coded channels (streams + + * coupled_streams). + * @param mapping_family int: The mapping family to use for selecting + * the appropriate projection. + * @param[out] streams int *: The total number of streams that will + * be encoded from the input. + * @param[out] coupled_streams int *: Number of coupled (2 channel) + * streams that will be encoded from the input. + * @param application int: The target encoder application. + * This must be one of the following: + *
+ *
#OPUS_APPLICATION_VOIP
+ *
Process signal for improved speech intelligibility.
+ *
#OPUS_APPLICATION_AUDIO
+ *
Favor faithfulness to the original input.
+ *
#OPUS_APPLICATION_RESTRICTED_LOWDELAY
+ *
Configure the minimum possible coding delay by disabling certain modes + * of operation.
+ *
+ * @param[out] error int *: Returns #OPUS_OK on success, or an error + * code (see @ref opus_errorcodes) on + * failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT OpusProjectionEncoder *opus_projection_ambisonics_encoder_create( + opus_int32 Fs, + int channels, + int mapping_family, + int *streams, + int *coupled_streams, + int application, + int *error +) OPUS_ARG_NONNULL(4) OPUS_ARG_NONNULL(5); + + +/** Initialize a previously allocated projection encoder state. + * The memory pointed to by \a st must be at least the size returned by + * opus_projection_ambisonics_encoder_get_size(). + * This is intended for applications which use their own allocator instead of + * malloc. + * To reset a previously initialized state, use the #OPUS_RESET_STATE CTL. + * @see opus_projection_ambisonics_encoder_create + * @see opus_projection_ambisonics_encoder_get_size + * @param st OpusProjectionEncoder*: Projection encoder state to initialize. + * @param Fs opus_int32: Sampling rate of the input signal (in Hz). + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param channels int: Number of channels in the input signal. + * This must be at most 255. + * It may be greater than the number of + * coded channels (streams + + * coupled_streams). + * @param streams int: The total number of streams to encode from the + * input. + * This must be no more than the number of channels. + * @param coupled_streams int: Number of coupled (2 channel) streams + * to encode. + * This must be no larger than the total + * number of streams. + * Additionally, The total number of + * encoded channels (streams + + * coupled_streams) must be no + * more than the number of input channels. + * @param application int: The target encoder application. + * This must be one of the following: + *
+ *
#OPUS_APPLICATION_VOIP
+ *
Process signal for improved speech intelligibility.
+ *
#OPUS_APPLICATION_AUDIO
+ *
Favor faithfulness to the original input.
+ *
#OPUS_APPLICATION_RESTRICTED_LOWDELAY
+ *
Configure the minimum possible coding delay by disabling certain modes + * of operation.
+ *
+ * @returns #OPUS_OK on success, or an error code (see @ref opus_errorcodes) + * on failure. + */ +OPUS_EXPORT int opus_projection_ambisonics_encoder_init( + OpusProjectionEncoder *st, + opus_int32 Fs, + int channels, + int mapping_family, + int *streams, + int *coupled_streams, + int application +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(5) OPUS_ARG_NONNULL(6); + + +/** Encodes a projection Opus frame. + * @param st OpusProjectionEncoder*: Projection encoder state. + * @param[in] pcm const opus_int16*: The input signal as interleaved + * samples. + * This must contain + * frame_size*channels + * samples. + * @param frame_size int: Number of samples per channel in the input + * signal. + * This must be an Opus frame size for the + * encoder's sampling rate. + * For example, at 48 kHz the permitted values + * are 120, 240, 480, 960, 1920, and 2880. + * Passing in a duration of less than 10 ms + * (480 samples at 48 kHz) will prevent the + * encoder from using the LPC or hybrid modes. + * @param[out] data unsigned char*: Output payload. + * This must contain storage for at + * least \a max_data_bytes. + * @param [in] max_data_bytes opus_int32: Size of the allocated + * memory for the output + * payload. This may be + * used to impose an upper limit on + * the instant bitrate, but should + * not be used as the only bitrate + * control. Use #OPUS_SET_BITRATE to + * control the bitrate. + * @returns The length of the encoded packet (in bytes) on success or a + * negative error code (see @ref opus_errorcodes) on failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_projection_encode( + OpusProjectionEncoder *st, + const opus_int16 *pcm, + int frame_size, + unsigned char *data, + opus_int32 max_data_bytes +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(2) OPUS_ARG_NONNULL(4); + + +/** Encodes a projection Opus frame from floating point input. + * @param st OpusProjectionEncoder*: Projection encoder state. + * @param[in] pcm const float*: The input signal as interleaved + * samples with a normal range of + * +/-1.0. + * Samples with a range beyond +/-1.0 + * are supported but will be clipped by + * decoders using the integer API and + * should only be used if it is known + * that the far end supports extended + * dynamic range. + * This must contain + * frame_size*channels + * samples. + * @param frame_size int: Number of samples per channel in the input + * signal. + * This must be an Opus frame size for the + * encoder's sampling rate. + * For example, at 48 kHz the permitted values + * are 120, 240, 480, 960, 1920, and 2880. + * Passing in a duration of less than 10 ms + * (480 samples at 48 kHz) will prevent the + * encoder from using the LPC or hybrid modes. + * @param[out] data unsigned char*: Output payload. + * This must contain storage for at + * least \a max_data_bytes. + * @param [in] max_data_bytes opus_int32: Size of the allocated + * memory for the output + * payload. This may be + * used to impose an upper limit on + * the instant bitrate, but should + * not be used as the only bitrate + * control. Use #OPUS_SET_BITRATE to + * control the bitrate. + * @returns The length of the encoded packet (in bytes) on success or a + * negative error code (see @ref opus_errorcodes) on failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_projection_encode_float( + OpusProjectionEncoder *st, + const float *pcm, + int frame_size, + unsigned char *data, + opus_int32 max_data_bytes +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(2) OPUS_ARG_NONNULL(4); + + +/** Frees an OpusProjectionEncoder allocated by + * opus_projection_ambisonics_encoder_create(). + * @param st OpusProjectionEncoder*: Projection encoder state to be freed. + */ +OPUS_EXPORT void opus_projection_encoder_destroy(OpusProjectionEncoder *st); + + +/** Perform a CTL function on a projection Opus encoder. + * + * Generally the request and subsequent arguments are generated by a + * convenience macro. + * @param st OpusProjectionEncoder*: Projection encoder state. + * @param request This and all remaining parameters should be replaced by one + * of the convenience macros in @ref opus_genericctls, + * @ref opus_encoderctls, @ref opus_multistream_ctls, or + * @ref opus_projection_ctls + * @see opus_genericctls + * @see opus_encoderctls + * @see opus_multistream_ctls + * @see opus_projection_ctls + */ +OPUS_EXPORT int opus_projection_encoder_ctl(OpusProjectionEncoder *st, int request, ...) OPUS_ARG_NONNULL(1); + + +/**@}*/ + +/**\name Projection decoder functions */ +/**@{*/ + +/** Gets the size of an OpusProjectionDecoder structure. + * @param channels int: The total number of output channels. + * This must be no more than 255. + * @param streams int: The total number of streams coded in the + * input. + * This must be no more than 255. + * @param coupled_streams int: Number streams to decode as coupled + * (2 channel) streams. + * This must be no larger than the total + * number of streams. + * Additionally, The total number of + * coded channels (streams + + * coupled_streams) must be no + * more than 255. + * @returns The size in bytes on success, or a negative error code + * (see @ref opus_errorcodes) on error. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT opus_int32 opus_projection_decoder_get_size( + int channels, + int streams, + int coupled_streams +); + + +/** Allocates and initializes a projection decoder state. + * Call opus_projection_decoder_destroy() to release + * this object when finished. + * @param Fs opus_int32: Sampling rate to decode at (in Hz). + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param channels int: Number of channels to output. + * This must be at most 255. + * It may be different from the number of coded + * channels (streams + + * coupled_streams). + * @param streams int: The total number of streams coded in the + * input. + * This must be no more than 255. + * @param coupled_streams int: Number of streams to decode as coupled + * (2 channel) streams. + * This must be no larger than the total + * number of streams. + * Additionally, The total number of + * coded channels (streams + + * coupled_streams) must be no + * more than 255. + * @param[in] demixing_matrix const unsigned char[demixing_matrix_size]: Demixing matrix + * that mapping from coded channels to output channels, + * as described in @ref opus_projection and + * @ref opus_projection_ctls. + * @param demixing_matrix_size opus_int32: The size in bytes of the + * demixing matrix, as + * described in @ref + * opus_projection_ctls. + * @param[out] error int *: Returns #OPUS_OK on success, or an error + * code (see @ref opus_errorcodes) on + * failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT OpusProjectionDecoder *opus_projection_decoder_create( + opus_int32 Fs, + int channels, + int streams, + int coupled_streams, + unsigned char *demixing_matrix, + opus_int32 demixing_matrix_size, + int *error +) OPUS_ARG_NONNULL(5); + + +/** Intialize a previously allocated projection decoder state object. + * The memory pointed to by \a st must be at least the size returned by + * opus_projection_decoder_get_size(). + * This is intended for applications which use their own allocator instead of + * malloc. + * To reset a previously initialized state, use the #OPUS_RESET_STATE CTL. + * @see opus_projection_decoder_create + * @see opus_projection_deocder_get_size + * @param st OpusProjectionDecoder*: Projection encoder state to initialize. + * @param Fs opus_int32: Sampling rate to decode at (in Hz). + * This must be one of 8000, 12000, 16000, + * 24000, or 48000. + * @param channels int: Number of channels to output. + * This must be at most 255. + * It may be different from the number of coded + * channels (streams + + * coupled_streams). + * @param streams int: The total number of streams coded in the + * input. + * This must be no more than 255. + * @param coupled_streams int: Number of streams to decode as coupled + * (2 channel) streams. + * This must be no larger than the total + * number of streams. + * Additionally, The total number of + * coded channels (streams + + * coupled_streams) must be no + * more than 255. + * @param[in] demixing_matrix const unsigned char[demixing_matrix_size]: Demixing matrix + * that mapping from coded channels to output channels, + * as described in @ref opus_projection and + * @ref opus_projection_ctls. + * @param demixing_matrix_size opus_int32: The size in bytes of the + * demixing matrix, as + * described in @ref + * opus_projection_ctls. + * @returns #OPUS_OK on success, or an error code (see @ref opus_errorcodes) + * on failure. + */ +OPUS_EXPORT int opus_projection_decoder_init( + OpusProjectionDecoder *st, + opus_int32 Fs, + int channels, + int streams, + int coupled_streams, + unsigned char *demixing_matrix, + opus_int32 demixing_matrix_size +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(6); + + +/** Decode a projection Opus packet. + * @param st OpusProjectionDecoder*: Projection decoder state. + * @param[in] data const unsigned char*: Input payload. + * Use a NULL + * pointer to indicate packet + * loss. + * @param len opus_int32: Number of bytes in payload. + * @param[out] pcm opus_int16*: Output signal, with interleaved + * samples. + * This must contain room for + * frame_size*channels + * samples. + * @param frame_size int: The number of samples per channel of + * available space in \a pcm. + * If this is less than the maximum packet duration + * (120 ms; 5760 for 48kHz), this function will not be capable + * of decoding some packets. In the case of PLC (data==NULL) + * or FEC (decode_fec=1), then frame_size needs to be exactly + * the duration of audio that is missing, otherwise the + * decoder will not be in the optimal state to decode the + * next incoming packet. For the PLC and FEC cases, frame_size + * must be a multiple of 2.5 ms. + * @param decode_fec int: Flag (0 or 1) to request that any in-band + * forward error correction data be decoded. + * If no such data is available, the frame is + * decoded as if it were lost. + * @returns Number of samples decoded on success or a negative error code + * (see @ref opus_errorcodes) on failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_projection_decode( + OpusProjectionDecoder *st, + const unsigned char *data, + opus_int32 len, + opus_int16 *pcm, + int frame_size, + int decode_fec +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(4); + + +/** Decode a projection Opus packet with floating point output. + * @param st OpusProjectionDecoder*: Projection decoder state. + * @param[in] data const unsigned char*: Input payload. + * Use a NULL + * pointer to indicate packet + * loss. + * @param len opus_int32: Number of bytes in payload. + * @param[out] pcm opus_int16*: Output signal, with interleaved + * samples. + * This must contain room for + * frame_size*channels + * samples. + * @param frame_size int: The number of samples per channel of + * available space in \a pcm. + * If this is less than the maximum packet duration + * (120 ms; 5760 for 48kHz), this function will not be capable + * of decoding some packets. In the case of PLC (data==NULL) + * or FEC (decode_fec=1), then frame_size needs to be exactly + * the duration of audio that is missing, otherwise the + * decoder will not be in the optimal state to decode the + * next incoming packet. For the PLC and FEC cases, frame_size + * must be a multiple of 2.5 ms. + * @param decode_fec int: Flag (0 or 1) to request that any in-band + * forward error correction data be decoded. + * If no such data is available, the frame is + * decoded as if it were lost. + * @returns Number of samples decoded on success or a negative error code + * (see @ref opus_errorcodes) on failure. + */ +OPUS_EXPORT OPUS_WARN_UNUSED_RESULT int opus_projection_decode_float( + OpusProjectionDecoder *st, + const unsigned char *data, + opus_int32 len, + float *pcm, + int frame_size, + int decode_fec +) OPUS_ARG_NONNULL(1) OPUS_ARG_NONNULL(4); + + +/** Perform a CTL function on a projection Opus decoder. + * + * Generally the request and subsequent arguments are generated by a + * convenience macro. + * @param st OpusProjectionDecoder*: Projection decoder state. + * @param request This and all remaining parameters should be replaced by one + * of the convenience macros in @ref opus_genericctls, + * @ref opus_decoderctls, @ref opus_multistream_ctls, or + * @ref opus_projection_ctls. + * @see opus_genericctls + * @see opus_decoderctls + * @see opus_multistream_ctls + * @see opus_projection_ctls + */ +OPUS_EXPORT int opus_projection_decoder_ctl(OpusProjectionDecoder *st, int request, ...) OPUS_ARG_NONNULL(1); + + +/** Frees an OpusProjectionDecoder allocated by + * opus_projection_decoder_create(). + * @param st OpusProjectionDecoder: Projection decoder state to be freed. + */ +OPUS_EXPORT void opus_projection_decoder_destroy(OpusProjectionDecoder *st); + + +/**@}*/ + +/**@}*/ + +#ifdef __cplusplus +} +#endif + +#endif /* OPUS_PROJECTION_H */ diff --git a/TMessagesProj/jni/opus/include/opus_types.h b/TMessagesProj/jni/opus/include/opus_types.h index b28e03aea..7cf675580 100644 --- a/TMessagesProj/jni/opus/include/opus_types.h +++ b/TMessagesProj/jni/opus/include/opus_types.h @@ -33,14 +33,29 @@ #ifndef OPUS_TYPES_H #define OPUS_TYPES_H -/* Use the real stdint.h if it's there (taken from Paul Hsieh's pstdint.h) */ -#if (defined(__STDC__) && __STDC__ && __STDC_VERSION__ >= 199901L) || (defined(__GNUC__) && (defined(_STDINT_H) || defined(_STDINT_H_)) || defined (HAVE_STDINT_H)) -#include +#define opus_int int /* used for counters etc; at least 16 bits */ +#define opus_int64 long long +#define opus_int8 signed char +#define opus_uint unsigned int /* used for counters etc; at least 16 bits */ +#define opus_uint64 unsigned long long +#define opus_uint8 unsigned char + +/* Use the real stdint.h if it's there (taken from Paul Hsieh's pstdint.h) */ +#if (defined(__STDC__) && __STDC__ && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || (defined(__GNUC__) && (defined(_STDINT_H) || defined(_STDINT_H_)) || defined (HAVE_STDINT_H)) +#include +# undef opus_int64 +# undef opus_int8 +# undef opus_uint64 +# undef opus_uint8 + typedef int8_t opus_int8; + typedef uint8_t opus_uint8; typedef int16_t opus_int16; typedef uint16_t opus_uint16; typedef int32_t opus_int32; typedef uint32_t opus_uint32; + typedef int64_t opus_int64; + typedef uint64_t opus_uint64; #elif defined(_WIN32) # if defined(__CYGWIN__) @@ -148,12 +163,4 @@ #endif -#define opus_int int /* used for counters etc; at least 16 bits */ -#define opus_int64 long long -#define opus_int8 signed char - -#define opus_uint unsigned int /* used for counters etc; at least 16 bits */ -#define opus_uint64 unsigned long long -#define opus_uint8 unsigned char - #endif /* OPUS_TYPES_H */ diff --git a/TMessagesProj/jni/opus/silk/API.h b/TMessagesProj/jni/opus/silk/API.h index 0131acbb0..4d90ff9aa 100644 --- a/TMessagesProj/jni/opus/silk/API.h +++ b/TMessagesProj/jni/opus/silk/API.h @@ -80,7 +80,8 @@ opus_int silk_Encode( /* O Returns error co opus_int nSamplesIn, /* I Number of samples in input vector */ ec_enc *psRangeEnc, /* I/O Compressor data structure */ opus_int32 *nBytesOut, /* I/O Number of bytes in payload (input: Max bytes) */ - const opus_int prefillFlag /* I Flag to indicate prefilling buffers no coding */ + const opus_int prefillFlag, /* I Flag to indicate prefilling buffers no coding */ + int activity /* I Decision of Opus voice activity detector */ ); /****************************************/ diff --git a/TMessagesProj/jni/opus/silk/CNG.c b/TMessagesProj/jni/opus/silk/CNG.c index d140db7d4..ef8e38df9 100644 --- a/TMessagesProj/jni/opus/silk/CNG.c +++ b/TMessagesProj/jni/opus/silk/CNG.c @@ -142,12 +142,12 @@ void silk_CNG( silk_CNG_exc( CNG_sig_Q14 + MAX_LPC_ORDER, psCNG->CNG_exc_buf_Q14, length, &psCNG->rand_seed ); /* Convert CNG NLSF to filter representation */ - silk_NLSF2A( A_Q12, psCNG->CNG_smth_NLSF_Q15, psDec->LPC_order ); + silk_NLSF2A( A_Q12, psCNG->CNG_smth_NLSF_Q15, psDec->LPC_order, psDec->arch ); /* Generate CNG signal, by synthesis filtering */ silk_memcpy( CNG_sig_Q14, psCNG->CNG_synth_state, MAX_LPC_ORDER * sizeof( opus_int32 ) ); + celt_assert( psDec->LPC_order == 10 || psDec->LPC_order == 16 ); for( i = 0; i < length; i++ ) { - silk_assert( psDec->LPC_order == 10 || psDec->LPC_order == 16 ); /* Avoids introducing a bias because silk_SMLAWB() always rounds to -inf */ LPC_pred_Q10 = silk_RSHIFT( psDec->LPC_order, 1 ); LPC_pred_Q10 = silk_SMLAWB( LPC_pred_Q10, CNG_sig_Q14[ MAX_LPC_ORDER + i - 1 ], A_Q12[ 0 ] ); diff --git a/TMessagesProj/jni/opus/silk/LPC_analysis_filter.c b/TMessagesProj/jni/opus/silk/LPC_analysis_filter.c index 3c616d7be..d34b5eb70 100644 --- a/TMessagesProj/jni/opus/silk/LPC_analysis_filter.c +++ b/TMessagesProj/jni/opus/silk/LPC_analysis_filter.c @@ -56,8 +56,7 @@ void silk_LPC_analysis_filter( ) { opus_int j; -#if USE_CELT_FIR - opus_int16 mem[SILK_MAX_ORDER_LPC]; +#if defined(FIXED_POINT) && USE_CELT_FIR opus_int16 num[SILK_MAX_ORDER_LPC]; #else int ix; @@ -65,19 +64,16 @@ void silk_LPC_analysis_filter( const opus_int16 *in_ptr; #endif - silk_assert( d >= 6 ); - silk_assert( (d & 1) == 0 ); - silk_assert( d <= len ); + celt_assert( d >= 6 ); + celt_assert( (d & 1) == 0 ); + celt_assert( d <= len ); -#if USE_CELT_FIR - silk_assert( d <= SILK_MAX_ORDER_LPC ); +#if defined(FIXED_POINT) && USE_CELT_FIR + celt_assert( d <= SILK_MAX_ORDER_LPC ); for ( j = 0; j < d; j++ ) { num[ j ] = -B[ j ]; } - for (j=0;j= 4096 ) { return 0; } - return LPC_inverse_pred_gain_QA( Atmp_QA, order ); + return LPC_inverse_pred_gain_QA_c( Atmp_QA, order ); } - -#ifdef FIXED_POINT - -/* For input in Q24 domain */ -opus_int32 silk_LPC_inverse_pred_gain_Q24( /* O Returns inverse prediction gain in energy domain, Q30 */ - const opus_int32 *A_Q24, /* I Prediction coefficients [order] */ - const opus_int order /* I Prediction order */ -) -{ - opus_int k; - opus_int32 Atmp_QA[ SILK_MAX_ORDER_LPC ]; - - /* Increase Q domain of the AR coefficients */ - for( k = 0; k < order; k++ ) { - Atmp_QA[ k ] = silk_RSHIFT32( A_Q24[ k ], 24 - QA ); - } - - return LPC_inverse_pred_gain_QA( Atmp_QA, order ); -} -#endif diff --git a/TMessagesProj/jni/opus/silk/LP_variable_cutoff.c b/TMessagesProj/jni/opus/silk/LP_variable_cutoff.c index f639e1f89..79112ad35 100644 --- a/TMessagesProj/jni/opus/silk/LP_variable_cutoff.c +++ b/TMessagesProj/jni/opus/silk/LP_variable_cutoff.c @@ -130,6 +130,6 @@ void silk_LP_variable_cutoff( /* ARMA low-pass filtering */ silk_assert( TRANSITION_NB == 3 && TRANSITION_NA == 2 ); - silk_biquad_alt( frame, B_Q28, A_Q28, psLP->In_LP_State, frame, frame_length, 1); + silk_biquad_alt_stride1( frame, B_Q28, A_Q28, psLP->In_LP_State, frame, frame_length); } } diff --git a/TMessagesProj/jni/opus/silk/MacroCount.h b/TMessagesProj/jni/opus/silk/MacroCount.h index 54dbdbd98..78100ffed 100644 --- a/TMessagesProj/jni/opus/silk/MacroCount.h +++ b/TMessagesProj/jni/opus/silk/MacroCount.h @@ -691,7 +691,7 @@ return(ret); #undef silk_LIMIT_32 -static OPUS_INLINE opus_int silk_LIMIT_32(opus_int32 a, opus_int32 limit1, opus_int32 limit2) +static OPUS_INLINE opus_int32 silk_LIMIT_32(opus_int32 a, opus_int32 limit1, opus_int32 limit2) { opus_int32 ret; ops_count += 6; diff --git a/TMessagesProj/jni/opus/silk/NLSF2A.c b/TMessagesProj/jni/opus/silk/NLSF2A.c index 0ea5c17e2..d5b773063 100644 --- a/TMessagesProj/jni/opus/silk/NLSF2A.c +++ b/TMessagesProj/jni/opus/silk/NLSF2A.c @@ -66,7 +66,8 @@ static OPUS_INLINE void silk_NLSF2A_find_poly( void silk_NLSF2A( opus_int16 *a_Q12, /* O monic whitening filter coefficients in Q12, [ d ] */ const opus_int16 *NLSF, /* I normalized line spectral frequencies in Q15, [ d ] */ - const opus_int d /* I filter order (should be even) */ + const opus_int d, /* I filter order (should be even) */ + int arch /* I Run-time architecture */ ) { /* This ordering was found to maximize quality. It improves numerical accuracy of @@ -85,7 +86,7 @@ void silk_NLSF2A( opus_int32 a32_QA1[ SILK_MAX_ORDER_LPC ]; silk_assert( LSF_COS_TAB_SZ_FIX == 128 ); - silk_assert( d==10 || d==16 ); + celt_assert( d==10 || d==16 ); /* convert LSFs to 2*cos(LSF), using piecewise linear curve from table */ ordering = d == 16 ? ordering16 : ordering10; @@ -128,7 +129,7 @@ void silk_NLSF2A( /* Convert int32 coefficients to Q12 int16 coefs */ silk_LPC_fit( a_Q12, a32_QA1, 12, QA + 1, d ); - for( i = 0; silk_LPC_inverse_pred_gain( a_Q12, d ) == 0 && i < MAX_LPC_STABILIZE_ITERATIONS; i++ ) { + for( i = 0; silk_LPC_inverse_pred_gain( a_Q12, d, arch ) == 0 && i < MAX_LPC_STABILIZE_ITERATIONS; i++ ) { /* Prediction coefficients are (too close to) unstable; apply bandwidth expansion */ /* on the unscaled coefficients, convert to Q12 and measure again */ silk_bwexpander_32( a32_QA1, d, 65536 - silk_LSHIFT( 2, i ) ); diff --git a/TMessagesProj/jni/opus/silk/NLSF_VQ.c b/TMessagesProj/jni/opus/silk/NLSF_VQ.c index 452f3dcb7..b83182a79 100644 --- a/TMessagesProj/jni/opus/silk/NLSF_VQ.c +++ b/TMessagesProj/jni/opus/silk/NLSF_VQ.c @@ -46,7 +46,7 @@ void silk_NLSF_VQ( const opus_int16 *w_Q9_ptr; const opus_uint8 *cb_Q8_ptr; - silk_assert( ( LPC_order & 1 ) == 0 ); + celt_assert( ( LPC_order & 1 ) == 0 ); /* Loop over codebook */ cb_Q8_ptr = pCB_Q8; diff --git a/TMessagesProj/jni/opus/silk/NLSF_VQ_weights_laroia.c b/TMessagesProj/jni/opus/silk/NLSF_VQ_weights_laroia.c index 04894c59a..9873bcde1 100644 --- a/TMessagesProj/jni/opus/silk/NLSF_VQ_weights_laroia.c +++ b/TMessagesProj/jni/opus/silk/NLSF_VQ_weights_laroia.c @@ -48,8 +48,8 @@ void silk_NLSF_VQ_weights_laroia( opus_int k; opus_int32 tmp1_int, tmp2_int; - silk_assert( D > 0 ); - silk_assert( ( D & 1 ) == 0 ); + celt_assert( D > 0 ); + celt_assert( ( D & 1 ) == 0 ); /* First value */ tmp1_int = silk_max_int( pNLSF_Q15[ 0 ], 1 ); diff --git a/TMessagesProj/jni/opus/silk/NLSF_del_dec_quant.c b/TMessagesProj/jni/opus/silk/NLSF_del_dec_quant.c index 5155caeff..44a16acd0 100644 --- a/TMessagesProj/jni/opus/silk/NLSF_del_dec_quant.c +++ b/TMessagesProj/jni/opus/silk/NLSF_del_dec_quant.c @@ -131,7 +131,7 @@ opus_int32 silk_NLSF_del_dec_quant( /* O Returns RD_Q25[ j + nStates ] = silk_SMLABB( silk_MLA( RD_tmp_Q25, silk_SMULBB( diff_Q10, diff_Q10 ), w_Q5[ i ] ), mu_Q20, rate1_Q5 ); } - if( silk_LSHIFT( nStates, 1 ) <= NLSF_QUANT_DEL_DEC_STATES ) { + if( nStates <= NLSF_QUANT_DEL_DEC_STATES/2 ) { /* double number of states and copy */ for( j = 0; j < nStates; j++ ) { ind[ j + nStates ][ i ] = ind[ j ][ i ] + 1; diff --git a/TMessagesProj/jni/opus/silk/NLSF_encode.c b/TMessagesProj/jni/opus/silk/NLSF_encode.c index 268b9a195..01ac7db78 100644 --- a/TMessagesProj/jni/opus/silk/NLSF_encode.c +++ b/TMessagesProj/jni/opus/silk/NLSF_encode.c @@ -60,7 +60,7 @@ opus_int32 silk_NLSF_encode( /* O Returns const opus_int16 *pCB_Wght_Q9; SAVE_STACK; - silk_assert( signalType >= 0 && signalType <= 2 ); + celt_assert( signalType >= 0 && signalType <= 2 ); silk_assert( NLSF_mu_Q20 <= 32767 && NLSF_mu_Q20 >= 0 ); /* NLSF stabilization */ diff --git a/TMessagesProj/jni/opus/silk/NSQ.c b/TMessagesProj/jni/opus/silk/NSQ.c index 0e2ea5049..1d64d8e25 100644 --- a/TMessagesProj/jni/opus/silk/NSQ.c +++ b/TMessagesProj/jni/opus/silk/NSQ.c @@ -75,7 +75,7 @@ static OPUS_INLINE void silk_noise_shape_quantizer( void silk_NSQ_c ( - const silk_encoder_state *psEncC, /* I/O Encoder State */ + const silk_encoder_state *psEncC, /* I Encoder State */ silk_nsq_state *NSQ, /* I/O NSQ state */ SideInfoIndices *psIndices, /* I/O Quantization Indices */ const opus_int16 x16[], /* I Input */ @@ -143,7 +143,7 @@ void silk_NSQ_c if( ( k & ( 3 - silk_LSHIFT( LSF_interpolation_flag, 1 ) ) ) == 0 ) { /* Rewhiten with new A coefs */ start_idx = psEncC->ltp_mem_length - lag - psEncC->predictLPCOrder - LTP_ORDER / 2; - silk_assert( start_idx > 0 ); + celt_assert( start_idx > 0 ); silk_LPC_analysis_filter( &sLTP[ start_idx ], &NSQ->xq[ start_idx + k * psEncC->subfr_length ], A_Q12, psEncC->ltp_mem_length - start_idx, psEncC->predictLPCOrder, psEncC->arch ); @@ -168,7 +168,6 @@ void silk_NSQ_c NSQ->lagPrev = pitchL[ psEncC->nb_subfr - 1 ]; /* Save quantized speech and noise shaping signals */ - /* DEBUG_STORE_DATA( enc.pcm, &NSQ->xq[ psEncC->ltp_mem_length ], psEncC->frame_length * sizeof( opus_int16 ) ) */ silk_memmove( NSQ->xq, &NSQ->xq[ psEncC->frame_length ], psEncC->ltp_mem_length * sizeof( opus_int16 ) ); silk_memmove( NSQ->sLTP_shp_Q14, &NSQ->sLTP_shp_Q14[ psEncC->frame_length ], psEncC->ltp_mem_length * sizeof( opus_int32 ) ); RESTORE_STACK; @@ -248,7 +247,7 @@ void silk_noise_shape_quantizer( } /* Noise shape feedback */ - silk_assert( ( shapingLPCOrder & 1 ) == 0 ); /* check that order is even */ + celt_assert( ( shapingLPCOrder & 1 ) == 0 ); /* check that order is even */ n_AR_Q12 = silk_NSQ_noise_shape_feedback_loop(&NSQ->sDiff_shp_Q14, NSQ->sAR2_Q14, AR_shp_Q13, shapingLPCOrder, arch); n_AR_Q12 = silk_SMLAWB( n_AR_Q12, NSQ->sLF_AR_shp_Q14, Tilt_Q14 ); @@ -256,7 +255,7 @@ void silk_noise_shape_quantizer( n_LF_Q12 = silk_SMULWB( NSQ->sLTP_shp_Q14[ NSQ->sLTP_shp_buf_idx - 1 ], LF_shp_Q14 ); n_LF_Q12 = silk_SMLAWT( n_LF_Q12, NSQ->sLF_AR_shp_Q14, LF_shp_Q14 ); - silk_assert( lag > 0 || signalType != TYPE_VOICED ); + celt_assert( lag > 0 || signalType != TYPE_VOICED ); /* Combine prediction and noise shaping signals */ tmp1 = silk_SUB32( silk_LSHIFT32( LPC_pred_Q10, 2 ), n_AR_Q12 ); /* Q12 */ diff --git a/TMessagesProj/jni/opus/silk/NSQ_del_dec.c b/TMessagesProj/jni/opus/silk/NSQ_del_dec.c index 3495613b2..3fd9fa0d5 100644 --- a/TMessagesProj/jni/opus/silk/NSQ_del_dec.c +++ b/TMessagesProj/jni/opus/silk/NSQ_del_dec.c @@ -109,13 +109,13 @@ static OPUS_INLINE void silk_noise_shape_quantizer_del_dec( opus_int predictLPCOrder, /* I Prediction filter order */ opus_int warping_Q16, /* I */ opus_int nStatesDelayedDecision, /* I Number of states in decision tree */ - opus_int *smpl_buf_idx, /* I Index to newest samples in buffers */ + opus_int *smpl_buf_idx, /* I/O Index to newest samples in buffers */ opus_int decisionDelay, /* I */ int arch /* I */ ); void silk_NSQ_del_dec_c( - const silk_encoder_state *psEncC, /* I/O Encoder State */ + const silk_encoder_state *psEncC, /* I Encoder State */ silk_nsq_state *NSQ, /* I/O NSQ state */ SideInfoIndices *psIndices, /* I/O Quantization Indices */ const opus_int16 x16[], /* I Input */ @@ -250,7 +250,7 @@ void silk_NSQ_del_dec_c( /* Rewhiten with new A coefs */ start_idx = psEncC->ltp_mem_length - lag - psEncC->predictLPCOrder - LTP_ORDER / 2; - silk_assert( start_idx > 0 ); + celt_assert( start_idx > 0 ); silk_LPC_analysis_filter( &sLTP[ start_idx ], &NSQ->xq[ start_idx + k * psEncC->subfr_length ], A_Q12, psEncC->ltp_mem_length - start_idx, psEncC->predictLPCOrder, psEncC->arch ); @@ -306,7 +306,6 @@ void silk_NSQ_del_dec_c( NSQ->lagPrev = pitchL[ psEncC->nb_subfr - 1 ]; /* Save quantized speech signal */ - /* DEBUG_STORE_DATA( enc.pcm, &NSQ->xq[psEncC->ltp_mem_length], psEncC->frame_length * sizeof( opus_int16 ) ) */ silk_memmove( NSQ->xq, &NSQ->xq[ psEncC->frame_length ], psEncC->ltp_mem_length * sizeof( opus_int16 ) ); silk_memmove( NSQ->sLTP_shp_Q14, &NSQ->sLTP_shp_Q14[ psEncC->frame_length ], psEncC->ltp_mem_length * sizeof( opus_int32 ) ); RESTORE_STACK; @@ -341,7 +340,7 @@ static OPUS_INLINE void silk_noise_shape_quantizer_del_dec( opus_int predictLPCOrder, /* I Prediction filter order */ opus_int warping_Q16, /* I */ opus_int nStatesDelayedDecision, /* I Number of states in decision tree */ - opus_int *smpl_buf_idx, /* I Index to newest samples in buffers */ + opus_int *smpl_buf_idx, /* I/O Index to newest samples in buffers */ opus_int decisionDelay, /* I */ int arch /* I */ ) @@ -362,7 +361,7 @@ static OPUS_INLINE void silk_noise_shape_quantizer_del_dec( NSQ_sample_struct *psSS; SAVE_STACK; - silk_assert( nStatesDelayedDecision > 0 ); + celt_assert( nStatesDelayedDecision > 0 ); ALLOC( psSampleState, nStatesDelayedDecision, NSQ_sample_pair ); shp_lag_ptr = &NSQ->sLTP_shp_Q14[ NSQ->sLTP_shp_buf_idx - lag + HARM_SHAPE_FIR_TAPS / 2 ]; @@ -420,7 +419,7 @@ static OPUS_INLINE void silk_noise_shape_quantizer_del_dec( LPC_pred_Q14 = silk_LSHIFT( LPC_pred_Q14, 4 ); /* Q10 -> Q14 */ /* Noise shape feedback */ - silk_assert( ( shapingLPCOrder & 1 ) == 0 ); /* check that order is even */ + celt_assert( ( shapingLPCOrder & 1 ) == 0 ); /* check that order is even */ /* Output of lowpass section */ tmp2 = silk_SMLAWB( psDD->Diff_Q14, psDD->sAR2_Q14[ 0 ], warping_Q16 ); /* Output of allpass section */ diff --git a/TMessagesProj/jni/opus/silk/PLC.c b/TMessagesProj/jni/opus/silk/PLC.c index 277037a94..f89391651 100644 --- a/TMessagesProj/jni/opus/silk/PLC.c +++ b/TMessagesProj/jni/opus/silk/PLC.c @@ -275,7 +275,7 @@ static OPUS_INLINE void silk_PLC_conceal( /* Reduce random noise for unvoiced frames with high LPC gain */ opus_int32 invGain_Q30, down_scale_Q30; - invGain_Q30 = silk_LPC_inverse_pred_gain( psPLC->prevLPC_Q12, psDec->LPC_order ); + invGain_Q30 = silk_LPC_inverse_pred_gain( psPLC->prevLPC_Q12, psDec->LPC_order, arch ); down_scale_Q30 = silk_min_32( silk_RSHIFT( (opus_int32)1 << 30, LOG2_INV_LPC_GAIN_HIGH_THRES ), invGain_Q30 ); down_scale_Q30 = silk_max_32( silk_RSHIFT( (opus_int32)1 << 30, LOG2_INV_LPC_GAIN_LOW_THRES ), down_scale_Q30 ); @@ -291,7 +291,7 @@ static OPUS_INLINE void silk_PLC_conceal( /* Rewhiten LTP state */ idx = psDec->ltp_mem_length - lag - psDec->LPC_order - LTP_ORDER / 2; - silk_assert( idx > 0 ); + celt_assert( idx > 0 ); silk_LPC_analysis_filter( &sLTP[ idx ], &psDec->outBuf[ idx ], A_Q12, psDec->ltp_mem_length - idx, psDec->LPC_order, arch ); /* Scale LTP state */ inv_gain_Q30 = silk_INVERSE32_varQ( psPLC->prevGain_Q16[ 1 ], 46 ); @@ -347,7 +347,7 @@ static OPUS_INLINE void silk_PLC_conceal( /* Copy LPC state */ silk_memcpy( sLPC_Q14_ptr, psDec->sLPC_Q14_buf, MAX_LPC_ORDER * sizeof( opus_int32 ) ); - silk_assert( psDec->LPC_order >= 10 ); /* check that unrolling works */ + celt_assert( psDec->LPC_order >= 10 ); /* check that unrolling works */ for( i = 0; i < psDec->frame_length; i++ ) { /* partly unrolled */ /* Avoids introducing a bias because silk_SMLAWB() always rounds to -inf */ diff --git a/TMessagesProj/jni/opus/silk/SigProc_FIX.h b/TMessagesProj/jni/opus/silk/SigProc_FIX.h index 0f260176b..f9ae32632 100644 --- a/TMessagesProj/jni/opus/silk/SigProc_FIX.h +++ b/TMessagesProj/jni/opus/silk/SigProc_FIX.h @@ -47,6 +47,11 @@ extern "C" #include "x86/SigProc_FIX_sse.h" #endif +#if (defined(OPUS_ARM_ASM) || defined(OPUS_ARM_MAY_HAVE_NEON_INTR)) +#include "arm/biquad_alt_arm.h" +#include "arm/LPC_inv_pred_gain_arm.h" +#endif + /********************************************************************/ /* SIGNAL PROCESSING FUNCTIONS */ /********************************************************************/ @@ -96,14 +101,22 @@ void silk_resampler_down2_3( * slower than biquad() but uses more precise coefficients * can handle (slowly) varying coefficients */ -void silk_biquad_alt( +void silk_biquad_alt_stride1( const opus_int16 *in, /* I input signal */ const opus_int32 *B_Q28, /* I MA coefficients [3] */ const opus_int32 *A_Q28, /* I AR coefficients [2] */ opus_int32 *S, /* I/O State vector [2] */ opus_int16 *out, /* O output signal */ - const opus_int32 len, /* I signal length (must be even) */ - opus_int stride /* I Operate on interleaved signal if > 1 */ + const opus_int32 len /* I signal length (must be even) */ +); + +void silk_biquad_alt_stride2_c( + const opus_int16 *in, /* I input signal */ + const opus_int32 *B_Q28, /* I MA coefficients [3] */ + const opus_int32 *A_Q28, /* I AR coefficients [2] */ + opus_int32 *S, /* I/O State vector [4] */ + opus_int16 *out, /* O output signal */ + const opus_int32 len /* I signal length (must be even) */ ); /* Variable order MA prediction error filter. */ @@ -132,17 +145,11 @@ void silk_bwexpander_32( /* Compute inverse of LPC prediction gain, and */ /* test if LPC coefficients are stable (all poles within unit circle) */ -opus_int32 silk_LPC_inverse_pred_gain( /* O Returns inverse prediction gain in energy domain, Q30 */ +opus_int32 silk_LPC_inverse_pred_gain_c( /* O Returns inverse prediction gain in energy domain, Q30 */ const opus_int16 *A_Q12, /* I Prediction coefficients, Q12 [order] */ const opus_int order /* I Prediction order */ ); -/* For input in Q24 domain */ -opus_int32 silk_LPC_inverse_pred_gain_Q24( /* O Returns inverse prediction gain in energy domain, Q30 */ - const opus_int32 *A_Q24, /* I Prediction coefficients [order] */ - const opus_int order /* I Prediction order */ -); - /* Split signal in two decimated bands using first-order allpass filters */ void silk_ana_filt_bank_1( const opus_int16 *in, /* I Input signal [N] */ @@ -152,6 +159,14 @@ void silk_ana_filt_bank_1( const opus_int32 N /* I Number of input samples */ ); +#if !defined(OVERRIDE_silk_biquad_alt_stride2) +#define silk_biquad_alt_stride2(in, B_Q28, A_Q28, S, out, len, arch) ((void)(arch), silk_biquad_alt_stride2_c(in, B_Q28, A_Q28, S, out, len)) +#endif + +#if !defined(OVERRIDE_silk_LPC_inverse_pred_gain) +#define silk_LPC_inverse_pred_gain(A_Q12, order, arch) ((void)(arch), silk_LPC_inverse_pred_gain_c(A_Q12, order)) +#endif + /********************************************************************/ /* SCALAR FUNCTIONS */ /********************************************************************/ @@ -271,7 +286,8 @@ void silk_A2NLSF( void silk_NLSF2A( opus_int16 *a_Q12, /* O monic whitening filter coefficients in Q12, [ d ] */ const opus_int16 *NLSF, /* I normalized line spectral frequencies in Q15, [ d ] */ - const opus_int d /* I filter order (should be even) */ + const opus_int d, /* I filter order (should be even) */ + int arch /* I Run-time architecture */ ); /* Convert int32 coefficients to int16 coefs and make sure there's no wrap-around */ @@ -580,7 +596,9 @@ static OPUS_INLINE opus_int64 silk_max_64(opus_int64 a, opus_int64 b) /* Make sure to store the result as the seed for the next call (also in between */ /* frames), otherwise result won't be random at all. When only using some of the */ /* bits, take the most significant bits by right-shifting. */ -#define silk_RAND(seed) (silk_MLA_ovflw(907633515, (seed), 196314165)) +#define RAND_MULTIPLIER 196314165 +#define RAND_INCREMENT 907633515 +#define silk_RAND(seed) (silk_MLA_ovflw((RAND_INCREMENT), (seed), (RAND_MULTIPLIER))) /* Add some multiplication functions that can be easily mapped to ARM. */ diff --git a/TMessagesProj/jni/opus/silk/VAD.c b/TMessagesProj/jni/opus/silk/VAD.c index 0a782af2f..d0cda5216 100644 --- a/TMessagesProj/jni/opus/silk/VAD.c +++ b/TMessagesProj/jni/opus/silk/VAD.c @@ -101,9 +101,9 @@ opus_int silk_VAD_GetSA_Q8_c( /* O Return v /* Safety checks */ silk_assert( VAD_N_BANDS == 4 ); - silk_assert( MAX_FRAME_LENGTH >= psEncC->frame_length ); - silk_assert( psEncC->frame_length <= 512 ); - silk_assert( psEncC->frame_length == 8 * silk_RSHIFT( psEncC->frame_length, 3 ) ); + celt_assert( MAX_FRAME_LENGTH >= psEncC->frame_length ); + celt_assert( psEncC->frame_length <= 512 ); + celt_assert( psEncC->frame_length == 8 * silk_RSHIFT( psEncC->frame_length, 3 ) ); /***********************/ /* Filter and Decimate */ @@ -252,15 +252,14 @@ opus_int silk_VAD_GetSA_Q8_c( /* O Return v speech_nrg += ( b + 1 ) * silk_RSHIFT( Xnrg[ b ] - psSilk_VAD->NL[ b ], 4 ); } + if( psEncC->frame_length == 20 * psEncC->fs_kHz ) { + speech_nrg = silk_RSHIFT32( speech_nrg, 1 ); + } /* Power scaling */ if( speech_nrg <= 0 ) { SA_Q15 = silk_RSHIFT( SA_Q15, 1 ); - } else if( speech_nrg < 32768 ) { - if( psEncC->frame_length == 10 * psEncC->fs_kHz ) { - speech_nrg = silk_LSHIFT_SAT32( speech_nrg, 16 ); - } else { - speech_nrg = silk_LSHIFT_SAT32( speech_nrg, 15 ); - } + } else if( speech_nrg < 16384 ) { + speech_nrg = silk_LSHIFT32( speech_nrg, 16 ); /* square-root */ speech_nrg = silk_SQRT_APPROX( speech_nrg ); @@ -313,6 +312,8 @@ void silk_VAD_GetNoiseLevels( /* Initially faster smoothing */ if( psSilk_VAD->counter < 1000 ) { /* 1000 = 20 sec */ min_coef = silk_DIV32_16( silk_int16_MAX, silk_RSHIFT( psSilk_VAD->counter, 4 ) + 1 ); + /* Increment frame counter */ + psSilk_VAD->counter++; } else { min_coef = 0; } @@ -356,7 +357,4 @@ void silk_VAD_GetNoiseLevels( /* Store as part of state */ psSilk_VAD->NL[ k ] = nl; } - - /* Increment frame counter */ - psSilk_VAD->counter++; } diff --git a/TMessagesProj/jni/opus/silk/arm/LPC_inv_pred_gain_arm.h b/TMessagesProj/jni/opus/silk/arm/LPC_inv_pred_gain_arm.h new file mode 100644 index 000000000..9895b555c --- /dev/null +++ b/TMessagesProj/jni/opus/silk/arm/LPC_inv_pred_gain_arm.h @@ -0,0 +1,57 @@ +/*********************************************************************** +Copyright (c) 2017 Google Inc. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +- Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. +- Neither the name of Internet Society, IETF or IETF Trust, nor the +names of specific contributors, may be used to endorse or promote +products derived from this software without specific prior written +permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +***********************************************************************/ + +#ifndef SILK_LPC_INV_PRED_GAIN_ARM_H +# define SILK_LPC_INV_PRED_GAIN_ARM_H + +# include "celt/arm/armcpu.h" + +# if defined(OPUS_ARM_MAY_HAVE_NEON_INTR) +opus_int32 silk_LPC_inverse_pred_gain_neon( /* O Returns inverse prediction gain in energy domain, Q30 */ + const opus_int16 *A_Q12, /* I Prediction coefficients, Q12 [order] */ + const opus_int order /* I Prediction order */ +); + +# if !defined(OPUS_HAVE_RTCD) && defined(OPUS_ARM_PRESUME_NEON) +# define OVERRIDE_silk_LPC_inverse_pred_gain (1) +# define silk_LPC_inverse_pred_gain(A_Q12, order, arch) ((void)(arch), PRESUME_NEON(silk_LPC_inverse_pred_gain)(A_Q12, order)) +# endif +# endif + +# if !defined(OVERRIDE_silk_LPC_inverse_pred_gain) +/*Is run-time CPU detection enabled on this platform?*/ +# if defined(OPUS_HAVE_RTCD) && (defined(OPUS_ARM_MAY_HAVE_NEON_INTR) && !defined(OPUS_ARM_PRESUME_NEON_INTR)) +extern opus_int32 (*const SILK_LPC_INVERSE_PRED_GAIN_IMPL[OPUS_ARCHMASK+1])(const opus_int16 *A_Q12, const opus_int order); +# define OVERRIDE_silk_LPC_inverse_pred_gain (1) +# define silk_LPC_inverse_pred_gain(A_Q12, order, arch) ((*SILK_LPC_INVERSE_PRED_GAIN_IMPL[(arch)&OPUS_ARCHMASK])(A_Q12, order)) +# elif defined(OPUS_ARM_PRESUME_NEON_INTR) +# define OVERRIDE_silk_LPC_inverse_pred_gain (1) +# define silk_LPC_inverse_pred_gain(A_Q12, order, arch) ((void)(arch), silk_LPC_inverse_pred_gain_neon(A_Q12, order)) +# endif +# endif + +#endif /* end SILK_LPC_INV_PRED_GAIN_ARM_H */ diff --git a/TMessagesProj/jni/opus/silk/arm/LPC_inv_pred_gain_neon_intr.c b/TMessagesProj/jni/opus/silk/arm/LPC_inv_pred_gain_neon_intr.c new file mode 100644 index 000000000..ab426bcd6 --- /dev/null +++ b/TMessagesProj/jni/opus/silk/arm/LPC_inv_pred_gain_neon_intr.c @@ -0,0 +1,280 @@ +/*********************************************************************** +Copyright (c) 2017 Google Inc. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +- Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. +- Neither the name of Internet Society, IETF or IETF Trust, nor the +names of specific contributors, may be used to endorse or promote +products derived from this software without specific prior written +permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +***********************************************************************/ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include "SigProc_FIX.h" +#include "define.h" + +#define QA 24 +#define A_LIMIT SILK_FIX_CONST( 0.99975, QA ) + +#define MUL32_FRAC_Q(a32, b32, Q) ((opus_int32)(silk_RSHIFT_ROUND64(silk_SMULL(a32, b32), Q))) + +/* The difficulty is how to judge a 64-bit signed integer tmp64 is 32-bit overflowed, + * since NEON has no 64-bit min, max or comparison instructions. + * A failed idea is to compare the results of vmovn(tmp64) and vqmovn(tmp64) whether they are equal or not. + * However, this idea fails when the tmp64 is something like 0xFFFFFFF980000000. + * Here we know that mult2Q >= 1, so the highest bit (bit 63, sign bit) of tmp64 must equal to bit 62. + * tmp64 was shifted left by 1 and we got tmp64'. If high_half(tmp64') != 0 and high_half(tmp64') != -1, + * then we know that bit 31 to bit 63 of tmp64 can not all be the sign bit, and therefore tmp64 is 32-bit overflowed. + * That is, we judge if tmp64' > 0x00000000FFFFFFFF, or tmp64' <= 0xFFFFFFFF00000000. + * We use narrowing shift right 31 bits to tmp32' to save data bandwidth and instructions. + * That is, we judge if tmp32' > 0x00000000, or tmp32' <= 0xFFFFFFFF. + */ + +/* Compute inverse of LPC prediction gain, and */ +/* test if LPC coefficients are stable (all poles within unit circle) */ +static OPUS_INLINE opus_int32 LPC_inverse_pred_gain_QA_neon( /* O Returns inverse prediction gain in energy domain, Q30 */ + opus_int32 A_QA[ SILK_MAX_ORDER_LPC ], /* I Prediction coefficients */ + const opus_int order /* I Prediction order */ +) +{ + opus_int k, n, mult2Q; + opus_int32 invGain_Q30, rc_Q31, rc_mult1_Q30, rc_mult2, tmp1, tmp2; + opus_int32 max, min; + int32x4_t max_s32x4, min_s32x4; + int32x2_t max_s32x2, min_s32x2; + + max_s32x4 = vdupq_n_s32( silk_int32_MIN ); + min_s32x4 = vdupq_n_s32( silk_int32_MAX ); + invGain_Q30 = SILK_FIX_CONST( 1, 30 ); + for( k = order - 1; k > 0; k-- ) { + int32x2_t rc_Q31_s32x2, rc_mult2_s32x2; + int64x2_t mult2Q_s64x2; + + /* Check for stability */ + if( ( A_QA[ k ] > A_LIMIT ) || ( A_QA[ k ] < -A_LIMIT ) ) { + return 0; + } + + /* Set RC equal to negated AR coef */ + rc_Q31 = -silk_LSHIFT( A_QA[ k ], 31 - QA ); + + /* rc_mult1_Q30 range: [ 1 : 2^30 ] */ + rc_mult1_Q30 = silk_SUB32( SILK_FIX_CONST( 1, 30 ), silk_SMMUL( rc_Q31, rc_Q31 ) ); + silk_assert( rc_mult1_Q30 > ( 1 << 15 ) ); /* reduce A_LIMIT if fails */ + silk_assert( rc_mult1_Q30 <= ( 1 << 30 ) ); + + /* Update inverse gain */ + /* invGain_Q30 range: [ 0 : 2^30 ] */ + invGain_Q30 = silk_LSHIFT( silk_SMMUL( invGain_Q30, rc_mult1_Q30 ), 2 ); + silk_assert( invGain_Q30 >= 0 ); + silk_assert( invGain_Q30 <= ( 1 << 30 ) ); + if( invGain_Q30 < SILK_FIX_CONST( 1.0f / MAX_PREDICTION_POWER_GAIN, 30 ) ) { + return 0; + } + + /* rc_mult2 range: [ 2^30 : silk_int32_MAX ] */ + mult2Q = 32 - silk_CLZ32( silk_abs( rc_mult1_Q30 ) ); + rc_mult2 = silk_INVERSE32_varQ( rc_mult1_Q30, mult2Q + 30 ); + + /* Update AR coefficient */ + rc_Q31_s32x2 = vdup_n_s32( rc_Q31 ); + mult2Q_s64x2 = vdupq_n_s64( -mult2Q ); + rc_mult2_s32x2 = vdup_n_s32( rc_mult2 ); + + for( n = 0; n < ( ( k + 1 ) >> 1 ) - 3; n += 4 ) { + /* We always calculate extra elements of A_QA buffer when ( k % 4 ) != 0, to take the advantage of SIMD parallelization. */ + int32x4_t tmp1_s32x4, tmp2_s32x4, t0_s32x4, t1_s32x4, s0_s32x4, s1_s32x4, t_QA0_s32x4, t_QA1_s32x4; + int64x2_t t0_s64x2, t1_s64x2, t2_s64x2, t3_s64x2; + tmp1_s32x4 = vld1q_s32( A_QA + n ); + tmp2_s32x4 = vld1q_s32( A_QA + k - n - 4 ); + tmp2_s32x4 = vrev64q_s32( tmp2_s32x4 ); + tmp2_s32x4 = vcombine_s32( vget_high_s32( tmp2_s32x4 ), vget_low_s32( tmp2_s32x4 ) ); + t0_s32x4 = vqrdmulhq_lane_s32( tmp2_s32x4, rc_Q31_s32x2, 0 ); + t1_s32x4 = vqrdmulhq_lane_s32( tmp1_s32x4, rc_Q31_s32x2, 0 ); + t_QA0_s32x4 = vqsubq_s32( tmp1_s32x4, t0_s32x4 ); + t_QA1_s32x4 = vqsubq_s32( tmp2_s32x4, t1_s32x4 ); + t0_s64x2 = vmull_s32( vget_low_s32 ( t_QA0_s32x4 ), rc_mult2_s32x2 ); + t1_s64x2 = vmull_s32( vget_high_s32( t_QA0_s32x4 ), rc_mult2_s32x2 ); + t2_s64x2 = vmull_s32( vget_low_s32 ( t_QA1_s32x4 ), rc_mult2_s32x2 ); + t3_s64x2 = vmull_s32( vget_high_s32( t_QA1_s32x4 ), rc_mult2_s32x2 ); + t0_s64x2 = vrshlq_s64( t0_s64x2, mult2Q_s64x2 ); + t1_s64x2 = vrshlq_s64( t1_s64x2, mult2Q_s64x2 ); + t2_s64x2 = vrshlq_s64( t2_s64x2, mult2Q_s64x2 ); + t3_s64x2 = vrshlq_s64( t3_s64x2, mult2Q_s64x2 ); + t0_s32x4 = vcombine_s32( vmovn_s64( t0_s64x2 ), vmovn_s64( t1_s64x2 ) ); + t1_s32x4 = vcombine_s32( vmovn_s64( t2_s64x2 ), vmovn_s64( t3_s64x2 ) ); + s0_s32x4 = vcombine_s32( vshrn_n_s64( t0_s64x2, 31 ), vshrn_n_s64( t1_s64x2, 31 ) ); + s1_s32x4 = vcombine_s32( vshrn_n_s64( t2_s64x2, 31 ), vshrn_n_s64( t3_s64x2, 31 ) ); + max_s32x4 = vmaxq_s32( max_s32x4, s0_s32x4 ); + min_s32x4 = vminq_s32( min_s32x4, s0_s32x4 ); + max_s32x4 = vmaxq_s32( max_s32x4, s1_s32x4 ); + min_s32x4 = vminq_s32( min_s32x4, s1_s32x4 ); + t1_s32x4 = vrev64q_s32( t1_s32x4 ); + t1_s32x4 = vcombine_s32( vget_high_s32( t1_s32x4 ), vget_low_s32( t1_s32x4 ) ); + vst1q_s32( A_QA + n, t0_s32x4 ); + vst1q_s32( A_QA + k - n - 4, t1_s32x4 ); + } + for( ; n < (k + 1) >> 1; n++ ) { + opus_int64 tmp64; + tmp1 = A_QA[ n ]; + tmp2 = A_QA[ k - n - 1 ]; + tmp64 = silk_RSHIFT_ROUND64( silk_SMULL( silk_SUB_SAT32(tmp1, + MUL32_FRAC_Q( tmp2, rc_Q31, 31 ) ), rc_mult2 ), mult2Q); + if( tmp64 > silk_int32_MAX || tmp64 < silk_int32_MIN ) { + return 0; + } + A_QA[ n ] = ( opus_int32 )tmp64; + tmp64 = silk_RSHIFT_ROUND64( silk_SMULL( silk_SUB_SAT32(tmp2, + MUL32_FRAC_Q( tmp1, rc_Q31, 31 ) ), rc_mult2), mult2Q); + if( tmp64 > silk_int32_MAX || tmp64 < silk_int32_MIN ) { + return 0; + } + A_QA[ k - n - 1 ] = ( opus_int32 )tmp64; + } + } + + /* Check for stability */ + if( ( A_QA[ k ] > A_LIMIT ) || ( A_QA[ k ] < -A_LIMIT ) ) { + return 0; + } + + max_s32x2 = vmax_s32( vget_low_s32( max_s32x4 ), vget_high_s32( max_s32x4 ) ); + min_s32x2 = vmin_s32( vget_low_s32( min_s32x4 ), vget_high_s32( min_s32x4 ) ); + max_s32x2 = vmax_s32( max_s32x2, vreinterpret_s32_s64( vshr_n_s64( vreinterpret_s64_s32( max_s32x2 ), 32 ) ) ); + min_s32x2 = vmin_s32( min_s32x2, vreinterpret_s32_s64( vshr_n_s64( vreinterpret_s64_s32( min_s32x2 ), 32 ) ) ); + max = vget_lane_s32( max_s32x2, 0 ); + min = vget_lane_s32( min_s32x2, 0 ); + if( ( max > 0 ) || ( min < -1 ) ) { + return 0; + } + + /* Set RC equal to negated AR coef */ + rc_Q31 = -silk_LSHIFT( A_QA[ 0 ], 31 - QA ); + + /* Range: [ 1 : 2^30 ] */ + rc_mult1_Q30 = silk_SUB32( SILK_FIX_CONST( 1, 30 ), silk_SMMUL( rc_Q31, rc_Q31 ) ); + + /* Update inverse gain */ + /* Range: [ 0 : 2^30 ] */ + invGain_Q30 = silk_LSHIFT( silk_SMMUL( invGain_Q30, rc_mult1_Q30 ), 2 ); + silk_assert( invGain_Q30 >= 0 ); + silk_assert( invGain_Q30 <= ( 1 << 30 ) ); + if( invGain_Q30 < SILK_FIX_CONST( 1.0f / MAX_PREDICTION_POWER_GAIN, 30 ) ) { + return 0; + } + + return invGain_Q30; +} + +/* For input in Q12 domain */ +opus_int32 silk_LPC_inverse_pred_gain_neon( /* O Returns inverse prediction gain in energy domain, Q30 */ + const opus_int16 *A_Q12, /* I Prediction coefficients, Q12 [order] */ + const opus_int order /* I Prediction order */ +) +{ +#ifdef OPUS_CHECK_ASM + const opus_int32 invGain_Q30_c = silk_LPC_inverse_pred_gain_c( A_Q12, order ); +#endif + + opus_int32 invGain_Q30; + if( ( SILK_MAX_ORDER_LPC != 24 ) || ( order & 1 )) { + invGain_Q30 = silk_LPC_inverse_pred_gain_c( A_Q12, order ); + } + else { + opus_int32 Atmp_QA[ SILK_MAX_ORDER_LPC ]; + opus_int32 DC_resp; + int16x8_t t0_s16x8, t1_s16x8, t2_s16x8; + int32x4_t t0_s32x4; + const opus_int leftover = order & 7; + + /* Increase Q domain of the AR coefficients */ + t0_s16x8 = vld1q_s16( A_Q12 + 0 ); + t1_s16x8 = vld1q_s16( A_Q12 + 8 ); + t2_s16x8 = vld1q_s16( A_Q12 + 16 ); + t0_s32x4 = vpaddlq_s16( t0_s16x8 ); + + switch( order - leftover ) + { + case 24: + t0_s32x4 = vpadalq_s16( t0_s32x4, t2_s16x8 ); + /* FALLTHROUGH */ + + case 16: + t0_s32x4 = vpadalq_s16( t0_s32x4, t1_s16x8 ); + vst1q_s32( Atmp_QA + 16, vshll_n_s16( vget_low_s16 ( t2_s16x8 ), QA - 12 ) ); + vst1q_s32( Atmp_QA + 20, vshll_n_s16( vget_high_s16( t2_s16x8 ), QA - 12 ) ); + /* FALLTHROUGH */ + + case 8: + { + const int32x2_t t_s32x2 = vpadd_s32( vget_low_s32( t0_s32x4 ), vget_high_s32( t0_s32x4 ) ); + const int64x1_t t_s64x1 = vpaddl_s32( t_s32x2 ); + DC_resp = vget_lane_s32( vreinterpret_s32_s64( t_s64x1 ), 0 ); + vst1q_s32( Atmp_QA + 8, vshll_n_s16( vget_low_s16 ( t1_s16x8 ), QA - 12 ) ); + vst1q_s32( Atmp_QA + 12, vshll_n_s16( vget_high_s16( t1_s16x8 ), QA - 12 ) ); + } + break; + + default: + DC_resp = 0; + break; + } + A_Q12 += order - leftover; + + switch( leftover ) + { + case 6: + DC_resp += (opus_int32)A_Q12[ 5 ]; + DC_resp += (opus_int32)A_Q12[ 4 ]; + /* FALLTHROUGH */ + + case 4: + DC_resp += (opus_int32)A_Q12[ 3 ]; + DC_resp += (opus_int32)A_Q12[ 2 ]; + /* FALLTHROUGH */ + + case 2: + DC_resp += (opus_int32)A_Q12[ 1 ]; + DC_resp += (opus_int32)A_Q12[ 0 ]; + /* FALLTHROUGH */ + + default: + break; + } + + /* If the DC is unstable, we don't even need to do the full calculations */ + if( DC_resp >= 4096 ) { + invGain_Q30 = 0; + } else { + vst1q_s32( Atmp_QA + 0, vshll_n_s16( vget_low_s16 ( t0_s16x8 ), QA - 12 ) ); + vst1q_s32( Atmp_QA + 4, vshll_n_s16( vget_high_s16( t0_s16x8 ), QA - 12 ) ); + invGain_Q30 = LPC_inverse_pred_gain_QA_neon( Atmp_QA, order ); + } + } + +#ifdef OPUS_CHECK_ASM + silk_assert( invGain_Q30_c == invGain_Q30 ); +#endif + + return invGain_Q30; +} diff --git a/TMessagesProj/jni/opus/silk/arm/NSQ_del_dec_arm.h b/TMessagesProj/jni/opus/silk/arm/NSQ_del_dec_arm.h new file mode 100644 index 000000000..9e76e1692 --- /dev/null +++ b/TMessagesProj/jni/opus/silk/arm/NSQ_del_dec_arm.h @@ -0,0 +1,100 @@ +/*********************************************************************** +Copyright (c) 2017 Google Inc. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +- Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. +- Neither the name of Internet Society, IETF or IETF Trust, nor the +names of specific contributors, may be used to endorse or promote +products derived from this software without specific prior written +permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +***********************************************************************/ + +#ifndef SILK_NSQ_DEL_DEC_ARM_H +#define SILK_NSQ_DEL_DEC_ARM_H + +#include "celt/arm/armcpu.h" + +#if defined(OPUS_ARM_MAY_HAVE_NEON_INTR) +void silk_NSQ_del_dec_neon( + const silk_encoder_state *psEncC, silk_nsq_state *NSQ, + SideInfoIndices *psIndices, const opus_int16 x16[], opus_int8 pulses[], + const opus_int16 PredCoef_Q12[2 * MAX_LPC_ORDER], + const opus_int16 LTPCoef_Q14[LTP_ORDER * MAX_NB_SUBFR], + const opus_int16 AR_Q13[MAX_NB_SUBFR * MAX_SHAPE_LPC_ORDER], + const opus_int HarmShapeGain_Q14[MAX_NB_SUBFR], + const opus_int Tilt_Q14[MAX_NB_SUBFR], + const opus_int32 LF_shp_Q14[MAX_NB_SUBFR], + const opus_int32 Gains_Q16[MAX_NB_SUBFR], + const opus_int pitchL[MAX_NB_SUBFR], const opus_int Lambda_Q10, + const opus_int LTP_scale_Q14); + +#if !defined(OPUS_HAVE_RTCD) +#define OVERRIDE_silk_NSQ_del_dec (1) +#define silk_NSQ_del_dec(psEncC, NSQ, psIndices, x16, pulses, PredCoef_Q12, \ + LTPCoef_Q14, AR_Q13, HarmShapeGain_Q14, Tilt_Q14, \ + LF_shp_Q14, Gains_Q16, pitchL, Lambda_Q10, \ + LTP_scale_Q14, arch) \ + ((void)(arch), \ + PRESUME_NEON(silk_NSQ_del_dec)( \ + psEncC, NSQ, psIndices, x16, pulses, PredCoef_Q12, LTPCoef_Q14, \ + AR_Q13, HarmShapeGain_Q14, Tilt_Q14, LF_shp_Q14, Gains_Q16, pitchL, \ + Lambda_Q10, LTP_scale_Q14)) +#endif +#endif + +#if !defined(OVERRIDE_silk_NSQ_del_dec) +/*Is run-time CPU detection enabled on this platform?*/ +#if defined(OPUS_HAVE_RTCD) && (defined(OPUS_ARM_MAY_HAVE_NEON_INTR) && \ + !defined(OPUS_ARM_PRESUME_NEON_INTR)) +extern void (*const SILK_NSQ_DEL_DEC_IMPL[OPUS_ARCHMASK + 1])( + const silk_encoder_state *psEncC, silk_nsq_state *NSQ, + SideInfoIndices *psIndices, const opus_int16 x16[], opus_int8 pulses[], + const opus_int16 PredCoef_Q12[2 * MAX_LPC_ORDER], + const opus_int16 LTPCoef_Q14[LTP_ORDER * MAX_NB_SUBFR], + const opus_int16 AR_Q13[MAX_NB_SUBFR * MAX_SHAPE_LPC_ORDER], + const opus_int HarmShapeGain_Q14[MAX_NB_SUBFR], + const opus_int Tilt_Q14[MAX_NB_SUBFR], + const opus_int32 LF_shp_Q14[MAX_NB_SUBFR], + const opus_int32 Gains_Q16[MAX_NB_SUBFR], + const opus_int pitchL[MAX_NB_SUBFR], const opus_int Lambda_Q10, + const opus_int LTP_scale_Q14); +#define OVERRIDE_silk_NSQ_del_dec (1) +#define silk_NSQ_del_dec(psEncC, NSQ, psIndices, x16, pulses, PredCoef_Q12, \ + LTPCoef_Q14, AR_Q13, HarmShapeGain_Q14, Tilt_Q14, \ + LF_shp_Q14, Gains_Q16, pitchL, Lambda_Q10, \ + LTP_scale_Q14, arch) \ + ((*SILK_NSQ_DEL_DEC_IMPL[(arch)&OPUS_ARCHMASK])( \ + psEncC, NSQ, psIndices, x16, pulses, PredCoef_Q12, LTPCoef_Q14, \ + AR_Q13, HarmShapeGain_Q14, Tilt_Q14, LF_shp_Q14, Gains_Q16, pitchL, \ + Lambda_Q10, LTP_scale_Q14)) +#elif defined(OPUS_ARM_PRESUME_NEON_INTR) +#define OVERRIDE_silk_NSQ_del_dec (1) +#define silk_NSQ_del_dec(psEncC, NSQ, psIndices, x16, pulses, PredCoef_Q12, \ + LTPCoef_Q14, AR_Q13, HarmShapeGain_Q14, Tilt_Q14, \ + LF_shp_Q14, Gains_Q16, pitchL, Lambda_Q10, \ + LTP_scale_Q14, arch) \ + ((void)(arch), \ + silk_NSQ_del_dec_neon(psEncC, NSQ, psIndices, x16, pulses, PredCoef_Q12, \ + LTPCoef_Q14, AR_Q13, HarmShapeGain_Q14, Tilt_Q14, \ + LF_shp_Q14, Gains_Q16, pitchL, Lambda_Q10, \ + LTP_scale_Q14)) +#endif +#endif + +#endif /* end SILK_NSQ_DEL_DEC_ARM_H */ diff --git a/TMessagesProj/jni/opus/silk/arm/NSQ_del_dec_neon_intr.c b/TMessagesProj/jni/opus/silk/arm/NSQ_del_dec_neon_intr.c new file mode 100644 index 000000000..212410f36 --- /dev/null +++ b/TMessagesProj/jni/opus/silk/arm/NSQ_del_dec_neon_intr.c @@ -0,0 +1,1124 @@ +/*********************************************************************** +Copyright (c) 2017 Google Inc. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +- Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. +- Neither the name of Internet Society, IETF or IETF Trust, nor the +names of specific contributors, may be used to endorse or promote +products derived from this software without specific prior written +permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +***********************************************************************/ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#ifdef OPUS_CHECK_ASM +# include +#endif +#include "main.h" +#include "stack_alloc.h" + +/* NEON intrinsics optimization now can only parallelize up to 4 delay decision states. */ +/* If there are more states, C function is called, and this optimization must be expanded. */ +#define NEON_MAX_DEL_DEC_STATES 4 + +typedef struct { + opus_int32 sLPC_Q14[ MAX_SUB_FRAME_LENGTH + NSQ_LPC_BUF_LENGTH ][ NEON_MAX_DEL_DEC_STATES ]; + opus_int32 RandState[ DECISION_DELAY ][ NEON_MAX_DEL_DEC_STATES ]; + opus_int32 Q_Q10[ DECISION_DELAY ][ NEON_MAX_DEL_DEC_STATES ]; + opus_int32 Xq_Q14[ DECISION_DELAY ][ NEON_MAX_DEL_DEC_STATES ]; + opus_int32 Pred_Q15[ DECISION_DELAY ][ NEON_MAX_DEL_DEC_STATES ]; + opus_int32 Shape_Q14[ DECISION_DELAY ][ NEON_MAX_DEL_DEC_STATES ]; + opus_int32 sAR2_Q14[ MAX_SHAPE_LPC_ORDER ][ NEON_MAX_DEL_DEC_STATES ]; + opus_int32 LF_AR_Q14[ NEON_MAX_DEL_DEC_STATES ]; + opus_int32 Diff_Q14[ NEON_MAX_DEL_DEC_STATES ]; + opus_int32 Seed[ NEON_MAX_DEL_DEC_STATES ]; + opus_int32 SeedInit[ NEON_MAX_DEL_DEC_STATES ]; + opus_int32 RD_Q10[ NEON_MAX_DEL_DEC_STATES ]; +} NSQ_del_decs_struct; + +typedef struct { + opus_int32 Q_Q10[ NEON_MAX_DEL_DEC_STATES ]; + opus_int32 RD_Q10[ NEON_MAX_DEL_DEC_STATES ]; + opus_int32 xq_Q14[ NEON_MAX_DEL_DEC_STATES ]; + opus_int32 LF_AR_Q14[ NEON_MAX_DEL_DEC_STATES ]; + opus_int32 Diff_Q14[ NEON_MAX_DEL_DEC_STATES ]; + opus_int32 sLTP_shp_Q14[ NEON_MAX_DEL_DEC_STATES ]; + opus_int32 LPC_exc_Q14[ NEON_MAX_DEL_DEC_STATES ]; +} NSQ_samples_struct; + +static OPUS_INLINE void silk_nsq_del_dec_scale_states_neon( + const silk_encoder_state *psEncC, /* I Encoder State */ + silk_nsq_state *NSQ, /* I/O NSQ state */ + NSQ_del_decs_struct psDelDec[], /* I/O Delayed decision states */ + const opus_int16 x16[], /* I Input */ + opus_int32 x_sc_Q10[], /* O Input scaled with 1/Gain in Q10 */ + const opus_int16 sLTP[], /* I Re-whitened LTP state in Q0 */ + opus_int32 sLTP_Q15[], /* O LTP state matching scaled input */ + opus_int subfr, /* I Subframe number */ + const opus_int LTP_scale_Q14, /* I LTP state scaling */ + const opus_int32 Gains_Q16[ MAX_NB_SUBFR ], /* I */ + const opus_int pitchL[ MAX_NB_SUBFR ], /* I Pitch lag */ + const opus_int signal_type, /* I Signal type */ + const opus_int decisionDelay /* I Decision delay */ +); + +/******************************************/ +/* Noise shape quantizer for one subframe */ +/******************************************/ +static OPUS_INLINE void silk_noise_shape_quantizer_del_dec_neon( + silk_nsq_state *NSQ, /* I/O NSQ state */ + NSQ_del_decs_struct psDelDec[], /* I/O Delayed decision states */ + opus_int signalType, /* I Signal type */ + const opus_int32 x_Q10[], /* I */ + opus_int8 pulses[], /* O */ + opus_int16 xq[], /* O */ + opus_int32 sLTP_Q15[], /* I/O LTP filter state */ + opus_int32 delayedGain_Q10[], /* I/O Gain delay buffer */ + const opus_int16 a_Q12[], /* I Short term prediction coefs */ + const opus_int16 b_Q14[], /* I Long term prediction coefs */ + const opus_int16 AR_shp_Q13[], /* I Noise shaping coefs */ + opus_int lag, /* I Pitch lag */ + opus_int32 HarmShapeFIRPacked_Q14, /* I */ + opus_int Tilt_Q14, /* I Spectral tilt */ + opus_int32 LF_shp_Q14, /* I */ + opus_int32 Gain_Q16, /* I */ + opus_int Lambda_Q10, /* I */ + opus_int offset_Q10, /* I */ + opus_int length, /* I Input length */ + opus_int subfr, /* I Subframe number */ + opus_int shapingLPCOrder, /* I Shaping LPC filter order */ + opus_int predictLPCOrder, /* I Prediction filter order */ + opus_int warping_Q16, /* I */ + opus_int nStatesDelayedDecision, /* I Number of states in decision tree */ + opus_int *smpl_buf_idx, /* I/O Index to newest samples in buffers */ + opus_int decisionDelay /* I */ +); + +static OPUS_INLINE void copy_winner_state_kernel( + const NSQ_del_decs_struct *psDelDec, + const opus_int offset, + const opus_int last_smple_idx, + const opus_int Winner_ind, + const int32x2_t gain_lo_s32x2, + const int32x2_t gain_hi_s32x2, + const int32x4_t shift_s32x4, + int32x4_t t0_s32x4, + int32x4_t t1_s32x4, + opus_int8 *const pulses, + opus_int16 *pxq, + silk_nsq_state *NSQ +) +{ + int16x8_t t_s16x8; + int32x4_t o0_s32x4, o1_s32x4; + + t0_s32x4 = vld1q_lane_s32( &psDelDec->Q_Q10[ last_smple_idx - 0 ][ Winner_ind ], t0_s32x4, 0 ); + t0_s32x4 = vld1q_lane_s32( &psDelDec->Q_Q10[ last_smple_idx - 1 ][ Winner_ind ], t0_s32x4, 1 ); + t0_s32x4 = vld1q_lane_s32( &psDelDec->Q_Q10[ last_smple_idx - 2 ][ Winner_ind ], t0_s32x4, 2 ); + t0_s32x4 = vld1q_lane_s32( &psDelDec->Q_Q10[ last_smple_idx - 3 ][ Winner_ind ], t0_s32x4, 3 ); + t1_s32x4 = vld1q_lane_s32( &psDelDec->Q_Q10[ last_smple_idx - 4 ][ Winner_ind ], t1_s32x4, 0 ); + t1_s32x4 = vld1q_lane_s32( &psDelDec->Q_Q10[ last_smple_idx - 5 ][ Winner_ind ], t1_s32x4, 1 ); + t1_s32x4 = vld1q_lane_s32( &psDelDec->Q_Q10[ last_smple_idx - 6 ][ Winner_ind ], t1_s32x4, 2 ); + t1_s32x4 = vld1q_lane_s32( &psDelDec->Q_Q10[ last_smple_idx - 7 ][ Winner_ind ], t1_s32x4, 3 ); + t_s16x8 = vcombine_s16( vrshrn_n_s32( t0_s32x4, 10 ), vrshrn_n_s32( t1_s32x4, 10 ) ); + vst1_s8( &pulses[ offset ], vmovn_s16( t_s16x8 ) ); + + t0_s32x4 = vld1q_lane_s32( &psDelDec->Xq_Q14[ last_smple_idx - 0 ][ Winner_ind ], t0_s32x4, 0 ); + t0_s32x4 = vld1q_lane_s32( &psDelDec->Xq_Q14[ last_smple_idx - 1 ][ Winner_ind ], t0_s32x4, 1 ); + t0_s32x4 = vld1q_lane_s32( &psDelDec->Xq_Q14[ last_smple_idx - 2 ][ Winner_ind ], t0_s32x4, 2 ); + t0_s32x4 = vld1q_lane_s32( &psDelDec->Xq_Q14[ last_smple_idx - 3 ][ Winner_ind ], t0_s32x4, 3 ); + t1_s32x4 = vld1q_lane_s32( &psDelDec->Xq_Q14[ last_smple_idx - 4 ][ Winner_ind ], t1_s32x4, 0 ); + t1_s32x4 = vld1q_lane_s32( &psDelDec->Xq_Q14[ last_smple_idx - 5 ][ Winner_ind ], t1_s32x4, 1 ); + t1_s32x4 = vld1q_lane_s32( &psDelDec->Xq_Q14[ last_smple_idx - 6 ][ Winner_ind ], t1_s32x4, 2 ); + t1_s32x4 = vld1q_lane_s32( &psDelDec->Xq_Q14[ last_smple_idx - 7 ][ Winner_ind ], t1_s32x4, 3 ); + o0_s32x4 = vqdmulhq_lane_s32( t0_s32x4, gain_lo_s32x2, 0 ); + o1_s32x4 = vqdmulhq_lane_s32( t1_s32x4, gain_lo_s32x2, 0 ); + o0_s32x4 = vmlaq_lane_s32( o0_s32x4, t0_s32x4, gain_hi_s32x2, 0 ); + o1_s32x4 = vmlaq_lane_s32( o1_s32x4, t1_s32x4, gain_hi_s32x2, 0 ); + o0_s32x4 = vrshlq_s32( o0_s32x4, shift_s32x4 ); + o1_s32x4 = vrshlq_s32( o1_s32x4, shift_s32x4 ); + vst1_s16( &pxq[ offset + 0 ], vqmovn_s32( o0_s32x4 ) ); + vst1_s16( &pxq[ offset + 4 ], vqmovn_s32( o1_s32x4 ) ); + + t0_s32x4 = vld1q_lane_s32( &psDelDec->Shape_Q14[ last_smple_idx - 0 ][ Winner_ind ], t0_s32x4, 0 ); + t0_s32x4 = vld1q_lane_s32( &psDelDec->Shape_Q14[ last_smple_idx - 1 ][ Winner_ind ], t0_s32x4, 1 ); + t0_s32x4 = vld1q_lane_s32( &psDelDec->Shape_Q14[ last_smple_idx - 2 ][ Winner_ind ], t0_s32x4, 2 ); + t0_s32x4 = vld1q_lane_s32( &psDelDec->Shape_Q14[ last_smple_idx - 3 ][ Winner_ind ], t0_s32x4, 3 ); + t1_s32x4 = vld1q_lane_s32( &psDelDec->Shape_Q14[ last_smple_idx - 4 ][ Winner_ind ], t1_s32x4, 0 ); + t1_s32x4 = vld1q_lane_s32( &psDelDec->Shape_Q14[ last_smple_idx - 5 ][ Winner_ind ], t1_s32x4, 1 ); + t1_s32x4 = vld1q_lane_s32( &psDelDec->Shape_Q14[ last_smple_idx - 6 ][ Winner_ind ], t1_s32x4, 2 ); + t1_s32x4 = vld1q_lane_s32( &psDelDec->Shape_Q14[ last_smple_idx - 7 ][ Winner_ind ], t1_s32x4, 3 ); + vst1q_s32( &NSQ->sLTP_shp_Q14[ NSQ->sLTP_shp_buf_idx + offset + 0 ], t0_s32x4 ); + vst1q_s32( &NSQ->sLTP_shp_Q14[ NSQ->sLTP_shp_buf_idx + offset + 4 ], t1_s32x4 ); +} + +static OPUS_INLINE void copy_winner_state( + const NSQ_del_decs_struct *psDelDec, + const opus_int decisionDelay, + const opus_int smpl_buf_idx, + const opus_int Winner_ind, + const opus_int32 gain, + const opus_int32 shift, + opus_int8 *const pulses, + opus_int16 *pxq, + silk_nsq_state *NSQ +) +{ + opus_int i, last_smple_idx; + const int32x2_t gain_lo_s32x2 = vdup_n_s32( silk_LSHIFT32( gain & 0x0000FFFF, 15 ) ); + const int32x2_t gain_hi_s32x2 = vdup_n_s32( gain >> 16 ); + const int32x4_t shift_s32x4 = vdupq_n_s32( -shift ); + int32x4_t t0_s32x4, t1_s32x4; + + t0_s32x4 = t1_s32x4 = vdupq_n_s32( 0 ); /* initialization */ + last_smple_idx = smpl_buf_idx + decisionDelay - 1 + DECISION_DELAY; + if( last_smple_idx >= DECISION_DELAY ) last_smple_idx -= DECISION_DELAY; + if( last_smple_idx >= DECISION_DELAY ) last_smple_idx -= DECISION_DELAY; + + for( i = 0; ( i < ( decisionDelay - 7 ) ) && ( last_smple_idx >= 7 ); i += 8, last_smple_idx -= 8 ) { + copy_winner_state_kernel( psDelDec, i - decisionDelay, last_smple_idx, Winner_ind, gain_lo_s32x2, gain_hi_s32x2, shift_s32x4, t0_s32x4, t1_s32x4, pulses, pxq, NSQ ); + } + for( ; ( i < decisionDelay ) && ( last_smple_idx >= 0 ); i++, last_smple_idx-- ) { + pulses[ i - decisionDelay ] = (opus_int8)silk_RSHIFT_ROUND( psDelDec->Q_Q10[ last_smple_idx ][ Winner_ind ], 10 ); + pxq[ i - decisionDelay ] = (opus_int16)silk_SAT16( silk_RSHIFT_ROUND( silk_SMULWW( psDelDec->Xq_Q14[ last_smple_idx ][ Winner_ind ], gain ), shift ) ); + NSQ->sLTP_shp_Q14[ NSQ->sLTP_shp_buf_idx - decisionDelay + i ] = psDelDec->Shape_Q14[ last_smple_idx ][ Winner_ind ]; + } + + last_smple_idx += DECISION_DELAY; + for( ; i < ( decisionDelay - 7 ); i++, last_smple_idx-- ) { + copy_winner_state_kernel( psDelDec, i - decisionDelay, last_smple_idx, Winner_ind, gain_lo_s32x2, gain_hi_s32x2, shift_s32x4, t0_s32x4, t1_s32x4, pulses, pxq, NSQ ); + } + for( ; i < decisionDelay; i++, last_smple_idx-- ) { + pulses[ i - decisionDelay ] = (opus_int8)silk_RSHIFT_ROUND( psDelDec->Q_Q10[ last_smple_idx ][ Winner_ind ], 10 ); + pxq[ i - decisionDelay ] = (opus_int16)silk_SAT16( silk_RSHIFT_ROUND( silk_SMULWW( psDelDec->Xq_Q14[ last_smple_idx ][ Winner_ind ], gain ), shift ) ); + NSQ->sLTP_shp_Q14[ NSQ->sLTP_shp_buf_idx - decisionDelay + i ] = psDelDec->Shape_Q14[ last_smple_idx ][ Winner_ind ]; + } +} + +void silk_NSQ_del_dec_neon( + const silk_encoder_state *psEncC, /* I Encoder State */ + silk_nsq_state *NSQ, /* I/O NSQ state */ + SideInfoIndices *psIndices, /* I/O Quantization Indices */ + const opus_int16 x16[], /* I Input */ + opus_int8 pulses[], /* O Quantized pulse signal */ + const opus_int16 PredCoef_Q12[ 2 * MAX_LPC_ORDER ], /* I Short term prediction coefs */ + const opus_int16 LTPCoef_Q14[ LTP_ORDER * MAX_NB_SUBFR ], /* I Long term prediction coefs */ + const opus_int16 AR_Q13[ MAX_NB_SUBFR * MAX_SHAPE_LPC_ORDER ], /* I Noise shaping coefs */ + const opus_int HarmShapeGain_Q14[ MAX_NB_SUBFR ], /* I Long term shaping coefs */ + const opus_int Tilt_Q14[ MAX_NB_SUBFR ], /* I Spectral tilt */ + const opus_int32 LF_shp_Q14[ MAX_NB_SUBFR ], /* I Low frequency shaping coefs */ + const opus_int32 Gains_Q16[ MAX_NB_SUBFR ], /* I Quantization step sizes */ + const opus_int pitchL[ MAX_NB_SUBFR ], /* I Pitch lags */ + const opus_int Lambda_Q10, /* I Rate/distortion tradeoff */ + const opus_int LTP_scale_Q14 /* I LTP state scaling */ +) +{ +#ifdef OPUS_CHECK_ASM + silk_nsq_state NSQ_c; + SideInfoIndices psIndices_c; + opus_int8 pulses_c[ MAX_FRAME_LENGTH ]; + const opus_int8 *const pulses_a = pulses; + + ( void )pulses_a; + silk_memcpy( &NSQ_c, NSQ, sizeof( NSQ_c ) ); + silk_memcpy( &psIndices_c, psIndices, sizeof( psIndices_c ) ); + silk_memcpy( pulses_c, pulses, sizeof( pulses_c ) ); + silk_NSQ_del_dec_c( psEncC, &NSQ_c, &psIndices_c, x16, pulses_c, PredCoef_Q12, LTPCoef_Q14, AR_Q13, HarmShapeGain_Q14, Tilt_Q14, LF_shp_Q14, Gains_Q16, + pitchL, Lambda_Q10, LTP_scale_Q14 ); +#endif + + /* The optimization parallelizes the different delay decision states. */ + if(( psEncC->nStatesDelayedDecision > NEON_MAX_DEL_DEC_STATES ) || ( psEncC->nStatesDelayedDecision <= 2 )) { + /* NEON intrinsics optimization now can only parallelize up to 4 delay decision states. */ + /* If there are more states, C function is called, and this optimization must be expanded. */ + /* When the number of delay decision states is less than 3, there are penalties using this */ + /* optimization, and C function is called. */ + /* When the number of delay decision states is 2, it's better to specialize another */ + /* structure NSQ_del_dec2_struct and optimize with shorter NEON registers. (Low priority) */ + silk_NSQ_del_dec_c( psEncC, NSQ, psIndices, x16, pulses, PredCoef_Q12, LTPCoef_Q14, AR_Q13, HarmShapeGain_Q14, + Tilt_Q14, LF_shp_Q14, Gains_Q16, pitchL, Lambda_Q10, LTP_scale_Q14 ); + } else { + opus_int i, k, lag, start_idx, LSF_interpolation_flag, Winner_ind, subfr; + opus_int smpl_buf_idx, decisionDelay; + const opus_int16 *A_Q12, *B_Q14, *AR_shp_Q13; + opus_int16 *pxq; + VARDECL( opus_int32, sLTP_Q15 ); + VARDECL( opus_int16, sLTP ); + opus_int32 HarmShapeFIRPacked_Q14; + opus_int offset_Q10; + opus_int32 RDmin_Q10, Gain_Q10; + VARDECL( opus_int32, x_sc_Q10 ); + VARDECL( opus_int32, delayedGain_Q10 ); + VARDECL( NSQ_del_decs_struct, psDelDec ); + int32x4_t t_s32x4; + SAVE_STACK; + + /* Set unvoiced lag to the previous one, overwrite later for voiced */ + lag = NSQ->lagPrev; + + silk_assert( NSQ->prev_gain_Q16 != 0 ); + + /* Initialize delayed decision states */ + ALLOC( psDelDec, 1, NSQ_del_decs_struct ); + /* Only RandState and RD_Q10 need to be initialized to 0. */ + silk_memset( psDelDec->RandState, 0, sizeof( psDelDec->RandState ) ); + vst1q_s32( psDelDec->RD_Q10, vdupq_n_s32( 0 ) ); + + for( k = 0; k < psEncC->nStatesDelayedDecision; k++ ) { + psDelDec->SeedInit[ k ] = psDelDec->Seed[ k ] = ( k + psIndices->Seed ) & 3; + } + vst1q_s32( psDelDec->LF_AR_Q14, vld1q_dup_s32( &NSQ->sLF_AR_shp_Q14 ) ); + vst1q_s32( psDelDec->Diff_Q14, vld1q_dup_s32( &NSQ->sDiff_shp_Q14 ) ); + vst1q_s32( psDelDec->Shape_Q14[ 0 ], vld1q_dup_s32( &NSQ->sLTP_shp_Q14[ psEncC->ltp_mem_length - 1 ] ) ); + for( i = 0; i < NSQ_LPC_BUF_LENGTH; i++ ) { + vst1q_s32( psDelDec->sLPC_Q14[ i ], vld1q_dup_s32( &NSQ->sLPC_Q14[ i ] ) ); + } + for( i = 0; i < (opus_int)( sizeof( NSQ->sAR2_Q14 ) / sizeof( NSQ->sAR2_Q14[ 0 ] ) ); i++ ) { + vst1q_s32( psDelDec->sAR2_Q14[ i ], vld1q_dup_s32( &NSQ->sAR2_Q14[ i ] ) ); + } + + offset_Q10 = silk_Quantization_Offsets_Q10[ psIndices->signalType >> 1 ][ psIndices->quantOffsetType ]; + smpl_buf_idx = 0; /* index of oldest samples */ + + decisionDelay = silk_min_int( DECISION_DELAY, psEncC->subfr_length ); + + /* For voiced frames limit the decision delay to lower than the pitch lag */ + if( psIndices->signalType == TYPE_VOICED ) { + opus_int pitch_min = pitchL[ 0 ]; + for( k = 1; k < psEncC->nb_subfr; k++ ) { + pitch_min = silk_min_int( pitch_min, pitchL[ k ] ); + } + decisionDelay = silk_min_int( decisionDelay, pitch_min - LTP_ORDER / 2 - 1 ); + } else { + if( lag > 0 ) { + decisionDelay = silk_min_int( decisionDelay, lag - LTP_ORDER / 2 - 1 ); + } + } + + if( psIndices->NLSFInterpCoef_Q2 == 4 ) { + LSF_interpolation_flag = 0; + } else { + LSF_interpolation_flag = 1; + } + + ALLOC( sLTP_Q15, psEncC->ltp_mem_length + psEncC->frame_length, opus_int32 ); + ALLOC( sLTP, psEncC->ltp_mem_length + psEncC->frame_length, opus_int16 ); + ALLOC( x_sc_Q10, psEncC->subfr_length, opus_int32 ); + ALLOC( delayedGain_Q10, DECISION_DELAY, opus_int32 ); + /* Set up pointers to start of sub frame */ + pxq = &NSQ->xq[ psEncC->ltp_mem_length ]; + NSQ->sLTP_shp_buf_idx = psEncC->ltp_mem_length; + NSQ->sLTP_buf_idx = psEncC->ltp_mem_length; + subfr = 0; + for( k = 0; k < psEncC->nb_subfr; k++ ) { + A_Q12 = &PredCoef_Q12[ ( ( k >> 1 ) | ( 1 - LSF_interpolation_flag ) ) * MAX_LPC_ORDER ]; + B_Q14 = <PCoef_Q14[ k * LTP_ORDER ]; + AR_shp_Q13 = &AR_Q13[ k * MAX_SHAPE_LPC_ORDER ]; + + /* Noise shape parameters */ + silk_assert( HarmShapeGain_Q14[ k ] >= 0 ); + HarmShapeFIRPacked_Q14 = silk_RSHIFT( HarmShapeGain_Q14[ k ], 2 ); + HarmShapeFIRPacked_Q14 |= silk_LSHIFT( (opus_int32)silk_RSHIFT( HarmShapeGain_Q14[ k ], 1 ), 16 ); + + NSQ->rewhite_flag = 0; + if( psIndices->signalType == TYPE_VOICED ) { + /* Voiced */ + lag = pitchL[ k ]; + + /* Re-whitening */ + if( ( k & ( 3 - silk_LSHIFT( LSF_interpolation_flag, 1 ) ) ) == 0 ) { + if( k == 2 ) { + /* RESET DELAYED DECISIONS */ + /* Find winner */ + int32x4_t RD_Q10_s32x4; + RDmin_Q10 = psDelDec->RD_Q10[ 0 ]; + Winner_ind = 0; + for( i = 1; i < psEncC->nStatesDelayedDecision; i++ ) { + if( psDelDec->RD_Q10[ i ] < RDmin_Q10 ) { + RDmin_Q10 = psDelDec->RD_Q10[ i ]; + Winner_ind = i; + } + } + psDelDec->RD_Q10[ Winner_ind ] -= ( silk_int32_MAX >> 4 ); + RD_Q10_s32x4 = vld1q_s32( psDelDec->RD_Q10 ); + RD_Q10_s32x4 = vaddq_s32( RD_Q10_s32x4, vdupq_n_s32( silk_int32_MAX >> 4 ) ); + vst1q_s32( psDelDec->RD_Q10, RD_Q10_s32x4 ); + + /* Copy final part of signals from winner state to output and long-term filter states */ + copy_winner_state( psDelDec, decisionDelay, smpl_buf_idx, Winner_ind, Gains_Q16[ 1 ], 14, pulses, pxq, NSQ ); + + subfr = 0; + } + + /* Rewhiten with new A coefs */ + start_idx = psEncC->ltp_mem_length - lag - psEncC->predictLPCOrder - LTP_ORDER / 2; + silk_assert( start_idx > 0 ); + + silk_LPC_analysis_filter( &sLTP[ start_idx ], &NSQ->xq[ start_idx + k * psEncC->subfr_length ], + A_Q12, psEncC->ltp_mem_length - start_idx, psEncC->predictLPCOrder, psEncC->arch ); + + NSQ->sLTP_buf_idx = psEncC->ltp_mem_length; + NSQ->rewhite_flag = 1; + } + } + + silk_nsq_del_dec_scale_states_neon( psEncC, NSQ, psDelDec, x16, x_sc_Q10, sLTP, sLTP_Q15, k, + LTP_scale_Q14, Gains_Q16, pitchL, psIndices->signalType, decisionDelay ); + + silk_noise_shape_quantizer_del_dec_neon( NSQ, psDelDec, psIndices->signalType, x_sc_Q10, pulses, pxq, sLTP_Q15, + delayedGain_Q10, A_Q12, B_Q14, AR_shp_Q13, lag, HarmShapeFIRPacked_Q14, Tilt_Q14[ k ], LF_shp_Q14[ k ], + Gains_Q16[ k ], Lambda_Q10, offset_Q10, psEncC->subfr_length, subfr++, psEncC->shapingLPCOrder, + psEncC->predictLPCOrder, psEncC->warping_Q16, psEncC->nStatesDelayedDecision, &smpl_buf_idx, decisionDelay ); + + x16 += psEncC->subfr_length; + pulses += psEncC->subfr_length; + pxq += psEncC->subfr_length; + } + + /* Find winner */ + RDmin_Q10 = psDelDec->RD_Q10[ 0 ]; + Winner_ind = 0; + for( k = 1; k < psEncC->nStatesDelayedDecision; k++ ) { + if( psDelDec->RD_Q10[ k ] < RDmin_Q10 ) { + RDmin_Q10 = psDelDec->RD_Q10[ k ]; + Winner_ind = k; + } + } + + /* Copy final part of signals from winner state to output and long-term filter states */ + psIndices->Seed = psDelDec->SeedInit[ Winner_ind ]; + Gain_Q10 = silk_RSHIFT32( Gains_Q16[ psEncC->nb_subfr - 1 ], 6 ); + copy_winner_state( psDelDec, decisionDelay, smpl_buf_idx, Winner_ind, Gain_Q10, 8, pulses, pxq, NSQ ); + + t_s32x4 = vdupq_n_s32( 0 ); /* initialization */ + for( i = 0; i < ( NSQ_LPC_BUF_LENGTH - 3 ); i += 4 ) { + t_s32x4 = vld1q_lane_s32( &psDelDec->sLPC_Q14[ i + 0 ][ Winner_ind ], t_s32x4, 0 ); + t_s32x4 = vld1q_lane_s32( &psDelDec->sLPC_Q14[ i + 1 ][ Winner_ind ], t_s32x4, 1 ); + t_s32x4 = vld1q_lane_s32( &psDelDec->sLPC_Q14[ i + 2 ][ Winner_ind ], t_s32x4, 2 ); + t_s32x4 = vld1q_lane_s32( &psDelDec->sLPC_Q14[ i + 3 ][ Winner_ind ], t_s32x4, 3 ); + vst1q_s32( &NSQ->sLPC_Q14[ i ], t_s32x4 ); + } + + for( ; i < NSQ_LPC_BUF_LENGTH; i++ ) { + NSQ->sLPC_Q14[ i ] = psDelDec->sLPC_Q14[ i ][ Winner_ind ]; + } + + for( i = 0; i < (opus_int)( sizeof( NSQ->sAR2_Q14 ) / sizeof( NSQ->sAR2_Q14[ 0 ] ) - 3 ); i += 4 ) { + t_s32x4 = vld1q_lane_s32( &psDelDec->sAR2_Q14[ i + 0 ][ Winner_ind ], t_s32x4, 0 ); + t_s32x4 = vld1q_lane_s32( &psDelDec->sAR2_Q14[ i + 1 ][ Winner_ind ], t_s32x4, 1 ); + t_s32x4 = vld1q_lane_s32( &psDelDec->sAR2_Q14[ i + 2 ][ Winner_ind ], t_s32x4, 2 ); + t_s32x4 = vld1q_lane_s32( &psDelDec->sAR2_Q14[ i + 3 ][ Winner_ind ], t_s32x4, 3 ); + vst1q_s32( &NSQ->sAR2_Q14[ i ], t_s32x4 ); + } + + for( ; i < (opus_int)( sizeof( NSQ->sAR2_Q14 ) / sizeof( NSQ->sAR2_Q14[ 0 ] ) ); i++ ) { + NSQ->sAR2_Q14[ i ] = psDelDec->sAR2_Q14[ i ][ Winner_ind ]; + } + + /* Update states */ + NSQ->sLF_AR_shp_Q14 = psDelDec->LF_AR_Q14[ Winner_ind ]; + NSQ->sDiff_shp_Q14 = psDelDec->Diff_Q14[ Winner_ind ]; + NSQ->lagPrev = pitchL[ psEncC->nb_subfr - 1 ]; + + /* Save quantized speech signal */ + silk_memmove( NSQ->xq, &NSQ->xq[ psEncC->frame_length ], psEncC->ltp_mem_length * sizeof( opus_int16 ) ); + silk_memmove( NSQ->sLTP_shp_Q14, &NSQ->sLTP_shp_Q14[ psEncC->frame_length ], psEncC->ltp_mem_length * sizeof( opus_int32 ) ); + RESTORE_STACK; + } + +#ifdef OPUS_CHECK_ASM + silk_assert( !memcmp( &NSQ_c, NSQ, sizeof( NSQ_c ) ) ); + silk_assert( !memcmp( &psIndices_c, psIndices, sizeof( psIndices_c ) ) ); + silk_assert( !memcmp( pulses_c, pulses_a, sizeof( pulses_c ) ) ); +#endif +} + +/******************************************/ +/* Noise shape quantizer for one subframe */ +/******************************************/ +/* Note: Function silk_short_prediction_create_arch_coef_neon() defined in NSQ_neon.h is actually a hacking C function. */ +/* Therefore here we append "_local" to the NEON function name to avoid confusion. */ +static OPUS_INLINE void silk_short_prediction_create_arch_coef_neon_local(opus_int32 *out, const opus_int16 *in, opus_int order) +{ + int16x8_t t_s16x8; + int32x4_t t0_s32x4, t1_s32x4, t2_s32x4, t3_s32x4; + silk_assert( order == 10 || order == 16 ); + + t_s16x8 = vld1q_s16( in + 0 ); /* 7 6 5 4 3 2 1 0 */ + t_s16x8 = vrev64q_s16( t_s16x8 ); /* 4 5 6 7 0 1 2 3 */ + t2_s32x4 = vshll_n_s16( vget_high_s16( t_s16x8 ), 15 ); /* 4 5 6 7 */ + t3_s32x4 = vshll_n_s16( vget_low_s16( t_s16x8 ), 15 ); /* 0 1 2 3 */ + + if( order == 16 ) { + t_s16x8 = vld1q_s16( in + 8 ); /* F E D C B A 9 8 */ + t_s16x8 = vrev64q_s16( t_s16x8 ); /* C D E F 8 9 A B */ + t0_s32x4 = vshll_n_s16( vget_high_s16( t_s16x8 ), 15 ); /* C D E F */ + t1_s32x4 = vshll_n_s16( vget_low_s16( t_s16x8 ), 15 ); /* 8 9 A B */ + } else { + int16x4_t t_s16x4; + + t0_s32x4 = vdupq_n_s32( 0 ); /* zero zero zero zero */ + t_s16x4 = vld1_s16( in + 6 ); /* 9 8 7 6 */ + t_s16x4 = vrev64_s16( t_s16x4 ); /* 6 7 8 9 */ + t1_s32x4 = vshll_n_s16( t_s16x4, 15 ); + t1_s32x4 = vcombine_s32( vget_low_s32(t0_s32x4), vget_low_s32( t1_s32x4 ) ); /* 8 9 zero zero */ + } + vst1q_s32( out + 0, t0_s32x4 ); + vst1q_s32( out + 4, t1_s32x4 ); + vst1q_s32( out + 8, t2_s32x4 ); + vst1q_s32( out + 12, t3_s32x4 ); +} + +static OPUS_INLINE int32x4_t silk_SMLAWB_lane0_neon( + const int32x4_t out_s32x4, + const int32x4_t in_s32x4, + const int32x2_t coef_s32x2 +) +{ + return vaddq_s32( out_s32x4, vqdmulhq_lane_s32( in_s32x4, coef_s32x2, 0 ) ); +} + +static OPUS_INLINE int32x4_t silk_SMLAWB_lane1_neon( + const int32x4_t out_s32x4, + const int32x4_t in_s32x4, + const int32x2_t coef_s32x2 +) +{ + return vaddq_s32( out_s32x4, vqdmulhq_lane_s32( in_s32x4, coef_s32x2, 1 ) ); +} + +/* Note: This function has different return value than silk_noise_shape_quantizer_short_prediction_neon(). */ +/* Therefore here we append "_local" to the function name to avoid confusion. */ +static OPUS_INLINE int32x4_t silk_noise_shape_quantizer_short_prediction_neon_local(const opus_int32 *buf32, const opus_int32 *a_Q12_arch, opus_int order) +{ + const int32x4_t a_Q12_arch0_s32x4 = vld1q_s32( a_Q12_arch + 0 ); + const int32x4_t a_Q12_arch1_s32x4 = vld1q_s32( a_Q12_arch + 4 ); + const int32x4_t a_Q12_arch2_s32x4 = vld1q_s32( a_Q12_arch + 8 ); + const int32x4_t a_Q12_arch3_s32x4 = vld1q_s32( a_Q12_arch + 12 ); + int32x4_t LPC_pred_Q14_s32x4; + + silk_assert( order == 10 || order == 16 ); + /* Avoids introducing a bias because silk_SMLAWB() always rounds to -inf */ + LPC_pred_Q14_s32x4 = vdupq_n_s32( silk_RSHIFT( order, 1 ) ); + LPC_pred_Q14_s32x4 = silk_SMLAWB_lane0_neon( LPC_pred_Q14_s32x4, vld1q_s32( buf32 + 0 * NEON_MAX_DEL_DEC_STATES ), vget_low_s32( a_Q12_arch0_s32x4 ) ); + LPC_pred_Q14_s32x4 = silk_SMLAWB_lane1_neon( LPC_pred_Q14_s32x4, vld1q_s32( buf32 + 1 * NEON_MAX_DEL_DEC_STATES ), vget_low_s32( a_Q12_arch0_s32x4 ) ); + LPC_pred_Q14_s32x4 = silk_SMLAWB_lane0_neon( LPC_pred_Q14_s32x4, vld1q_s32( buf32 + 2 * NEON_MAX_DEL_DEC_STATES ), vget_high_s32( a_Q12_arch0_s32x4 ) ); + LPC_pred_Q14_s32x4 = silk_SMLAWB_lane1_neon( LPC_pred_Q14_s32x4, vld1q_s32( buf32 + 3 * NEON_MAX_DEL_DEC_STATES ), vget_high_s32( a_Q12_arch0_s32x4 ) ); + LPC_pred_Q14_s32x4 = silk_SMLAWB_lane0_neon( LPC_pred_Q14_s32x4, vld1q_s32( buf32 + 4 * NEON_MAX_DEL_DEC_STATES ), vget_low_s32( a_Q12_arch1_s32x4 ) ); + LPC_pred_Q14_s32x4 = silk_SMLAWB_lane1_neon( LPC_pred_Q14_s32x4, vld1q_s32( buf32 + 5 * NEON_MAX_DEL_DEC_STATES ), vget_low_s32( a_Q12_arch1_s32x4 ) ); + LPC_pred_Q14_s32x4 = silk_SMLAWB_lane0_neon( LPC_pred_Q14_s32x4, vld1q_s32( buf32 + 6 * NEON_MAX_DEL_DEC_STATES ), vget_high_s32( a_Q12_arch1_s32x4 ) ); + LPC_pred_Q14_s32x4 = silk_SMLAWB_lane1_neon( LPC_pred_Q14_s32x4, vld1q_s32( buf32 + 7 * NEON_MAX_DEL_DEC_STATES ), vget_high_s32( a_Q12_arch1_s32x4 ) ); + LPC_pred_Q14_s32x4 = silk_SMLAWB_lane0_neon( LPC_pred_Q14_s32x4, vld1q_s32( buf32 + 8 * NEON_MAX_DEL_DEC_STATES ), vget_low_s32( a_Q12_arch2_s32x4 ) ); + LPC_pred_Q14_s32x4 = silk_SMLAWB_lane1_neon( LPC_pred_Q14_s32x4, vld1q_s32( buf32 + 9 * NEON_MAX_DEL_DEC_STATES ), vget_low_s32( a_Q12_arch2_s32x4 ) ); + LPC_pred_Q14_s32x4 = silk_SMLAWB_lane0_neon( LPC_pred_Q14_s32x4, vld1q_s32( buf32 + 10 * NEON_MAX_DEL_DEC_STATES ), vget_high_s32( a_Q12_arch2_s32x4 ) ); + LPC_pred_Q14_s32x4 = silk_SMLAWB_lane1_neon( LPC_pred_Q14_s32x4, vld1q_s32( buf32 + 11 * NEON_MAX_DEL_DEC_STATES ), vget_high_s32( a_Q12_arch2_s32x4 ) ); + LPC_pred_Q14_s32x4 = silk_SMLAWB_lane0_neon( LPC_pred_Q14_s32x4, vld1q_s32( buf32 + 12 * NEON_MAX_DEL_DEC_STATES ), vget_low_s32( a_Q12_arch3_s32x4 ) ); + LPC_pred_Q14_s32x4 = silk_SMLAWB_lane1_neon( LPC_pred_Q14_s32x4, vld1q_s32( buf32 + 13 * NEON_MAX_DEL_DEC_STATES ), vget_low_s32( a_Q12_arch3_s32x4 ) ); + LPC_pred_Q14_s32x4 = silk_SMLAWB_lane0_neon( LPC_pred_Q14_s32x4, vld1q_s32( buf32 + 14 * NEON_MAX_DEL_DEC_STATES ), vget_high_s32( a_Q12_arch3_s32x4 ) ); + LPC_pred_Q14_s32x4 = silk_SMLAWB_lane1_neon( LPC_pred_Q14_s32x4, vld1q_s32( buf32 + 15 * NEON_MAX_DEL_DEC_STATES ), vget_high_s32( a_Q12_arch3_s32x4 ) ); + + return LPC_pred_Q14_s32x4; +} + +static OPUS_INLINE void silk_noise_shape_quantizer_del_dec_neon( + silk_nsq_state *NSQ, /* I/O NSQ state */ + NSQ_del_decs_struct psDelDec[], /* I/O Delayed decision states */ + opus_int signalType, /* I Signal type */ + const opus_int32 x_Q10[], /* I */ + opus_int8 pulses[], /* O */ + opus_int16 xq[], /* O */ + opus_int32 sLTP_Q15[], /* I/O LTP filter state */ + opus_int32 delayedGain_Q10[], /* I/O Gain delay buffer */ + const opus_int16 a_Q12[], /* I Short term prediction coefs */ + const opus_int16 b_Q14[], /* I Long term prediction coefs */ + const opus_int16 AR_shp_Q13[], /* I Noise shaping coefs */ + opus_int lag, /* I Pitch lag */ + opus_int32 HarmShapeFIRPacked_Q14, /* I */ + opus_int Tilt_Q14, /* I Spectral tilt */ + opus_int32 LF_shp_Q14, /* I */ + opus_int32 Gain_Q16, /* I */ + opus_int Lambda_Q10, /* I */ + opus_int offset_Q10, /* I */ + opus_int length, /* I Input length */ + opus_int subfr, /* I Subframe number */ + opus_int shapingLPCOrder, /* I Shaping LPC filter order */ + opus_int predictLPCOrder, /* I Prediction filter order */ + opus_int warping_Q16, /* I */ + opus_int nStatesDelayedDecision, /* I Number of states in decision tree */ + opus_int *smpl_buf_idx, /* I/O Index to newest samples in buffers */ + opus_int decisionDelay /* I */ +) +{ + opus_int i, j, k, Winner_ind, RDmin_ind, RDmax_ind, last_smple_idx; + opus_int32 Winner_rand_state; + opus_int32 LTP_pred_Q14, n_LTP_Q14; + opus_int32 RDmin_Q10, RDmax_Q10; + opus_int32 Gain_Q10; + opus_int32 *pred_lag_ptr, *shp_lag_ptr; + opus_int32 a_Q12_arch[MAX_LPC_ORDER]; + const int32x2_t warping_Q16_s32x2 = vdup_n_s32( silk_LSHIFT32( warping_Q16, 16 ) >> 1 ); + const opus_int32 LF_shp_Q29 = silk_LSHIFT32( LF_shp_Q14, 16 ) >> 1; + opus_int32 AR_shp_Q28[ MAX_SHAPE_LPC_ORDER ]; + const uint32x4_t rand_multiplier_u32x4 = vdupq_n_u32( RAND_MULTIPLIER ); + const uint32x4_t rand_increment_u32x4 = vdupq_n_u32( RAND_INCREMENT ); + + VARDECL( NSQ_samples_struct, psSampleState ); + SAVE_STACK; + + silk_assert( nStatesDelayedDecision > 0 ); + silk_assert( ( shapingLPCOrder & 1 ) == 0 ); /* check that order is even */ + ALLOC( psSampleState, 2, NSQ_samples_struct ); + + shp_lag_ptr = &NSQ->sLTP_shp_Q14[ NSQ->sLTP_shp_buf_idx - lag + HARM_SHAPE_FIR_TAPS / 2 ]; + pred_lag_ptr = &sLTP_Q15[ NSQ->sLTP_buf_idx - lag + LTP_ORDER / 2 ]; + Gain_Q10 = silk_RSHIFT( Gain_Q16, 6 ); + + for( i = 0; i < ( MAX_SHAPE_LPC_ORDER - 7 ); i += 8 ) { + const int16x8_t t_s16x8 = vld1q_s16( AR_shp_Q13 + i ); + vst1q_s32( AR_shp_Q28 + i + 0, vshll_n_s16( vget_low_s16( t_s16x8 ), 15 ) ); + vst1q_s32( AR_shp_Q28 + i + 4, vshll_n_s16( vget_high_s16( t_s16x8 ), 15 ) ); + } + + for( ; i < MAX_SHAPE_LPC_ORDER; i++ ) { + AR_shp_Q28[i] = silk_LSHIFT32( AR_shp_Q13[i], 15 ); + } + + silk_short_prediction_create_arch_coef_neon_local( a_Q12_arch, a_Q12, predictLPCOrder ); + + for( i = 0; i < length; i++ ) { + int32x4_t Seed_s32x4, LPC_pred_Q14_s32x4; + int32x4_t sign_s32x4, tmp1_s32x4, tmp2_s32x4; + int32x4_t n_AR_Q14_s32x4, n_LF_Q14_s32x4; + int32x2_t AR_shp_Q28_s32x2; + int16x4_t r_Q10_s16x4, rr_Q10_s16x4; + + /* Perform common calculations used in all states */ + + /* Long-term prediction */ + if( signalType == TYPE_VOICED ) { + /* Unrolled loop */ + /* Avoids introducing a bias because silk_SMLAWB() always rounds to -inf */ + LTP_pred_Q14 = 2; + LTP_pred_Q14 = silk_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ 0 ], b_Q14[ 0 ] ); + LTP_pred_Q14 = silk_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -1 ], b_Q14[ 1 ] ); + LTP_pred_Q14 = silk_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -2 ], b_Q14[ 2 ] ); + LTP_pred_Q14 = silk_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -3 ], b_Q14[ 3 ] ); + LTP_pred_Q14 = silk_SMLAWB( LTP_pred_Q14, pred_lag_ptr[ -4 ], b_Q14[ 4 ] ); + LTP_pred_Q14 = silk_LSHIFT( LTP_pred_Q14, 1 ); /* Q13 -> Q14 */ + pred_lag_ptr++; + } else { + LTP_pred_Q14 = 0; + } + + /* Long-term shaping */ + if( lag > 0 ) { + /* Symmetric, packed FIR coefficients */ + n_LTP_Q14 = silk_SMULWB( silk_ADD32( shp_lag_ptr[ 0 ], shp_lag_ptr[ -2 ] ), HarmShapeFIRPacked_Q14 ); + n_LTP_Q14 = silk_SMLAWT( n_LTP_Q14, shp_lag_ptr[ -1 ], HarmShapeFIRPacked_Q14 ); + n_LTP_Q14 = silk_SUB_LSHIFT32( LTP_pred_Q14, n_LTP_Q14, 2 ); /* Q12 -> Q14 */ + shp_lag_ptr++; + } else { + n_LTP_Q14 = 0; + } + + /* Generate dither */ + Seed_s32x4 = vld1q_s32( psDelDec->Seed ); + Seed_s32x4 = vreinterpretq_s32_u32( vmlaq_u32( rand_increment_u32x4, vreinterpretq_u32_s32( Seed_s32x4 ), rand_multiplier_u32x4 ) ); + vst1q_s32( psDelDec->Seed, Seed_s32x4 ); + + /* Short-term prediction */ + LPC_pred_Q14_s32x4 = silk_noise_shape_quantizer_short_prediction_neon_local(psDelDec->sLPC_Q14[ NSQ_LPC_BUF_LENGTH - 16 + i ], a_Q12_arch, predictLPCOrder); + LPC_pred_Q14_s32x4 = vshlq_n_s32( LPC_pred_Q14_s32x4, 4 ); /* Q10 -> Q14 */ + + /* Noise shape feedback */ + /* Output of lowpass section */ + tmp2_s32x4 = silk_SMLAWB_lane0_neon( vld1q_s32( psDelDec->Diff_Q14 ), vld1q_s32( psDelDec->sAR2_Q14[ 0 ] ), warping_Q16_s32x2 ); + /* Output of allpass section */ + tmp1_s32x4 = vsubq_s32( vld1q_s32( psDelDec->sAR2_Q14[ 1 ] ), tmp2_s32x4 ); + tmp1_s32x4 = silk_SMLAWB_lane0_neon( vld1q_s32( psDelDec->sAR2_Q14[ 0 ] ), tmp1_s32x4, warping_Q16_s32x2 ); + vst1q_s32( psDelDec->sAR2_Q14[ 0 ], tmp2_s32x4 ); + AR_shp_Q28_s32x2 = vld1_s32( AR_shp_Q28 ); + n_AR_Q14_s32x4 = vaddq_s32( vdupq_n_s32( silk_RSHIFT( shapingLPCOrder, 1 ) ), vqdmulhq_lane_s32( tmp2_s32x4, AR_shp_Q28_s32x2, 0 ) ); + + /* Loop over allpass sections */ + for( j = 2; j < shapingLPCOrder; j += 2 ) { + /* Output of allpass section */ + tmp2_s32x4 = vsubq_s32( vld1q_s32( psDelDec->sAR2_Q14[ j + 0 ] ), tmp1_s32x4 ); + tmp2_s32x4 = silk_SMLAWB_lane0_neon( vld1q_s32( psDelDec->sAR2_Q14[ j - 1 ] ), tmp2_s32x4, warping_Q16_s32x2 ); + vst1q_s32( psDelDec->sAR2_Q14[ j - 1 ], tmp1_s32x4 ); + n_AR_Q14_s32x4 = vaddq_s32( n_AR_Q14_s32x4, vqdmulhq_lane_s32( tmp1_s32x4, AR_shp_Q28_s32x2, 1 ) ); + /* Output of allpass section */ + tmp1_s32x4 = vsubq_s32( vld1q_s32( psDelDec->sAR2_Q14[ j + 1 ] ), tmp2_s32x4 ); + tmp1_s32x4 = silk_SMLAWB_lane0_neon( vld1q_s32( psDelDec->sAR2_Q14[ j + 0 ] ), tmp1_s32x4, warping_Q16_s32x2 ); + vst1q_s32( psDelDec->sAR2_Q14[ j + 0 ], tmp2_s32x4 ); + AR_shp_Q28_s32x2 = vld1_s32( &AR_shp_Q28[ j ] ); + n_AR_Q14_s32x4 = vaddq_s32( n_AR_Q14_s32x4, vqdmulhq_lane_s32( tmp2_s32x4, AR_shp_Q28_s32x2, 0 ) ); + } + vst1q_s32( psDelDec->sAR2_Q14[ shapingLPCOrder - 1 ], tmp1_s32x4 ); + n_AR_Q14_s32x4 = vaddq_s32( n_AR_Q14_s32x4, vqdmulhq_lane_s32( tmp1_s32x4, AR_shp_Q28_s32x2, 1 ) ); + n_AR_Q14_s32x4 = vshlq_n_s32( n_AR_Q14_s32x4, 1 ); /* Q11 -> Q12 */ + n_AR_Q14_s32x4 = vaddq_s32( n_AR_Q14_s32x4, vqdmulhq_n_s32( vld1q_s32( psDelDec->LF_AR_Q14 ), silk_LSHIFT32( Tilt_Q14, 16 ) >> 1 ) ); /* Q12 */ + n_AR_Q14_s32x4 = vshlq_n_s32( n_AR_Q14_s32x4, 2 ); /* Q12 -> Q14 */ + n_LF_Q14_s32x4 = vqdmulhq_n_s32( vld1q_s32( psDelDec->Shape_Q14[ *smpl_buf_idx ] ), LF_shp_Q29 ); /* Q12 */ + n_LF_Q14_s32x4 = vaddq_s32( n_LF_Q14_s32x4, vqdmulhq_n_s32( vld1q_s32( psDelDec->LF_AR_Q14 ), silk_LSHIFT32( LF_shp_Q14 >> 16 , 15 ) ) ); /* Q12 */ + n_LF_Q14_s32x4 = vshlq_n_s32( n_LF_Q14_s32x4, 2 ); /* Q12 -> Q14 */ + + /* Input minus prediction plus noise feedback */ + /* r = x[ i ] - LTP_pred - LPC_pred + n_AR + n_Tilt + n_LF + n_LTP */ + tmp1_s32x4 = vaddq_s32( n_AR_Q14_s32x4, n_LF_Q14_s32x4 ); /* Q14 */ + tmp2_s32x4 = vaddq_s32( vdupq_n_s32( n_LTP_Q14 ), LPC_pred_Q14_s32x4 ); /* Q13 */ + tmp1_s32x4 = vsubq_s32( tmp2_s32x4, tmp1_s32x4 ); /* Q13 */ + tmp1_s32x4 = vrshrq_n_s32( tmp1_s32x4, 4 ); /* Q10 */ + tmp1_s32x4 = vsubq_s32( vdupq_n_s32( x_Q10[ i ] ), tmp1_s32x4 ); /* residual error Q10 */ + + /* Flip sign depending on dither */ + sign_s32x4 = vreinterpretq_s32_u32( vcltq_s32( Seed_s32x4, vdupq_n_s32( 0 ) ) ); + tmp1_s32x4 = veorq_s32( tmp1_s32x4, sign_s32x4 ); + tmp1_s32x4 = vsubq_s32( tmp1_s32x4, sign_s32x4 ); + tmp1_s32x4 = vmaxq_s32( tmp1_s32x4, vdupq_n_s32( -( 31 << 10 ) ) ); + tmp1_s32x4 = vminq_s32( tmp1_s32x4, vdupq_n_s32( 30 << 10 ) ); + r_Q10_s16x4 = vmovn_s32( tmp1_s32x4 ); + + /* Find two quantization level candidates and measure their rate-distortion */ + { + int16x4_t q1_Q10_s16x4 = vsub_s16( r_Q10_s16x4, vdup_n_s16( offset_Q10 ) ); + int16x4_t q1_Q0_s16x4 = vshr_n_s16( q1_Q10_s16x4, 10 ); + int16x4_t q2_Q10_s16x4; + int32x4_t rd1_Q10_s32x4, rd2_Q10_s32x4; + uint32x4_t t_u32x4; + + if( Lambda_Q10 > 2048 ) { + /* For aggressive RDO, the bias becomes more than one pulse. */ + const int rdo_offset = Lambda_Q10/2 - 512; + const uint16x4_t greaterThanRdo = vcgt_s16( q1_Q10_s16x4, vdup_n_s16( rdo_offset ) ); + const uint16x4_t lessThanMinusRdo = vclt_s16( q1_Q10_s16x4, vdup_n_s16( -rdo_offset ) ); + /* If Lambda_Q10 > 32767, then q1_Q0, q1_Q10 and q2_Q10 must change to 32-bit. */ + silk_assert( Lambda_Q10 <= 32767 ); + + q1_Q0_s16x4 = vreinterpret_s16_u16( vclt_s16( q1_Q10_s16x4, vdup_n_s16( 0 ) ) ); + q1_Q0_s16x4 = vbsl_s16( greaterThanRdo, vsub_s16( q1_Q10_s16x4, vdup_n_s16( rdo_offset ) ), q1_Q0_s16x4 ); + q1_Q0_s16x4 = vbsl_s16( lessThanMinusRdo, vadd_s16( q1_Q10_s16x4, vdup_n_s16( rdo_offset ) ), q1_Q0_s16x4 ); + q1_Q0_s16x4 = vshr_n_s16( q1_Q0_s16x4, 10 ); + } + { + const uint16x4_t equal0_u16x4 = vceq_s16( q1_Q0_s16x4, vdup_n_s16( 0 ) ); + const uint16x4_t equalMinus1_u16x4 = vceq_s16( q1_Q0_s16x4, vdup_n_s16( -1 ) ); + const uint16x4_t lessThanMinus1_u16x4 = vclt_s16( q1_Q0_s16x4, vdup_n_s16( -1 ) ); + int16x4_t tmp1_s16x4, tmp2_s16x4; + + q1_Q10_s16x4 = vshl_n_s16( q1_Q0_s16x4, 10 ); + tmp1_s16x4 = vadd_s16( q1_Q10_s16x4, vdup_n_s16( offset_Q10 - QUANT_LEVEL_ADJUST_Q10 ) ); + q1_Q10_s16x4 = vadd_s16( q1_Q10_s16x4, vdup_n_s16( offset_Q10 + QUANT_LEVEL_ADJUST_Q10 ) ); + q1_Q10_s16x4 = vbsl_s16( lessThanMinus1_u16x4, q1_Q10_s16x4, tmp1_s16x4 ); + q1_Q10_s16x4 = vbsl_s16( equal0_u16x4, vdup_n_s16( offset_Q10 ), q1_Q10_s16x4 ); + q1_Q10_s16x4 = vbsl_s16( equalMinus1_u16x4, vdup_n_s16( offset_Q10 - ( 1024 - QUANT_LEVEL_ADJUST_Q10 ) ), q1_Q10_s16x4 ); + q2_Q10_s16x4 = vadd_s16( q1_Q10_s16x4, vdup_n_s16( 1024 ) ); + q2_Q10_s16x4 = vbsl_s16( equal0_u16x4, vdup_n_s16( offset_Q10 + 1024 - QUANT_LEVEL_ADJUST_Q10 ), q2_Q10_s16x4 ); + q2_Q10_s16x4 = vbsl_s16( equalMinus1_u16x4, vdup_n_s16( offset_Q10 ), q2_Q10_s16x4 ); + tmp1_s16x4 = q1_Q10_s16x4; + tmp2_s16x4 = q2_Q10_s16x4; + tmp1_s16x4 = vbsl_s16( vorr_u16( equalMinus1_u16x4, lessThanMinus1_u16x4 ), vneg_s16( tmp1_s16x4 ), tmp1_s16x4 ); + tmp2_s16x4 = vbsl_s16( lessThanMinus1_u16x4, vneg_s16( tmp2_s16x4 ), tmp2_s16x4 ); + rd1_Q10_s32x4 = vmull_s16( tmp1_s16x4, vdup_n_s16( Lambda_Q10 ) ); + rd2_Q10_s32x4 = vmull_s16( tmp2_s16x4, vdup_n_s16( Lambda_Q10 ) ); + } + + rr_Q10_s16x4 = vsub_s16( r_Q10_s16x4, q1_Q10_s16x4 ); + rd1_Q10_s32x4 = vmlal_s16( rd1_Q10_s32x4, rr_Q10_s16x4, rr_Q10_s16x4 ); + rd1_Q10_s32x4 = vshrq_n_s32( rd1_Q10_s32x4, 10 ); + + rr_Q10_s16x4 = vsub_s16( r_Q10_s16x4, q2_Q10_s16x4 ); + rd2_Q10_s32x4 = vmlal_s16( rd2_Q10_s32x4, rr_Q10_s16x4, rr_Q10_s16x4 ); + rd2_Q10_s32x4 = vshrq_n_s32( rd2_Q10_s32x4, 10 ); + + tmp2_s32x4 = vld1q_s32( psDelDec->RD_Q10 ); + tmp1_s32x4 = vaddq_s32( tmp2_s32x4, vminq_s32( rd1_Q10_s32x4, rd2_Q10_s32x4 ) ); + tmp2_s32x4 = vaddq_s32( tmp2_s32x4, vmaxq_s32( rd1_Q10_s32x4, rd2_Q10_s32x4 ) ); + vst1q_s32( psSampleState[ 0 ].RD_Q10, tmp1_s32x4 ); + vst1q_s32( psSampleState[ 1 ].RD_Q10, tmp2_s32x4 ); + t_u32x4 = vcltq_s32( rd1_Q10_s32x4, rd2_Q10_s32x4 ); + tmp1_s32x4 = vbslq_s32( t_u32x4, vmovl_s16( q1_Q10_s16x4 ), vmovl_s16( q2_Q10_s16x4 ) ); + tmp2_s32x4 = vbslq_s32( t_u32x4, vmovl_s16( q2_Q10_s16x4 ), vmovl_s16( q1_Q10_s16x4 ) ); + vst1q_s32( psSampleState[ 0 ].Q_Q10, tmp1_s32x4 ); + vst1q_s32( psSampleState[ 1 ].Q_Q10, tmp2_s32x4 ); + } + + { + /* Update states for best quantization */ + int32x4_t exc_Q14_s32x4, LPC_exc_Q14_s32x4, xq_Q14_s32x4, sLF_AR_shp_Q14_s32x4; + + /* Quantized excitation */ + exc_Q14_s32x4 = vshlq_n_s32( tmp1_s32x4, 4 ); + exc_Q14_s32x4 = veorq_s32( exc_Q14_s32x4, sign_s32x4 ); + exc_Q14_s32x4 = vsubq_s32( exc_Q14_s32x4, sign_s32x4 ); + + /* Add predictions */ + LPC_exc_Q14_s32x4 = vaddq_s32( exc_Q14_s32x4, vdupq_n_s32( LTP_pred_Q14 ) ); + xq_Q14_s32x4 = vaddq_s32( LPC_exc_Q14_s32x4, LPC_pred_Q14_s32x4 ); + + /* Update states */ + tmp1_s32x4 = vsubq_s32( xq_Q14_s32x4, vshlq_n_s32( vdupq_n_s32( x_Q10[ i ] ), 4 ) ); + vst1q_s32( psSampleState[ 0 ].Diff_Q14, tmp1_s32x4 ); + sLF_AR_shp_Q14_s32x4 = vsubq_s32( tmp1_s32x4, n_AR_Q14_s32x4 ); + vst1q_s32( psSampleState[ 0 ].sLTP_shp_Q14, vsubq_s32( sLF_AR_shp_Q14_s32x4, n_LF_Q14_s32x4 ) ); + vst1q_s32( psSampleState[ 0 ].LF_AR_Q14, sLF_AR_shp_Q14_s32x4 ); + vst1q_s32( psSampleState[ 0 ].LPC_exc_Q14, LPC_exc_Q14_s32x4 ); + vst1q_s32( psSampleState[ 0 ].xq_Q14, xq_Q14_s32x4 ); + + /* Quantized excitation */ + exc_Q14_s32x4 = vshlq_n_s32( tmp2_s32x4, 4 ); + exc_Q14_s32x4 = veorq_s32( exc_Q14_s32x4, sign_s32x4 ); + exc_Q14_s32x4 = vsubq_s32( exc_Q14_s32x4, sign_s32x4 ); + + /* Add predictions */ + LPC_exc_Q14_s32x4 = vaddq_s32( exc_Q14_s32x4, vdupq_n_s32( LTP_pred_Q14 ) ); + xq_Q14_s32x4 = vaddq_s32( LPC_exc_Q14_s32x4, LPC_pred_Q14_s32x4 ); + + /* Update states */ + tmp1_s32x4 = vsubq_s32( xq_Q14_s32x4, vshlq_n_s32( vdupq_n_s32( x_Q10[ i ] ), 4 ) ); + vst1q_s32( psSampleState[ 1 ].Diff_Q14, tmp1_s32x4 ); + sLF_AR_shp_Q14_s32x4 = vsubq_s32( tmp1_s32x4, n_AR_Q14_s32x4 ); + vst1q_s32( psSampleState[ 1 ].sLTP_shp_Q14, vsubq_s32( sLF_AR_shp_Q14_s32x4, n_LF_Q14_s32x4 ) ); + vst1q_s32( psSampleState[ 1 ].LF_AR_Q14, sLF_AR_shp_Q14_s32x4 ); + vst1q_s32( psSampleState[ 1 ].LPC_exc_Q14, LPC_exc_Q14_s32x4 ); + vst1q_s32( psSampleState[ 1 ].xq_Q14, xq_Q14_s32x4 ); + } + + *smpl_buf_idx = *smpl_buf_idx ? ( *smpl_buf_idx - 1 ) : ( DECISION_DELAY - 1); + last_smple_idx = *smpl_buf_idx + decisionDelay + DECISION_DELAY; + if( last_smple_idx >= DECISION_DELAY ) last_smple_idx -= DECISION_DELAY; + if( last_smple_idx >= DECISION_DELAY ) last_smple_idx -= DECISION_DELAY; + + /* Find winner */ + RDmin_Q10 = psSampleState[ 0 ].RD_Q10[ 0 ]; + Winner_ind = 0; + for( k = 1; k < nStatesDelayedDecision; k++ ) { + if( psSampleState[ 0 ].RD_Q10[ k ] < RDmin_Q10 ) { + RDmin_Q10 = psSampleState[ 0 ].RD_Q10[ k ]; + Winner_ind = k; + } + } + + /* Increase RD values of expired states */ + { + uint32x4_t t_u32x4; + Winner_rand_state = psDelDec->RandState[ last_smple_idx ][ Winner_ind ]; + t_u32x4 = vceqq_s32( vld1q_s32( psDelDec->RandState[ last_smple_idx ] ), vdupq_n_s32( Winner_rand_state ) ); + t_u32x4 = vmvnq_u32( t_u32x4 ); + t_u32x4 = vshrq_n_u32( t_u32x4, 5 ); + tmp1_s32x4 = vld1q_s32( psSampleState[ 0 ].RD_Q10 ); + tmp2_s32x4 = vld1q_s32( psSampleState[ 1 ].RD_Q10 ); + tmp1_s32x4 = vaddq_s32( tmp1_s32x4, vreinterpretq_s32_u32( t_u32x4 ) ); + tmp2_s32x4 = vaddq_s32( tmp2_s32x4, vreinterpretq_s32_u32( t_u32x4 ) ); + vst1q_s32( psSampleState[ 0 ].RD_Q10, tmp1_s32x4 ); + vst1q_s32( psSampleState[ 1 ].RD_Q10, tmp2_s32x4 ); + + /* Find worst in first set and best in second set */ + RDmax_Q10 = psSampleState[ 0 ].RD_Q10[ 0 ]; + RDmin_Q10 = psSampleState[ 1 ].RD_Q10[ 0 ]; + RDmax_ind = 0; + RDmin_ind = 0; + for( k = 1; k < nStatesDelayedDecision; k++ ) { + /* find worst in first set */ + if( psSampleState[ 0 ].RD_Q10[ k ] > RDmax_Q10 ) { + RDmax_Q10 = psSampleState[ 0 ].RD_Q10[ k ]; + RDmax_ind = k; + } + /* find best in second set */ + if( psSampleState[ 1 ].RD_Q10[ k ] < RDmin_Q10 ) { + RDmin_Q10 = psSampleState[ 1 ].RD_Q10[ k ]; + RDmin_ind = k; + } + } + } + + /* Replace a state if best from second set outperforms worst in first set */ + if( RDmin_Q10 < RDmax_Q10 ) { + opus_int32 (*ptr)[NEON_MAX_DEL_DEC_STATES] = psDelDec->RandState; + const int numOthers = (int)( ( sizeof( NSQ_del_decs_struct ) - sizeof( ( (NSQ_del_decs_struct *)0 )->sLPC_Q14 ) ) + / ( NEON_MAX_DEL_DEC_STATES * sizeof( opus_int32 ) ) ); + /* Only ( predictLPCOrder - 1 ) of sLPC_Q14 buffer need to be updated, though the first several */ + /* useless sLPC_Q14[] will be different comparing with C when predictLPCOrder < NSQ_LPC_BUF_LENGTH. */ + /* Here just update constant ( NSQ_LPC_BUF_LENGTH - 1 ) for simplicity. */ + for( j = i + 1; j < i + NSQ_LPC_BUF_LENGTH; j++ ) { + psDelDec->sLPC_Q14[ j ][ RDmax_ind ] = psDelDec->sLPC_Q14[ j ][ RDmin_ind ]; + } + for( j = 0; j < numOthers; j++ ) { + ptr[ j ][ RDmax_ind ] = ptr[ j ][ RDmin_ind ]; + } + + psSampleState[ 0 ].Q_Q10[ RDmax_ind ] = psSampleState[ 1 ].Q_Q10[ RDmin_ind ]; + psSampleState[ 0 ].RD_Q10[ RDmax_ind ] = psSampleState[ 1 ].RD_Q10[ RDmin_ind ]; + psSampleState[ 0 ].xq_Q14[ RDmax_ind ] = psSampleState[ 1 ].xq_Q14[ RDmin_ind ]; + psSampleState[ 0 ].LF_AR_Q14[ RDmax_ind ] = psSampleState[ 1 ].LF_AR_Q14[ RDmin_ind ]; + psSampleState[ 0 ].Diff_Q14[ RDmax_ind ] = psSampleState[ 1 ].Diff_Q14[ RDmin_ind ]; + psSampleState[ 0 ].sLTP_shp_Q14[ RDmax_ind ] = psSampleState[ 1 ].sLTP_shp_Q14[ RDmin_ind ]; + psSampleState[ 0 ].LPC_exc_Q14[ RDmax_ind ] = psSampleState[ 1 ].LPC_exc_Q14[ RDmin_ind ]; + } + + /* Write samples from winner to output and long-term filter states */ + if( subfr > 0 || i >= decisionDelay ) { + pulses[ i - decisionDelay ] = (opus_int8)silk_RSHIFT_ROUND( psDelDec->Q_Q10[ last_smple_idx ][ Winner_ind ], 10 ); + xq[ i - decisionDelay ] = (opus_int16)silk_SAT16( silk_RSHIFT_ROUND( + silk_SMULWW( psDelDec->Xq_Q14[ last_smple_idx ][ Winner_ind ], delayedGain_Q10[ last_smple_idx ] ), 8 ) ); + NSQ->sLTP_shp_Q14[ NSQ->sLTP_shp_buf_idx - decisionDelay ] = psDelDec->Shape_Q14[ last_smple_idx ][ Winner_ind ]; + sLTP_Q15[ NSQ->sLTP_buf_idx - decisionDelay ] = psDelDec->Pred_Q15[ last_smple_idx ][ Winner_ind ]; + } + NSQ->sLTP_shp_buf_idx++; + NSQ->sLTP_buf_idx++; + + /* Update states */ + vst1q_s32( psDelDec->LF_AR_Q14, vld1q_s32( psSampleState[ 0 ].LF_AR_Q14 ) ); + vst1q_s32( psDelDec->Diff_Q14, vld1q_s32( psSampleState[ 0 ].Diff_Q14 ) ); + vst1q_s32( psDelDec->sLPC_Q14[ NSQ_LPC_BUF_LENGTH + i ], vld1q_s32( psSampleState[ 0 ].xq_Q14 ) ); + vst1q_s32( psDelDec->Xq_Q14[ *smpl_buf_idx ], vld1q_s32( psSampleState[ 0 ].xq_Q14 ) ); + tmp1_s32x4 = vld1q_s32( psSampleState[ 0 ].Q_Q10 ); + vst1q_s32( psDelDec->Q_Q10[ *smpl_buf_idx ], tmp1_s32x4 ); + vst1q_s32( psDelDec->Pred_Q15[ *smpl_buf_idx ], vshlq_n_s32( vld1q_s32( psSampleState[ 0 ].LPC_exc_Q14 ), 1 ) ); + vst1q_s32( psDelDec->Shape_Q14[ *smpl_buf_idx ], vld1q_s32( psSampleState[ 0 ].sLTP_shp_Q14 ) ); + tmp1_s32x4 = vrshrq_n_s32( tmp1_s32x4, 10 ); + tmp1_s32x4 = vaddq_s32( vld1q_s32( psDelDec->Seed ), tmp1_s32x4 ); + vst1q_s32( psDelDec->Seed, tmp1_s32x4 ); + vst1q_s32( psDelDec->RandState[ *smpl_buf_idx ], tmp1_s32x4 ); + vst1q_s32( psDelDec->RD_Q10, vld1q_s32( psSampleState[ 0 ].RD_Q10 ) ); + delayedGain_Q10[ *smpl_buf_idx ] = Gain_Q10; + } + /* Update LPC states */ + silk_memcpy( psDelDec->sLPC_Q14[ 0 ], psDelDec->sLPC_Q14[ length ], NEON_MAX_DEL_DEC_STATES * NSQ_LPC_BUF_LENGTH * sizeof( opus_int32 ) ); + + RESTORE_STACK; +} + +static OPUS_INLINE void silk_SMULWB_8_neon( + const opus_int16 *a, + const int32x2_t b, + opus_int32 *o +) +{ + const int16x8_t a_s16x8 = vld1q_s16( a ); + int32x4_t o0_s32x4, o1_s32x4; + + o0_s32x4 = vshll_n_s16( vget_low_s16( a_s16x8 ), 15 ); + o1_s32x4 = vshll_n_s16( vget_high_s16( a_s16x8 ), 15 ); + o0_s32x4 = vqdmulhq_lane_s32( o0_s32x4, b, 0 ); + o1_s32x4 = vqdmulhq_lane_s32( o1_s32x4, b, 0 ); + vst1q_s32( o, o0_s32x4 ); + vst1q_s32( o + 4, o1_s32x4 ); +} + +/* Only works when ( b >= -65536 ) && ( b < 65536 ). */ +static OPUS_INLINE void silk_SMULWW_small_b_4_neon( + opus_int32 *a, + const int32x2_t b_s32x2) +{ + int32x4_t o_s32x4; + + o_s32x4 = vld1q_s32( a ); + o_s32x4 = vqdmulhq_lane_s32( o_s32x4, b_s32x2, 0 ); + vst1q_s32( a, o_s32x4 ); +} + +/* Only works when ( b >= -65536 ) && ( b < 65536 ). */ +static OPUS_INLINE void silk_SMULWW_small_b_8_neon( + opus_int32 *a, + const int32x2_t b_s32x2 +) +{ + int32x4_t o0_s32x4, o1_s32x4; + + o0_s32x4 = vld1q_s32( a ); + o1_s32x4 = vld1q_s32( a + 4 ); + o0_s32x4 = vqdmulhq_lane_s32( o0_s32x4, b_s32x2, 0 ); + o1_s32x4 = vqdmulhq_lane_s32( o1_s32x4, b_s32x2, 0 ); + vst1q_s32( a, o0_s32x4 ); + vst1q_s32( a + 4, o1_s32x4 ); +} + +static OPUS_INLINE void silk_SMULWW_4_neon( + opus_int32 *a, + const int32x2_t b_s32x2) +{ + int32x4_t a_s32x4, o_s32x4; + + a_s32x4 = vld1q_s32( a ); + o_s32x4 = vqdmulhq_lane_s32( a_s32x4, b_s32x2, 0 ); + o_s32x4 = vmlaq_lane_s32( o_s32x4, a_s32x4, b_s32x2, 1 ); + vst1q_s32( a, o_s32x4 ); +} + +static OPUS_INLINE void silk_SMULWW_8_neon( + opus_int32 *a, + const int32x2_t b_s32x2 +) +{ + int32x4_t a0_s32x4, a1_s32x4, o0_s32x4, o1_s32x4; + + a0_s32x4 = vld1q_s32( a ); + a1_s32x4 = vld1q_s32( a + 4 ); + o0_s32x4 = vqdmulhq_lane_s32( a0_s32x4, b_s32x2, 0 ); + o1_s32x4 = vqdmulhq_lane_s32( a1_s32x4, b_s32x2, 0 ); + o0_s32x4 = vmlaq_lane_s32( o0_s32x4, a0_s32x4, b_s32x2, 1 ); + o1_s32x4 = vmlaq_lane_s32( o1_s32x4, a1_s32x4, b_s32x2, 1 ); + vst1q_s32( a, o0_s32x4 ); + vst1q_s32( a + 4, o1_s32x4 ); +} + +static OPUS_INLINE void silk_SMULWW_loop_neon( + const opus_int16 *a, + const opus_int32 b, + opus_int32 *o, + const opus_int loop_num +) +{ + opus_int i; + int32x2_t b_s32x2; + + b_s32x2 = vdup_n_s32( b ); + for( i = 0; i < loop_num - 7; i += 8 ) { + silk_SMULWB_8_neon( a + i, b_s32x2, o + i ); + } + for( ; i < loop_num; i++ ) { + o[ i ] = silk_SMULWW( a[ i ], b ); + } +} + +static OPUS_INLINE void silk_nsq_del_dec_scale_states_neon( + const silk_encoder_state *psEncC, /* I Encoder State */ + silk_nsq_state *NSQ, /* I/O NSQ state */ + NSQ_del_decs_struct psDelDec[], /* I/O Delayed decision states */ + const opus_int16 x16[], /* I Input */ + opus_int32 x_sc_Q10[], /* O Input scaled with 1/Gain in Q10 */ + const opus_int16 sLTP[], /* I Re-whitened LTP state in Q0 */ + opus_int32 sLTP_Q15[], /* O LTP state matching scaled input */ + opus_int subfr, /* I Subframe number */ + const opus_int LTP_scale_Q14, /* I LTP state scaling */ + const opus_int32 Gains_Q16[ MAX_NB_SUBFR ], /* I */ + const opus_int pitchL[ MAX_NB_SUBFR ], /* I Pitch lag */ + const opus_int signal_type, /* I Signal type */ + const opus_int decisionDelay /* I Decision delay */ +) +{ + opus_int i, lag; + opus_int32 gain_adj_Q16, inv_gain_Q31, inv_gain_Q26; + + lag = pitchL[ subfr ]; + inv_gain_Q31 = silk_INVERSE32_varQ( silk_max( Gains_Q16[ subfr ], 1 ), 47 ); + silk_assert( inv_gain_Q31 != 0 ); + + /* Scale input */ + inv_gain_Q26 = silk_RSHIFT_ROUND( inv_gain_Q31, 5 ); + silk_SMULWW_loop_neon( x16, inv_gain_Q26, x_sc_Q10, psEncC->subfr_length ); + + /* After rewhitening the LTP state is un-scaled, so scale with inv_gain_Q16 */ + if( NSQ->rewhite_flag ) { + if( subfr == 0 ) { + /* Do LTP downscaling */ + inv_gain_Q31 = silk_LSHIFT( silk_SMULWB( inv_gain_Q31, LTP_scale_Q14 ), 2 ); + } + silk_SMULWW_loop_neon( sLTP + NSQ->sLTP_buf_idx - lag - LTP_ORDER / 2, inv_gain_Q31, sLTP_Q15 + NSQ->sLTP_buf_idx - lag - LTP_ORDER / 2, lag + LTP_ORDER / 2 ); + } + + /* Adjust for changing gain */ + if( Gains_Q16[ subfr ] != NSQ->prev_gain_Q16 ) { + int32x2_t gain_adj_Q16_s32x2; + gain_adj_Q16 = silk_DIV32_varQ( NSQ->prev_gain_Q16, Gains_Q16[ subfr ], 16 ); + + /* Scale long-term shaping state */ + if( ( gain_adj_Q16 >= -65536 ) && ( gain_adj_Q16 < 65536 ) ) { + gain_adj_Q16_s32x2 = vdup_n_s32( silk_LSHIFT32( gain_adj_Q16, 15 ) ); + for( i = NSQ->sLTP_shp_buf_idx - psEncC->ltp_mem_length; i < NSQ->sLTP_shp_buf_idx - 7; i += 8 ) { + silk_SMULWW_small_b_8_neon( NSQ->sLTP_shp_Q14 + i, gain_adj_Q16_s32x2 ); + } + for( ; i < NSQ->sLTP_shp_buf_idx; i++ ) { + NSQ->sLTP_shp_Q14[ i ] = silk_SMULWW( gain_adj_Q16, NSQ->sLTP_shp_Q14[ i ] ); + } + + /* Scale long-term prediction state */ + if( signal_type == TYPE_VOICED && NSQ->rewhite_flag == 0 ) { + for( i = NSQ->sLTP_buf_idx - lag - LTP_ORDER / 2; i < NSQ->sLTP_buf_idx - decisionDelay - 7; i += 8 ) { + silk_SMULWW_small_b_8_neon( sLTP_Q15 + i, gain_adj_Q16_s32x2 ); + } + for( ; i < NSQ->sLTP_buf_idx - decisionDelay; i++ ) { + sLTP_Q15[ i ] = silk_SMULWW( gain_adj_Q16, sLTP_Q15[ i ] ); + } + } + + /* Scale scalar states */ + silk_SMULWW_small_b_4_neon( psDelDec->LF_AR_Q14, gain_adj_Q16_s32x2 ); + silk_SMULWW_small_b_4_neon( psDelDec->Diff_Q14, gain_adj_Q16_s32x2 ); + + /* Scale short-term prediction and shaping states */ + for( i = 0; i < NSQ_LPC_BUF_LENGTH; i++ ) { + silk_SMULWW_small_b_4_neon( psDelDec->sLPC_Q14[ i ], gain_adj_Q16_s32x2 ); + } + + for( i = 0; i < MAX_SHAPE_LPC_ORDER; i++ ) { + silk_SMULWW_small_b_4_neon( psDelDec->sAR2_Q14[ i ], gain_adj_Q16_s32x2 ); + } + + for( i = 0; i < DECISION_DELAY; i++ ) { + silk_SMULWW_small_b_4_neon( psDelDec->Pred_Q15[ i ], gain_adj_Q16_s32x2 ); + silk_SMULWW_small_b_4_neon( psDelDec->Shape_Q14[ i ], gain_adj_Q16_s32x2 ); + } + } else { + gain_adj_Q16_s32x2 = vdup_n_s32( silk_LSHIFT32( gain_adj_Q16 & 0x0000FFFF, 15 ) ); + gain_adj_Q16_s32x2 = vset_lane_s32( gain_adj_Q16 >> 16, gain_adj_Q16_s32x2, 1 ); + for( i = NSQ->sLTP_shp_buf_idx - psEncC->ltp_mem_length; i < NSQ->sLTP_shp_buf_idx - 7; i += 8 ) { + silk_SMULWW_8_neon( NSQ->sLTP_shp_Q14 + i, gain_adj_Q16_s32x2 ); + } + for( ; i < NSQ->sLTP_shp_buf_idx; i++ ) { + NSQ->sLTP_shp_Q14[ i ] = silk_SMULWW( gain_adj_Q16, NSQ->sLTP_shp_Q14[ i ] ); + } + + /* Scale long-term prediction state */ + if( signal_type == TYPE_VOICED && NSQ->rewhite_flag == 0 ) { + for( i = NSQ->sLTP_buf_idx - lag - LTP_ORDER / 2; i < NSQ->sLTP_buf_idx - decisionDelay - 7; i += 8 ) { + silk_SMULWW_8_neon( sLTP_Q15 + i, gain_adj_Q16_s32x2 ); + } + for( ; i < NSQ->sLTP_buf_idx - decisionDelay; i++ ) { + sLTP_Q15[ i ] = silk_SMULWW( gain_adj_Q16, sLTP_Q15[ i ] ); + } + } + + /* Scale scalar states */ + silk_SMULWW_4_neon( psDelDec->LF_AR_Q14, gain_adj_Q16_s32x2 ); + silk_SMULWW_4_neon( psDelDec->Diff_Q14, gain_adj_Q16_s32x2 ); + + /* Scale short-term prediction and shaping states */ + for( i = 0; i < NSQ_LPC_BUF_LENGTH; i++ ) { + silk_SMULWW_4_neon( psDelDec->sLPC_Q14[ i ], gain_adj_Q16_s32x2 ); + } + + for( i = 0; i < MAX_SHAPE_LPC_ORDER; i++ ) { + silk_SMULWW_4_neon( psDelDec->sAR2_Q14[ i ], gain_adj_Q16_s32x2 ); + } + + for( i = 0; i < DECISION_DELAY; i++ ) { + silk_SMULWW_4_neon( psDelDec->Pred_Q15[ i ], gain_adj_Q16_s32x2 ); + silk_SMULWW_4_neon( psDelDec->Shape_Q14[ i ], gain_adj_Q16_s32x2 ); + } + } + + /* Save inverse gain */ + NSQ->prev_gain_Q16 = Gains_Q16[ subfr ]; + } +} diff --git a/TMessagesProj/jni/opus/silk/arm/NSQ_neon.h b/TMessagesProj/jni/opus/silk/arm/NSQ_neon.h index 77c946af8..b31d9442d 100644 --- a/TMessagesProj/jni/opus/silk/arm/NSQ_neon.h +++ b/TMessagesProj/jni/opus/silk/arm/NSQ_neon.h @@ -28,30 +28,31 @@ POSSIBILITY OF SUCH DAMAGE. #define SILK_NSQ_NEON_H #include "cpu_support.h" +#include "SigProc_FIX.h" #undef silk_short_prediction_create_arch_coef /* For vectorized calc, reverse a_Q12 coefs, convert to 32-bit, and shift for vqdmulhq_s32. */ static OPUS_INLINE void silk_short_prediction_create_arch_coef_neon(opus_int32 *out, const opus_int16 *in, opus_int order) { - out[15] = in[0] << 15; - out[14] = in[1] << 15; - out[13] = in[2] << 15; - out[12] = in[3] << 15; - out[11] = in[4] << 15; - out[10] = in[5] << 15; - out[9] = in[6] << 15; - out[8] = in[7] << 15; - out[7] = in[8] << 15; - out[6] = in[9] << 15; + out[15] = silk_LSHIFT32(in[0], 15); + out[14] = silk_LSHIFT32(in[1], 15); + out[13] = silk_LSHIFT32(in[2], 15); + out[12] = silk_LSHIFT32(in[3], 15); + out[11] = silk_LSHIFT32(in[4], 15); + out[10] = silk_LSHIFT32(in[5], 15); + out[9] = silk_LSHIFT32(in[6], 15); + out[8] = silk_LSHIFT32(in[7], 15); + out[7] = silk_LSHIFT32(in[8], 15); + out[6] = silk_LSHIFT32(in[9], 15); if (order == 16) { - out[5] = in[10] << 15; - out[4] = in[11] << 15; - out[3] = in[12] << 15; - out[2] = in[13] << 15; - out[1] = in[14] << 15; - out[0] = in[15] << 15; + out[5] = silk_LSHIFT32(in[10], 15); + out[4] = silk_LSHIFT32(in[11], 15); + out[3] = silk_LSHIFT32(in[12], 15); + out[2] = silk_LSHIFT32(in[13], 15); + out[1] = silk_LSHIFT32(in[14], 15); + out[0] = silk_LSHIFT32(in[15], 15); } else { diff --git a/TMessagesProj/jni/opus/silk/arm/arm_silk_map.c b/TMessagesProj/jni/opus/silk/arm/arm_silk_map.c index 9bd86a7b2..0b9bfec2c 100644 --- a/TMessagesProj/jni/opus/silk/arm/arm_silk_map.c +++ b/TMessagesProj/jni/opus/silk/arm/arm_silk_map.c @@ -28,13 +28,62 @@ POSSIBILITY OF SUCH DAMAGE. # include "config.h" #endif +#include "main_FIX.h" #include "NSQ.h" +#include "SigProc_FIX.h" #if defined(OPUS_HAVE_RTCD) # if (defined(OPUS_ARM_MAY_HAVE_NEON_INTR) && \ !defined(OPUS_ARM_PRESUME_NEON_INTR)) +void (*const SILK_BIQUAD_ALT_STRIDE2_IMPL[OPUS_ARCHMASK + 1])( + const opus_int16 *in, /* I input signal */ + const opus_int32 *B_Q28, /* I MA coefficients [3] */ + const opus_int32 *A_Q28, /* I AR coefficients [2] */ + opus_int32 *S, /* I/O State vector [4] */ + opus_int16 *out, /* O output signal */ + const opus_int32 len /* I signal length (must be even) */ +) = { + silk_biquad_alt_stride2_c, /* ARMv4 */ + silk_biquad_alt_stride2_c, /* EDSP */ + silk_biquad_alt_stride2_c, /* Media */ + silk_biquad_alt_stride2_neon, /* Neon */ +}; + +opus_int32 (*const SILK_LPC_INVERSE_PRED_GAIN_IMPL[OPUS_ARCHMASK + 1])( /* O Returns inverse prediction gain in energy domain, Q30 */ + const opus_int16 *A_Q12, /* I Prediction coefficients, Q12 [order] */ + const opus_int order /* I Prediction order */ +) = { + silk_LPC_inverse_pred_gain_c, /* ARMv4 */ + silk_LPC_inverse_pred_gain_c, /* EDSP */ + silk_LPC_inverse_pred_gain_c, /* Media */ + silk_LPC_inverse_pred_gain_neon, /* Neon */ +}; + +void (*const SILK_NSQ_DEL_DEC_IMPL[OPUS_ARCHMASK + 1])( + const silk_encoder_state *psEncC, /* I Encoder State */ + silk_nsq_state *NSQ, /* I/O NSQ state */ + SideInfoIndices *psIndices, /* I/O Quantization Indices */ + const opus_int16 x16[], /* I Input */ + opus_int8 pulses[], /* O Quantized pulse signal */ + const opus_int16 PredCoef_Q12[ 2 * MAX_LPC_ORDER ], /* I Short term prediction coefs */ + const opus_int16 LTPCoef_Q14[ LTP_ORDER * MAX_NB_SUBFR ], /* I Long term prediction coefs */ + const opus_int16 AR_Q13[ MAX_NB_SUBFR * MAX_SHAPE_LPC_ORDER ], /* I Noise shaping coefs */ + const opus_int HarmShapeGain_Q14[ MAX_NB_SUBFR ], /* I Long term shaping coefs */ + const opus_int Tilt_Q14[ MAX_NB_SUBFR ], /* I Spectral tilt */ + const opus_int32 LF_shp_Q14[ MAX_NB_SUBFR ], /* I Low frequency shaping coefs */ + const opus_int32 Gains_Q16[ MAX_NB_SUBFR ], /* I Quantization step sizes */ + const opus_int pitchL[ MAX_NB_SUBFR ], /* I Pitch lags */ + const opus_int Lambda_Q10, /* I Rate/distortion tradeoff */ + const opus_int LTP_scale_Q14 /* I LTP state scaling */ +) = { + silk_NSQ_del_dec_c, /* ARMv4 */ + silk_NSQ_del_dec_c, /* EDSP */ + silk_NSQ_del_dec_c, /* Media */ + silk_NSQ_del_dec_neon, /* Neon */ +}; + /*There is no table for silk_noise_shape_quantizer_short_prediction because the NEON version takes different parameters than the C version. Instead RTCD is done via if statements at the call sites. @@ -52,4 +101,23 @@ opus_int32 # endif +# if defined(FIXED_POINT) && \ + defined(OPUS_ARM_MAY_HAVE_NEON_INTR) && !defined(OPUS_ARM_PRESUME_NEON_INTR) + +void (*const SILK_WARPED_AUTOCORRELATION_FIX_IMPL[OPUS_ARCHMASK + 1])( + opus_int32 *corr, /* O Result [order + 1] */ + opus_int *scale, /* O Scaling of the correlation vector */ + const opus_int16 *input, /* I Input data to correlate */ + const opus_int warping_Q16, /* I Warping coefficient */ + const opus_int length, /* I Length of input */ + const opus_int order /* I Correlation order (even) */ +) = { + silk_warped_autocorrelation_FIX_c, /* ARMv4 */ + silk_warped_autocorrelation_FIX_c, /* EDSP */ + silk_warped_autocorrelation_FIX_c, /* Media */ + silk_warped_autocorrelation_FIX_neon, /* Neon */ +}; + +# endif + #endif /* OPUS_HAVE_RTCD */ diff --git a/TMessagesProj/jni/opus/silk/arm/biquad_alt_arm.h b/TMessagesProj/jni/opus/silk/arm/biquad_alt_arm.h new file mode 100644 index 000000000..66ea9f43d --- /dev/null +++ b/TMessagesProj/jni/opus/silk/arm/biquad_alt_arm.h @@ -0,0 +1,68 @@ +/*********************************************************************** +Copyright (c) 2017 Google Inc. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +- Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. +- Neither the name of Internet Society, IETF or IETF Trust, nor the +names of specific contributors, may be used to endorse or promote +products derived from this software without specific prior written +permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +***********************************************************************/ + +#ifndef SILK_BIQUAD_ALT_ARM_H +# define SILK_BIQUAD_ALT_ARM_H + +# include "celt/arm/armcpu.h" + +# if defined(OPUS_ARM_MAY_HAVE_NEON_INTR) +void silk_biquad_alt_stride2_neon( + const opus_int16 *in, /* I input signal */ + const opus_int32 *B_Q28, /* I MA coefficients [3] */ + const opus_int32 *A_Q28, /* I AR coefficients [2] */ + opus_int32 *S, /* I/O State vector [4] */ + opus_int16 *out, /* O output signal */ + const opus_int32 len /* I signal length (must be even) */ +); + +# if !defined(OPUS_HAVE_RTCD) && defined(OPUS_ARM_PRESUME_NEON) +# define OVERRIDE_silk_biquad_alt_stride2 (1) +# define silk_biquad_alt_stride2(in, B_Q28, A_Q28, S, out, len, arch) ((void)(arch), PRESUME_NEON(silk_biquad_alt_stride2)(in, B_Q28, A_Q28, S, out, len)) +# endif +# endif + +# if !defined(OVERRIDE_silk_biquad_alt_stride2) +/*Is run-time CPU detection enabled on this platform?*/ +# if defined(OPUS_HAVE_RTCD) && (defined(OPUS_ARM_MAY_HAVE_NEON_INTR) && !defined(OPUS_ARM_PRESUME_NEON_INTR)) +extern void (*const SILK_BIQUAD_ALT_STRIDE2_IMPL[OPUS_ARCHMASK+1])( + const opus_int16 *in, /* I input signal */ + const opus_int32 *B_Q28, /* I MA coefficients [3] */ + const opus_int32 *A_Q28, /* I AR coefficients [2] */ + opus_int32 *S, /* I/O State vector [4] */ + opus_int16 *out, /* O output signal */ + const opus_int32 len /* I signal length (must be even) */ + ); +# define OVERRIDE_silk_biquad_alt_stride2 (1) +# define silk_biquad_alt_stride2(in, B_Q28, A_Q28, S, out, len, arch) ((*SILK_BIQUAD_ALT_STRIDE2_IMPL[(arch)&OPUS_ARCHMASK])(in, B_Q28, A_Q28, S, out, len)) +# elif defined(OPUS_ARM_PRESUME_NEON_INTR) +# define OVERRIDE_silk_biquad_alt_stride2 (1) +# define silk_biquad_alt_stride2(in, B_Q28, A_Q28, S, out, len, arch) ((void)(arch), silk_biquad_alt_stride2_neon(in, B_Q28, A_Q28, S, out, len)) +# endif +# endif + +#endif /* end SILK_BIQUAD_ALT_ARM_H */ diff --git a/TMessagesProj/jni/opus/silk/arm/biquad_alt_neon_intr.c b/TMessagesProj/jni/opus/silk/arm/biquad_alt_neon_intr.c new file mode 100644 index 000000000..971573318 --- /dev/null +++ b/TMessagesProj/jni/opus/silk/arm/biquad_alt_neon_intr.c @@ -0,0 +1,156 @@ +/*********************************************************************** +Copyright (c) 2017 Google Inc. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +- Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. +- Neither the name of Internet Society, IETF or IETF Trust, nor the +names of specific contributors, may be used to endorse or promote +products derived from this software without specific prior written +permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +***********************************************************************/ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#ifdef OPUS_CHECK_ASM +# include +# include "stack_alloc.h" +#endif +#include "SigProc_FIX.h" + +static inline void silk_biquad_alt_stride2_kernel( const int32x4_t A_L_s32x4, const int32x4_t A_U_s32x4, const int32x4_t B_Q28_s32x4, const int32x2_t t_s32x2, const int32x4_t in_s32x4, int32x4_t *S_s32x4, int32x2_t *out32_Q14_s32x2 ) +{ + int32x4_t t_s32x4, out32_Q14_s32x4; + + *out32_Q14_s32x2 = vadd_s32( vget_low_s32( *S_s32x4 ), t_s32x2 ); /* silk_SMLAWB( S{0,1}, B_Q28[ 0 ], in{0,1} ) */ + *S_s32x4 = vcombine_s32( vget_high_s32( *S_s32x4 ), vdup_n_s32( 0 ) ); /* S{0,1} = S{2,3}; S{2,3} = 0; */ + *out32_Q14_s32x2 = vshl_n_s32( *out32_Q14_s32x2, 2 ); /* out32_Q14_{0,1} = silk_LSHIFT( silk_SMLAWB( S{0,1}, B_Q28[ 0 ], in{0,1} ), 2 ); */ + out32_Q14_s32x4 = vcombine_s32( *out32_Q14_s32x2, *out32_Q14_s32x2 ); /* out32_Q14_{0,1,0,1} */ + t_s32x4 = vqdmulhq_s32( out32_Q14_s32x4, A_L_s32x4 ); /* silk_SMULWB( out32_Q14_{0,1,0,1}, A{0,0,1,1}_L_Q28 ) */ + *S_s32x4 = vrsraq_n_s32( *S_s32x4, t_s32x4, 14 ); /* S{0,1} = S{2,3} + silk_RSHIFT_ROUND(); S{2,3} = silk_RSHIFT_ROUND(); */ + t_s32x4 = vqdmulhq_s32( out32_Q14_s32x4, A_U_s32x4 ); /* silk_SMULWB( out32_Q14_{0,1,0,1}, A{0,0,1,1}_U_Q28 ) */ + *S_s32x4 = vaddq_s32( *S_s32x4, t_s32x4 ); /* S0 = silk_SMLAWB( S{0,1,2,3}, out32_Q14_{0,1,0,1}, A{0,0,1,1}_U_Q28 ); */ + t_s32x4 = vqdmulhq_s32( in_s32x4, B_Q28_s32x4 ); /* silk_SMULWB( B_Q28[ {1,1,2,2} ], in{0,1,0,1} ) */ + *S_s32x4 = vaddq_s32( *S_s32x4, t_s32x4 ); /* S0 = silk_SMLAWB( S0, B_Q28[ {1,1,2,2} ], in{0,1,0,1} ); */ +} + +void silk_biquad_alt_stride2_neon( + const opus_int16 *in, /* I input signal */ + const opus_int32 *B_Q28, /* I MA coefficients [3] */ + const opus_int32 *A_Q28, /* I AR coefficients [2] */ + opus_int32 *S, /* I/O State vector [4] */ + opus_int16 *out, /* O output signal */ + const opus_int32 len /* I signal length (must be even) */ +) +{ + /* DIRECT FORM II TRANSPOSED (uses 2 element state vector) */ + opus_int k = 0; + const int32x2_t offset_s32x2 = vdup_n_s32( (1<<14) - 1 ); + const int32x4_t offset_s32x4 = vcombine_s32( offset_s32x2, offset_s32x2 ); + int16x4_t in_s16x4 = vdup_n_s16( 0 ); + int16x4_t out_s16x4; + int32x2_t A_Q28_s32x2, A_L_s32x2, A_U_s32x2, B_Q28_s32x2, t_s32x2; + int32x4_t A_L_s32x4, A_U_s32x4, B_Q28_s32x4, S_s32x4, out32_Q14_s32x4; + int32x2x2_t t0_s32x2x2, t1_s32x2x2, t2_s32x2x2, S_s32x2x2; + +#ifdef OPUS_CHECK_ASM + opus_int32 S_c[ 4 ]; + VARDECL( opus_int16, out_c ); + SAVE_STACK; + ALLOC( out_c, 2 * len, opus_int16 ); + + silk_memcpy( &S_c, S, sizeof( S_c ) ); + silk_biquad_alt_stride2_c( in, B_Q28, A_Q28, S_c, out_c, len ); +#endif + + /* Negate A_Q28 values and split in two parts */ + A_Q28_s32x2 = vld1_s32( A_Q28 ); + A_Q28_s32x2 = vneg_s32( A_Q28_s32x2 ); + A_L_s32x2 = vshl_n_s32( A_Q28_s32x2, 18 ); /* ( -A_Q28[] & 0x00003FFF ) << 18 */ + A_L_s32x2 = vreinterpret_s32_u32( vshr_n_u32( vreinterpret_u32_s32( A_L_s32x2 ), 3 ) ); /* ( -A_Q28[] & 0x00003FFF ) << 15 */ + A_U_s32x2 = vshr_n_s32( A_Q28_s32x2, 14 ); /* silk_RSHIFT( -A_Q28[], 14 ) */ + A_U_s32x2 = vshl_n_s32( A_U_s32x2, 16 ); /* silk_RSHIFT( -A_Q28[], 14 ) << 16 (Clip two leading bits to conform to C function.) */ + A_U_s32x2 = vshr_n_s32( A_U_s32x2, 1 ); /* silk_RSHIFT( -A_Q28[], 14 ) << 15 */ + + B_Q28_s32x2 = vld1_s32( B_Q28 ); + t_s32x2 = vld1_s32( B_Q28 + 1 ); + t0_s32x2x2 = vzip_s32( A_L_s32x2, A_L_s32x2 ); + t1_s32x2x2 = vzip_s32( A_U_s32x2, A_U_s32x2 ); + t2_s32x2x2 = vzip_s32( t_s32x2, t_s32x2 ); + A_L_s32x4 = vcombine_s32( t0_s32x2x2.val[ 0 ], t0_s32x2x2.val[ 1 ] ); /* A{0,0,1,1}_L_Q28 */ + A_U_s32x4 = vcombine_s32( t1_s32x2x2.val[ 0 ], t1_s32x2x2.val[ 1 ] ); /* A{0,0,1,1}_U_Q28 */ + B_Q28_s32x4 = vcombine_s32( t2_s32x2x2.val[ 0 ], t2_s32x2x2.val[ 1 ] ); /* B_Q28[ {1,1,2,2} ] */ + S_s32x4 = vld1q_s32( S ); /* S0 = S[ 0 ]; S3 = S[ 3 ]; */ + S_s32x2x2 = vtrn_s32( vget_low_s32( S_s32x4 ), vget_high_s32( S_s32x4 ) ); /* S2 = S[ 1 ]; S1 = S[ 2 ]; */ + S_s32x4 = vcombine_s32( S_s32x2x2.val[ 0 ], S_s32x2x2.val[ 1 ] ); + + for( ; k < len - 1; k += 2 ) { + int32x4_t in_s32x4[ 2 ], t_s32x4; + int32x2_t out32_Q14_s32x2[ 2 ]; + + /* S[ 2 * i + 0 ], S[ 2 * i + 1 ], S[ 2 * i + 2 ], S[ 2 * i + 3 ]: Q12 */ + in_s16x4 = vld1_s16( &in[ 2 * k ] ); /* in{0,1,2,3} = in[ 2 * k + {0,1,2,3} ]; */ + in_s32x4[ 0 ] = vshll_n_s16( in_s16x4, 15 ); /* in{0,1,2,3} << 15 */ + t_s32x4 = vqdmulhq_lane_s32( in_s32x4[ 0 ], B_Q28_s32x2, 0 ); /* silk_SMULWB( B_Q28[ 0 ], in{0,1,2,3} ) */ + in_s32x4[ 1 ] = vcombine_s32( vget_high_s32( in_s32x4[ 0 ] ), vget_high_s32( in_s32x4[ 0 ] ) ); /* in{2,3,2,3} << 15 */ + in_s32x4[ 0 ] = vcombine_s32( vget_low_s32 ( in_s32x4[ 0 ] ), vget_low_s32 ( in_s32x4[ 0 ] ) ); /* in{0,1,0,1} << 15 */ + silk_biquad_alt_stride2_kernel( A_L_s32x4, A_U_s32x4, B_Q28_s32x4, vget_low_s32 ( t_s32x4 ), in_s32x4[ 0 ], &S_s32x4, &out32_Q14_s32x2[ 0 ] ); + silk_biquad_alt_stride2_kernel( A_L_s32x4, A_U_s32x4, B_Q28_s32x4, vget_high_s32( t_s32x4 ), in_s32x4[ 1 ], &S_s32x4, &out32_Q14_s32x2[ 1 ] ); + + /* Scale back to Q0 and saturate */ + out32_Q14_s32x4 = vcombine_s32( out32_Q14_s32x2[ 0 ], out32_Q14_s32x2[ 1 ] ); /* out32_Q14_{0,1,2,3} */ + out32_Q14_s32x4 = vaddq_s32( out32_Q14_s32x4, offset_s32x4 ); /* out32_Q14_{0,1,2,3} + (1<<14) - 1 */ + out_s16x4 = vqshrn_n_s32( out32_Q14_s32x4, 14 ); /* (opus_int16)silk_SAT16( silk_RSHIFT( out32_Q14_{0,1,2,3} + (1<<14) - 1, 14 ) ) */ + vst1_s16( &out[ 2 * k ], out_s16x4 ); /* out[ 2 * k + {0,1,2,3} ] = (opus_int16)silk_SAT16( silk_RSHIFT( out32_Q14_{0,1,2,3} + (1<<14) - 1, 14 ) ); */ + } + + /* Process leftover. */ + if( k < len ) { + int32x4_t in_s32x4; + int32x2_t out32_Q14_s32x2; + + /* S[ 2 * i + 0 ], S[ 2 * i + 1 ]: Q12 */ + in_s16x4 = vld1_lane_s16( &in[ 2 * k + 0 ], in_s16x4, 0 ); /* in{0,1} = in[ 2 * k + {0,1} ]; */ + in_s16x4 = vld1_lane_s16( &in[ 2 * k + 1 ], in_s16x4, 1 ); /* in{0,1} = in[ 2 * k + {0,1} ]; */ + in_s32x4 = vshll_n_s16( in_s16x4, 15 ); /* in{0,1} << 15 */ + t_s32x2 = vqdmulh_lane_s32( vget_low_s32( in_s32x4 ), B_Q28_s32x2, 0 ); /* silk_SMULWB( B_Q28[ 0 ], in{0,1} ) */ + in_s32x4 = vcombine_s32( vget_low_s32( in_s32x4 ), vget_low_s32( in_s32x4 ) ); /* in{0,1,0,1} << 15 */ + silk_biquad_alt_stride2_kernel( A_L_s32x4, A_U_s32x4, B_Q28_s32x4, t_s32x2, in_s32x4, &S_s32x4, &out32_Q14_s32x2 ); + + /* Scale back to Q0 and saturate */ + out32_Q14_s32x2 = vadd_s32( out32_Q14_s32x2, offset_s32x2 ); /* out32_Q14_{0,1} + (1<<14) - 1 */ + out32_Q14_s32x4 = vcombine_s32( out32_Q14_s32x2, out32_Q14_s32x2 ); /* out32_Q14_{0,1,0,1} + (1<<14) - 1 */ + out_s16x4 = vqshrn_n_s32( out32_Q14_s32x4, 14 ); /* (opus_int16)silk_SAT16( silk_RSHIFT( out32_Q14_{0,1,0,1} + (1<<14) - 1, 14 ) ) */ + vst1_lane_s16( &out[ 2 * k + 0 ], out_s16x4, 0 ); /* out[ 2 * k + 0 ] = (opus_int16)silk_SAT16( silk_RSHIFT( out32_Q14_0 + (1<<14) - 1, 14 ) ); */ + vst1_lane_s16( &out[ 2 * k + 1 ], out_s16x4, 1 ); /* out[ 2 * k + 1 ] = (opus_int16)silk_SAT16( silk_RSHIFT( out32_Q14_1 + (1<<14) - 1, 14 ) ); */ + } + + vst1q_lane_s32( &S[ 0 ], S_s32x4, 0 ); /* S[ 0 ] = S0; */ + vst1q_lane_s32( &S[ 1 ], S_s32x4, 2 ); /* S[ 1 ] = S2; */ + vst1q_lane_s32( &S[ 2 ], S_s32x4, 1 ); /* S[ 2 ] = S1; */ + vst1q_lane_s32( &S[ 3 ], S_s32x4, 3 ); /* S[ 3 ] = S3; */ + +#ifdef OPUS_CHECK_ASM + silk_assert( !memcmp( S_c, S, sizeof( S_c ) ) ); + silk_assert( !memcmp( out_c, out, 2 * len * sizeof( opus_int16 ) ) ); + RESTORE_STACK; +#endif +} diff --git a/TMessagesProj/jni/opus/silk/arm/macros_armv4.h b/TMessagesProj/jni/opus/silk/arm/macros_armv4.h index 3f30e9728..877eb18dd 100644 --- a/TMessagesProj/jni/opus/silk/arm/macros_armv4.h +++ b/TMessagesProj/jni/opus/silk/arm/macros_armv4.h @@ -28,6 +28,11 @@ POSSIBILITY OF SUCH DAMAGE. #ifndef SILK_MACROS_ARMv4_H #define SILK_MACROS_ARMv4_H +/* This macro only avoids the undefined behaviour from a left shift of + a negative value. It should only be used in macros that can't include + SigProc_FIX.h. In other cases, use silk_LSHIFT32(). */ +#define SAFE_SHL(a,b) ((opus_int32)((opus_uint32)(a) << (b))) + /* (a32 * (opus_int32)((opus_int16)(b32))) >> 16 output have to be 32bit int */ #undef silk_SMULWB static OPUS_INLINE opus_int32 silk_SMULWB_armv4(opus_int32 a, opus_int16 b) @@ -38,7 +43,7 @@ static OPUS_INLINE opus_int32 silk_SMULWB_armv4(opus_int32 a, opus_int16 b) "#silk_SMULWB\n\t" "smull %0, %1, %2, %3\n\t" : "=&r"(rd_lo), "=&r"(rd_hi) - : "%r"(a), "r"(b<<16) + : "%r"(a), "r"(SAFE_SHL(b,16)) ); return rd_hi; } @@ -80,7 +85,7 @@ static OPUS_INLINE opus_int32 silk_SMULWW_armv4(opus_int32 a, opus_int32 b) : "=&r"(rd_lo), "=&r"(rd_hi) : "%r"(a), "r"(b) ); - return (rd_hi<<16)+(rd_lo>>16); + return SAFE_SHL(rd_hi,16)+(rd_lo>>16); } #define silk_SMULWW(a, b) (silk_SMULWW_armv4(a, b)) @@ -96,8 +101,10 @@ static OPUS_INLINE opus_int32 silk_SMLAWW_armv4(opus_int32 a, opus_int32 b, : "=&r"(rd_lo), "=&r"(rd_hi) : "%r"(b), "r"(c) ); - return a+(rd_hi<<16)+(rd_lo>>16); + return a+SAFE_SHL(rd_hi,16)+(rd_lo>>16); } #define silk_SMLAWW(a, b, c) (silk_SMLAWW_armv4(a, b, c)) +#undef SAFE_SHL + #endif /* SILK_MACROS_ARMv4_H */ diff --git a/TMessagesProj/jni/opus/silk/arm/macros_armv5e.h b/TMessagesProj/jni/opus/silk/arm/macros_armv5e.h index aad4117e4..b14ec65dd 100644 --- a/TMessagesProj/jni/opus/silk/arm/macros_armv5e.h +++ b/TMessagesProj/jni/opus/silk/arm/macros_armv5e.h @@ -29,6 +29,11 @@ POSSIBILITY OF SUCH DAMAGE. #ifndef SILK_MACROS_ARMv5E_H #define SILK_MACROS_ARMv5E_H +/* This macro only avoids the undefined behaviour from a left shift of + a negative value. It should only be used in macros that can't include + SigProc_FIX.h. In other cases, use silk_LSHIFT32(). */ +#define SAFE_SHL(a,b) ((opus_int32)((opus_uint32)(a) << (b))) + /* (a32 * (opus_int32)((opus_int16)(b32))) >> 16 output have to be 32bit int */ #undef silk_SMULWB static OPUS_INLINE opus_int32 silk_SMULWB_armv5e(opus_int32 a, opus_int16 b) @@ -190,7 +195,7 @@ static OPUS_INLINE opus_int32 silk_CLZ16_armv5(opus_int16 in16) "#silk_CLZ16\n\t" "clz %0, %1;\n" : "=r"(res) - : "r"(in16<<16|0x8000) + : "r"(SAFE_SHL(in16,16)|0x8000) ); return res; } @@ -210,4 +215,6 @@ static OPUS_INLINE opus_int32 silk_CLZ32_armv5(opus_int32 in32) } #define silk_CLZ32(in32) (silk_CLZ32_armv5(in32)) +#undef SAFE_SHL + #endif /* SILK_MACROS_ARMv5E_H */ diff --git a/TMessagesProj/jni/opus/silk/biquad_alt.c b/TMessagesProj/jni/opus/silk/biquad_alt.c index d55f5ee92..54566a43c 100644 --- a/TMessagesProj/jni/opus/silk/biquad_alt.c +++ b/TMessagesProj/jni/opus/silk/biquad_alt.c @@ -39,14 +39,13 @@ POSSIBILITY OF SUCH DAMAGE. #include "SigProc_FIX.h" /* Second order ARMA filter, alternative implementation */ -void silk_biquad_alt( +void silk_biquad_alt_stride1( const opus_int16 *in, /* I input signal */ const opus_int32 *B_Q28, /* I MA coefficients [3] */ const opus_int32 *A_Q28, /* I AR coefficients [2] */ opus_int32 *S, /* I/O State vector [2] */ opus_int16 *out, /* O output signal */ - const opus_int32 len, /* I signal length (must be even) */ - opus_int stride /* I Operate on interleaved signal if > 1 */ + const opus_int32 len /* I signal length (must be even) */ ) { /* DIRECT FORM II TRANSPOSED (uses 2 element state vector) */ @@ -61,7 +60,7 @@ void silk_biquad_alt( for( k = 0; k < len; k++ ) { /* S[ 0 ], S[ 1 ]: Q12 */ - inval = in[ k * stride ]; + inval = in[ k ]; out32_Q14 = silk_LSHIFT( silk_SMLAWB( S[ 0 ], B_Q28[ 0 ], inval ), 2 ); S[ 0 ] = S[1] + silk_RSHIFT_ROUND( silk_SMULWB( out32_Q14, A0_L_Q28 ), 14 ); @@ -73,6 +72,50 @@ void silk_biquad_alt( S[ 1 ] = silk_SMLAWB( S[ 1 ], B_Q28[ 2 ], inval ); /* Scale back to Q0 and saturate */ - out[ k * stride ] = (opus_int16)silk_SAT16( silk_RSHIFT( out32_Q14 + (1<<14) - 1, 14 ) ); + out[ k ] = (opus_int16)silk_SAT16( silk_RSHIFT( out32_Q14 + (1<<14) - 1, 14 ) ); + } +} + +void silk_biquad_alt_stride2_c( + const opus_int16 *in, /* I input signal */ + const opus_int32 *B_Q28, /* I MA coefficients [3] */ + const opus_int32 *A_Q28, /* I AR coefficients [2] */ + opus_int32 *S, /* I/O State vector [4] */ + opus_int16 *out, /* O output signal */ + const opus_int32 len /* I signal length (must be even) */ +) +{ + /* DIRECT FORM II TRANSPOSED (uses 2 element state vector) */ + opus_int k; + opus_int32 A0_U_Q28, A0_L_Q28, A1_U_Q28, A1_L_Q28, out32_Q14[ 2 ]; + + /* Negate A_Q28 values and split in two parts */ + A0_L_Q28 = ( -A_Q28[ 0 ] ) & 0x00003FFF; /* lower part */ + A0_U_Q28 = silk_RSHIFT( -A_Q28[ 0 ], 14 ); /* upper part */ + A1_L_Q28 = ( -A_Q28[ 1 ] ) & 0x00003FFF; /* lower part */ + A1_U_Q28 = silk_RSHIFT( -A_Q28[ 1 ], 14 ); /* upper part */ + + for( k = 0; k < len; k++ ) { + /* S[ 0 ], S[ 1 ], S[ 2 ], S[ 3 ]: Q12 */ + out32_Q14[ 0 ] = silk_LSHIFT( silk_SMLAWB( S[ 0 ], B_Q28[ 0 ], in[ 2 * k + 0 ] ), 2 ); + out32_Q14[ 1 ] = silk_LSHIFT( silk_SMLAWB( S[ 2 ], B_Q28[ 0 ], in[ 2 * k + 1 ] ), 2 ); + + S[ 0 ] = S[ 1 ] + silk_RSHIFT_ROUND( silk_SMULWB( out32_Q14[ 0 ], A0_L_Q28 ), 14 ); + S[ 2 ] = S[ 3 ] + silk_RSHIFT_ROUND( silk_SMULWB( out32_Q14[ 1 ], A0_L_Q28 ), 14 ); + S[ 0 ] = silk_SMLAWB( S[ 0 ], out32_Q14[ 0 ], A0_U_Q28 ); + S[ 2 ] = silk_SMLAWB( S[ 2 ], out32_Q14[ 1 ], A0_U_Q28 ); + S[ 0 ] = silk_SMLAWB( S[ 0 ], B_Q28[ 1 ], in[ 2 * k + 0 ] ); + S[ 2 ] = silk_SMLAWB( S[ 2 ], B_Q28[ 1 ], in[ 2 * k + 1 ] ); + + S[ 1 ] = silk_RSHIFT_ROUND( silk_SMULWB( out32_Q14[ 0 ], A1_L_Q28 ), 14 ); + S[ 3 ] = silk_RSHIFT_ROUND( silk_SMULWB( out32_Q14[ 1 ], A1_L_Q28 ), 14 ); + S[ 1 ] = silk_SMLAWB( S[ 1 ], out32_Q14[ 0 ], A1_U_Q28 ); + S[ 3 ] = silk_SMLAWB( S[ 3 ], out32_Q14[ 1 ], A1_U_Q28 ); + S[ 1 ] = silk_SMLAWB( S[ 1 ], B_Q28[ 2 ], in[ 2 * k + 0 ] ); + S[ 3 ] = silk_SMLAWB( S[ 3 ], B_Q28[ 2 ], in[ 2 * k + 1 ] ); + + /* Scale back to Q0 and saturate */ + out[ 2 * k + 0 ] = (opus_int16)silk_SAT16( silk_RSHIFT( out32_Q14[ 0 ] + (1<<14) - 1, 14 ) ); + out[ 2 * k + 1 ] = (opus_int16)silk_SAT16( silk_RSHIFT( out32_Q14[ 1 ] + (1<<14) - 1, 14 ) ); } } diff --git a/TMessagesProj/jni/opus/silk/check_control_input.c b/TMessagesProj/jni/opus/silk/check_control_input.c index b5de9ce48..739fb01f1 100644 --- a/TMessagesProj/jni/opus/silk/check_control_input.c +++ b/TMessagesProj/jni/opus/silk/check_control_input.c @@ -38,7 +38,7 @@ opus_int check_control_input( silk_EncControlStruct *encControl /* I Control structure */ ) { - silk_assert( encControl != NULL ); + celt_assert( encControl != NULL ); if( ( ( encControl->API_sampleRate != 8000 ) && ( encControl->API_sampleRate != 12000 ) && @@ -59,46 +59,46 @@ opus_int check_control_input( ( encControl->minInternalSampleRate > encControl->desiredInternalSampleRate ) || ( encControl->maxInternalSampleRate < encControl->desiredInternalSampleRate ) || ( encControl->minInternalSampleRate > encControl->maxInternalSampleRate ) ) { - silk_assert( 0 ); + celt_assert( 0 ); return SILK_ENC_FS_NOT_SUPPORTED; } if( encControl->payloadSize_ms != 10 && encControl->payloadSize_ms != 20 && encControl->payloadSize_ms != 40 && encControl->payloadSize_ms != 60 ) { - silk_assert( 0 ); + celt_assert( 0 ); return SILK_ENC_PACKET_SIZE_NOT_SUPPORTED; } if( encControl->packetLossPercentage < 0 || encControl->packetLossPercentage > 100 ) { - silk_assert( 0 ); + celt_assert( 0 ); return SILK_ENC_INVALID_LOSS_RATE; } if( encControl->useDTX < 0 || encControl->useDTX > 1 ) { - silk_assert( 0 ); + celt_assert( 0 ); return SILK_ENC_INVALID_DTX_SETTING; } if( encControl->useCBR < 0 || encControl->useCBR > 1 ) { - silk_assert( 0 ); + celt_assert( 0 ); return SILK_ENC_INVALID_CBR_SETTING; } if( encControl->useInBandFEC < 0 || encControl->useInBandFEC > 1 ) { - silk_assert( 0 ); + celt_assert( 0 ); return SILK_ENC_INVALID_INBAND_FEC_SETTING; } if( encControl->nChannelsAPI < 1 || encControl->nChannelsAPI > ENCODER_NUM_CHANNELS ) { - silk_assert( 0 ); + celt_assert( 0 ); return SILK_ENC_INVALID_NUMBER_OF_CHANNELS_ERROR; } if( encControl->nChannelsInternal < 1 || encControl->nChannelsInternal > ENCODER_NUM_CHANNELS ) { - silk_assert( 0 ); + celt_assert( 0 ); return SILK_ENC_INVALID_NUMBER_OF_CHANNELS_ERROR; } if( encControl->nChannelsInternal > encControl->nChannelsAPI ) { - silk_assert( 0 ); + celt_assert( 0 ); return SILK_ENC_INVALID_NUMBER_OF_CHANNELS_ERROR; } if( encControl->complexity < 0 || encControl->complexity > 10 ) { - silk_assert( 0 ); + celt_assert( 0 ); return SILK_ENC_INVALID_COMPLEXITY_SETTING; } diff --git a/TMessagesProj/jni/opus/silk/control_SNR.c b/TMessagesProj/jni/opus/silk/control_SNR.c index 464c1acfe..9a6db2754 100644 --- a/TMessagesProj/jni/opus/silk/control_SNR.c +++ b/TMessagesProj/jni/opus/silk/control_SNR.c @@ -32,44 +32,82 @@ POSSIBILITY OF SUCH DAMAGE. #include "main.h" #include "tuning_parameters.h" +/* These tables hold SNR values divided by 21 (so they fit in 8 bits) + for different target bitrates spaced at 400 bps interval. The first + 10 values are omitted (0-4 kb/s) because they're all zeros. + These tables were obtained by running different SNRs through the + encoder and measuring the active bitrate. */ +static const unsigned char silk_TargetRate_NB_21[117 - 10] = { + 0, 15, 39, 52, 61, 68, + 74, 79, 84, 88, 92, 95, 99,102,105,108,111,114,117,119,122,124, + 126,129,131,133,135,137,139,142,143,145,147,149,151,153,155,157, + 158,160,162,163,165,167,168,170,171,173,174,176,177,179,180,182, + 183,185,186,187,189,190,192,193,194,196,197,199,200,201,203,204, + 205,207,208,209,211,212,213,215,216,217,219,220,221,223,224,225, + 227,228,230,231,232,234,235,236,238,239,241,242,243,245,246,248, + 249,250,252,253,255 +}; + +static const unsigned char silk_TargetRate_MB_21[165 - 10] = { + 0, 0, 28, 43, 52, 59, + 65, 70, 74, 78, 81, 85, 87, 90, 93, 95, 98,100,102,105,107,109, + 111,113,115,116,118,120,122,123,125,127,128,130,131,133,134,136, + 137,138,140,141,143,144,145,147,148,149,151,152,153,154,156,157, + 158,159,160,162,163,164,165,166,167,168,169,171,172,173,174,175, + 176,177,178,179,180,181,182,183,184,185,186,187,188,188,189,190, + 191,192,193,194,195,196,197,198,199,200,201,202,203,203,204,205, + 206,207,208,209,210,211,212,213,214,214,215,216,217,218,219,220, + 221,222,223,224,224,225,226,227,228,229,230,231,232,233,234,235, + 236,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250, + 251,252,253,254,255 +}; + +static const unsigned char silk_TargetRate_WB_21[201 - 10] = { + 0, 0, 0, 8, 29, 41, + 49, 56, 62, 66, 70, 74, 77, 80, 83, 86, 88, 91, 93, 95, 97, 99, + 101,103,105,107,108,110,112,113,115,116,118,119,121,122,123,125, + 126,127,129,130,131,132,134,135,136,137,138,140,141,142,143,144, + 145,146,147,148,149,150,151,152,153,154,156,157,158,159,159,160, + 161,162,163,164,165,166,167,168,169,170,171,171,172,173,174,175, + 176,177,177,178,179,180,181,181,182,183,184,185,185,186,187,188, + 189,189,190,191,192,192,193,194,195,195,196,197,198,198,199,200, + 200,201,202,203,203,204,205,206,206,207,208,209,209,210,211,211, + 212,213,214,214,215,216,216,217,218,219,219,220,221,221,222,223, + 224,224,225,226,226,227,228,229,229,230,231,232,232,233,234,234, + 235,236,237,237,238,239,240,240,241,242,243,243,244,245,246,246, + 247,248,249,249,250,251,252,253,255 +}; + /* Control SNR of redidual quantizer */ opus_int silk_control_SNR( silk_encoder_state *psEncC, /* I/O Pointer to Silk encoder state */ opus_int32 TargetRate_bps /* I Target max bitrate (bps) */ ) { - opus_int k, ret = SILK_NO_ERROR; - opus_int32 frac_Q6; - const opus_int32 *rateTable; + int id; + int bound; + const unsigned char *snr_table; - /* Set bitrate/coding quality */ - TargetRate_bps = silk_LIMIT( TargetRate_bps, MIN_TARGET_RATE_BPS, MAX_TARGET_RATE_BPS ); - if( TargetRate_bps != psEncC->TargetRate_bps ) { - psEncC->TargetRate_bps = TargetRate_bps; - - /* If new TargetRate_bps, translate to SNR_dB value */ - if( psEncC->fs_kHz == 8 ) { - rateTable = silk_TargetRate_table_NB; - } else if( psEncC->fs_kHz == 12 ) { - rateTable = silk_TargetRate_table_MB; - } else { - rateTable = silk_TargetRate_table_WB; - } - - /* Reduce bitrate for 10 ms modes in these calculations */ - if( psEncC->nb_subfr == 2 ) { - TargetRate_bps -= REDUCE_BITRATE_10_MS_BPS; - } - - /* Find bitrate interval in table and interpolate */ - for( k = 1; k < TARGET_RATE_TAB_SZ; k++ ) { - if( TargetRate_bps <= rateTable[ k ] ) { - frac_Q6 = silk_DIV32( silk_LSHIFT( TargetRate_bps - rateTable[ k - 1 ], 6 ), rateTable[ k ] - rateTable[ k - 1 ] ); - psEncC->SNR_dB_Q7 = silk_LSHIFT( silk_SNR_table_Q1[ k - 1 ], 6 ) + silk_MUL( frac_Q6, silk_SNR_table_Q1[ k ] - silk_SNR_table_Q1[ k - 1 ] ); - break; - } - } + psEncC->TargetRate_bps = TargetRate_bps; + if( psEncC->nb_subfr == 2 ) { + TargetRate_bps -= 2000 + psEncC->fs_kHz/16; } - - return ret; + if( psEncC->fs_kHz == 8 ) { + bound = sizeof(silk_TargetRate_NB_21); + snr_table = silk_TargetRate_NB_21; + } else if( psEncC->fs_kHz == 12 ) { + bound = sizeof(silk_TargetRate_MB_21); + snr_table = silk_TargetRate_MB_21; + } else { + bound = sizeof(silk_TargetRate_WB_21); + snr_table = silk_TargetRate_WB_21; + } + id = (TargetRate_bps+200)/400; + id = silk_min(id - 10, bound-1); + if( id <= 0 ) { + psEncC->SNR_dB_Q7 = 0; + } else { + psEncC->SNR_dB_Q7 = snr_table[id]*21; + } + return SILK_NO_ERROR; } diff --git a/TMessagesProj/jni/opus/silk/control_audio_bandwidth.c b/TMessagesProj/jni/opus/silk/control_audio_bandwidth.c index 4f9bc5cbd..f6d22d839 100644 --- a/TMessagesProj/jni/opus/silk/control_audio_bandwidth.c +++ b/TMessagesProj/jni/opus/silk/control_audio_bandwidth.c @@ -39,9 +39,15 @@ opus_int silk_control_audio_bandwidth( ) { opus_int fs_kHz; + opus_int orig_kHz; opus_int32 fs_Hz; - fs_kHz = psEncC->fs_kHz; + orig_kHz = psEncC->fs_kHz; + /* Handle a bandwidth-switching reset where we need to be aware what the last sampling rate was. */ + if( orig_kHz == 0 ) { + orig_kHz = psEncC->sLP.saved_fs_kHz; + } + fs_kHz = orig_kHz; fs_Hz = silk_SMULBB( fs_kHz, 1000 ); if( fs_Hz == 0 ) { /* Encoder has just been initialized */ @@ -61,7 +67,7 @@ opus_int silk_control_audio_bandwidth( } if( psEncC->allow_bandwidth_switch || encControl->opusCanSwitch ) { /* Check if we should switch down */ - if( silk_SMULBB( psEncC->fs_kHz, 1000 ) > psEncC->desiredInternal_fs_Hz ) + if( silk_SMULBB( orig_kHz, 1000 ) > psEncC->desiredInternal_fs_Hz ) { /* Switch down */ if( psEncC->sLP.mode == 0 ) { @@ -76,7 +82,7 @@ opus_int silk_control_audio_bandwidth( psEncC->sLP.mode = 0; /* Switch to a lower sample frequency */ - fs_kHz = psEncC->fs_kHz == 16 ? 12 : 8; + fs_kHz = orig_kHz == 16 ? 12 : 8; } else { if( psEncC->sLP.transition_frame_no <= 0 ) { encControl->switchReady = 1; @@ -90,12 +96,12 @@ opus_int silk_control_audio_bandwidth( } else /* Check if we should switch up */ - if( silk_SMULBB( psEncC->fs_kHz, 1000 ) < psEncC->desiredInternal_fs_Hz ) + if( silk_SMULBB( orig_kHz, 1000 ) < psEncC->desiredInternal_fs_Hz ) { /* Switch up */ if( encControl->opusCanSwitch ) { /* Switch to a higher sample frequency */ - fs_kHz = psEncC->fs_kHz == 8 ? 12 : 16; + fs_kHz = orig_kHz == 8 ? 12 : 16; /* New transition */ psEncC->sLP.transition_frame_no = 0; diff --git a/TMessagesProj/jni/opus/silk/control_codec.c b/TMessagesProj/jni/opus/silk/control_codec.c index 9350fd4b2..52aa8fded 100644 --- a/TMessagesProj/jni/opus/silk/control_codec.c +++ b/TMessagesProj/jni/opus/silk/control_codec.c @@ -238,8 +238,8 @@ static opus_int silk_setup_fs( } /* Set internal sampling frequency */ - silk_assert( fs_kHz == 8 || fs_kHz == 12 || fs_kHz == 16 ); - silk_assert( psEnc->sCmn.nb_subfr == 2 || psEnc->sCmn.nb_subfr == 4 ); + celt_assert( fs_kHz == 8 || fs_kHz == 12 || fs_kHz == 16 ); + celt_assert( psEnc->sCmn.nb_subfr == 2 || psEnc->sCmn.nb_subfr == 4 ); if( psEnc->sCmn.fs_kHz != fs_kHz ) { /* reset part of the state */ silk_memset( &psEnc->sShape, 0, sizeof( psEnc->sShape ) ); @@ -299,7 +299,7 @@ static opus_int silk_setup_fs( } /* Check that settings are valid */ - silk_assert( ( psEnc->sCmn.subfr_length * psEnc->sCmn.nb_subfr ) == psEnc->sCmn.frame_length ); + celt_assert( ( psEnc->sCmn.subfr_length * psEnc->sCmn.nb_subfr ) == psEnc->sCmn.frame_length ); return ret; } @@ -312,7 +312,7 @@ static opus_int silk_setup_complexity( opus_int ret = 0; /* Set encoding complexity */ - silk_assert( Complexity >= 0 && Complexity <= 10 ); + celt_assert( Complexity >= 0 && Complexity <= 10 ); if( Complexity < 1 ) { psEncC->pitchEstimationComplexity = SILK_PE_MIN_COMPLEX; psEncC->pitchEstimationThreshold_Q16 = SILK_FIX_CONST( 0.8, 16 ); @@ -390,12 +390,12 @@ static opus_int silk_setup_complexity( psEncC->shapeWinLength = SUB_FRAME_LENGTH_MS * psEncC->fs_kHz + 2 * psEncC->la_shape; psEncC->Complexity = Complexity; - silk_assert( psEncC->pitchEstimationLPCOrder <= MAX_FIND_PITCH_LPC_ORDER ); - silk_assert( psEncC->shapingLPCOrder <= MAX_SHAPE_LPC_ORDER ); - silk_assert( psEncC->nStatesDelayedDecision <= MAX_DEL_DEC_STATES ); - silk_assert( psEncC->warping_Q16 <= 32767 ); - silk_assert( psEncC->la_shape <= LA_SHAPE_MAX ); - silk_assert( psEncC->shapeWinLength <= SHAPE_LPC_WIN_MAX ); + celt_assert( psEncC->pitchEstimationLPCOrder <= MAX_FIND_PITCH_LPC_ORDER ); + celt_assert( psEncC->shapingLPCOrder <= MAX_SHAPE_LPC_ORDER ); + celt_assert( psEncC->nStatesDelayedDecision <= MAX_DEL_DEC_STATES ); + celt_assert( psEncC->warping_Q16 <= 32767 ); + celt_assert( psEncC->la_shape <= LA_SHAPE_MAX ); + celt_assert( psEncC->shapeWinLength <= SHAPE_LPC_WIN_MAX ); return ret; } diff --git a/TMessagesProj/jni/opus/silk/debug.h b/TMessagesProj/jni/opus/silk/debug.h index efb6d3e99..6f68c1ca0 100644 --- a/TMessagesProj/jni/opus/silk/debug.h +++ b/TMessagesProj/jni/opus/silk/debug.h @@ -39,23 +39,10 @@ extern "C" unsigned long GetHighResolutionTime(void); /* O time in usec*/ -/* make SILK_DEBUG dependent on compiler's _DEBUG */ -#if defined _WIN32 - #ifdef _DEBUG - #define SILK_DEBUG 1 - #else - #define SILK_DEBUG 0 - #endif - - /* overrule the above */ - #if 0 - /* #define NO_ASSERTS*/ - #undef SILK_DEBUG - #define SILK_DEBUG 1 - #endif -#else - #define SILK_DEBUG 0 -#endif +/* Set to 1 to enable DEBUG_STORE_DATA() macros for dumping + * intermediate signals from the codec. + */ +#define SILK_DEBUG 0 /* Flag for using timers */ #define SILK_TIC_TOC 0 diff --git a/TMessagesProj/jni/opus/silk/dec_API.c b/TMessagesProj/jni/opus/silk/dec_API.c index b7d8ed48d..7d5ca7fb9 100644 --- a/TMessagesProj/jni/opus/silk/dec_API.c +++ b/TMessagesProj/jni/opus/silk/dec_API.c @@ -104,7 +104,7 @@ opus_int silk_Decode( /* O Returns error co int delay_stack_alloc; SAVE_STACK; - silk_assert( decControl->nChannelsInternal == 1 || decControl->nChannelsInternal == 2 ); + celt_assert( decControl->nChannelsInternal == 1 || decControl->nChannelsInternal == 2 ); /**********************************/ /* Test if first frame in payload */ @@ -143,13 +143,13 @@ opus_int silk_Decode( /* O Returns error co channel_state[ n ].nFramesPerPacket = 3; channel_state[ n ].nb_subfr = 4; } else { - silk_assert( 0 ); + celt_assert( 0 ); RESTORE_STACK; return SILK_DEC_INVALID_FRAME_SIZE; } fs_kHz_dec = ( decControl->internalSampleRate >> 10 ) + 1; if( fs_kHz_dec != 8 && fs_kHz_dec != 12 && fs_kHz_dec != 16 ) { - silk_assert( 0 ); + celt_assert( 0 ); RESTORE_STACK; return SILK_DEC_INVALID_SAMPLING_FREQUENCY; } diff --git a/TMessagesProj/jni/opus/silk/decode_core.c b/TMessagesProj/jni/opus/silk/decode_core.c index e569c0e72..1c352a652 100644 --- a/TMessagesProj/jni/opus/silk/decode_core.c +++ b/TMessagesProj/jni/opus/silk/decode_core.c @@ -141,7 +141,7 @@ void silk_decode_core( if( k == 0 || ( k == 2 && NLSF_interpolation_flag ) ) { /* Rewhiten with new A coefs */ start_idx = psDec->ltp_mem_length - lag - psDec->LPC_order - LTP_ORDER / 2; - silk_assert( start_idx > 0 ); + celt_assert( start_idx > 0 ); if( k == 2 ) { silk_memcpy( &psDec->outBuf[ psDec->ltp_mem_length ], xq, 2 * psDec->subfr_length * sizeof( opus_int16 ) ); @@ -196,7 +196,7 @@ void silk_decode_core( for( i = 0; i < psDec->subfr_length; i++ ) { /* Short-term prediction */ - silk_assert( psDec->LPC_order == 10 || psDec->LPC_order == 16 ); + celt_assert( psDec->LPC_order == 10 || psDec->LPC_order == 16 ); /* Avoids introducing a bias because silk_SMLAWB() always rounds to -inf */ LPC_pred_Q10 = silk_RSHIFT( psDec->LPC_order, 1 ); LPC_pred_Q10 = silk_SMLAWB( LPC_pred_Q10, sLPC_Q14[ MAX_LPC_ORDER + i - 1 ], A_Q12_tmp[ 0 ] ); @@ -225,8 +225,6 @@ void silk_decode_core( pxq[ i ] = (opus_int16)silk_SAT16( silk_RSHIFT_ROUND( silk_SMULWW( sLPC_Q14[ MAX_LPC_ORDER + i ], Gain_Q10 ), 8 ) ); } - /* DEBUG_STORE_DATA( dec.pcm, pxq, psDec->subfr_length * sizeof( opus_int16 ) ) */ - /* Update LPC filter state */ silk_memcpy( sLPC_Q14, &sLPC_Q14[ psDec->subfr_length ], MAX_LPC_ORDER * sizeof( opus_int32 ) ); pexc_Q14 += psDec->subfr_length; diff --git a/TMessagesProj/jni/opus/silk/decode_frame.c b/TMessagesProj/jni/opus/silk/decode_frame.c index dfa73c4a2..e73825b26 100644 --- a/TMessagesProj/jni/opus/silk/decode_frame.c +++ b/TMessagesProj/jni/opus/silk/decode_frame.c @@ -55,7 +55,7 @@ opus_int silk_decode_frame( psDecCtrl->LTP_scale_Q14 = 0; /* Safety checks */ - silk_assert( L > 0 && L <= MAX_FRAME_LENGTH ); + celt_assert( L > 0 && L <= MAX_FRAME_LENGTH ); if( lostFlag == FLAG_DECODE_NORMAL || ( lostFlag == FLAG_DECODE_LBRR && psDec->LBRR_flags[ psDec->nFramesDecoded ] == 1 ) ) @@ -91,7 +91,7 @@ opus_int silk_decode_frame( psDec->lossCnt = 0; psDec->prevSignalType = psDec->indices.signalType; - silk_assert( psDec->prevSignalType >= 0 && psDec->prevSignalType <= 2 ); + celt_assert( psDec->prevSignalType >= 0 && psDec->prevSignalType <= 2 ); /* A frame has been decoded without errors */ psDec->first_frame_after_reset = 0; @@ -104,7 +104,7 @@ opus_int silk_decode_frame( /*************************/ /* Update output buffer. */ /*************************/ - silk_assert( psDec->ltp_mem_length >= psDec->frame_length ); + celt_assert( psDec->ltp_mem_length >= psDec->frame_length ); mv_len = psDec->ltp_mem_length - psDec->frame_length; silk_memmove( psDec->outBuf, &psDec->outBuf[ psDec->frame_length ], mv_len * sizeof(opus_int16) ); silk_memcpy( &psDec->outBuf[ mv_len ], pOut, psDec->frame_length * sizeof( opus_int16 ) ); diff --git a/TMessagesProj/jni/opus/silk/decode_indices.c b/TMessagesProj/jni/opus/silk/decode_indices.c index 7afe5c26c..0bb4a997a 100644 --- a/TMessagesProj/jni/opus/silk/decode_indices.c +++ b/TMessagesProj/jni/opus/silk/decode_indices.c @@ -79,7 +79,7 @@ void silk_decode_indices( /**********************/ psDec->indices.NLSFIndices[ 0 ] = (opus_int8)ec_dec_icdf( psRangeDec, &psDec->psNLSF_CB->CB1_iCDF[ ( psDec->indices.signalType >> 1 ) * psDec->psNLSF_CB->nVectors ], 8 ); silk_NLSF_unpack( ec_ix, pred_Q8, psDec->psNLSF_CB, psDec->indices.NLSFIndices[ 0 ] ); - silk_assert( psDec->psNLSF_CB->order == psDec->LPC_order ); + celt_assert( psDec->psNLSF_CB->order == psDec->LPC_order ); for( i = 0; i < psDec->psNLSF_CB->order; i++ ) { Ix = ec_dec_icdf( psRangeDec, &psDec->psNLSF_CB->ec_iCDF[ ec_ix[ i ] ], 8 ); if( Ix == 0 ) { diff --git a/TMessagesProj/jni/opus/silk/decode_parameters.c b/TMessagesProj/jni/opus/silk/decode_parameters.c index e345b1dce..a56a40985 100644 --- a/TMessagesProj/jni/opus/silk/decode_parameters.c +++ b/TMessagesProj/jni/opus/silk/decode_parameters.c @@ -52,7 +52,7 @@ void silk_decode_parameters( silk_NLSF_decode( pNLSF_Q15, psDec->indices.NLSFIndices, psDec->psNLSF_CB ); /* Convert NLSF parameters to AR prediction filter coefficients */ - silk_NLSF2A( psDecCtrl->PredCoef_Q12[ 1 ], pNLSF_Q15, psDec->LPC_order ); + silk_NLSF2A( psDecCtrl->PredCoef_Q12[ 1 ], pNLSF_Q15, psDec->LPC_order, psDec->arch ); /* If just reset, e.g., because internal Fs changed, do not allow interpolation */ /* improves the case of packet loss in the first frame after a switch */ @@ -69,7 +69,7 @@ void silk_decode_parameters( } /* Convert NLSF parameters to AR prediction filter coefficients */ - silk_NLSF2A( psDecCtrl->PredCoef_Q12[ 0 ], pNLSF0_Q15, psDec->LPC_order ); + silk_NLSF2A( psDecCtrl->PredCoef_Q12[ 0 ], pNLSF0_Q15, psDec->LPC_order, psDec->arch ); } else { /* Copy LPC coefficients for first half from second half */ silk_memcpy( psDecCtrl->PredCoef_Q12[ 0 ], psDecCtrl->PredCoef_Q12[ 1 ], psDec->LPC_order * sizeof( opus_int16 ) ); diff --git a/TMessagesProj/jni/opus/silk/decode_pitch.c b/TMessagesProj/jni/opus/silk/decode_pitch.c index fedbc6a52..fd1b6bf55 100644 --- a/TMessagesProj/jni/opus/silk/decode_pitch.c +++ b/TMessagesProj/jni/opus/silk/decode_pitch.c @@ -51,7 +51,7 @@ void silk_decode_pitch( Lag_CB_ptr = &silk_CB_lags_stage2[ 0 ][ 0 ]; cbk_size = PE_NB_CBKS_STAGE2_EXT; } else { - silk_assert( nb_subfr == PE_MAX_NB_SUBFR >> 1 ); + celt_assert( nb_subfr == PE_MAX_NB_SUBFR >> 1 ); Lag_CB_ptr = &silk_CB_lags_stage2_10_ms[ 0 ][ 0 ]; cbk_size = PE_NB_CBKS_STAGE2_10MS; } @@ -60,7 +60,7 @@ void silk_decode_pitch( Lag_CB_ptr = &silk_CB_lags_stage3[ 0 ][ 0 ]; cbk_size = PE_NB_CBKS_STAGE3_MAX; } else { - silk_assert( nb_subfr == PE_MAX_NB_SUBFR >> 1 ); + celt_assert( nb_subfr == PE_MAX_NB_SUBFR >> 1 ); Lag_CB_ptr = &silk_CB_lags_stage3_10_ms[ 0 ][ 0 ]; cbk_size = PE_NB_CBKS_STAGE3_10MS; } diff --git a/TMessagesProj/jni/opus/silk/decode_pulses.c b/TMessagesProj/jni/opus/silk/decode_pulses.c index d6bbec922..a56d2d307 100644 --- a/TMessagesProj/jni/opus/silk/decode_pulses.c +++ b/TMessagesProj/jni/opus/silk/decode_pulses.c @@ -56,7 +56,7 @@ void silk_decode_pulses( silk_assert( 1 << LOG2_SHELL_CODEC_FRAME_LENGTH == SHELL_CODEC_FRAME_LENGTH ); iter = silk_RSHIFT( frame_length, LOG2_SHELL_CODEC_FRAME_LENGTH ); if( iter * SHELL_CODEC_FRAME_LENGTH < frame_length ) { - silk_assert( frame_length == 12 * 10 ); /* Make sure only happens for 10 ms @ 12 kHz */ + celt_assert( frame_length == 12 * 10 ); /* Make sure only happens for 10 ms @ 12 kHz */ iter++; } diff --git a/TMessagesProj/jni/opus/silk/decoder_set_fs.c b/TMessagesProj/jni/opus/silk/decoder_set_fs.c index eef0fd25e..d9a13d0f0 100644 --- a/TMessagesProj/jni/opus/silk/decoder_set_fs.c +++ b/TMessagesProj/jni/opus/silk/decoder_set_fs.c @@ -40,8 +40,8 @@ opus_int silk_decoder_set_fs( { opus_int frame_length, ret = 0; - silk_assert( fs_kHz == 8 || fs_kHz == 12 || fs_kHz == 16 ); - silk_assert( psDec->nb_subfr == MAX_NB_SUBFR || psDec->nb_subfr == MAX_NB_SUBFR/2 ); + celt_assert( fs_kHz == 8 || fs_kHz == 12 || fs_kHz == 16 ); + celt_assert( psDec->nb_subfr == MAX_NB_SUBFR || psDec->nb_subfr == MAX_NB_SUBFR/2 ); /* New (sub)frame length */ psDec->subfr_length = silk_SMULBB( SUB_FRAME_LENGTH_MS, fs_kHz ); @@ -86,7 +86,7 @@ opus_int silk_decoder_set_fs( psDec->pitch_lag_low_bits_iCDF = silk_uniform4_iCDF; } else { /* unsupported sampling rate */ - silk_assert( 0 ); + celt_assert( 0 ); } psDec->first_frame_after_reset = 1; psDec->lagPrev = 100; @@ -101,7 +101,7 @@ opus_int silk_decoder_set_fs( } /* Check that settings are valid */ - silk_assert( psDec->frame_length > 0 && psDec->frame_length <= MAX_FRAME_LENGTH ); + celt_assert( psDec->frame_length > 0 && psDec->frame_length <= MAX_FRAME_LENGTH ); return ret; } diff --git a/TMessagesProj/jni/opus/silk/define.h b/TMessagesProj/jni/opus/silk/define.h index 781cfdccf..247cb0bf7 100644 --- a/TMessagesProj/jni/opus/silk/define.h +++ b/TMessagesProj/jni/opus/silk/define.h @@ -46,7 +46,6 @@ extern "C" /* Limits on bitrate */ #define MIN_TARGET_RATE_BPS 5000 #define MAX_TARGET_RATE_BPS 80000 -#define TARGET_RATE_TAB_SZ 8 /* LBRR thresholds */ #define LBRR_NB_MIN_RATE_BPS 12000 @@ -58,6 +57,11 @@ extern "C" #define MAX_CONSECUTIVE_DTX 20 /* eq 400 ms */ #define DTX_ACTIVITY_THRESHOLD 0.1f +/* VAD decision */ +#define VAD_NO_DECISION -1 +#define VAD_NO_ACTIVITY 0 +#define VAD_ACTIVITY 1 + /* Maximum sampling frequency */ #define MAX_FS_KHZ 16 #define MAX_API_FS_KHZ 48 @@ -173,11 +177,7 @@ extern "C" #define MAX_MATRIX_SIZE MAX_LPC_ORDER /* Max of LPC Order and LTP order */ -#if( MAX_LPC_ORDER > DECISION_DELAY ) # define NSQ_LPC_BUF_LENGTH MAX_LPC_ORDER -#else -# define NSQ_LPC_BUF_LENGTH DECISION_DELAY -#endif /***************************/ /* Voice activity detector */ diff --git a/TMessagesProj/jni/opus/silk/enc_API.c b/TMessagesProj/jni/opus/silk/enc_API.c index ba3db0604..55a33f37e 100644 --- a/TMessagesProj/jni/opus/silk/enc_API.c +++ b/TMessagesProj/jni/opus/silk/enc_API.c @@ -82,7 +82,7 @@ opus_int silk_InitEncoder( /* O Returns error co silk_memset( psEnc, 0, sizeof( silk_encoder ) ); for( n = 0; n < ENCODER_NUM_CHANNELS; n++ ) { if( ret += silk_init_encoder( &psEnc->state_Fxx[ n ], arch ) ) { - silk_assert( 0 ); + celt_assert( 0 ); } } @@ -91,7 +91,7 @@ opus_int silk_InitEncoder( /* O Returns error co /* Read control structure */ if( ret += silk_QueryEncoder( encState, encStatus ) ) { - silk_assert( 0 ); + celt_assert( 0 ); } return ret; @@ -144,7 +144,8 @@ opus_int silk_Encode( /* O Returns error co opus_int nSamplesIn, /* I Number of samples in input vector */ ec_enc *psRangeEnc, /* I/O Compressor data structure */ opus_int32 *nBytesOut, /* I/O Number of bytes in payload (input: Max bytes) */ - const opus_int prefillFlag /* I Flag to indicate prefilling buffers no coding */ + const opus_int prefillFlag, /* I Flag to indicate prefilling buffers no coding */ + opus_int activity /* I Decision of Opus voice activity detector */ ) { opus_int n, i, nBits, flags, tmp_payloadSize_ms = 0, tmp_complexity = 0, ret = 0; @@ -166,7 +167,7 @@ opus_int silk_Encode( /* O Returns error co /* Check values in encoder control structure */ if( ( ret = check_control_input( encControl ) ) != 0 ) { - silk_assert( 0 ); + celt_assert( 0 ); RESTORE_STACK; return ret; } @@ -199,16 +200,26 @@ opus_int silk_Encode( /* O Returns error co tot_blocks = ( nBlocksOf10ms > 1 ) ? nBlocksOf10ms >> 1 : 1; curr_block = 0; if( prefillFlag ) { + silk_LP_state save_LP; /* Only accept input length of 10 ms */ if( nBlocksOf10ms != 1 ) { - silk_assert( 0 ); + celt_assert( 0 ); RESTORE_STACK; return SILK_ENC_INPUT_INVALID_NO_OF_SAMPLES; } + if ( prefillFlag == 2 ) { + save_LP = psEnc->state_Fxx[ 0 ].sCmn.sLP; + /* Save the sampling rate so the bandwidth switching code can keep handling transitions. */ + save_LP.saved_fs_kHz = psEnc->state_Fxx[ 0 ].sCmn.fs_kHz; + } /* Reset Encoder */ for( n = 0; n < encControl->nChannelsInternal; n++ ) { ret = silk_init_encoder( &psEnc->state_Fxx[ n ], psEnc->state_Fxx[ n ].sCmn.arch ); - silk_assert( !ret ); + /* Restore the variable LP state. */ + if ( prefillFlag == 2 ) { + psEnc->state_Fxx[ n ].sCmn.sLP = save_LP; + } + celt_assert( !ret ); } tmp_payloadSize_ms = encControl->payloadSize_ms; encControl->payloadSize_ms = 10; @@ -221,19 +232,18 @@ opus_int silk_Encode( /* O Returns error co } else { /* Only accept input lengths that are a multiple of 10 ms */ if( nBlocksOf10ms * encControl->API_sampleRate != 100 * nSamplesIn || nSamplesIn < 0 ) { - silk_assert( 0 ); + celt_assert( 0 ); RESTORE_STACK; return SILK_ENC_INPUT_INVALID_NO_OF_SAMPLES; } /* Make sure no more than one packet can be produced */ if( 1000 * (opus_int32)nSamplesIn > encControl->payloadSize_ms * encControl->API_sampleRate ) { - silk_assert( 0 ); + celt_assert( 0 ); RESTORE_STACK; return SILK_ENC_INPUT_INVALID_NO_OF_SAMPLES; } } - TargetRate_bps = silk_RSHIFT32( encControl->bitRate, encControl->nChannelsInternal - 1 ); for( n = 0; n < encControl->nChannelsInternal; n++ ) { /* Force the side channel to the same rate as the mid */ opus_int force_fs_kHz = (n==1) ? psEnc->state_Fxx[0].sCmn.fs_kHz : 0; @@ -249,7 +259,7 @@ opus_int silk_Encode( /* O Returns error co } psEnc->state_Fxx[ n ].sCmn.inDTX = psEnc->state_Fxx[ n ].sCmn.useDTX; } - silk_assert( encControl->nChannelsInternal == 1 || psEnc->state_Fxx[ 0 ].sCmn.fs_kHz == psEnc->state_Fxx[ 1 ].sCmn.fs_kHz ); + celt_assert( encControl->nChannelsInternal == 1 || psEnc->state_Fxx[ 0 ].sCmn.fs_kHz == psEnc->state_Fxx[ 1 ].sCmn.fs_kHz ); /* Input buffering/resampling and encoding */ nSamplesToBufferMax = @@ -307,7 +317,7 @@ opus_int silk_Encode( /* O Returns error co } psEnc->state_Fxx[ 0 ].sCmn.inputBufIx += nSamplesToBuffer; } else { - silk_assert( encControl->nChannelsAPI == 1 && encControl->nChannelsInternal == 1 ); + celt_assert( encControl->nChannelsAPI == 1 && encControl->nChannelsInternal == 1 ); silk_memcpy(buf, samplesIn, nSamplesFromInput*sizeof(opus_int16)); ret += silk_resampler( &psEnc->state_Fxx[ 0 ].sCmn.resampler_state, &psEnc->state_Fxx[ 0 ].sCmn.inputBuf[ psEnc->state_Fxx[ 0 ].sCmn.inputBufIx + 2 ], buf, nSamplesFromInput ); @@ -323,8 +333,8 @@ opus_int silk_Encode( /* O Returns error co /* Silk encoder */ if( psEnc->state_Fxx[ 0 ].sCmn.inputBufIx >= psEnc->state_Fxx[ 0 ].sCmn.frame_length ) { /* Enough data in input buffer, so encode */ - silk_assert( psEnc->state_Fxx[ 0 ].sCmn.inputBufIx == psEnc->state_Fxx[ 0 ].sCmn.frame_length ); - silk_assert( encControl->nChannelsInternal == 1 || psEnc->state_Fxx[ 1 ].sCmn.inputBufIx == psEnc->state_Fxx[ 1 ].sCmn.frame_length ); + celt_assert( psEnc->state_Fxx[ 0 ].sCmn.inputBufIx == psEnc->state_Fxx[ 0 ].sCmn.frame_length ); + celt_assert( encControl->nChannelsInternal == 1 || psEnc->state_Fxx[ 1 ].sCmn.inputBufIx == psEnc->state_Fxx[ 1 ].sCmn.frame_length ); /* Deal with LBRR data */ if( psEnc->state_Fxx[ 0 ].sCmn.nFramesEncoded == 0 && !prefillFlag ) { @@ -426,7 +436,7 @@ opus_int silk_Encode( /* O Returns error co psEnc->state_Fxx[ 1 ].sCmn.sNSQ.prev_gain_Q16 = 65536; psEnc->state_Fxx[ 1 ].sCmn.first_frame_after_reset = 1; } - silk_encode_do_VAD_Fxx( &psEnc->state_Fxx[ 1 ] ); + silk_encode_do_VAD_Fxx( &psEnc->state_Fxx[ 1 ], activity ); } else { psEnc->state_Fxx[ 1 ].sCmn.VAD_flags[ psEnc->state_Fxx[ 0 ].sCmn.nFramesEncoded ] = 0; } @@ -441,7 +451,7 @@ opus_int silk_Encode( /* O Returns error co silk_memcpy( psEnc->state_Fxx[ 0 ].sCmn.inputBuf, psEnc->sStereo.sMid, 2 * sizeof( opus_int16 ) ); silk_memcpy( psEnc->sStereo.sMid, &psEnc->state_Fxx[ 0 ].sCmn.inputBuf[ psEnc->state_Fxx[ 0 ].sCmn.frame_length ], 2 * sizeof( opus_int16 ) ); } - silk_encode_do_VAD_Fxx( &psEnc->state_Fxx[ 0 ] ); + silk_encode_do_VAD_Fxx( &psEnc->state_Fxx[ 0 ], activity ); /* Encode */ for( n = 0; n < encControl->nChannelsInternal; n++ ) { diff --git a/TMessagesProj/jni/opus/silk/encode_indices.c b/TMessagesProj/jni/opus/silk/encode_indices.c index 666c8c0b1..4bcbc3347 100644 --- a/TMessagesProj/jni/opus/silk/encode_indices.c +++ b/TMessagesProj/jni/opus/silk/encode_indices.c @@ -56,8 +56,8 @@ void silk_encode_indices( /* Encode signal type and quantizer offset */ /*******************************************/ typeOffset = 2 * psIndices->signalType + psIndices->quantOffsetType; - silk_assert( typeOffset >= 0 && typeOffset < 6 ); - silk_assert( encode_LBRR == 0 || typeOffset >= 2 ); + celt_assert( typeOffset >= 0 && typeOffset < 6 ); + celt_assert( encode_LBRR == 0 || typeOffset >= 2 ); if( encode_LBRR || typeOffset >= 2 ) { ec_enc_icdf( psRangeEnc, typeOffset - 2, silk_type_offset_VAD_iCDF, 8 ); } else { @@ -90,7 +90,7 @@ void silk_encode_indices( /****************/ ec_enc_icdf( psRangeEnc, psIndices->NLSFIndices[ 0 ], &psEncC->psNLSF_CB->CB1_iCDF[ ( psIndices->signalType >> 1 ) * psEncC->psNLSF_CB->nVectors ], 8 ); silk_NLSF_unpack( ec_ix, pred_Q8, psEncC->psNLSF_CB, psIndices->NLSFIndices[ 0 ] ); - silk_assert( psEncC->psNLSF_CB->order == psEncC->predictLPCOrder ); + celt_assert( psEncC->psNLSF_CB->order == psEncC->predictLPCOrder ); for( i = 0; i < psEncC->psNLSF_CB->order; i++ ) { if( psIndices->NLSFIndices[ i+1 ] >= NLSF_QUANT_MAX_AMPLITUDE ) { ec_enc_icdf( psRangeEnc, 2 * NLSF_QUANT_MAX_AMPLITUDE, &psEncC->psNLSF_CB->ec_iCDF[ ec_ix[ i ] ], 8 ); diff --git a/TMessagesProj/jni/opus/silk/encode_pulses.c b/TMessagesProj/jni/opus/silk/encode_pulses.c index ab00264f9..8a1999138 100644 --- a/TMessagesProj/jni/opus/silk/encode_pulses.c +++ b/TMessagesProj/jni/opus/silk/encode_pulses.c @@ -86,7 +86,7 @@ void silk_encode_pulses( silk_assert( 1 << LOG2_SHELL_CODEC_FRAME_LENGTH == SHELL_CODEC_FRAME_LENGTH ); iter = silk_RSHIFT( frame_length, LOG2_SHELL_CODEC_FRAME_LENGTH ); if( iter * SHELL_CODEC_FRAME_LENGTH < frame_length ) { - silk_assert( frame_length == 12 * 10 ); /* Make sure only happens for 10 ms @ 12 kHz */ + celt_assert( frame_length == 12 * 10 ); /* Make sure only happens for 10 ms @ 12 kHz */ iter++; silk_memset( &pulses[ frame_length ], 0, SHELL_CODEC_FRAME_LENGTH * sizeof(opus_int8)); } diff --git a/TMessagesProj/jni/opus/silk/fixed/apply_sine_window_FIX.c b/TMessagesProj/jni/opus/silk/fixed/apply_sine_window_FIX.c index 4502b7130..03e088a6d 100644 --- a/TMessagesProj/jni/opus/silk/fixed/apply_sine_window_FIX.c +++ b/TMessagesProj/jni/opus/silk/fixed/apply_sine_window_FIX.c @@ -57,15 +57,15 @@ void silk_apply_sine_window( opus_int k, f_Q16, c_Q16; opus_int32 S0_Q16, S1_Q16; - silk_assert( win_type == 1 || win_type == 2 ); + celt_assert( win_type == 1 || win_type == 2 ); /* Length must be in a range from 16 to 120 and a multiple of 4 */ - silk_assert( length >= 16 && length <= 120 ); - silk_assert( ( length & 3 ) == 0 ); + celt_assert( length >= 16 && length <= 120 ); + celt_assert( ( length & 3 ) == 0 ); /* Frequency */ k = ( length >> 2 ) - 4; - silk_assert( k >= 0 && k <= 26 ); + celt_assert( k >= 0 && k <= 26 ); f_Q16 = (opus_int)freq_table_Q16[ k ]; /* Factor used for cosine approximation */ diff --git a/TMessagesProj/jni/opus/silk/fixed/arm/warped_autocorrelation_FIX_arm.h b/TMessagesProj/jni/opus/silk/fixed/arm/warped_autocorrelation_FIX_arm.h new file mode 100644 index 000000000..1992e4328 --- /dev/null +++ b/TMessagesProj/jni/opus/silk/fixed/arm/warped_autocorrelation_FIX_arm.h @@ -0,0 +1,68 @@ +/*********************************************************************** +Copyright (c) 2017 Google Inc. +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +- Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. +- Neither the name of Internet Society, IETF or IETF Trust, nor the +names of specific contributors, may be used to endorse or promote +products derived from this software without specific prior written +permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +***********************************************************************/ + +#ifndef SILK_WARPED_AUTOCORRELATION_FIX_ARM_H +# define SILK_WARPED_AUTOCORRELATION_FIX_ARM_H + +# include "celt/arm/armcpu.h" + +# if defined(FIXED_POINT) + +# if defined(OPUS_ARM_MAY_HAVE_NEON_INTR) +void silk_warped_autocorrelation_FIX_neon( + opus_int32 *corr, /* O Result [order + 1] */ + opus_int *scale, /* O Scaling of the correlation vector */ + const opus_int16 *input, /* I Input data to correlate */ + const opus_int warping_Q16, /* I Warping coefficient */ + const opus_int length, /* I Length of input */ + const opus_int order /* I Correlation order (even) */ +); + +# if !defined(OPUS_HAVE_RTCD) && defined(OPUS_ARM_PRESUME_NEON) +# define OVERRIDE_silk_warped_autocorrelation_FIX (1) +# define silk_warped_autocorrelation_FIX(corr, scale, input, warping_Q16, length, order, arch) \ + ((void)(arch), PRESUME_NEON(silk_warped_autocorrelation_FIX)(corr, scale, input, warping_Q16, length, order)) +# endif +# endif + +# if !defined(OVERRIDE_silk_warped_autocorrelation_FIX) +/*Is run-time CPU detection enabled on this platform?*/ +# if defined(OPUS_HAVE_RTCD) && (defined(OPUS_ARM_MAY_HAVE_NEON_INTR) && !defined(OPUS_ARM_PRESUME_NEON_INTR)) +extern void (*const SILK_WARPED_AUTOCORRELATION_FIX_IMPL[OPUS_ARCHMASK+1])(opus_int32*, opus_int*, const opus_int16*, const opus_int, const opus_int, const opus_int); +# define OVERRIDE_silk_warped_autocorrelation_FIX (1) +# define silk_warped_autocorrelation_FIX(corr, scale, input, warping_Q16, length, order, arch) \ + ((*SILK_WARPED_AUTOCORRELATION_FIX_IMPL[(arch)&OPUS_ARCHMASK])(corr, scale, input, warping_Q16, length, order)) +# elif defined(OPUS_ARM_PRESUME_NEON_INTR) +# define OVERRIDE_silk_warped_autocorrelation_FIX (1) +# define silk_warped_autocorrelation_FIX(corr, scale, input, warping_Q16, length, order, arch) \ + ((void)(arch), silk_warped_autocorrelation_FIX_neon(corr, scale, input, warping_Q16, length, order)) +# endif +# endif + +# endif /* end FIXED_POINT */ + +#endif /* end SILK_WARPED_AUTOCORRELATION_FIX_ARM_H */ diff --git a/TMessagesProj/jni/opus/silk/fixed/arm/warped_autocorrelation_FIX_neon_intr.c b/TMessagesProj/jni/opus/silk/fixed/arm/warped_autocorrelation_FIX_neon_intr.c new file mode 100644 index 000000000..00a70cb51 --- /dev/null +++ b/TMessagesProj/jni/opus/silk/fixed/arm/warped_autocorrelation_FIX_neon_intr.c @@ -0,0 +1,260 @@ +/*********************************************************************** +Copyright (c) 2017 Google Inc., Jean-Marc Valin +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +- Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in the +documentation and/or other materials provided with the distribution. +- Neither the name of Internet Society, IETF or IETF Trust, nor the +names of specific contributors, may be used to endorse or promote +products derived from this software without specific prior written +permission. +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. +***********************************************************************/ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#ifdef OPUS_CHECK_ASM +# include +#endif +#include "stack_alloc.h" +#include "main_FIX.h" + +static OPUS_INLINE void calc_corr( const opus_int32 *const input_QS, opus_int64 *const corr_QC, const opus_int offset, const int32x4_t state_QS_s32x4 ) +{ + int64x2_t corr_QC_s64x2[ 2 ], t_s64x2[ 2 ]; + const int32x4_t input_QS_s32x4 = vld1q_s32( input_QS + offset ); + corr_QC_s64x2[ 0 ] = vld1q_s64( corr_QC + offset + 0 ); + corr_QC_s64x2[ 1 ] = vld1q_s64( corr_QC + offset + 2 ); + t_s64x2[ 0 ] = vmull_s32( vget_low_s32( state_QS_s32x4 ), vget_low_s32( input_QS_s32x4 ) ); + t_s64x2[ 1 ] = vmull_s32( vget_high_s32( state_QS_s32x4 ), vget_high_s32( input_QS_s32x4 ) ); + corr_QC_s64x2[ 0 ] = vsraq_n_s64( corr_QC_s64x2[ 0 ], t_s64x2[ 0 ], 2 * QS - QC ); + corr_QC_s64x2[ 1 ] = vsraq_n_s64( corr_QC_s64x2[ 1 ], t_s64x2[ 1 ], 2 * QS - QC ); + vst1q_s64( corr_QC + offset + 0, corr_QC_s64x2[ 0 ] ); + vst1q_s64( corr_QC + offset + 2, corr_QC_s64x2[ 1 ] ); +} + +static OPUS_INLINE int32x4_t calc_state( const int32x4_t state_QS0_s32x4, const int32x4_t state_QS0_1_s32x4, const int32x4_t state_QS1_1_s32x4, const int32x4_t warping_Q16_s32x4 ) +{ + int32x4_t t_s32x4 = vsubq_s32( state_QS0_s32x4, state_QS0_1_s32x4 ); + t_s32x4 = vqdmulhq_s32( t_s32x4, warping_Q16_s32x4 ); + return vaddq_s32( state_QS1_1_s32x4, t_s32x4 ); +} + +void silk_warped_autocorrelation_FIX_neon( + opus_int32 *corr, /* O Result [order + 1] */ + opus_int *scale, /* O Scaling of the correlation vector */ + const opus_int16 *input, /* I Input data to correlate */ + const opus_int warping_Q16, /* I Warping coefficient */ + const opus_int length, /* I Length of input */ + const opus_int order /* I Correlation order (even) */ +) +{ + if( ( MAX_SHAPE_LPC_ORDER > 24 ) || ( order < 6 ) ) { + silk_warped_autocorrelation_FIX_c( corr, scale, input, warping_Q16, length, order ); + } else { + opus_int n, i, lsh; + opus_int64 corr_QC[ MAX_SHAPE_LPC_ORDER + 1 ] = { 0 }; /* In reverse order */ + opus_int64 corr_QC_orderT; + int64x2_t lsh_s64x2; + const opus_int orderT = ( order + 3 ) & ~3; + opus_int64 *corr_QCT; + opus_int32 *input_QS; + VARDECL( opus_int32, input_QST ); + VARDECL( opus_int32, state ); + SAVE_STACK; + + /* Order must be even */ + silk_assert( ( order & 1 ) == 0 ); + silk_assert( 2 * QS - QC >= 0 ); + + ALLOC( input_QST, length + 2 * MAX_SHAPE_LPC_ORDER, opus_int32 ); + + input_QS = input_QST; + /* input_QS has zero paddings in the beginning and end. */ + vst1q_s32( input_QS, vdupq_n_s32( 0 ) ); + input_QS += 4; + vst1q_s32( input_QS, vdupq_n_s32( 0 ) ); + input_QS += 4; + vst1q_s32( input_QS, vdupq_n_s32( 0 ) ); + input_QS += 4; + vst1q_s32( input_QS, vdupq_n_s32( 0 ) ); + input_QS += 4; + vst1q_s32( input_QS, vdupq_n_s32( 0 ) ); + input_QS += 4; + vst1q_s32( input_QS, vdupq_n_s32( 0 ) ); + input_QS += 4; + + /* Loop over samples */ + for( n = 0; n < length - 7; n += 8, input_QS += 8 ) { + const int16x8_t t0_s16x4 = vld1q_s16( input + n ); + vst1q_s32( input_QS + 0, vshll_n_s16( vget_low_s16( t0_s16x4 ), QS ) ); + vst1q_s32( input_QS + 4, vshll_n_s16( vget_high_s16( t0_s16x4 ), QS ) ); + } + for( ; n < length; n++, input_QS++ ) { + input_QS[ 0 ] = silk_LSHIFT32( (opus_int32)input[ n ], QS ); + } + vst1q_s32( input_QS, vdupq_n_s32( 0 ) ); + input_QS += 4; + vst1q_s32( input_QS, vdupq_n_s32( 0 ) ); + input_QS += 4; + vst1q_s32( input_QS, vdupq_n_s32( 0 ) ); + input_QS += 4; + vst1q_s32( input_QS, vdupq_n_s32( 0 ) ); + input_QS += 4; + vst1q_s32( input_QS, vdupq_n_s32( 0 ) ); + input_QS += 4; + vst1q_s32( input_QS, vdupq_n_s32( 0 ) ); + input_QS = input_QST + MAX_SHAPE_LPC_ORDER - orderT; + + /* The following loop runs ( length + order ) times, with ( order ) extra epilogues. */ + /* The zero paddings in input_QS guarantee corr_QC's correctness even with the extra epilogues. */ + /* The values of state_QS will be polluted by the extra epilogues, however they are temporary values. */ + + /* Keep the C code here to help understand the intrinsics optimization. */ + /* + { + opus_int32 state_QS[ 2 ][ MAX_SHAPE_LPC_ORDER + 1 ] = { 0 }; + opus_int32 *state_QST[ 3 ]; + state_QST[ 0 ] = state_QS[ 0 ]; + state_QST[ 1 ] = state_QS[ 1 ]; + for( n = 0; n < length + order; n++, input_QS++ ) { + state_QST[ 0 ][ orderT ] = input_QS[ orderT ]; + for( i = 0; i < orderT; i++ ) { + corr_QC[ i ] += silk_RSHIFT64( silk_SMULL( state_QST[ 0 ][ i ], input_QS[ i ] ), 2 * QS - QC ); + state_QST[ 1 ][ i ] = silk_SMLAWB( state_QST[ 1 ][ i + 1 ], state_QST[ 0 ][ i ] - state_QST[ 0 ][ i + 1 ], warping_Q16 ); + } + state_QST[ 2 ] = state_QST[ 0 ]; + state_QST[ 0 ] = state_QST[ 1 ]; + state_QST[ 1 ] = state_QST[ 2 ]; + } + } + */ + + { + const int32x4_t warping_Q16_s32x4 = vdupq_n_s32( warping_Q16 << 15 ); + const opus_int32 *in = input_QS + orderT; + opus_int o = orderT; + int32x4_t state_QS_s32x4[ 3 ][ 2 ]; + + ALLOC( state, length + orderT, opus_int32 ); + state_QS_s32x4[ 2 ][ 1 ] = vdupq_n_s32( 0 ); + + /* Calculate 8 taps of all inputs in each loop. */ + do { + state_QS_s32x4[ 0 ][ 0 ] = state_QS_s32x4[ 0 ][ 1 ] = + state_QS_s32x4[ 1 ][ 0 ] = state_QS_s32x4[ 1 ][ 1 ] = vdupq_n_s32( 0 ); + n = 0; + do { + calc_corr( input_QS + n, corr_QC, o - 8, state_QS_s32x4[ 0 ][ 0 ] ); + calc_corr( input_QS + n, corr_QC, o - 4, state_QS_s32x4[ 0 ][ 1 ] ); + state_QS_s32x4[ 2 ][ 1 ] = vld1q_s32( in + n ); + vst1q_lane_s32( state + n, state_QS_s32x4[ 0 ][ 0 ], 0 ); + state_QS_s32x4[ 2 ][ 0 ] = vextq_s32( state_QS_s32x4[ 0 ][ 0 ], state_QS_s32x4[ 0 ][ 1 ], 1 ); + state_QS_s32x4[ 2 ][ 1 ] = vextq_s32( state_QS_s32x4[ 0 ][ 1 ], state_QS_s32x4[ 2 ][ 1 ], 1 ); + state_QS_s32x4[ 0 ][ 0 ] = calc_state( state_QS_s32x4[ 0 ][ 0 ], state_QS_s32x4[ 2 ][ 0 ], state_QS_s32x4[ 1 ][ 0 ], warping_Q16_s32x4 ); + state_QS_s32x4[ 0 ][ 1 ] = calc_state( state_QS_s32x4[ 0 ][ 1 ], state_QS_s32x4[ 2 ][ 1 ], state_QS_s32x4[ 1 ][ 1 ], warping_Q16_s32x4 ); + state_QS_s32x4[ 1 ][ 0 ] = state_QS_s32x4[ 2 ][ 0 ]; + state_QS_s32x4[ 1 ][ 1 ] = state_QS_s32x4[ 2 ][ 1 ]; + } while( ++n < ( length + order ) ); + in = state; + o -= 8; + } while( o > 4 ); + + if( o ) { + /* Calculate the last 4 taps of all inputs. */ + opus_int32 *stateT = state; + silk_assert( o == 4 ); + state_QS_s32x4[ 0 ][ 0 ] = state_QS_s32x4[ 1 ][ 0 ] = vdupq_n_s32( 0 ); + n = length + order; + do { + calc_corr( input_QS, corr_QC, 0, state_QS_s32x4[ 0 ][ 0 ] ); + state_QS_s32x4[ 2 ][ 0 ] = vld1q_s32( stateT ); + vst1q_lane_s32( stateT, state_QS_s32x4[ 0 ][ 0 ], 0 ); + state_QS_s32x4[ 2 ][ 0 ] = vextq_s32( state_QS_s32x4[ 0 ][ 0 ], state_QS_s32x4[ 2 ][ 0 ], 1 ); + state_QS_s32x4[ 0 ][ 0 ] = calc_state( state_QS_s32x4[ 0 ][ 0 ], state_QS_s32x4[ 2 ][ 0 ], state_QS_s32x4[ 1 ][ 0 ], warping_Q16_s32x4 ); + state_QS_s32x4[ 1 ][ 0 ] = state_QS_s32x4[ 2 ][ 0 ]; + input_QS++; + stateT++; + } while( --n ); + } + } + + { + const opus_int16 *inputT = input; + int32x4_t t_s32x4; + int64x1_t t_s64x1; + int64x2_t t_s64x2 = vdupq_n_s64( 0 ); + for( n = 0; n <= length - 8; n += 8 ) { + int16x8_t input_s16x8 = vld1q_s16( inputT ); + t_s32x4 = vmull_s16( vget_low_s16( input_s16x8 ), vget_low_s16( input_s16x8 ) ); + t_s32x4 = vmlal_s16( t_s32x4, vget_high_s16( input_s16x8 ), vget_high_s16( input_s16x8 ) ); + t_s64x2 = vaddw_s32( t_s64x2, vget_low_s32( t_s32x4 ) ); + t_s64x2 = vaddw_s32( t_s64x2, vget_high_s32( t_s32x4 ) ); + inputT += 8; + } + t_s64x1 = vadd_s64( vget_low_s64( t_s64x2 ), vget_high_s64( t_s64x2 ) ); + corr_QC_orderT = vget_lane_s64( t_s64x1, 0 ); + for( ; n < length; n++ ) { + corr_QC_orderT += silk_SMULL( input[ n ], input[ n ] ); + } + corr_QC_orderT = silk_LSHIFT64( corr_QC_orderT, QC ); + corr_QC[ orderT ] = corr_QC_orderT; + } + + corr_QCT = corr_QC + orderT - order; + lsh = silk_CLZ64( corr_QC_orderT ) - 35; + lsh = silk_LIMIT( lsh, -12 - QC, 30 - QC ); + *scale = -( QC + lsh ); + silk_assert( *scale >= -30 && *scale <= 12 ); + lsh_s64x2 = vdupq_n_s64( lsh ); + for( i = 0; i <= order - 3; i += 4 ) { + int32x4_t corr_s32x4; + int64x2_t corr_QC0_s64x2, corr_QC1_s64x2; + corr_QC0_s64x2 = vld1q_s64( corr_QCT + i ); + corr_QC1_s64x2 = vld1q_s64( corr_QCT + i + 2 ); + corr_QC0_s64x2 = vshlq_s64( corr_QC0_s64x2, lsh_s64x2 ); + corr_QC1_s64x2 = vshlq_s64( corr_QC1_s64x2, lsh_s64x2 ); + corr_s32x4 = vcombine_s32( vmovn_s64( corr_QC1_s64x2 ), vmovn_s64( corr_QC0_s64x2 ) ); + corr_s32x4 = vrev64q_s32( corr_s32x4 ); + vst1q_s32( corr + order - i - 3, corr_s32x4 ); + } + if( lsh >= 0 ) { + for( ; i < order + 1; i++ ) { + corr[ order - i ] = (opus_int32)silk_CHECK_FIT32( silk_LSHIFT64( corr_QCT[ i ], lsh ) ); + } + } else { + for( ; i < order + 1; i++ ) { + corr[ order - i ] = (opus_int32)silk_CHECK_FIT32( silk_RSHIFT64( corr_QCT[ i ], -lsh ) ); + } + } + silk_assert( corr_QCT[ order ] >= 0 ); /* If breaking, decrease QC*/ + RESTORE_STACK; + } + +#ifdef OPUS_CHECK_ASM + { + opus_int32 corr_c[ MAX_SHAPE_LPC_ORDER + 1 ]; + opus_int scale_c; + silk_warped_autocorrelation_FIX_c( corr_c, &scale_c, input, warping_Q16, length, order ); + silk_assert( !memcmp( corr_c, corr, sizeof( corr_c[ 0 ] ) * ( order + 1 ) ) ); + silk_assert( scale_c == *scale ); + } +#endif +} diff --git a/TMessagesProj/jni/opus/silk/fixed/burg_modified_FIX.c b/TMessagesProj/jni/opus/silk/fixed/burg_modified_FIX.c index 80edbdfa8..274d4b28e 100644 --- a/TMessagesProj/jni/opus/silk/fixed/burg_modified_FIX.c +++ b/TMessagesProj/jni/opus/silk/fixed/burg_modified_FIX.c @@ -65,7 +65,7 @@ void silk_burg_modified_c( opus_int32 xcorr[ SILK_MAX_ORDER_LPC ]; opus_int64 C0_64; - silk_assert( subfr_length * nb_subfr <= MAX_FRAME_SIZE ); + celt_assert( subfr_length * nb_subfr <= MAX_FRAME_SIZE ); /* Compute autocorrelations, added over subframes */ C0_64 = silk_inner_prod16_aligned_64( x, x, subfr_length*nb_subfr, arch ); diff --git a/TMessagesProj/jni/opus/silk/fixed/encode_frame_FIX.c b/TMessagesProj/jni/opus/silk/fixed/encode_frame_FIX.c index 4f9e08610..a02bf87db 100644 --- a/TMessagesProj/jni/opus/silk/fixed/encode_frame_FIX.c +++ b/TMessagesProj/jni/opus/silk/fixed/encode_frame_FIX.c @@ -43,21 +43,28 @@ static OPUS_INLINE void silk_LBRR_encode_FIX( ); void silk_encode_do_VAD_FIX( - silk_encoder_state_FIX *psEnc /* I/O Pointer to Silk FIX encoder state */ + silk_encoder_state_FIX *psEnc, /* I/O Pointer to Silk FIX encoder state */ + opus_int activity /* I Decision of Opus voice activity detector */ ) { + const opus_int activity_threshold = SILK_FIX_CONST( SPEECH_ACTIVITY_DTX_THRES, 8 ); + /****************************/ /* Voice Activity Detection */ /****************************/ silk_VAD_GetSA_Q8( &psEnc->sCmn, psEnc->sCmn.inputBuf + 1, psEnc->sCmn.arch ); + /* If Opus VAD is inactive and Silk VAD is active: lower Silk VAD to just under the threshold */ + if( activity == VAD_NO_ACTIVITY && psEnc->sCmn.speech_activity_Q8 >= activity_threshold ) { + psEnc->sCmn.speech_activity_Q8 = activity_threshold - 1; + } /**************************************************/ /* Convert speech activity into VAD and DTX flags */ /**************************************************/ - if( psEnc->sCmn.speech_activity_Q8 < SILK_FIX_CONST( SPEECH_ACTIVITY_DTX_THRES, 8 ) ) { + if( psEnc->sCmn.speech_activity_Q8 < activity_threshold ) { psEnc->sCmn.indices.signalType = TYPE_NO_VOICE_ACTIVITY; psEnc->sCmn.noSpeechCounter++; - if( psEnc->sCmn.noSpeechCounter < NB_SPEECH_FRAMES_BEFORE_DTX ) { + if( psEnc->sCmn.noSpeechCounter <= NB_SPEECH_FRAMES_BEFORE_DTX ) { psEnc->sCmn.inDTX = 0; } else if( psEnc->sCmn.noSpeechCounter > MAX_CONSECUTIVE_DTX + NB_SPEECH_FRAMES_BEFORE_DTX ) { psEnc->sCmn.noSpeechCounter = NB_SPEECH_FRAMES_BEFORE_DTX; @@ -255,7 +262,7 @@ opus_int silk_encode_frame_FIX( if( found_lower && ( gainsID == gainsID_lower || nBits > maxBits ) ) { /* Restore output state from earlier iteration that did meet the bitrate budget */ silk_memcpy( psRangeEnc, &sRangeEnc_copy2, sizeof( ec_enc ) ); - silk_assert( sRangeEnc_copy2.offs <= 1275 ); + celt_assert( sRangeEnc_copy2.offs <= 1275 ); silk_memcpy( psRangeEnc->buf, ec_buf_copy, sRangeEnc_copy2.offs ); silk_memcpy( &psEnc->sCmn.sNSQ, &sNSQ_copy2, sizeof( silk_nsq_state ) ); psEnc->sShape.LastGainIndex = LastGainIndex_copy2; @@ -283,7 +290,7 @@ opus_int silk_encode_frame_FIX( gainsID_lower = gainsID; /* Copy part of the output state */ silk_memcpy( &sRangeEnc_copy2, psRangeEnc, sizeof( ec_enc ) ); - silk_assert( psRangeEnc->offs <= 1275 ); + celt_assert( psRangeEnc->offs <= 1275 ); silk_memcpy( ec_buf_copy, psRangeEnc->buf, psRangeEnc->offs ); silk_memcpy( &sNSQ_copy2, &psEnc->sCmn.sNSQ, sizeof( silk_nsq_state ) ); LastGainIndex_copy2 = psEnc->sShape.LastGainIndex; diff --git a/TMessagesProj/jni/opus/silk/fixed/find_LPC_FIX.c b/TMessagesProj/jni/opus/silk/fixed/find_LPC_FIX.c index e11cdc86e..c762a0f2a 100644 --- a/TMessagesProj/jni/opus/silk/fixed/find_LPC_FIX.c +++ b/TMessagesProj/jni/opus/silk/fixed/find_LPC_FIX.c @@ -92,7 +92,7 @@ void silk_find_LPC_FIX( silk_interpolate( NLSF0_Q15, psEncC->prev_NLSFq_Q15, NLSF_Q15, k, psEncC->predictLPCOrder ); /* Convert to LPC for residual energy evaluation */ - silk_NLSF2A( a_tmp_Q12, NLSF0_Q15, psEncC->predictLPCOrder ); + silk_NLSF2A( a_tmp_Q12, NLSF0_Q15, psEncC->predictLPCOrder, psEncC->arch ); /* Calculate residual energy with NLSF interpolation */ silk_LPC_analysis_filter( LPC_res, x, a_tmp_Q12, 2 * subfr_length, psEncC->predictLPCOrder, psEncC->arch ); @@ -146,6 +146,6 @@ void silk_find_LPC_FIX( silk_A2NLSF( NLSF_Q15, a_Q16, psEncC->predictLPCOrder ); } - silk_assert( psEncC->indices.NLSFInterpCoef_Q2 == 4 || ( psEncC->useInterpolatedNLSFs && !psEncC->first_frame_after_reset && psEncC->nb_subfr == MAX_NB_SUBFR ) ); + celt_assert( psEncC->indices.NLSFInterpCoef_Q2 == 4 || ( psEncC->useInterpolatedNLSFs && !psEncC->first_frame_after_reset && psEncC->nb_subfr == MAX_NB_SUBFR ) ); RESTORE_STACK; } diff --git a/TMessagesProj/jni/opus/silk/fixed/find_pitch_lags_FIX.c b/TMessagesProj/jni/opus/silk/fixed/find_pitch_lags_FIX.c index 9303e9db1..6c3379f2b 100644 --- a/TMessagesProj/jni/opus/silk/fixed/find_pitch_lags_FIX.c +++ b/TMessagesProj/jni/opus/silk/fixed/find_pitch_lags_FIX.c @@ -59,7 +59,7 @@ void silk_find_pitch_lags_FIX( buf_len = psEnc->sCmn.la_pitch + psEnc->sCmn.frame_length + psEnc->sCmn.ltp_mem_length; /* Safety check */ - silk_assert( buf_len >= psEnc->sCmn.pitch_LPC_win_length ); + celt_assert( buf_len >= psEnc->sCmn.pitch_LPC_win_length ); /*************************************/ /* Estimate LPC AR coefficients */ diff --git a/TMessagesProj/jni/opus/silk/fixed/find_pred_coefs_FIX.c b/TMessagesProj/jni/opus/silk/fixed/find_pred_coefs_FIX.c index 24c6aab3a..606d86334 100644 --- a/TMessagesProj/jni/opus/silk/fixed/find_pred_coefs_FIX.c +++ b/TMessagesProj/jni/opus/silk/fixed/find_pred_coefs_FIX.c @@ -80,7 +80,7 @@ void silk_find_pred_coefs_FIX( /**********/ /* VOICED */ /**********/ - silk_assert( psEnc->sCmn.ltp_mem_length - psEnc->sCmn.predictLPCOrder >= psEncCtrl->pitchL[ 0 ] + LTP_ORDER / 2 ); + celt_assert( psEnc->sCmn.ltp_mem_length - psEnc->sCmn.predictLPCOrder >= psEncCtrl->pitchL[ 0 ] + LTP_ORDER / 2 ); ALLOC( xXLTP_Q17, psEnc->sCmn.nb_subfr * LTP_ORDER, opus_int32 ); ALLOC( XXLTP_Q17, psEnc->sCmn.nb_subfr * LTP_ORDER * LTP_ORDER, opus_int32 ); diff --git a/TMessagesProj/jni/opus/silk/fixed/main_FIX.h b/TMessagesProj/jni/opus/silk/fixed/main_FIX.h index ddbf37723..6d2112e51 100644 --- a/TMessagesProj/jni/opus/silk/fixed/main_FIX.h +++ b/TMessagesProj/jni/opus/silk/fixed/main_FIX.h @@ -36,6 +36,11 @@ POSSIBILITY OF SUCH DAMAGE. #include "debug.h" #include "entenc.h" +#if ((defined(OPUS_ARM_ASM) && defined(FIXED_POINT)) \ + || defined(OPUS_ARM_MAY_HAVE_NEON_INTR)) +#include "fixed/arm/warped_autocorrelation_FIX_arm.h" +#endif + #ifndef FORCE_CPP_BUILD #ifdef __cplusplus extern "C" @@ -47,6 +52,9 @@ extern "C" #define silk_encode_do_VAD_Fxx silk_encode_do_VAD_FIX #define silk_encode_frame_Fxx silk_encode_frame_FIX +#define QC 10 +#define QS 13 + /*********************/ /* Encoder Functions */ /*********************/ @@ -58,7 +66,8 @@ void silk_HP_variable_cutoff( /* Encoder main function */ void silk_encode_do_VAD_FIX( - silk_encoder_state_FIX *psEnc /* I/O Pointer to Silk FIX encoder state */ + silk_encoder_state_FIX *psEnc, /* I/O Pointer to Silk FIX encoder state */ + opus_int activity /* I Decision of Opus voice activity detector */ ); /* Encoder main function */ @@ -99,7 +108,7 @@ void silk_noise_shape_analysis_FIX( ); /* Autocorrelations for a warped frequency axis */ -void silk_warped_autocorrelation_FIX( +void silk_warped_autocorrelation_FIX_c( opus_int32 *corr, /* O Result [order + 1] */ opus_int *scale, /* O Scaling of the correlation vector */ const opus_int16 *input, /* I Input data to correlate */ @@ -108,6 +117,11 @@ void silk_warped_autocorrelation_FIX( const opus_int order /* I Correlation order (even) */ ); +#if !defined(OVERRIDE_silk_warped_autocorrelation_FIX) +#define silk_warped_autocorrelation_FIX(corr, scale, input, warping_Q16, length, order, arch) \ + ((void)(arch), silk_warped_autocorrelation_FIX_c(corr, scale, input, warping_Q16, length, order)) +#endif + /* Calculation of LTP state scaling */ void silk_LTP_scale_ctrl_FIX( silk_encoder_state_FIX *psEnc, /* I/O encoder state */ diff --git a/TMessagesProj/jni/opus/silk/fixed/noise_shape_analysis_FIX.c b/TMessagesProj/jni/opus/silk/fixed/noise_shape_analysis_FIX.c index 8fe23777f..85fea0bf0 100644 --- a/TMessagesProj/jni/opus/silk/fixed/noise_shape_analysis_FIX.c +++ b/TMessagesProj/jni/opus/silk/fixed/noise_shape_analysis_FIX.c @@ -262,7 +262,7 @@ void silk_noise_shape_analysis_FIX( if( psEnc->sCmn.warping_Q16 > 0 ) { /* Calculate warped auto correlation */ - silk_warped_autocorrelation_FIX( auto_corr, &scale, x_windowed, warping_Q16, psEnc->sCmn.shapeWinLength, psEnc->sCmn.shapingLPCOrder ); + silk_warped_autocorrelation_FIX( auto_corr, &scale, x_windowed, warping_Q16, psEnc->sCmn.shapeWinLength, psEnc->sCmn.shapingLPCOrder, arch ); } else { /* Calculate regular auto correlation */ silk_autocorr( auto_corr, &scale, x_windowed, psEnc->sCmn.shapeWinLength, psEnc->sCmn.shapingLPCOrder + 1, arch ); diff --git a/TMessagesProj/jni/opus/silk/fixed/pitch_analysis_core_FIX.c b/TMessagesProj/jni/opus/silk/fixed/pitch_analysis_core_FIX.c index 8df109e6c..14729046d 100644 --- a/TMessagesProj/jni/opus/silk/fixed/pitch_analysis_core_FIX.c +++ b/TMessagesProj/jni/opus/silk/fixed/pitch_analysis_core_FIX.c @@ -122,11 +122,11 @@ opus_int silk_pitch_analysis_core( /* O Voicing estimate: 0 SAVE_STACK; /* Check for valid sampling frequency */ - silk_assert( Fs_kHz == 8 || Fs_kHz == 12 || Fs_kHz == 16 ); + celt_assert( Fs_kHz == 8 || Fs_kHz == 12 || Fs_kHz == 16 ); /* Check for valid complexity setting */ - silk_assert( complexity >= SILK_PE_MIN_COMPLEX ); - silk_assert( complexity <= SILK_PE_MAX_COMPLEX ); + celt_assert( complexity >= SILK_PE_MIN_COMPLEX ); + celt_assert( complexity <= SILK_PE_MAX_COMPLEX ); silk_assert( search_thres1_Q16 >= 0 && search_thres1_Q16 <= (1<<16) ); silk_assert( search_thres2_Q13 >= 0 && search_thres2_Q13 <= (1<<13) ); @@ -164,7 +164,7 @@ opus_int silk_pitch_analysis_core( /* O Voicing estimate: 0 silk_resampler_down2_3( filt_state, frame_8kHz_buf, frame, frame_length ); frame_8kHz = frame_8kHz_buf; } else { - silk_assert( Fs_kHz == 8 ); + celt_assert( Fs_kHz == 8 ); frame_8kHz = frame; } @@ -188,14 +188,14 @@ opus_int silk_pitch_analysis_core( /* O Voicing estimate: 0 target_ptr = &frame_4kHz[ silk_LSHIFT( SF_LENGTH_4KHZ, 2 ) ]; for( k = 0; k < nb_subfr >> 1; k++ ) { /* Check that we are within range of the array */ - silk_assert( target_ptr >= frame_4kHz ); - silk_assert( target_ptr + SF_LENGTH_8KHZ <= frame_4kHz + frame_length_4kHz ); + celt_assert( target_ptr >= frame_4kHz ); + celt_assert( target_ptr + SF_LENGTH_8KHZ <= frame_4kHz + frame_length_4kHz ); basis_ptr = target_ptr - MIN_LAG_4KHZ; /* Check that we are within range of the array */ - silk_assert( basis_ptr >= frame_4kHz ); - silk_assert( basis_ptr + SF_LENGTH_8KHZ <= frame_4kHz + frame_length_4kHz ); + celt_assert( basis_ptr >= frame_4kHz ); + celt_assert( basis_ptr + SF_LENGTH_8KHZ <= frame_4kHz + frame_length_4kHz ); celt_pitch_xcorr( target_ptr, target_ptr - MAX_LAG_4KHZ, xcorr32, SF_LENGTH_8KHZ, MAX_LAG_4KHZ - MIN_LAG_4KHZ + 1, arch ); @@ -249,7 +249,7 @@ opus_int silk_pitch_analysis_core( /* O Voicing estimate: 0 /* Sort */ length_d_srch = silk_ADD_LSHIFT32( 4, complexity, 1 ); - silk_assert( 3 * length_d_srch <= PE_D_SRCH_LENGTH ); + celt_assert( 3 * length_d_srch <= PE_D_SRCH_LENGTH ); silk_insertion_sort_decreasing_int16( C, d_srch, CSTRIDE_4KHZ, length_d_srch ); @@ -274,7 +274,7 @@ opus_int silk_pitch_analysis_core( /* O Voicing estimate: 0 break; } } - silk_assert( length_d_srch > 0 ); + celt_assert( length_d_srch > 0 ); ALLOC( d_comp, D_COMP_STRIDE, opus_int16 ); for( i = D_COMP_MIN; i < D_COMP_MAX; i++ ) { @@ -325,8 +325,8 @@ opus_int silk_pitch_analysis_core( /* O Voicing estimate: 0 for( k = 0; k < nb_subfr; k++ ) { /* Check that we are within range of the array */ - silk_assert( target_ptr >= frame_8kHz ); - silk_assert( target_ptr + SF_LENGTH_8KHZ <= frame_8kHz + frame_length_8kHz ); + celt_assert( target_ptr >= frame_8kHz ); + celt_assert( target_ptr + SF_LENGTH_8KHZ <= frame_8kHz + frame_length_8kHz ); energy_target = silk_ADD32( silk_inner_prod_aligned( target_ptr, target_ptr, SF_LENGTH_8KHZ, arch ), 1 ); for( j = 0; j < length_d_comp; j++ ) { @@ -550,7 +550,7 @@ opus_int silk_pitch_analysis_core( /* O Voicing estimate: 0 *lagIndex = (opus_int16)( lag - MIN_LAG_8KHZ ); *contourIndex = (opus_int8)CBimax; } - silk_assert( *lagIndex >= 0 ); + celt_assert( *lagIndex >= 0 ); /* return as voiced */ RESTORE_STACK; return 0; @@ -587,8 +587,8 @@ static void silk_P_Ana_calc_corr_st3( const opus_int8 *Lag_range_ptr, *Lag_CB_ptr; SAVE_STACK; - silk_assert( complexity >= SILK_PE_MIN_COMPLEX ); - silk_assert( complexity <= SILK_PE_MAX_COMPLEX ); + celt_assert( complexity >= SILK_PE_MIN_COMPLEX ); + celt_assert( complexity <= SILK_PE_MAX_COMPLEX ); if( nb_subfr == PE_MAX_NB_SUBFR ) { Lag_range_ptr = &silk_Lag_range_stage3[ complexity ][ 0 ][ 0 ]; @@ -596,7 +596,7 @@ static void silk_P_Ana_calc_corr_st3( nb_cbk_search = silk_nb_cbk_searchs_stage3[ complexity ]; cbk_size = PE_NB_CBKS_STAGE3_MAX; } else { - silk_assert( nb_subfr == PE_MAX_NB_SUBFR >> 1); + celt_assert( nb_subfr == PE_MAX_NB_SUBFR >> 1); Lag_range_ptr = &silk_Lag_range_stage3_10_ms[ 0 ][ 0 ]; Lag_CB_ptr = &silk_CB_lags_stage3_10_ms[ 0 ][ 0 ]; nb_cbk_search = PE_NB_CBKS_STAGE3_10MS; @@ -612,7 +612,7 @@ static void silk_P_Ana_calc_corr_st3( /* Calculate the correlations for each subframe */ lag_low = matrix_ptr( Lag_range_ptr, k, 0, 2 ); lag_high = matrix_ptr( Lag_range_ptr, k, 1, 2 ); - silk_assert(lag_high-lag_low+1 <= SCRATCH_SIZE); + celt_assert(lag_high-lag_low+1 <= SCRATCH_SIZE); celt_pitch_xcorr( target_ptr, target_ptr - start_lag - lag_high, xcorr32, sf_length, lag_high - lag_low + 1, arch ); for( j = lag_low; j <= lag_high; j++ ) { silk_assert( lag_counter < SCRATCH_SIZE ); @@ -659,8 +659,8 @@ static void silk_P_Ana_calc_energy_st3( const opus_int8 *Lag_range_ptr, *Lag_CB_ptr; SAVE_STACK; - silk_assert( complexity >= SILK_PE_MIN_COMPLEX ); - silk_assert( complexity <= SILK_PE_MAX_COMPLEX ); + celt_assert( complexity >= SILK_PE_MIN_COMPLEX ); + celt_assert( complexity <= SILK_PE_MAX_COMPLEX ); if( nb_subfr == PE_MAX_NB_SUBFR ) { Lag_range_ptr = &silk_Lag_range_stage3[ complexity ][ 0 ][ 0 ]; @@ -668,7 +668,7 @@ static void silk_P_Ana_calc_energy_st3( nb_cbk_search = silk_nb_cbk_searchs_stage3[ complexity ]; cbk_size = PE_NB_CBKS_STAGE3_MAX; } else { - silk_assert( nb_subfr == PE_MAX_NB_SUBFR >> 1); + celt_assert( nb_subfr == PE_MAX_NB_SUBFR >> 1); Lag_range_ptr = &silk_Lag_range_stage3_10_ms[ 0 ][ 0 ]; Lag_CB_ptr = &silk_CB_lags_stage3_10_ms[ 0 ][ 0 ]; nb_cbk_search = PE_NB_CBKS_STAGE3_10MS; diff --git a/TMessagesProj/jni/opus/silk/fixed/residual_energy16_FIX.c b/TMessagesProj/jni/opus/silk/fixed/residual_energy16_FIX.c index ebffb2a66..7f130f3d3 100644 --- a/TMessagesProj/jni/opus/silk/fixed/residual_energy16_FIX.c +++ b/TMessagesProj/jni/opus/silk/fixed/residual_energy16_FIX.c @@ -47,10 +47,10 @@ opus_int32 silk_residual_energy16_covar_FIX( const opus_int32 *pRow; /* Safety checks */ - silk_assert( D >= 0 ); - silk_assert( D <= 16 ); - silk_assert( cQ > 0 ); - silk_assert( cQ < 16 ); + celt_assert( D >= 0 ); + celt_assert( D <= 16 ); + celt_assert( cQ > 0 ); + celt_assert( cQ < 16 ); lshifts = 16 - cQ; Qxtra = lshifts; diff --git a/TMessagesProj/jni/opus/silk/fixed/residual_energy_FIX.c b/TMessagesProj/jni/opus/silk/fixed/residual_energy_FIX.c index 41f74778e..6c7cade9a 100644 --- a/TMessagesProj/jni/opus/silk/fixed/residual_energy_FIX.c +++ b/TMessagesProj/jni/opus/silk/fixed/residual_energy_FIX.c @@ -58,7 +58,7 @@ void silk_residual_energy_FIX( /* Filter input to create the LPC residual for each frame half, and measure subframe energies */ ALLOC( LPC_res, ( MAX_NB_SUBFR >> 1 ) * offset, opus_int16 ); - silk_assert( ( nb_subfr >> 1 ) * ( MAX_NB_SUBFR >> 1 ) == nb_subfr ); + celt_assert( ( nb_subfr >> 1 ) * ( MAX_NB_SUBFR >> 1 ) == nb_subfr ); for( i = 0; i < nb_subfr >> 1; i++ ) { /* Calculate half frame LPC residual signal including preceding samples */ silk_LPC_analysis_filter( LPC_res, x_ptr, a_Q12[ i ], ( MAX_NB_SUBFR >> 1 ) * offset, LPC_order, arch ); diff --git a/TMessagesProj/jni/opus/silk/fixed/schur64_FIX.c b/TMessagesProj/jni/opus/silk/fixed/schur64_FIX.c index 4d3b0932a..4b7e19ea5 100644 --- a/TMessagesProj/jni/opus/silk/fixed/schur64_FIX.c +++ b/TMessagesProj/jni/opus/silk/fixed/schur64_FIX.c @@ -43,7 +43,7 @@ opus_int32 silk_schur64( /* O returns residual ene opus_int32 C[ SILK_MAX_ORDER_LPC + 1 ][ 2 ]; opus_int32 Ctmp1_Q30, Ctmp2_Q30, rc_tmp_Q31; - silk_assert( order <= SILK_MAX_ORDER_LPC ); + celt_assert( order >= 0 && order <= SILK_MAX_ORDER_LPC ); /* Check for invalid input */ if( c[ 0 ] <= 0 ) { @@ -51,9 +51,10 @@ opus_int32 silk_schur64( /* O returns residual ene return 0; } - for( k = 0; k < order + 1; k++ ) { + k = 0; + do { C[ k ][ 0 ] = C[ k ][ 1 ] = c[ k ]; - } + } while( ++k <= order ); for( k = 0; k < order; k++ ) { /* Check that we won't be getting an unstable rc, otherwise stop here. */ diff --git a/TMessagesProj/jni/opus/silk/fixed/schur_FIX.c b/TMessagesProj/jni/opus/silk/fixed/schur_FIX.c index 9fe7f4198..2840f6b1a 100644 --- a/TMessagesProj/jni/opus/silk/fixed/schur_FIX.c +++ b/TMessagesProj/jni/opus/silk/fixed/schur_FIX.c @@ -43,28 +43,29 @@ opus_int32 silk_schur( /* O Returns residual ene opus_int32 C[ SILK_MAX_ORDER_LPC + 1 ][ 2 ]; opus_int32 Ctmp1, Ctmp2, rc_tmp_Q15; - silk_assert( order <= SILK_MAX_ORDER_LPC ); + celt_assert( order >= 0 && order <= SILK_MAX_ORDER_LPC ); /* Get number of leading zeros */ lz = silk_CLZ32( c[ 0 ] ); /* Copy correlations and adjust level to Q30 */ + k = 0; if( lz < 2 ) { /* lz must be 1, so shift one to the right */ - for( k = 0; k < order + 1; k++ ) { + do { C[ k ][ 0 ] = C[ k ][ 1 ] = silk_RSHIFT( c[ k ], 1 ); - } + } while( ++k <= order ); } else if( lz > 2 ) { /* Shift to the left */ lz -= 2; - for( k = 0; k < order + 1; k++ ) { + do { C[ k ][ 0 ] = C[ k ][ 1 ] = silk_LSHIFT( c[ k ], lz ); - } + } while( ++k <= order ); } else { /* No need to shift */ - for( k = 0; k < order + 1; k++ ) { + do { C[ k ][ 0 ] = C[ k ][ 1 ] = c[ k ]; - } + } while( ++k <= order ); } for( k = 0; k < order; k++ ) { diff --git a/TMessagesProj/jni/opus/silk/fixed/warped_autocorrelation_FIX.c b/TMessagesProj/jni/opus/silk/fixed/warped_autocorrelation_FIX.c index af1640297..52002a111 100644 --- a/TMessagesProj/jni/opus/silk/fixed/warped_autocorrelation_FIX.c +++ b/TMessagesProj/jni/opus/silk/fixed/warped_autocorrelation_FIX.c @@ -31,17 +31,13 @@ POSSIBILITY OF SUCH DAMAGE. #include "main_FIX.h" -#define QC 10 -#define QS 13 - #if defined(MIPSr1_ASM) #include "mips/warped_autocorrelation_FIX_mipsr1.h" #endif -#ifndef OVERRIDE_silk_warped_autocorrelation_FIX /* Autocorrelations for a warped frequency axis */ -void silk_warped_autocorrelation_FIX( +void silk_warped_autocorrelation_FIX_c( opus_int32 *corr, /* O Result [order + 1] */ opus_int *scale, /* O Scaling of the correlation vector */ const opus_int16 *input, /* I Input data to correlate */ @@ -56,7 +52,7 @@ void silk_warped_autocorrelation_FIX( opus_int64 corr_QC[ MAX_SHAPE_LPC_ORDER + 1 ] = { 0 }; /* Order must be even */ - silk_assert( ( order & 1 ) == 0 ); + celt_assert( ( order & 1 ) == 0 ); silk_assert( 2 * QS - QC >= 0 ); /* Loop over samples */ @@ -92,4 +88,3 @@ void silk_warped_autocorrelation_FIX( } silk_assert( corr_QC[ 0 ] >= 0 ); /* If breaking, decrease QC*/ } -#endif /* OVERRIDE_silk_warped_autocorrelation_FIX */ diff --git a/TMessagesProj/jni/opus/silk/fixed/x86/burg_modified_FIX_sse.c b/TMessagesProj/jni/opus/silk/fixed/x86/burg_modified_FIX_sse4_1.c similarity index 99% rename from TMessagesProj/jni/opus/silk/fixed/x86/burg_modified_FIX_sse.c rename to TMessagesProj/jni/opus/silk/fixed/x86/burg_modified_FIX_sse4_1.c index 3c3583c5f..bbb1ce0fc 100644 --- a/TMessagesProj/jni/opus/silk/fixed/x86/burg_modified_FIX_sse.c +++ b/TMessagesProj/jni/opus/silk/fixed/x86/burg_modified_FIX_sse4_1.c @@ -72,7 +72,7 @@ void silk_burg_modified_sse4_1( __m128i FIRST_3210, LAST_3210, ATMP_3210, TMP1_3210, TMP2_3210, T1_3210, T2_3210, PTR_3210, SUBFR_3210, X1_3210, X2_3210; __m128i CONST1 = _mm_set1_epi32(1); - silk_assert( subfr_length * nb_subfr <= MAX_FRAME_SIZE ); + celt_assert( subfr_length * nb_subfr <= MAX_FRAME_SIZE ); /* Compute autocorrelations, added over subframes */ silk_sum_sqr_shift( &C0, &rshifts, x, nb_subfr * subfr_length ); diff --git a/TMessagesProj/jni/opus/silk/fixed/x86/vector_ops_FIX_sse.c b/TMessagesProj/jni/opus/silk/fixed/x86/vector_ops_FIX_sse4_1.c similarity index 100% rename from TMessagesProj/jni/opus/silk/fixed/x86/vector_ops_FIX_sse.c rename to TMessagesProj/jni/opus/silk/fixed/x86/vector_ops_FIX_sse4_1.c diff --git a/TMessagesProj/jni/opus/silk/float/LPC_analysis_filter_FLP.c b/TMessagesProj/jni/opus/silk/float/LPC_analysis_filter_FLP.c index cae89a0a1..0e1a1fed0 100644 --- a/TMessagesProj/jni/opus/silk/float/LPC_analysis_filter_FLP.c +++ b/TMessagesProj/jni/opus/silk/float/LPC_analysis_filter_FLP.c @@ -215,7 +215,7 @@ void silk_LPC_analysis_filter_FLP( const opus_int Order /* I LPC order */ ) { - silk_assert( Order <= length ); + celt_assert( Order <= length ); switch( Order ) { case 6: @@ -239,7 +239,7 @@ void silk_LPC_analysis_filter_FLP( break; default: - silk_assert( 0 ); + celt_assert( 0 ); break; } diff --git a/TMessagesProj/jni/opus/silk/float/apply_sine_window_FLP.c b/TMessagesProj/jni/opus/silk/float/apply_sine_window_FLP.c index 6aae57c0a..e49e71799 100644 --- a/TMessagesProj/jni/opus/silk/float/apply_sine_window_FLP.c +++ b/TMessagesProj/jni/opus/silk/float/apply_sine_window_FLP.c @@ -45,10 +45,10 @@ void silk_apply_sine_window_FLP( opus_int k; silk_float freq, c, S0, S1; - silk_assert( win_type == 1 || win_type == 2 ); + celt_assert( win_type == 1 || win_type == 2 ); /* Length must be multiple of 4 */ - silk_assert( ( length & 3 ) == 0 ); + celt_assert( ( length & 3 ) == 0 ); freq = PI / ( length + 1 ); diff --git a/TMessagesProj/jni/opus/silk/float/burg_modified_FLP.c b/TMessagesProj/jni/opus/silk/float/burg_modified_FLP.c index ea5dc25a9..756b76a35 100644 --- a/TMessagesProj/jni/opus/silk/float/burg_modified_FLP.c +++ b/TMessagesProj/jni/opus/silk/float/burg_modified_FLP.c @@ -52,7 +52,7 @@ silk_float silk_burg_modified_FLP( /* O returns residual energy double CAf[ SILK_MAX_ORDER_LPC + 1 ], CAb[ SILK_MAX_ORDER_LPC + 1 ]; double Af[ SILK_MAX_ORDER_LPC ]; - silk_assert( subfr_length * nb_subfr <= MAX_FRAME_SIZE ); + celt_assert( subfr_length * nb_subfr <= MAX_FRAME_SIZE ); /* Compute autocorrelations, added over subframes */ C0 = silk_energy_FLP( x, nb_subfr * subfr_length ); diff --git a/TMessagesProj/jni/opus/silk/float/encode_frame_FLP.c b/TMessagesProj/jni/opus/silk/float/encode_frame_FLP.c index c3ad50a9f..b029c3f5c 100644 --- a/TMessagesProj/jni/opus/silk/float/encode_frame_FLP.c +++ b/TMessagesProj/jni/opus/silk/float/encode_frame_FLP.c @@ -42,21 +42,28 @@ static OPUS_INLINE void silk_LBRR_encode_FLP( ); void silk_encode_do_VAD_FLP( - silk_encoder_state_FLP *psEnc /* I/O Encoder state FLP */ + silk_encoder_state_FLP *psEnc, /* I/O Encoder state FLP */ + opus_int activity /* I Decision of Opus voice activity detector */ ) { + const opus_int activity_threshold = SILK_FIX_CONST( SPEECH_ACTIVITY_DTX_THRES, 8 ); + /****************************/ /* Voice Activity Detection */ /****************************/ silk_VAD_GetSA_Q8( &psEnc->sCmn, psEnc->sCmn.inputBuf + 1, psEnc->sCmn.arch ); + /* If Opus VAD is inactive and Silk VAD is active: lower Silk VAD to just under the threshold */ + if( activity == VAD_NO_ACTIVITY && psEnc->sCmn.speech_activity_Q8 >= activity_threshold ) { + psEnc->sCmn.speech_activity_Q8 = activity_threshold - 1; + } /**************************************************/ /* Convert speech activity into VAD and DTX flags */ /**************************************************/ - if( psEnc->sCmn.speech_activity_Q8 < SILK_FIX_CONST( SPEECH_ACTIVITY_DTX_THRES, 8 ) ) { + if( psEnc->sCmn.speech_activity_Q8 < activity_threshold ) { psEnc->sCmn.indices.signalType = TYPE_NO_VOICE_ACTIVITY; psEnc->sCmn.noSpeechCounter++; - if( psEnc->sCmn.noSpeechCounter < NB_SPEECH_FRAMES_BEFORE_DTX ) { + if( psEnc->sCmn.noSpeechCounter <= NB_SPEECH_FRAMES_BEFORE_DTX ) { psEnc->sCmn.inDTX = 0; } else if( psEnc->sCmn.noSpeechCounter > MAX_CONSECUTIVE_DTX + NB_SPEECH_FRAMES_BEFORE_DTX ) { psEnc->sCmn.noSpeechCounter = NB_SPEECH_FRAMES_BEFORE_DTX; @@ -241,7 +248,7 @@ opus_int silk_encode_frame_FLP( if( found_lower && ( gainsID == gainsID_lower || nBits > maxBits ) ) { /* Restore output state from earlier iteration that did meet the bitrate budget */ silk_memcpy( psRangeEnc, &sRangeEnc_copy2, sizeof( ec_enc ) ); - silk_assert( sRangeEnc_copy2.offs <= 1275 ); + celt_assert( sRangeEnc_copy2.offs <= 1275 ); silk_memcpy( psRangeEnc->buf, ec_buf_copy, sRangeEnc_copy2.offs ); silk_memcpy( &psEnc->sCmn.sNSQ, &sNSQ_copy2, sizeof( silk_nsq_state ) ); psEnc->sShape.LastGainIndex = LastGainIndex_copy2; @@ -271,7 +278,7 @@ opus_int silk_encode_frame_FLP( gainsID_lower = gainsID; /* Copy part of the output state */ silk_memcpy( &sRangeEnc_copy2, psRangeEnc, sizeof( ec_enc ) ); - silk_assert( psRangeEnc->offs <= 1275 ); + celt_assert( psRangeEnc->offs <= 1275 ); silk_memcpy( ec_buf_copy, psRangeEnc->buf, psRangeEnc->offs ); silk_memcpy( &sNSQ_copy2, &psEnc->sCmn.sNSQ, sizeof( silk_nsq_state ) ); LastGainIndex_copy2 = psEnc->sShape.LastGainIndex; diff --git a/TMessagesProj/jni/opus/silk/float/find_LPC_FLP.c b/TMessagesProj/jni/opus/silk/float/find_LPC_FLP.c index fcfe1c368..fa3ffe7f8 100644 --- a/TMessagesProj/jni/opus/silk/float/find_LPC_FLP.c +++ b/TMessagesProj/jni/opus/silk/float/find_LPC_FLP.c @@ -73,7 +73,7 @@ void silk_find_LPC_FLP( silk_interpolate( NLSF0_Q15, psEncC->prev_NLSFq_Q15, NLSF_Q15, k, psEncC->predictLPCOrder ); /* Convert to LPC for residual energy evaluation */ - silk_NLSF2A_FLP( a_tmp, NLSF0_Q15, psEncC->predictLPCOrder ); + silk_NLSF2A_FLP( a_tmp, NLSF0_Q15, psEncC->predictLPCOrder, psEncC->arch ); /* Calculate residual energy with LSF interpolation */ silk_LPC_analysis_filter_FLP( LPC_res, a_tmp, x, 2 * subfr_length, psEncC->predictLPCOrder ); @@ -99,6 +99,6 @@ void silk_find_LPC_FLP( silk_A2NLSF_FLP( NLSF_Q15, a, psEncC->predictLPCOrder ); } - silk_assert( psEncC->indices.NLSFInterpCoef_Q2 == 4 || + celt_assert( psEncC->indices.NLSFInterpCoef_Q2 == 4 || ( psEncC->useInterpolatedNLSFs && !psEncC->first_frame_after_reset && psEncC->nb_subfr == MAX_NB_SUBFR ) ); } diff --git a/TMessagesProj/jni/opus/silk/float/find_pitch_lags_FLP.c b/TMessagesProj/jni/opus/silk/float/find_pitch_lags_FLP.c index f3b22d25c..dedbcd283 100644 --- a/TMessagesProj/jni/opus/silk/float/find_pitch_lags_FLP.c +++ b/TMessagesProj/jni/opus/silk/float/find_pitch_lags_FLP.c @@ -56,7 +56,7 @@ void silk_find_pitch_lags_FLP( buf_len = psEnc->sCmn.la_pitch + psEnc->sCmn.frame_length + psEnc->sCmn.ltp_mem_length; /* Safety check */ - silk_assert( buf_len >= psEnc->sCmn.pitch_LPC_win_length ); + celt_assert( buf_len >= psEnc->sCmn.pitch_LPC_win_length ); x_buf = x - psEnc->sCmn.ltp_mem_length; diff --git a/TMessagesProj/jni/opus/silk/float/find_pred_coefs_FLP.c b/TMessagesProj/jni/opus/silk/float/find_pred_coefs_FLP.c index cb2e763b1..dcf7c5202 100644 --- a/TMessagesProj/jni/opus/silk/float/find_pred_coefs_FLP.c +++ b/TMessagesProj/jni/opus/silk/float/find_pred_coefs_FLP.c @@ -59,7 +59,7 @@ void silk_find_pred_coefs_FLP( /**********/ /* VOICED */ /**********/ - silk_assert( psEnc->sCmn.ltp_mem_length - psEnc->sCmn.predictLPCOrder >= psEncCtrl->pitchL[ 0 ] + LTP_ORDER / 2 ); + celt_assert( psEnc->sCmn.ltp_mem_length - psEnc->sCmn.predictLPCOrder >= psEncCtrl->pitchL[ 0 ] + LTP_ORDER / 2 ); /* LTP analysis */ silk_find_LTP_FLP( XXLTP, xXLTP, res_pitch, psEncCtrl->pitchL, psEnc->sCmn.subfr_length, psEnc->sCmn.nb_subfr ); diff --git a/TMessagesProj/jni/opus/silk/float/main_FLP.h b/TMessagesProj/jni/opus/silk/float/main_FLP.h index 8d1d2a8a2..5dc0ccf4a 100644 --- a/TMessagesProj/jni/opus/silk/float/main_FLP.h +++ b/TMessagesProj/jni/opus/silk/float/main_FLP.h @@ -56,7 +56,8 @@ void silk_HP_variable_cutoff( /* Encoder main function */ void silk_encode_do_VAD_FLP( - silk_encoder_state_FLP *psEnc /* I/O Encoder state FLP */ + silk_encoder_state_FLP *psEnc, /* I/O Encoder state FLP */ + opus_int activity /* I Decision of Opus voice activity detector */ ); /* Encoder main function */ @@ -256,7 +257,8 @@ void silk_A2NLSF_FLP( void silk_NLSF2A_FLP( silk_float *pAR, /* O LPC coefficients [ LPC_order ] */ const opus_int16 *NLSF_Q15, /* I NLSF vector [ LPC_order ] */ - const opus_int LPC_order /* I LPC order */ + const opus_int LPC_order, /* I LPC order */ + int arch /* I Run-time architecture */ ); /* Limit, stabilize, and quantize NLSFs */ diff --git a/TMessagesProj/jni/opus/silk/float/pitch_analysis_core_FLP.c b/TMessagesProj/jni/opus/silk/float/pitch_analysis_core_FLP.c index b37169378..f351bc371 100644 --- a/TMessagesProj/jni/opus/silk/float/pitch_analysis_core_FLP.c +++ b/TMessagesProj/jni/opus/silk/float/pitch_analysis_core_FLP.c @@ -109,11 +109,11 @@ opus_int silk_pitch_analysis_core_FLP( /* O Voicing estimate: 0 voiced, const opus_int8 *Lag_CB_ptr; /* Check for valid sampling frequency */ - silk_assert( Fs_kHz == 8 || Fs_kHz == 12 || Fs_kHz == 16 ); + celt_assert( Fs_kHz == 8 || Fs_kHz == 12 || Fs_kHz == 16 ); /* Check for valid complexity setting */ - silk_assert( complexity >= SILK_PE_MIN_COMPLEX ); - silk_assert( complexity <= SILK_PE_MAX_COMPLEX ); + celt_assert( complexity >= SILK_PE_MIN_COMPLEX ); + celt_assert( complexity <= SILK_PE_MAX_COMPLEX ); silk_assert( search_thres1 >= 0.0f && search_thres1 <= 1.0f ); silk_assert( search_thres2 >= 0.0f && search_thres2 <= 1.0f ); @@ -148,7 +148,7 @@ opus_int silk_pitch_analysis_core_FLP( /* O Voicing estimate: 0 voiced, silk_resampler_down2_3( filt_state, frame_8_FIX, frame_12_FIX, frame_length ); silk_short2float_array( frame_8kHz, frame_8_FIX, frame_length_8kHz ); } else { - silk_assert( Fs_kHz == 8 ); + celt_assert( Fs_kHz == 8 ); silk_float2short_array( frame_8_FIX, frame, frame_length_8kHz ); } @@ -169,14 +169,14 @@ opus_int silk_pitch_analysis_core_FLP( /* O Voicing estimate: 0 voiced, target_ptr = &frame_4kHz[ silk_LSHIFT( sf_length_4kHz, 2 ) ]; for( k = 0; k < nb_subfr >> 1; k++ ) { /* Check that we are within range of the array */ - silk_assert( target_ptr >= frame_4kHz ); - silk_assert( target_ptr + sf_length_8kHz <= frame_4kHz + frame_length_4kHz ); + celt_assert( target_ptr >= frame_4kHz ); + celt_assert( target_ptr + sf_length_8kHz <= frame_4kHz + frame_length_4kHz ); basis_ptr = target_ptr - min_lag_4kHz; /* Check that we are within range of the array */ - silk_assert( basis_ptr >= frame_4kHz ); - silk_assert( basis_ptr + sf_length_8kHz <= frame_4kHz + frame_length_4kHz ); + celt_assert( basis_ptr >= frame_4kHz ); + celt_assert( basis_ptr + sf_length_8kHz <= frame_4kHz + frame_length_4kHz ); celt_pitch_xcorr( target_ptr, target_ptr-max_lag_4kHz, xcorr, sf_length_8kHz, max_lag_4kHz - min_lag_4kHz + 1, arch ); @@ -215,7 +215,7 @@ opus_int silk_pitch_analysis_core_FLP( /* O Voicing estimate: 0 voiced, /* Sort */ length_d_srch = 4 + 2 * complexity; - silk_assert( 3 * length_d_srch <= PE_D_SRCH_LENGTH ); + celt_assert( 3 * length_d_srch <= PE_D_SRCH_LENGTH ); silk_insertion_sort_decreasing_FLP( &C[ 0 ][ min_lag_4kHz ], d_srch, max_lag_4kHz - min_lag_4kHz + 1, length_d_srch ); /* Escape if correlation is very low already here */ @@ -238,7 +238,7 @@ opus_int silk_pitch_analysis_core_FLP( /* O Voicing estimate: 0 voiced, break; } } - silk_assert( length_d_srch > 0 ); + celt_assert( length_d_srch > 0 ); for( i = min_lag_8kHz - 5; i < max_lag_8kHz + 5; i++ ) { d_comp[ i ] = 0; @@ -471,7 +471,7 @@ opus_int silk_pitch_analysis_core_FLP( /* O Voicing estimate: 0 voiced, *lagIndex = (opus_int16)( lag - min_lag_8kHz ); *contourIndex = (opus_int8)CBimax; } - silk_assert( *lagIndex >= 0 ); + celt_assert( *lagIndex >= 0 ); /* return as voiced */ return 0; } @@ -506,8 +506,8 @@ static void silk_P_Ana_calc_corr_st3( opus_val32 xcorr[ SCRATCH_SIZE ]; const opus_int8 *Lag_range_ptr, *Lag_CB_ptr; - silk_assert( complexity >= SILK_PE_MIN_COMPLEX ); - silk_assert( complexity <= SILK_PE_MAX_COMPLEX ); + celt_assert( complexity >= SILK_PE_MIN_COMPLEX ); + celt_assert( complexity <= SILK_PE_MAX_COMPLEX ); if( nb_subfr == PE_MAX_NB_SUBFR ) { Lag_range_ptr = &silk_Lag_range_stage3[ complexity ][ 0 ][ 0 ]; @@ -515,7 +515,7 @@ static void silk_P_Ana_calc_corr_st3( nb_cbk_search = silk_nb_cbk_searchs_stage3[ complexity ]; cbk_size = PE_NB_CBKS_STAGE3_MAX; } else { - silk_assert( nb_subfr == PE_MAX_NB_SUBFR >> 1); + celt_assert( nb_subfr == PE_MAX_NB_SUBFR >> 1); Lag_range_ptr = &silk_Lag_range_stage3_10_ms[ 0 ][ 0 ]; Lag_CB_ptr = &silk_CB_lags_stage3_10_ms[ 0 ][ 0 ]; nb_cbk_search = PE_NB_CBKS_STAGE3_10MS; @@ -572,8 +572,8 @@ static void silk_P_Ana_calc_energy_st3( silk_float scratch_mem[ SCRATCH_SIZE ]; const opus_int8 *Lag_range_ptr, *Lag_CB_ptr; - silk_assert( complexity >= SILK_PE_MIN_COMPLEX ); - silk_assert( complexity <= SILK_PE_MAX_COMPLEX ); + celt_assert( complexity >= SILK_PE_MIN_COMPLEX ); + celt_assert( complexity <= SILK_PE_MAX_COMPLEX ); if( nb_subfr == PE_MAX_NB_SUBFR ) { Lag_range_ptr = &silk_Lag_range_stage3[ complexity ][ 0 ][ 0 ]; @@ -581,7 +581,7 @@ static void silk_P_Ana_calc_energy_st3( nb_cbk_search = silk_nb_cbk_searchs_stage3[ complexity ]; cbk_size = PE_NB_CBKS_STAGE3_MAX; } else { - silk_assert( nb_subfr == PE_MAX_NB_SUBFR >> 1); + celt_assert( nb_subfr == PE_MAX_NB_SUBFR >> 1); Lag_range_ptr = &silk_Lag_range_stage3_10_ms[ 0 ][ 0 ]; Lag_CB_ptr = &silk_CB_lags_stage3_10_ms[ 0 ][ 0 ]; nb_cbk_search = PE_NB_CBKS_STAGE3_10MS; diff --git a/TMessagesProj/jni/opus/silk/float/residual_energy_FLP.c b/TMessagesProj/jni/opus/silk/float/residual_energy_FLP.c index b2e03a86a..1bd07b33a 100644 --- a/TMessagesProj/jni/opus/silk/float/residual_energy_FLP.c +++ b/TMessagesProj/jni/opus/silk/float/residual_energy_FLP.c @@ -47,7 +47,7 @@ silk_float silk_residual_energy_covar_FLP( /* O silk_float tmp, nrg = 0.0f, regularization; /* Safety checks */ - silk_assert( D >= 0 ); + celt_assert( D >= 0 ); regularization = REGULARIZATION_FACTOR * ( wXX[ 0 ] + wXX[ D * D - 1 ] ); for( k = 0; k < MAX_ITERATIONS_RESIDUAL_NRG; k++ ) { diff --git a/TMessagesProj/jni/opus/silk/float/schur_FLP.c b/TMessagesProj/jni/opus/silk/float/schur_FLP.c index f4b4072f6..8526c748d 100644 --- a/TMessagesProj/jni/opus/silk/float/schur_FLP.c +++ b/TMessagesProj/jni/opus/silk/float/schur_FLP.c @@ -41,12 +41,13 @@ silk_float silk_schur_FLP( /* O returns residual energy double C[ SILK_MAX_ORDER_LPC + 1 ][ 2 ]; double Ctmp1, Ctmp2, rc_tmp; - silk_assert( order <= SILK_MAX_ORDER_LPC ); + celt_assert( order >= 0 && order <= SILK_MAX_ORDER_LPC ); /* Copy correlations */ - for( k = 0; k < order+1; k++ ) { + k = 0; + do { C[ k ][ 0 ] = C[ k ][ 1 ] = auto_corr[ k ]; - } + } while( ++k <= order ); for( k = 0; k < order; k++ ) { /* Get reflection coefficient */ diff --git a/TMessagesProj/jni/opus/silk/float/sort_FLP.c b/TMessagesProj/jni/opus/silk/float/sort_FLP.c index f08d7592c..0e18f3195 100644 --- a/TMessagesProj/jni/opus/silk/float/sort_FLP.c +++ b/TMessagesProj/jni/opus/silk/float/sort_FLP.c @@ -47,9 +47,9 @@ void silk_insertion_sort_decreasing_FLP( opus_int i, j; /* Safety checks */ - silk_assert( K > 0 ); - silk_assert( L > 0 ); - silk_assert( L >= K ); + celt_assert( K > 0 ); + celt_assert( L > 0 ); + celt_assert( L >= K ); /* Write start indices in index vector */ for( i = 0; i < K; i++ ) { diff --git a/TMessagesProj/jni/opus/silk/float/warped_autocorrelation_FLP.c b/TMessagesProj/jni/opus/silk/float/warped_autocorrelation_FLP.c index 542414f48..96662767c 100644 --- a/TMessagesProj/jni/opus/silk/float/warped_autocorrelation_FLP.c +++ b/TMessagesProj/jni/opus/silk/float/warped_autocorrelation_FLP.c @@ -46,7 +46,7 @@ void silk_warped_autocorrelation_FLP( double C[ MAX_SHAPE_LPC_ORDER + 1 ] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; /* Order must be even */ - silk_assert( ( order & 1 ) == 0 ); + celt_assert( ( order & 1 ) == 0 ); /* Loop over samples */ for( n = 0; n < length; n++ ) { diff --git a/TMessagesProj/jni/opus/silk/float/wrappers_FLP.c b/TMessagesProj/jni/opus/silk/float/wrappers_FLP.c index e8f438312..ad90b874a 100644 --- a/TMessagesProj/jni/opus/silk/float/wrappers_FLP.c +++ b/TMessagesProj/jni/opus/silk/float/wrappers_FLP.c @@ -54,13 +54,14 @@ void silk_A2NLSF_FLP( void silk_NLSF2A_FLP( silk_float *pAR, /* O LPC coefficients [ LPC_order ] */ const opus_int16 *NLSF_Q15, /* I NLSF vector [ LPC_order ] */ - const opus_int LPC_order /* I LPC order */ + const opus_int LPC_order, /* I LPC order */ + int arch /* I Run-time architecture */ ) { opus_int i; opus_int16 a_fix_Q12[ MAX_LPC_ORDER ]; - silk_NLSF2A( a_fix_Q12, NLSF_Q15, LPC_order ); + silk_NLSF2A( a_fix_Q12, NLSF_Q15, LPC_order, arch ); for( i = 0; i < LPC_order; i++ ) { pAR[ i ] = ( silk_float )a_fix_Q12[ i ] * ( 1.0f / 4096.0f ); diff --git a/TMessagesProj/jni/opus/silk/gain_quant.c b/TMessagesProj/jni/opus/silk/gain_quant.c index 64ccd0611..ee65245aa 100644 --- a/TMessagesProj/jni/opus/silk/gain_quant.c +++ b/TMessagesProj/jni/opus/silk/gain_quant.c @@ -76,6 +76,7 @@ void silk_gains_quant( /* Accumulate deltas */ if( ind[ k ] > double_step_size_threshold ) { *prev_ind += silk_LSHIFT( ind[ k ], 1 ) - double_step_size_threshold; + *prev_ind = silk_min_int( *prev_ind, N_LEVELS_QGAIN - 1 ); } else { *prev_ind += ind[ k ]; } diff --git a/TMessagesProj/jni/opus/silk/init_decoder.c b/TMessagesProj/jni/opus/silk/init_decoder.c index f887c6788..16c03dcd1 100644 --- a/TMessagesProj/jni/opus/silk/init_decoder.c +++ b/TMessagesProj/jni/opus/silk/init_decoder.c @@ -44,6 +44,7 @@ opus_int silk_init_decoder( /* Used to deactivate LSF interpolation */ psDec->first_frame_after_reset = 1; psDec->prev_gain_Q16 = 65536; + psDec->arch = opus_select_arch(); /* Reset CNG state */ silk_CNG_Reset( psDec ); diff --git a/TMessagesProj/jni/opus/silk/interpolate.c b/TMessagesProj/jni/opus/silk/interpolate.c index 1bd8ca4d5..833c28ef8 100644 --- a/TMessagesProj/jni/opus/silk/interpolate.c +++ b/TMessagesProj/jni/opus/silk/interpolate.c @@ -42,8 +42,8 @@ void silk_interpolate( { opus_int i; - silk_assert( ifact_Q2 >= 0 ); - silk_assert( ifact_Q2 <= 4 ); + celt_assert( ifact_Q2 >= 0 ); + celt_assert( ifact_Q2 <= 4 ); for( i = 0; i < d; i++ ) { xi[ i ] = (opus_int16)silk_ADD_RSHIFT( x0[ i ], silk_SMULBB( x1[ i ] - x0[ i ], ifact_Q2 ), 2 ); diff --git a/TMessagesProj/jni/opus/silk/main.h b/TMessagesProj/jni/opus/silk/main.h index 13d42419f..1a33eed54 100644 --- a/TMessagesProj/jni/opus/silk/main.h +++ b/TMessagesProj/jni/opus/silk/main.h @@ -42,6 +42,10 @@ POSSIBILITY OF SUCH DAMAGE. #include "x86/main_sse.h" #endif +#if (defined(OPUS_ARM_ASM) || defined(OPUS_ARM_MAY_HAVE_NEON_INTR)) +#include "arm/NSQ_del_dec_arm.h" +#endif + /* Convert Left/Right stereo signal to adaptive Mid/Side representation */ void silk_stereo_LR_to_MS( stereo_enc_state *state, /* I/O State */ @@ -243,7 +247,7 @@ void silk_VQ_WMat_EC_c( /************************************/ void silk_NSQ_c( - const silk_encoder_state *psEncC, /* I/O Encoder State */ + const silk_encoder_state *psEncC, /* I Encoder State */ silk_nsq_state *NSQ, /* I/O NSQ state */ SideInfoIndices *psIndices, /* I/O Quantization Indices */ const opus_int16 x16[], /* I Input */ @@ -269,7 +273,7 @@ void silk_NSQ_c( /* Noise shaping using delayed decision */ void silk_NSQ_del_dec_c( - const silk_encoder_state *psEncC, /* I/O Encoder State */ + const silk_encoder_state *psEncC, /* I Encoder State */ silk_nsq_state *NSQ, /* I/O NSQ state */ SideInfoIndices *psIndices, /* I/O Quantization Indices */ const opus_int16 x16[], /* I Input */ diff --git a/TMessagesProj/jni/opus/silk/process_NLSFs.c b/TMessagesProj/jni/opus/silk/process_NLSFs.c index 0ab71f016..d13080954 100644 --- a/TMessagesProj/jni/opus/silk/process_NLSFs.c +++ b/TMessagesProj/jni/opus/silk/process_NLSFs.c @@ -48,7 +48,7 @@ void silk_process_NLSFs( silk_assert( psEncC->speech_activity_Q8 >= 0 ); silk_assert( psEncC->speech_activity_Q8 <= SILK_FIX_CONST( 1.0, 8 ) ); - silk_assert( psEncC->useInterpolatedNLSFs == 1 || psEncC->indices.NLSFInterpCoef_Q2 == ( 1 << 2 ) ); + celt_assert( psEncC->useInterpolatedNLSFs == 1 || psEncC->indices.NLSFInterpCoef_Q2 == ( 1 << 2 ) ); /***********************/ /* Calculate mu values */ @@ -60,7 +60,7 @@ void silk_process_NLSFs( NLSF_mu_Q20 = silk_ADD_RSHIFT( NLSF_mu_Q20, NLSF_mu_Q20, 1 ); } - silk_assert( NLSF_mu_Q20 > 0 ); + celt_assert( NLSF_mu_Q20 > 0 ); silk_assert( NLSF_mu_Q20 <= SILK_FIX_CONST( 0.005, 20 ) ); /* Calculate NLSF weights */ @@ -89,7 +89,7 @@ void silk_process_NLSFs( NLSF_mu_Q20, psEncC->NLSF_MSVQ_Survivors, psEncC->indices.signalType ); /* Convert quantized NLSFs back to LPC coefficients */ - silk_NLSF2A( PredCoef_Q12[ 1 ], pNLSF_Q15, psEncC->predictLPCOrder ); + silk_NLSF2A( PredCoef_Q12[ 1 ], pNLSF_Q15, psEncC->predictLPCOrder, psEncC->arch ); if( doInterpolate ) { /* Calculate the interpolated, quantized LSF vector for the first half */ @@ -97,11 +97,11 @@ void silk_process_NLSFs( psEncC->indices.NLSFInterpCoef_Q2, psEncC->predictLPCOrder ); /* Convert back to LPC coefficients */ - silk_NLSF2A( PredCoef_Q12[ 0 ], pNLSF0_temp_Q15, psEncC->predictLPCOrder ); + silk_NLSF2A( PredCoef_Q12[ 0 ], pNLSF0_temp_Q15, psEncC->predictLPCOrder, psEncC->arch ); } else { /* Copy LPC coefficients for first half from second half */ - silk_assert( psEncC->predictLPCOrder <= MAX_LPC_ORDER ); + celt_assert( psEncC->predictLPCOrder <= MAX_LPC_ORDER ); silk_memcpy( PredCoef_Q12[ 0 ], PredCoef_Q12[ 1 ], psEncC->predictLPCOrder * sizeof( opus_int16 ) ); } } diff --git a/TMessagesProj/jni/opus/silk/resampler.c b/TMessagesProj/jni/opus/silk/resampler.c index 374fbb372..1f11e5089 100644 --- a/TMessagesProj/jni/opus/silk/resampler.c +++ b/TMessagesProj/jni/opus/silk/resampler.c @@ -91,14 +91,14 @@ opus_int silk_resampler_init( if( forEnc ) { if( ( Fs_Hz_in != 8000 && Fs_Hz_in != 12000 && Fs_Hz_in != 16000 && Fs_Hz_in != 24000 && Fs_Hz_in != 48000 ) || ( Fs_Hz_out != 8000 && Fs_Hz_out != 12000 && Fs_Hz_out != 16000 ) ) { - silk_assert( 0 ); + celt_assert( 0 ); return -1; } S->inputDelay = delay_matrix_enc[ rateID( Fs_Hz_in ) ][ rateID( Fs_Hz_out ) ]; } else { if( ( Fs_Hz_in != 8000 && Fs_Hz_in != 12000 && Fs_Hz_in != 16000 ) || ( Fs_Hz_out != 8000 && Fs_Hz_out != 12000 && Fs_Hz_out != 16000 && Fs_Hz_out != 24000 && Fs_Hz_out != 48000 ) ) { - silk_assert( 0 ); + celt_assert( 0 ); return -1; } S->inputDelay = delay_matrix_dec[ rateID( Fs_Hz_in ) ][ rateID( Fs_Hz_out ) ]; @@ -151,7 +151,7 @@ opus_int silk_resampler_init( S->Coefs = silk_Resampler_1_6_COEFS; } else { /* None available */ - silk_assert( 0 ); + celt_assert( 0 ); return -1; } } else { @@ -181,9 +181,9 @@ opus_int silk_resampler( opus_int nSamples; /* Need at least 1 ms of input data */ - silk_assert( inLen >= S->Fs_in_kHz ); + celt_assert( inLen >= S->Fs_in_kHz ); /* Delay can't exceed the 1 ms of buffering */ - silk_assert( S->inputDelay <= S->Fs_in_kHz ); + celt_assert( S->inputDelay <= S->Fs_in_kHz ); nSamples = S->Fs_in_kHz - S->inputDelay; diff --git a/TMessagesProj/jni/opus/silk/resampler_down2.c b/TMessagesProj/jni/opus/silk/resampler_down2.c index cec363464..971d7bfd4 100644 --- a/TMessagesProj/jni/opus/silk/resampler_down2.c +++ b/TMessagesProj/jni/opus/silk/resampler_down2.c @@ -43,8 +43,8 @@ void silk_resampler_down2( opus_int32 k, len2 = silk_RSHIFT32( inLen, 1 ); opus_int32 in32, out32, Y, X; - silk_assert( silk_resampler_down2_0 > 0 ); - silk_assert( silk_resampler_down2_1 < 0 ); + celt_assert( silk_resampler_down2_0 > 0 ); + celt_assert( silk_resampler_down2_1 < 0 ); /* Internal variables and state are in Q10 format */ for( k = 0; k < len2; k++ ) { diff --git a/TMessagesProj/jni/opus/silk/resampler_private_down_FIR.c b/TMessagesProj/jni/opus/silk/resampler_private_down_FIR.c index 783e42b35..3e8735a35 100644 --- a/TMessagesProj/jni/opus/silk/resampler_private_down_FIR.c +++ b/TMessagesProj/jni/opus/silk/resampler_private_down_FIR.c @@ -136,7 +136,7 @@ static OPUS_INLINE opus_int16 *silk_resampler_private_down_FIR_INTERPOL( } break; default: - silk_assert( 0 ); + celt_assert( 0 ); } return out; } diff --git a/TMessagesProj/jni/opus/silk/sort.c b/TMessagesProj/jni/opus/silk/sort.c index 7187c9efb..4fba16f83 100644 --- a/TMessagesProj/jni/opus/silk/sort.c +++ b/TMessagesProj/jni/opus/silk/sort.c @@ -48,9 +48,9 @@ void silk_insertion_sort_increasing( opus_int i, j; /* Safety checks */ - silk_assert( K > 0 ); - silk_assert( L > 0 ); - silk_assert( L >= K ); + celt_assert( K > 0 ); + celt_assert( L > 0 ); + celt_assert( L >= K ); /* Write start indices in index vector */ for( i = 0; i < K; i++ ) { @@ -96,9 +96,9 @@ void silk_insertion_sort_decreasing_int16( opus_int value; /* Safety checks */ - silk_assert( K > 0 ); - silk_assert( L > 0 ); - silk_assert( L >= K ); + celt_assert( K > 0 ); + celt_assert( L > 0 ); + celt_assert( L >= K ); /* Write start indices in index vector */ for( i = 0; i < K; i++ ) { @@ -141,7 +141,7 @@ void silk_insertion_sort_increasing_all_values_int16( opus_int i, j; /* Safety checks */ - silk_assert( L > 0 ); + celt_assert( L > 0 ); /* Sort vector elements by value, increasing order */ for( i = 1; i < L; i++ ) { diff --git a/TMessagesProj/jni/opus/silk/stereo_LR_to_MS.c b/TMessagesProj/jni/opus/silk/stereo_LR_to_MS.c index dda0298de..c8226663c 100644 --- a/TMessagesProj/jni/opus/silk/stereo_LR_to_MS.c +++ b/TMessagesProj/jni/opus/silk/stereo_LR_to_MS.c @@ -109,7 +109,7 @@ void silk_stereo_LR_to_MS( if( total_rate_bps < 1 ) { total_rate_bps = 1; } - min_mid_rate_bps = silk_SMLABB( 2000, fs_kHz, 900 ); + min_mid_rate_bps = silk_SMLABB( 2000, fs_kHz, 600 ); silk_assert( min_mid_rate_bps < 32767 ); /* Default bitrate distribution: 8 parts for Mid and (5+3*frac) parts for Side. so: mid_rate = ( 8 / ( 13 + 3 * frac ) ) * total_ rate */ frac_3_Q16 = silk_MUL( 3, frac_Q16 ); diff --git a/TMessagesProj/jni/opus/silk/stereo_encode_pred.c b/TMessagesProj/jni/opus/silk/stereo_encode_pred.c index e6dd19506..03becb673 100644 --- a/TMessagesProj/jni/opus/silk/stereo_encode_pred.c +++ b/TMessagesProj/jni/opus/silk/stereo_encode_pred.c @@ -41,11 +41,11 @@ void silk_stereo_encode_pred( /* Entropy coding */ n = 5 * ix[ 0 ][ 2 ] + ix[ 1 ][ 2 ]; - silk_assert( n < 25 ); + celt_assert( n < 25 ); ec_enc_icdf( psRangeEnc, n, silk_stereo_pred_joint_iCDF, 8 ); for( n = 0; n < 2; n++ ) { - silk_assert( ix[ n ][ 0 ] < 3 ); - silk_assert( ix[ n ][ 1 ] < STEREO_QUANT_SUB_STEPS ); + celt_assert( ix[ n ][ 0 ] < 3 ); + celt_assert( ix[ n ][ 1 ] < STEREO_QUANT_SUB_STEPS ); ec_enc_icdf( psRangeEnc, ix[ n ][ 0 ], silk_uniform3_iCDF, 8 ); ec_enc_icdf( psRangeEnc, ix[ n ][ 1 ], silk_uniform5_iCDF, 8 ); } diff --git a/TMessagesProj/jni/opus/silk/structs.h b/TMessagesProj/jni/opus/silk/structs.h index f7c9652fe..3380c757b 100644 --- a/TMessagesProj/jni/opus/silk/structs.h +++ b/TMessagesProj/jni/opus/silk/structs.h @@ -78,6 +78,7 @@ typedef struct { opus_int32 In_LP_State[ 2 ]; /* Low pass filter state */ opus_int32 transition_frame_no; /* Counter which is mapped to a cut-off frequency */ opus_int mode; /* Operating mode, <0: switch down, >0: switch up; 0: do nothing */ + opus_int32 saved_fs_kHz; /* If non-zero, holds the last sampling rate before a bandwidth switching reset. */ } silk_LP_state; /* Structure containing NLSF codebook */ @@ -301,6 +302,7 @@ typedef struct { /* Stuff used for PLC */ opus_int lossCnt; opus_int prevSignalType; + int arch; silk_PLC_struct sPLC; diff --git a/TMessagesProj/jni/opus/silk/tables.h b/TMessagesProj/jni/opus/silk/tables.h index 8b0380eeb..95230c451 100644 --- a/TMessagesProj/jni/opus/silk/tables.h +++ b/TMessagesProj/jni/opus/silk/tables.h @@ -97,12 +97,6 @@ extern const opus_uint8 silk_NLSF_interpolation_factor_iCDF[ 5 ]; extern const silk_NLSF_CB_struct silk_NLSF_CB_WB; /* 1040 */ extern const silk_NLSF_CB_struct silk_NLSF_CB_NB_MB; /* 728 */ -/* Piece-wise linear mapping from bitrate in kbps to coding quality in dB SNR */ -extern const opus_int32 silk_TargetRate_table_NB[ TARGET_RATE_TAB_SZ ]; /* 32 */ -extern const opus_int32 silk_TargetRate_table_MB[ TARGET_RATE_TAB_SZ ]; /* 32 */ -extern const opus_int32 silk_TargetRate_table_WB[ TARGET_RATE_TAB_SZ ]; /* 32 */ -extern const opus_int16 silk_SNR_table_Q1[ TARGET_RATE_TAB_SZ ]; /* 32 */ - /* Quantization offsets */ extern const opus_int16 silk_Quantization_Offsets_Q10[ 2 ][ 2 ]; /* 8 */ diff --git a/TMessagesProj/jni/opus/silk/tables_NLSF_CB_WB.c b/TMessagesProj/jni/opus/silk/tables_NLSF_CB_WB.c index a15f7eb42..5cc9f57bf 100644 --- a/TMessagesProj/jni/opus/silk/tables_NLSF_CB_WB.c +++ b/TMessagesProj/jni/opus/silk/tables_NLSF_CB_WB.c @@ -98,7 +98,7 @@ static const opus_uint8 silk_NLSF_CB1_WB_Q8[ 512 ] = { 110, 119, 129, 141, 175, 198, 218, 237 }; -static const opus_int16 silk_NLSF_CB1_Wght_Q9[ 512 ] = { +static const opus_int16 silk_NLSF_CB1_WB_Wght_Q9[ 512 ] = { 3657, 2925, 2925, 2925, 2925, 2925, 2925, 2925, 2925, 2925, 2925, 2925, 2963, 2963, 2925, 2846, 3216, 3085, 2972, 3056, 3056, 3010, 3010, 3010, 2963, 2963, 3010, 2972, 2888, 2846, 2846, 2726, 3920, 4014, 2981, 3207, 3207, 2934, 3056, 2846, 3122, 3244, 2925, 2846, 2620, 2553, 2780, 2925, @@ -223,7 +223,7 @@ const silk_NLSF_CB_struct silk_NLSF_CB_WB = SILK_FIX_CONST( 0.15, 16 ), SILK_FIX_CONST( 1.0 / 0.15, 6 ), silk_NLSF_CB1_WB_Q8, - silk_NLSF_CB1_Wght_Q9, + silk_NLSF_CB1_WB_Wght_Q9, silk_NLSF_CB1_iCDF_WB, silk_NLSF_PRED_WB_Q8, silk_NLSF_CB2_SELECT_WB, diff --git a/TMessagesProj/jni/opus/silk/tables_other.c b/TMessagesProj/jni/opus/silk/tables_other.c index 398686bf2..e34d90777 100644 --- a/TMessagesProj/jni/opus/silk/tables_other.c +++ b/TMessagesProj/jni/opus/silk/tables_other.c @@ -38,20 +38,6 @@ extern "C" { #endif -/* Piece-wise linear mapping from bitrate in kbps to coding quality in dB SNR */ -const opus_int32 silk_TargetRate_table_NB[ TARGET_RATE_TAB_SZ ] = { - 0, 8000, 9400, 11500, 13500, 17500, 25000, MAX_TARGET_RATE_BPS -}; -const opus_int32 silk_TargetRate_table_MB[ TARGET_RATE_TAB_SZ ] = { - 0, 9000, 12000, 14500, 18500, 24500, 35500, MAX_TARGET_RATE_BPS -}; -const opus_int32 silk_TargetRate_table_WB[ TARGET_RATE_TAB_SZ ] = { - 0, 10500, 14000, 17000, 21500, 28500, 42000, MAX_TARGET_RATE_BPS -}; -const opus_int16 silk_SNR_table_Q1[ TARGET_RATE_TAB_SZ ] = { - 18, 29, 38, 40, 46, 52, 62, 84 -}; - /* Tables for stereo predictor coding */ const opus_int16 silk_stereo_pred_quant_Q13[ STEREO_QUANT_TAB_SIZE ] = { -13732, -10050, -8266, -7526, -6500, -5000, -2950, -820, diff --git a/TMessagesProj/jni/opus/silk/x86/NSQ_del_dec_sse.c b/TMessagesProj/jni/opus/silk/x86/NSQ_del_dec_sse4_1.c similarity index 99% rename from TMessagesProj/jni/opus/silk/x86/NSQ_del_dec_sse.c rename to TMessagesProj/jni/opus/silk/x86/NSQ_del_dec_sse4_1.c index a6f84e1c0..2c75ede2d 100644 --- a/TMessagesProj/jni/opus/silk/x86/NSQ_del_dec_sse.c +++ b/TMessagesProj/jni/opus/silk/x86/NSQ_del_dec_sse4_1.c @@ -107,12 +107,12 @@ static OPUS_INLINE void silk_noise_shape_quantizer_del_dec_sse4_1( opus_int predictLPCOrder, /* I Prediction filter order */ opus_int warping_Q16, /* I */ opus_int nStatesDelayedDecision, /* I Number of states in decision tree */ - opus_int *smpl_buf_idx, /* I Index to newest samples in buffers */ + opus_int *smpl_buf_idx, /* I/O Index to newest samples in buffers */ opus_int decisionDelay /* I */ ); void silk_NSQ_del_dec_sse4_1( - const silk_encoder_state *psEncC, /* I/O Encoder State */ + const silk_encoder_state *psEncC, /* I Encoder State */ silk_nsq_state *NSQ, /* I/O NSQ state */ SideInfoIndices *psIndices, /* I/O Quantization Indices */ const opus_int32 x_Q3[], /* I Prefiltered input signal */ @@ -247,7 +247,7 @@ void silk_NSQ_del_dec_sse4_1( /* Rewhiten with new A coefs */ start_idx = psEncC->ltp_mem_length - lag - psEncC->predictLPCOrder - LTP_ORDER / 2; - silk_assert( start_idx > 0 ); + celt_assert( start_idx > 0 ); silk_LPC_analysis_filter( &sLTP[ start_idx ], &NSQ->xq[ start_idx + k * psEncC->subfr_length ], A_Q12, psEncC->ltp_mem_length - start_idx, psEncC->predictLPCOrder, psEncC->arch ); @@ -301,7 +301,6 @@ void silk_NSQ_del_dec_sse4_1( NSQ->lagPrev = pitchL[ psEncC->nb_subfr - 1 ]; /* Save quantized speech signal */ - /* DEBUG_STORE_DATA( enc.pcm, &NSQ->xq[psEncC->ltp_mem_length], psEncC->frame_length * sizeof( opus_int16 ) ) */ silk_memmove( NSQ->xq, &NSQ->xq[ psEncC->frame_length ], psEncC->ltp_mem_length * sizeof( opus_int16 ) ); silk_memmove( NSQ->sLTP_shp_Q14, &NSQ->sLTP_shp_Q14[ psEncC->frame_length ], psEncC->ltp_mem_length * sizeof( opus_int32 ) ); RESTORE_STACK; @@ -335,7 +334,7 @@ static OPUS_INLINE void silk_noise_shape_quantizer_del_dec_sse4_1( opus_int predictLPCOrder, /* I Prediction filter order */ opus_int warping_Q16, /* I */ opus_int nStatesDelayedDecision, /* I Number of states in decision tree */ - opus_int *smpl_buf_idx, /* I Index to newest samples in buffers */ + opus_int *smpl_buf_idx, /* I/O Index to newest samples in buffers */ opus_int decisionDelay /* I */ ) { @@ -354,7 +353,7 @@ static OPUS_INLINE void silk_noise_shape_quantizer_del_dec_sse4_1( __m128i b_Q12_0123, b_sr_Q12_0123; SAVE_STACK; - silk_assert( nStatesDelayedDecision > 0 ); + celt_assert( nStatesDelayedDecision > 0 ); ALLOC( psSampleState, nStatesDelayedDecision, NSQ_sample_pair ); shp_lag_ptr = &NSQ->sLTP_shp_Q14[ NSQ->sLTP_shp_buf_idx - lag + HARM_SHAPE_FIR_TAPS / 2 ]; diff --git a/TMessagesProj/jni/opus/silk/x86/NSQ_sse.c b/TMessagesProj/jni/opus/silk/x86/NSQ_sse4_1.c similarity index 99% rename from TMessagesProj/jni/opus/silk/x86/NSQ_sse.c rename to TMessagesProj/jni/opus/silk/x86/NSQ_sse4_1.c index bb3c5f195..b0315e35f 100644 --- a/TMessagesProj/jni/opus/silk/x86/NSQ_sse.c +++ b/TMessagesProj/jni/opus/silk/x86/NSQ_sse4_1.c @@ -71,7 +71,7 @@ static OPUS_INLINE void silk_noise_shape_quantizer_10_16_sse4_1( ); void silk_NSQ_sse4_1( - const silk_encoder_state *psEncC, /* I/O Encoder State */ + const silk_encoder_state *psEncC, /* I Encoder State */ silk_nsq_state *NSQ, /* I/O NSQ state */ SideInfoIndices *psIndices, /* I/O Quantization Indices */ const opus_int32 x_Q3[], /* I Prefiltered input signal */ @@ -199,7 +199,7 @@ void silk_NSQ_sse4_1( if( ( k & ( 3 - silk_LSHIFT( LSF_interpolation_flag, 1 ) ) ) == 0 ) { /* Rewhiten with new A coefs */ start_idx = psEncC->ltp_mem_length - lag - psEncC->predictLPCOrder - LTP_ORDER / 2; - silk_assert( start_idx > 0 ); + celt_assert( start_idx > 0 ); silk_LPC_analysis_filter( &sLTP[ start_idx ], &NSQ->xq[ start_idx + k * psEncC->subfr_length ], A_Q12, psEncC->ltp_mem_length - start_idx, psEncC->predictLPCOrder, psEncC->arch ); @@ -233,7 +233,6 @@ void silk_NSQ_sse4_1( NSQ->lagPrev = pitchL[ psEncC->nb_subfr - 1 ]; /* Save quantized speech and noise shaping signals */ - /* DEBUG_STORE_DATA( enc.pcm, &NSQ->xq[ psEncC->ltp_mem_length ], psEncC->frame_length * sizeof( opus_int16 ) ) */ silk_memmove( NSQ->xq, &NSQ->xq[ psEncC->frame_length ], psEncC->ltp_mem_length * sizeof( opus_int16 ) ); silk_memmove( NSQ->sLTP_shp_Q14, &NSQ->sLTP_shp_Q14[ psEncC->frame_length ], psEncC->ltp_mem_length * sizeof( opus_int32 ) ); RESTORE_STACK; diff --git a/TMessagesProj/jni/opus/silk/x86/VAD_sse.c b/TMessagesProj/jni/opus/silk/x86/VAD_sse4_1.c similarity index 98% rename from TMessagesProj/jni/opus/silk/x86/VAD_sse.c rename to TMessagesProj/jni/opus/silk/x86/VAD_sse4_1.c index 4e90f4410..d02ddf4ad 100644 --- a/TMessagesProj/jni/opus/silk/x86/VAD_sse.c +++ b/TMessagesProj/jni/opus/silk/x86/VAD_sse4_1.c @@ -65,9 +65,9 @@ opus_int silk_VAD_GetSA_Q8_sse4_1( /* O Return value, 0 if s /* Safety checks */ silk_assert( VAD_N_BANDS == 4 ); - silk_assert( MAX_FRAME_LENGTH >= psEncC->frame_length ); - silk_assert( psEncC->frame_length <= 512 ); - silk_assert( psEncC->frame_length == 8 * silk_RSHIFT( psEncC->frame_length, 3 ) ); + celt_assert( MAX_FRAME_LENGTH >= psEncC->frame_length ); + celt_assert( psEncC->frame_length <= 512 ); + celt_assert( psEncC->frame_length == 8 * silk_RSHIFT( psEncC->frame_length, 3 ) ); /***********************/ /* Filter and Decimate */ diff --git a/TMessagesProj/jni/opus/silk/x86/VQ_WMat_EC_sse.c b/TMessagesProj/jni/opus/silk/x86/VQ_WMat_EC_sse4_1.c similarity index 100% rename from TMessagesProj/jni/opus/silk/x86/VQ_WMat_EC_sse.c rename to TMessagesProj/jni/opus/silk/x86/VQ_WMat_EC_sse4_1.c diff --git a/TMessagesProj/jni/opus/silk/x86/main_sse.h b/TMessagesProj/jni/opus/silk/x86/main_sse.h index a221f3178..2f15d4486 100644 --- a/TMessagesProj/jni/opus/silk/x86/main_sse.h +++ b/TMessagesProj/jni/opus/silk/x86/main_sse.h @@ -86,7 +86,7 @@ extern void (*const SILK_VQ_WMAT_EC_IMPL[OPUS_ARCHMASK + 1])( # define OVERRIDE_silk_NSQ void silk_NSQ_sse4_1( - const silk_encoder_state *psEncC, /* I/O Encoder State */ + const silk_encoder_state *psEncC, /* I Encoder State */ silk_nsq_state *NSQ, /* I/O NSQ state */ SideInfoIndices *psIndices, /* I/O Quantization Indices */ const opus_int32 x_Q3[], /* I Prefiltered input signal */ @@ -113,7 +113,7 @@ void silk_NSQ_sse4_1( #else extern void (*const SILK_NSQ_IMPL[OPUS_ARCHMASK + 1])( - const silk_encoder_state *psEncC, /* I/O Encoder State */ + const silk_encoder_state *psEncC, /* I Encoder State */ silk_nsq_state *NSQ, /* I/O NSQ state */ SideInfoIndices *psIndices, /* I/O Quantization Indices */ const opus_int32 x_Q3[], /* I Prefiltered input signal */ @@ -140,7 +140,7 @@ extern void (*const SILK_NSQ_IMPL[OPUS_ARCHMASK + 1])( # define OVERRIDE_silk_NSQ_del_dec void silk_NSQ_del_dec_sse4_1( - const silk_encoder_state *psEncC, /* I/O Encoder State */ + const silk_encoder_state *psEncC, /* I Encoder State */ silk_nsq_state *NSQ, /* I/O NSQ state */ SideInfoIndices *psIndices, /* I/O Quantization Indices */ const opus_int32 x_Q3[], /* I Prefiltered input signal */ @@ -167,7 +167,7 @@ void silk_NSQ_del_dec_sse4_1( #else extern void (*const SILK_NSQ_DEL_DEC_IMPL[OPUS_ARCHMASK + 1])( - const silk_encoder_state *psEncC, /* I/O Encoder State */ + const silk_encoder_state *psEncC, /* I Encoder State */ silk_nsq_state *NSQ, /* I/O NSQ state */ SideInfoIndices *psIndices, /* I/O Quantization Indices */ const opus_int32 x_Q3[], /* I Prefiltered input signal */ diff --git a/TMessagesProj/jni/opus/silk/x86/x86_silk_map.c b/TMessagesProj/jni/opus/silk/x86/x86_silk_map.c index 6a1d75c42..32dcc3cab 100644 --- a/TMessagesProj/jni/opus/silk/x86/x86_silk_map.c +++ b/TMessagesProj/jni/opus/silk/x86/x86_silk_map.c @@ -68,7 +68,7 @@ opus_int (*const SILK_VAD_GETSA_Q8_IMPL[ OPUS_ARCHMASK + 1 ] )( #if 0 /* FIXME: SSE disabled until the NSQ code gets updated. */ void (*const SILK_NSQ_IMPL[ OPUS_ARCHMASK + 1 ] )( - const silk_encoder_state *psEncC, /* I/O Encoder State */ + const silk_encoder_state *psEncC, /* I Encoder State */ silk_nsq_state *NSQ, /* I/O NSQ state */ SideInfoIndices *psIndices, /* I/O Quantization Indices */ const opus_int32 x_Q3[], /* I Prefiltered input signal */ @@ -116,7 +116,7 @@ void (*const SILK_VQ_WMAT_EC_IMPL[ OPUS_ARCHMASK + 1 ] )( #if 0 /* FIXME: SSE disabled until the NSQ code gets updated. */ void (*const SILK_NSQ_DEL_DEC_IMPL[ OPUS_ARCHMASK + 1 ] )( - const silk_encoder_state *psEncC, /* I/O Encoder State */ + const silk_encoder_state *psEncC, /* I Encoder State */ silk_nsq_state *NSQ, /* I/O NSQ state */ SideInfoIndices *psIndices, /* I/O Quantization Indices */ const opus_int32 x_Q3[], /* I Prefiltered input signal */ diff --git a/TMessagesProj/jni/opus/src/analysis.c b/TMessagesProj/jni/opus/src/analysis.c index b704fb4cf..b192ae4e8 100644 --- a/TMessagesProj/jni/opus/src/analysis.c +++ b/TMessagesProj/jni/opus/src/analysis.c @@ -42,11 +42,16 @@ #include "analysis.h" #include "mlp.h" #include "stack_alloc.h" +#include "float_cast.h" #ifndef M_PI #define M_PI 3.141592653 #endif +#ifndef DISABLE_FLOAT_API + +#define TRANSITION_PENALTY 10 + static const float dct_table[128] = { 0.250000f, 0.250000f, 0.250000f, 0.250000f, 0.250000f, 0.250000f, 0.250000f, 0.250000f, 0.250000f, 0.250000f, 0.250000f, 0.250000f, 0.250000f, 0.250000f, 0.250000f, 0.250000f, @@ -100,24 +105,118 @@ static const float analysis_window[240] = { }; static const int tbands[NB_TBANDS+1] = { - 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56, 68, 80, 96, 120 + 4, 8, 12, 16, 20, 24, 28, 32, 40, 48, 56, 64, 80, 96, 112, 136, 160, 192, 240 }; -static const int extra_bands[NB_TOT_BANDS+1] = { - 1, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56, 68, 80, 96, 120, 160, 200 -}; - -/*static const float tweight[NB_TBANDS+1] = { - .3, .4, .5, .6, .7, .8, .9, 1., 1., 1., 1., 1., 1., 1., .8, .7, .6, .5 -};*/ - #define NB_TONAL_SKIP_BANDS 9 +static opus_val32 silk_resampler_down2_hp( + opus_val32 *S, /* I/O State vector [ 2 ] */ + opus_val32 *out, /* O Output signal [ floor(len/2) ] */ + const opus_val32 *in, /* I Input signal [ len ] */ + int inLen /* I Number of input samples */ +) +{ + int k, len2 = inLen/2; + opus_val32 in32, out32, out32_hp, Y, X; + opus_val64 hp_ener = 0; + /* Internal variables and state are in Q10 format */ + for( k = 0; k < len2; k++ ) { + /* Convert to Q10 */ + in32 = in[ 2 * k ]; -void tonality_analysis_init(TonalityAnalysisState *tonal) + /* All-pass section for even input sample */ + Y = SUB32( in32, S[ 0 ] ); + X = MULT16_32_Q15(QCONST16(0.6074371f, 15), Y); + out32 = ADD32( S[ 0 ], X ); + S[ 0 ] = ADD32( in32, X ); + out32_hp = out32; + /* Convert to Q10 */ + in32 = in[ 2 * k + 1 ]; + + /* All-pass section for odd input sample, and add to output of previous section */ + Y = SUB32( in32, S[ 1 ] ); + X = MULT16_32_Q15(QCONST16(0.15063f, 15), Y); + out32 = ADD32( out32, S[ 1 ] ); + out32 = ADD32( out32, X ); + S[ 1 ] = ADD32( in32, X ); + + Y = SUB32( -in32, S[ 2 ] ); + X = MULT16_32_Q15(QCONST16(0.15063f, 15), Y); + out32_hp = ADD32( out32_hp, S[ 2 ] ); + out32_hp = ADD32( out32_hp, X ); + S[ 2 ] = ADD32( -in32, X ); + + hp_ener += out32_hp*(opus_val64)out32_hp; + /* Add, convert back to int16 and store to output */ + out[ k ] = HALF32(out32); + } +#ifdef FIXED_POINT + /* len2 can be up to 480, so we shift by 8 more to make it fit. */ + hp_ener = hp_ener >> (2*SIG_SHIFT + 8); +#endif + return (opus_val32)hp_ener; +} + +static opus_val32 downmix_and_resample(downmix_func downmix, const void *_x, opus_val32 *y, opus_val32 S[3], int subframe, int offset, int c1, int c2, int C, int Fs) +{ + VARDECL(opus_val32, tmp); + opus_val32 scale; + int j; + opus_val32 ret = 0; + SAVE_STACK; + + if (subframe==0) return 0; + if (Fs == 48000) + { + subframe *= 2; + offset *= 2; + } else if (Fs == 16000) { + subframe = subframe*2/3; + offset = offset*2/3; + } + ALLOC(tmp, subframe, opus_val32); + + downmix(_x, tmp, subframe, offset, c1, c2, C); +#ifdef FIXED_POINT + scale = (1<-1) + scale /= 2; + for (j=0;jarch = opus_select_arch(); + tonal->Fs = Fs; /* Clear remaining fields. */ tonality_analysis_reset(tonal); } @@ -133,15 +232,25 @@ void tonality_get_info(TonalityAnalysisState *tonal, AnalysisInfo *info_out, int { int pos; int curr_lookahead; - float psum; + float tonality_max; + float tonality_avg; + int tonality_count; int i; + int pos0; + float prob_avg; + float prob_count; + float prob_min, prob_max; + float vad_prob; + int mpos, vpos; + int bandwidth_span; pos = tonal->read_pos; curr_lookahead = tonal->write_pos-tonal->read_pos; if (curr_lookahead<0) curr_lookahead += DETECT_SIZE; - if (len > 480 && pos != tonal->write_pos) + /* On long frames, look at the second analysis window rather than the first. */ + if (len > tonal->Fs/50 && pos != tonal->write_pos) { pos++; if (pos==DETECT_SIZE) @@ -151,38 +260,166 @@ void tonality_get_info(TonalityAnalysisState *tonal, AnalysisInfo *info_out, int pos--; if (pos<0) pos = DETECT_SIZE-1; + pos0 = pos; OPUS_COPY(info_out, &tonal->info[pos], 1); - tonal->read_subframe += len/120; - while (tonal->read_subframe>=4) + tonality_max = tonality_avg = info_out->tonality; + tonality_count = 1; + /* Look at the neighbouring frames and pick largest bandwidth found (to be safe). */ + bandwidth_span = 6; + /* If possible, look ahead for a tone to compensate for the delay in the tone detector. */ + for (i=0;i<3;i++) { - tonal->read_subframe -= 4; + pos++; + if (pos==DETECT_SIZE) + pos = 0; + if (pos == tonal->write_pos) + break; + tonality_max = MAX32(tonality_max, tonal->info[pos].tonality); + tonality_avg += tonal->info[pos].tonality; + tonality_count++; + info_out->bandwidth = IMAX(info_out->bandwidth, tonal->info[pos].bandwidth); + bandwidth_span--; + } + pos = pos0; + /* Look back in time to see if any has a wider bandwidth than the current frame. */ + for (i=0;iwrite_pos) + break; + info_out->bandwidth = IMAX(info_out->bandwidth, tonal->info[pos].bandwidth); + } + info_out->tonality = MAX32(tonality_avg/tonality_count, tonality_max-.2f); + + mpos = vpos = pos0; + /* If we have enough look-ahead, compensate for the ~5-frame delay in the music prob and + ~1 frame delay in the VAD prob. */ + if (curr_lookahead > 15) + { + mpos += 5; + if (mpos>=DETECT_SIZE) + mpos -= DETECT_SIZE; + vpos += 1; + if (vpos>=DETECT_SIZE) + vpos -= DETECT_SIZE; + } + + /* The following calculations attempt to minimize a "badness function" + for the transition. When switching from speech to music, the badness + of switching at frame k is + b_k = S*v_k + \sum_{i=0}^{k-1} v_i*(p_i - T) + where + v_i is the activity probability (VAD) at frame i, + p_i is the music probability at frame i + T is the probability threshold for switching + S is the penalty for switching during active audio rather than silence + the current frame has index i=0 + + Rather than apply badness to directly decide when to switch, what we compute + instead is the threshold for which the optimal switching point is now. When + considering whether to switch now (frame 0) or at frame k, we have: + S*v_0 = S*v_k + \sum_{i=0}^{k-1} v_i*(p_i - T) + which gives us: + T = ( \sum_{i=0}^{k-1} v_i*p_i + S*(v_k-v_0) ) / ( \sum_{i=0}^{k-1} v_i ) + We take the min threshold across all positive values of k (up to the maximum + amount of lookahead we have) to give us the threshold for which the current + frame is the optimal switch point. + + The last step is that we need to consider whether we want to switch at all. + For that we use the average of the music probability over the entire window. + If the threshold is higher than that average we're not going to + switch, so we compute a min with the average as well. The result of all these + min operations is music_prob_min, which gives the threshold for switching to music + if we're currently encoding for speech. + + We do the exact opposite to compute music_prob_max which is used for switching + from music to speech. + */ + prob_min = 1.f; + prob_max = 0.f; + vad_prob = tonal->info[vpos].activity_probability; + prob_count = MAX16(.1f, vad_prob); + prob_avg = MAX16(.1f, vad_prob)*tonal->info[mpos].music_prob; + while (1) + { + float pos_vad; + mpos++; + if (mpos==DETECT_SIZE) + mpos = 0; + if (mpos == tonal->write_pos) + break; + vpos++; + if (vpos==DETECT_SIZE) + vpos = 0; + if (vpos == tonal->write_pos) + break; + pos_vad = tonal->info[vpos].activity_probability; + prob_min = MIN16((prob_avg - TRANSITION_PENALTY*(vad_prob - pos_vad))/prob_count, prob_min); + prob_max = MAX16((prob_avg + TRANSITION_PENALTY*(vad_prob - pos_vad))/prob_count, prob_max); + prob_count += MAX16(.1f, pos_vad); + prob_avg += MAX16(.1f, pos_vad)*tonal->info[mpos].music_prob; + } + info_out->music_prob = prob_avg/prob_count; + prob_min = MIN16(prob_avg/prob_count, prob_min); + prob_max = MAX16(prob_avg/prob_count, prob_max); + prob_min = MAX16(prob_min, 0.f); + prob_max = MIN16(prob_max, 1.f); + + /* If we don't have enough look-ahead, do our best to make a decent decision. */ + if (curr_lookahead < 10) + { + float pmin, pmax; + pmin = prob_min; + pmax = prob_max; + pos = pos0; + /* Look for min/max in the past. */ + for (i=0;icount-1, 15);i++) + { + pos--; + if (pos < 0) + pos = DETECT_SIZE-1; + pmin = MIN16(pmin, tonal->info[pos].music_prob); + pmax = MAX16(pmax, tonal->info[pos].music_prob); + } + /* Bias against switching on active audio. */ + pmin = MAX16(0.f, pmin - .1f*vad_prob); + pmax = MIN16(1.f, pmax + .1f*vad_prob); + prob_min += (1.f-.1f*curr_lookahead)*(pmin - prob_min); + prob_max += (1.f-.1f*curr_lookahead)*(pmax - prob_max); + } + info_out->music_prob_min = prob_min; + info_out->music_prob_max = prob_max; + + /* printf("%f %f %f %f %f\n", prob_min, prob_max, prob_avg/prob_count, vad_prob, info_out->music_prob); */ + tonal->read_subframe += len/(tonal->Fs/400); + while (tonal->read_subframe>=8) + { + tonal->read_subframe -= 8; tonal->read_pos++; } if (tonal->read_pos>=DETECT_SIZE) tonal->read_pos-=DETECT_SIZE; - - /* Compensate for the delay in the features themselves. - FIXME: Need a better estimate the 10 I just made up */ - curr_lookahead = IMAX(curr_lookahead-10, 0); - - psum=0; - /* Summing the probability of transition patterns that involve music at - time (DETECT_SIZE-curr_lookahead-1) */ - for (i=0;ipmusic[i]; - for (;ipspeech[i]; - psum = psum*tonal->music_confidence + (1-psum)*tonal->speech_confidence; - /*printf("%f %f %f\n", psum, info_out->music_prob, info_out->tonality);*/ - - info_out->music_prob = psum; } static const float std_feature_bias[9] = { - 5.684947, 3.475288, 1.770634, 1.599784, 3.773215, - 2.163313, 1.260756, 1.116868, 1.918795 + 5.684947f, 3.475288f, 1.770634f, 1.599784f, 3.773215f, + 2.163313f, 1.260756f, 1.116868f, 1.918795f }; +#define LEAKAGE_OFFSET 2.5f +#define LEAKAGE_SLOPE 2.f + +#ifdef FIXED_POINT +/* For fixed-point, the input is +/-2^15 shifted up by SIG_SHIFT, so we need to + compensate for that in the energy. */ +#define SCALE_COMPENS (1.f/((opus_int32)1<<(15+SIG_SHIFT))) +#define SCALE_ENER(e) ((SCALE_COMPENS*SCALE_COMPENS)*(e)) +#else +#define SCALE_ENER(e) (e) +#endif + static void tonality_analysis(TonalityAnalysisState *tonal, const CELTMode *celt_mode, const void *x, int len, int offset, int c1, int c2, int C, int lsb_depth, downmix_func downmix) { int i, b; @@ -211,24 +448,46 @@ static void tonality_analysis(TonalityAnalysisState *tonal, const CELTMode *celt float alpha, alphaE, alphaE2; float frame_loudness; float bandwidth_mask; + int is_masked[NB_TBANDS+1]; int bandwidth=0; float maxE = 0; float noise_floor; int remaining; AnalysisInfo *info; + float hp_ener; + float tonality2[240]; + float midE[8]; + float spec_variability=0; + float band_log2[NB_TBANDS+1]; + float leakage_from[NB_TBANDS+1]; + float leakage_to[NB_TBANDS+1]; + float layer_out[MAX_NEURONS]; + float below_max_pitch; + float above_max_pitch; SAVE_STACK; - tonal->last_transition++; - alpha = 1.f/IMIN(20, 1+tonal->count); - alphaE = 1.f/IMIN(50, 1+tonal->count); - alphaE2 = 1.f/IMIN(1000, 1+tonal->count); + alpha = 1.f/IMIN(10, 1+tonal->count); + alphaE = 1.f/IMIN(25, 1+tonal->count); + /* Noise floor related decay for bandwidth detection: -2.2 dB/second */ + alphaE2 = 1.f/IMIN(100, 1+tonal->count); + if (tonal->count <= 1) alphaE2 = 1; + + if (tonal->Fs == 48000) + { + /* len and offset are now at 24 kHz. */ + len/= 2; + offset /= 2; + } else if (tonal->Fs == 16000) { + len = 3*len/2; + offset = 3*offset/2; + } - if (tonal->count<4) - tonal->music_prob = .5; kfft = celt_mode->mdct.kfft[0]; if (tonal->count==0) tonal->mem_fill = 240; - downmix(x, &tonal->inmem[tonal->mem_fill], IMIN(len, ANALYSIS_BUF_SIZE-tonal->mem_fill), offset, c1, c2, C); + tonal->hp_ener_accum += (float)downmix_and_resample(downmix, x, + &tonal->inmem[tonal->mem_fill], tonal->downmix_state, + IMIN(len, ANALYSIS_BUF_SIZE-tonal->mem_fill), offset, c1, c2, C, tonal->Fs); if (tonal->mem_fill+len < ANALYSIS_BUF_SIZE) { tonal->mem_fill += len; @@ -236,6 +495,7 @@ static void tonality_analysis(TonalityAnalysisState *tonal, const CELTMode *celt RESTORE_STACK; return; } + hp_ener = tonal->hp_ener_accum; info = &tonal->info[tonal->write_pos++]; if (tonal->write_pos>=DETECT_SIZE) tonal->write_pos-=DETECT_SIZE; @@ -254,7 +514,9 @@ static void tonality_analysis(TonalityAnalysisState *tonal, const CELTMode *celt } OPUS_MOVE(tonal->inmem, tonal->inmem+ANALYSIS_BUF_SIZE-240, 240); remaining = len - (ANALYSIS_BUF_SIZE-tonal->mem_fill); - downmix(x, &tonal->inmem[240], remaining, offset+ANALYSIS_BUF_SIZE-tonal->mem_fill, c1, c2, C); + tonal->hp_ener_accum = (float)downmix_and_resample(downmix, x, + &tonal->inmem[240], tonal->downmix_state, remaining, + offset+ANALYSIS_BUF_SIZE-tonal->mem_fill, c1, c2, C, tonal->Fs); tonal->mem_fill = 240 + remaining; opus_fft(kfft, in, out, tonal->arch); #ifndef FIXED_POINT @@ -286,24 +548,31 @@ static void tonality_analysis(TonalityAnalysisState *tonal, const CELTMode *celt d_angle2 = angle2 - angle; d2_angle2 = d_angle2 - d_angle; - mod1 = d2_angle - (float)floor(.5+d2_angle); + mod1 = d2_angle - (float)float2int(d2_angle); noisiness[i] = ABS16(mod1); mod1 *= mod1; mod1 *= mod1; - mod2 = d2_angle2 - (float)floor(.5+d2_angle2); + mod2 = d2_angle2 - (float)float2int(d2_angle2); noisiness[i] += ABS16(mod2); mod2 *= mod2; mod2 *= mod2; - avg_mod = .25f*(d2A[i]+2.f*mod1+mod2); + avg_mod = .25f*(d2A[i]+mod1+2*mod2); + /* This introduces an extra delay of 2 frames in the detection. */ tonality[i] = 1.f/(1.f+40.f*16.f*pi4*avg_mod)-.015f; + /* No delay on this detection, but it's less reliable. */ + tonality2[i] = 1.f/(1.f+40.f*16.f*pi4*mod2)-.015f; A[i] = angle2; dA[i] = d_angle2; d2A[i] = mod2; } - + for (i=2;ilowE[b] = MIN32(logE[b], tonal->lowE[b]+.01f); - tonal->highE[b] = MAX32(logE[b], tonal->highE[b]-.1f); - if (tonal->highE[b] < tonal->lowE[b]+1.f) + band_log2[b+1] = .5f*1.442695f*(float)log(E+1e-10f); + tonal->logE[tonal->E_count][b] = logE[b]; + if (tonal->count==0) + tonal->highE[b] = tonal->lowE[b] = logE[b]; + if (tonal->highE[b] > tonal->lowE[b] + 7.5) { - tonal->highE[b]+=.5f; - tonal->lowE[b]-=.5f; + if (tonal->highE[b] - logE[b] > logE[b] - tonal->lowE[b]) + tonal->highE[b] -= .01f; + else + tonal->lowE[b] += .01f; } - relativeE += (logE[b]-tonal->lowE[b])/(1e-15f+tonal->highE[b]-tonal->lowE[b]); + if (logE[b] > tonal->highE[b]) + { + tonal->highE[b] = logE[b]; + tonal->lowE[b] = MAX32(tonal->highE[b]-15, tonal->lowE[b]); + } else if (logE[b] < tonal->lowE[b]) + { + tonal->lowE[b] = logE[b]; + tonal->highE[b] = MIN32(tonal->lowE[b]+15, tonal->highE[b]); + } + relativeE += (logE[b]-tonal->lowE[b])/(1e-15f + (tonal->highE[b]-tonal->lowE[b])); L1=L2=0; for (i=0;iprev_band_tonality[b] = band_tonality[b]; } + leakage_from[0] = band_log2[0]; + leakage_to[0] = band_log2[0] - LEAKAGE_OFFSET; + for (b=1;b=0;b--) + { + float leak_slope = LEAKAGE_SLOPE*(tbands[b+1]-tbands[b])/4; + leakage_from[b] = MIN16(leakage_from[b+1]+leak_slope, leakage_from[b]); + leakage_to[b] = MAX16(leakage_to[b+1]-leak_slope, leakage_to[b]); + } + celt_assert(NB_TBANDS+1 <= LEAK_BANDS); + for (b=0;bleak_boost[b] = IMIN(255, (int)floor(.5 + 64.f*boost)); + } + for (;bleak_boost[b] = 0; + + for (i=0;ilogE[i][k] - tonal->logE[j][k]; + dist += tmp*tmp; + } + if (j!=i) + mindist = MIN32(mindist, dist); + } + spec_variability += mindist; + } + spec_variability = (float)sqrt(spec_variability/NB_FRAMES/NB_TBANDS); bandwidth_mask = 0; bandwidth = 0; maxE = 0; noise_floor = 5.7e-4f/(1<<(IMAX(0,lsb_depth-8))); -#ifdef FIXED_POINT - noise_floor *= 1<<(15+SIG_SHIFT); -#endif noise_floor *= noise_floor; - for (b=0;bmeanE[b] = MAX32((1-alphaE2)*tonal->meanE[b], E); - E = MAX32(E, tonal->meanE[b]); - /* Use a simple follower with 13 dB/Bark slope for spreading function */ - bandwidth_mask = MAX32(.05f*bandwidth_mask, E); + Em = MAX32(E, tonal->meanE[b]); /* Consider the band "active" only if all these conditions are met: - 1) less than 10 dB below the simple follower - 2) less than 90 dB below the peak band (maximal masking possible considering + 1) less than 90 dB below the peak band (maximal masking possible considering both the ATH and the loudness-dependent slope of the spreading function) - 3) above the PCM quantization noise floor + 2) above the PCM quantization noise floor + We use b+1 because the first CELT band isn't included in tbands[] */ - if (E>.1*bandwidth_mask && E*1e9f > maxE && E > noise_floor*(band_end-band_start)) - bandwidth = b; + if (E*1e9f > maxE && (Em > 3*noise_floor*(band_end-band_start) || E > noise_floor*(band_end-band_start))) + bandwidth = b+1; + /* Check if the band is masked (see below). */ + is_masked[b] = E < (tonal->prev_bandwidth >= b+1 ? .01f : .05f)*bandwidth_mask; + /* Use a simple follower with 13 dB/Bark slope for spreading function. */ + bandwidth_mask = MAX32(.05f*bandwidth_mask, E); } + /* Special case for the last two bands, for which we don't have spectrum but only + the energy above 12 kHz. The difficulty here is that the high-pass we use + leaks some LF energy, so we need to increase the threshold without accidentally cutting + off the band. */ + if (tonal->Fs == 48000) { + float noise_ratio; + float Em; + float E = hp_ener*(1.f/(60*60)); + noise_ratio = tonal->prev_bandwidth==20 ? 10.f : 30.f; + +#ifdef FIXED_POINT + /* silk_resampler_down2_hp() shifted right by an extra 8 bits. */ + E *= 256.f*(1.f/Q15ONE)*(1.f/Q15ONE); +#endif + above_max_pitch += E; + tonal->meanE[b] = MAX32((1-alphaE2)*tonal->meanE[b], E); + Em = MAX32(E, tonal->meanE[b]); + if (Em > 3*noise_ratio*noise_floor*160 || E > noise_ratio*noise_floor*160) + bandwidth = 20; + /* Check if the band is masked (see below). */ + is_masked[b] = E < (tonal->prev_bandwidth == 20 ? .01f : .05f)*bandwidth_mask; + } + if (above_max_pitch > below_max_pitch) + info->max_pitch_ratio = below_max_pitch/above_max_pitch; + else + info->max_pitch_ratio = 1; + /* In some cases, resampling aliasing can create a small amount of energy in the first band + being cut. So if the last band is masked, we don't include it. */ + if (bandwidth == 20 && is_masked[NB_TBANDS]) + bandwidth-=2; + else if (bandwidth > 0 && bandwidth <= NB_TBANDS && is_masked[bandwidth-1]) + bandwidth--; if (tonal->count<=2) bandwidth = 20; frame_loudness = 20*(float)log10(frame_loudness); - tonal->Etracker = MAX32(tonal->Etracker-.03f, frame_loudness); + tonal->Etracker = MAX32(tonal->Etracker-.003f, frame_loudness); tonal->lowECount *= (1-alphaE); if (frame_loudness < tonal->Etracker-30) tonal->lowECount += alphaE; @@ -441,11 +826,18 @@ static void tonality_analysis(TonalityAnalysisState *tonal, const CELTMode *celt sum += dct_table[i*16+b]*logE[b]; BFCC[i] = sum; } + for (i=0;i<8;i++) + { + float sum=0; + for (b=0;b<16;b++) + sum += dct_table[i*16+b]*.5f*(tonal->highE[b]+tonal->lowE[b]); + midE[i] = sum; + } frame_stationarity /= NB_TBANDS; relativeE /= NB_TBANDS; if (tonal->count<10) - relativeE = .5; + relativeE = .5f; frame_noisiness /= NB_TBANDS; #if 1 info->activity = frame_noisiness + (1-frame_noisiness)*relativeE; @@ -460,7 +852,7 @@ static void tonality_analysis(TonalityAnalysisState *tonal, const CELTMode *celt info->tonality_slope = slope; tonal->E_count = (tonal->E_count+1)%NB_FRAMES; - tonal->count++; + tonal->count = IMIN(tonal->count+1, ANALYSIS_COUNT_MAX); info->tonality = frame_tonality; for (i=0;i<4;i++) @@ -479,6 +871,8 @@ static void tonality_analysis(TonalityAnalysisState *tonal, const CELTMode *celt for (i=0;i<9;i++) tonal->std[i] = (1-alpha)*tonal->std[i] + alpha*features[i]*features[i]; } + for (i=0;i<4;i++) + features[i] = BFCC[i]-midE[i]; for (i=0;i<8;i++) { @@ -489,139 +883,30 @@ static void tonality_analysis(TonalityAnalysisState *tonal, const CELTMode *celt } for (i=0;i<9;i++) features[11+i] = (float)sqrt(tonal->std[i]) - std_feature_bias[i]; - features[20] = info->tonality - 0.154723; - features[21] = info->activity - 0.724643; - features[22] = frame_stationarity - 0.743717; - features[23] = info->tonality_slope + 0.069216; - features[24] = tonal->lowECount - 0.067930; + features[18] = spec_variability - 0.78f; + features[20] = info->tonality - 0.154723f; + features[21] = info->activity - 0.724643f; + features[22] = frame_stationarity - 0.743717f; + features[23] = info->tonality_slope + 0.069216f; + features[24] = tonal->lowECount - 0.067930f; -#ifndef DISABLE_FLOAT_API - mlp_process(&net, features, frame_probs); - frame_probs[0] = .5f*(frame_probs[0]+1); - /* Curve fitting between the MLP probability and the actual probability */ - /*frame_probs[0] = .01f + 1.21f*frame_probs[0]*frame_probs[0] - .23f*(float)pow(frame_probs[0], 10);*/ - /* Probability of active audio (as opposed to silence) */ - frame_probs[1] = .5f*frame_probs[1]+.5f; - frame_probs[1] *= frame_probs[1]; - /* Consider that silence has a 50-50 probability. */ - frame_probs[0] = frame_probs[1]*frame_probs[0] + (1-frame_probs[1])*.5f; + compute_dense(&layer0, layer_out, features); + compute_gru(&layer1, tonal->rnn_state, layer_out); + compute_dense(&layer2, frame_probs, tonal->rnn_state); /* Probability of speech or music vs noise */ info->activity_probability = frame_probs[1]; + info->music_prob = frame_probs[0]; - /*printf("%f %f\n", frame_probs[0], frame_probs[1]);*/ - { - /* Probability of state transition */ - float tau; - /* Represents independence of the MLP probabilities, where - beta=1 means fully independent. */ - float beta; - /* Denormalized probability of speech (p0) and music (p1) after update */ - float p0, p1; - /* Probabilities for "all speech" and "all music" */ - float s0, m0; - /* Probability sum for renormalisation */ - float psum; - /* Instantaneous probability of speech and music, with beta pre-applied. */ - float speech0; - float music0; - float p, q; - - /* One transition every 3 minutes of active audio */ - tau = .00005f*frame_probs[1]; - /* Adapt beta based on how "unexpected" the new prob is */ - p = MAX16(.05f,MIN16(.95f,frame_probs[0])); - q = MAX16(.05f,MIN16(.95f,tonal->music_prob)); - beta = .01f+.05f*ABS16(p-q)/(p*(1-q)+q*(1-p)); - /* p0 and p1 are the probabilities of speech and music at this frame - using only information from previous frame and applying the - state transition model */ - p0 = (1-tonal->music_prob)*(1-tau) + tonal->music_prob *tau; - p1 = tonal->music_prob *(1-tau) + (1-tonal->music_prob)*tau; - /* We apply the current probability with exponent beta to work around - the fact that the probability estimates aren't independent. */ - p0 *= (float)pow(1-frame_probs[0], beta); - p1 *= (float)pow(frame_probs[0], beta); - /* Normalise the probabilities to get the Marokv probability of music. */ - tonal->music_prob = p1/(p0+p1); - info->music_prob = tonal->music_prob; - - /* This chunk of code deals with delayed decision. */ - psum=1e-20f; - /* Instantaneous probability of speech and music, with beta pre-applied. */ - speech0 = (float)pow(1-frame_probs[0], beta); - music0 = (float)pow(frame_probs[0], beta); - if (tonal->count==1) - { - tonal->pspeech[0]=.5; - tonal->pmusic [0]=.5; - } - /* Updated probability of having only speech (s0) or only music (m0), - before considering the new observation. */ - s0 = tonal->pspeech[0] + tonal->pspeech[1]; - m0 = tonal->pmusic [0] + tonal->pmusic [1]; - /* Updates s0 and m0 with instantaneous probability. */ - tonal->pspeech[0] = s0*(1-tau)*speech0; - tonal->pmusic [0] = m0*(1-tau)*music0; - /* Propagate the transition probabilities */ - for (i=1;ipspeech[i] = tonal->pspeech[i+1]*speech0; - tonal->pmusic [i] = tonal->pmusic [i+1]*music0; - } - /* Probability that the latest frame is speech, when all the previous ones were music. */ - tonal->pspeech[DETECT_SIZE-1] = m0*tau*speech0; - /* Probability that the latest frame is music, when all the previous ones were speech. */ - tonal->pmusic [DETECT_SIZE-1] = s0*tau*music0; - - /* Renormalise probabilities to 1 */ - for (i=0;ipspeech[i] + tonal->pmusic[i]; - psum = 1.f/psum; - for (i=0;ipspeech[i] *= psum; - tonal->pmusic [i] *= psum; - } - psum = tonal->pmusic[0]; - for (i=1;ipspeech[i]; - - /* Estimate our confidence in the speech/music decisions */ - if (frame_probs[1]>.75) - { - if (tonal->music_prob>.9) - { - float adapt; - adapt = 1.f/(++tonal->music_confidence_count); - tonal->music_confidence_count = IMIN(tonal->music_confidence_count, 500); - tonal->music_confidence += adapt*MAX16(-.2f,frame_probs[0]-tonal->music_confidence); - } - if (tonal->music_prob<.1) - { - float adapt; - adapt = 1.f/(++tonal->speech_confidence_count); - tonal->speech_confidence_count = IMIN(tonal->speech_confidence_count, 500); - tonal->speech_confidence += adapt*MIN16(.2f,frame_probs[0]-tonal->speech_confidence); - } - } else { - if (tonal->music_confidence_count==0) - tonal->music_confidence = .9f; - if (tonal->speech_confidence_count==0) - tonal->speech_confidence = .1f; - } - } - if (tonal->last_music != (tonal->music_prob>.5f)) - tonal->last_transition=0; - tonal->last_music = tonal->music_prob>.5f; -#else - info->music_prob = 0; -#endif - /*for (i=0;i<25;i++) + /*printf("%f %f %f\n", frame_probs[0], frame_probs[1], info->music_prob);*/ +#ifdef MLP_TRAINING + for (i=0;i<25;i++) printf("%f ", features[i]); - printf("\n");*/ + printf("\n"); +#endif info->bandwidth = bandwidth; + tonal->prev_bandwidth = bandwidth; /*printf("%d %d\n", info->bandwidth, info->opus_bandwidth);*/ info->noisiness = frame_noisiness; info->valid = 1; @@ -635,17 +920,18 @@ void run_analysis(TonalityAnalysisState *analysis, const CELTMode *celt_mode, co int offset; int pcm_len; + analysis_frame_size -= analysis_frame_size&1; if (analysis_pcm != NULL) { /* Avoid overflow/wrap-around of the analysis buffer */ - analysis_frame_size = IMIN((DETECT_SIZE-5)*Fs/100, analysis_frame_size); + analysis_frame_size = IMIN((DETECT_SIZE-5)*Fs/50, analysis_frame_size); pcm_len = analysis_frame_size - analysis->analysis_offset; offset = analysis->analysis_offset; while (pcm_len>0) { - tonality_analysis(analysis, celt_mode, analysis_pcm, IMIN(480, pcm_len), offset, c1, c2, C, lsb_depth, downmix); - offset += 480; - pcm_len -= 480; + tonality_analysis(analysis, celt_mode, analysis_pcm, IMIN(Fs/50, pcm_len), offset, c1, c2, C, lsb_depth, downmix); + offset += Fs/50; + pcm_len -= Fs/50; } analysis->analysis_offset = analysis_frame_size; @@ -655,3 +941,5 @@ void run_analysis(TonalityAnalysisState *analysis, const CELTMode *celt_mode, co analysis_info->valid = 0; tonality_get_info(analysis, analysis_info, frame_size); } + +#endif /* DISABLE_FLOAT_API */ diff --git a/TMessagesProj/jni/opus/src/analysis.h b/TMessagesProj/jni/opus/src/analysis.h index 9eae56a52..289c845e8 100644 --- a/TMessagesProj/jni/opus/src/analysis.h +++ b/TMessagesProj/jni/opus/src/analysis.h @@ -30,16 +30,24 @@ #include "celt.h" #include "opus_private.h" +#include "mlp.h" #define NB_FRAMES 8 #define NB_TBANDS 18 -#define NB_TOT_BANDS 21 -#define ANALYSIS_BUF_SIZE 720 /* 15 ms at 48 kHz */ +#define ANALYSIS_BUF_SIZE 720 /* 30 ms at 24 kHz */ -#define DETECT_SIZE 200 +/* At that point we can stop counting frames because it no longer matters. */ +#define ANALYSIS_COUNT_MAX 10000 + +#define DETECT_SIZE 100 + +/* Uncomment this to print the MLP features on stdout. */ +/*#define MLP_TRAINING*/ typedef struct { int arch; + int application; + opus_int32 Fs; #define TONALITY_ANALYSIS_RESET_START angle float angle[240]; float d_angle[240]; @@ -48,35 +56,26 @@ typedef struct { int mem_fill; /* number of usable samples in the buffer */ float prev_band_tonality[NB_TBANDS]; float prev_tonality; + int prev_bandwidth; float E[NB_FRAMES][NB_TBANDS]; + float logE[NB_FRAMES][NB_TBANDS]; float lowE[NB_TBANDS]; float highE[NB_TBANDS]; - float meanE[NB_TOT_BANDS]; + float meanE[NB_TBANDS+1]; float mem[32]; float cmean[8]; float std[9]; - float music_prob; float Etracker; float lowECount; int E_count; - int last_music; - int last_transition; int count; - float subframe_mem[3]; int analysis_offset; - /** Probability of having speech for time i to DETECT_SIZE-1 (and music before). - pspeech[0] is the probability that all frames in the window are speech. */ - float pspeech[DETECT_SIZE]; - /** Probability of having music for time i to DETECT_SIZE-1 (and speech before). - pmusic[0] is the probability that all frames in the window are music. */ - float pmusic[DETECT_SIZE]; - float speech_confidence; - float music_confidence; - int speech_confidence_count; - int music_confidence_count; int write_pos; int read_pos; int read_subframe; + float hp_ener_accum; + float rnn_state[MAX_NEURONS]; + opus_val32 downmix_state[3]; AnalysisInfo info[DETECT_SIZE]; } TonalityAnalysisState; @@ -86,7 +85,7 @@ typedef struct { * not be repeated every analysis step. No allocated memory is retained * by the state struct, so no cleanup call is required. */ -void tonality_analysis_init(TonalityAnalysisState *analysis); +void tonality_analysis_init(TonalityAnalysisState *analysis, opus_int32 Fs); /** Reset a TonalityAnalysisState stuct. * diff --git a/TMessagesProj/jni/opus/src/mapping_matrix.c b/TMessagesProj/jni/opus/src/mapping_matrix.c new file mode 100644 index 000000000..31298af05 --- /dev/null +++ b/TMessagesProj/jni/opus/src/mapping_matrix.c @@ -0,0 +1,378 @@ +/* Copyright (c) 2017 Google Inc. + Written by Andrew Allen */ +/* + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "arch.h" +#include "float_cast.h" +#include "opus_private.h" +#include "opus_defines.h" +#include "mapping_matrix.h" + +#define MATRIX_INDEX(nb_rows, row, col) (nb_rows * col + row) + +opus_int32 mapping_matrix_get_size(int rows, int cols) +{ + opus_int32 size; + + /* Mapping Matrix must only support up to 255 channels in or out. + * Additionally, the total cell count must be <= 65004 octets in order + * for the matrix to be stored in an OGG header. + */ + if (rows > 255 || cols > 255) + return 0; + size = rows * (opus_int32)cols * sizeof(opus_int16); + if (size > 65004) + return 0; + + return align(sizeof(MappingMatrix)) + align(size); +} + +opus_int16 *mapping_matrix_get_data(const MappingMatrix *matrix) +{ + /* void* cast avoids clang -Wcast-align warning */ + return (opus_int16*)(void*)((char*)matrix + align(sizeof(MappingMatrix))); +} + +void mapping_matrix_init(MappingMatrix * const matrix, + int rows, int cols, int gain, const opus_int16 *data, opus_int32 data_size) +{ + int i; + opus_int16 *ptr; + +#if !defined(ENABLE_ASSERTIONS) + (void)data_size; +#endif + celt_assert(align(data_size) == align(rows * cols * sizeof(opus_int16))); + + matrix->rows = rows; + matrix->cols = cols; + matrix->gain = gain; + ptr = mapping_matrix_get_data(matrix); + for (i = 0; i < rows * cols; i++) + { + ptr[i] = data[i]; + } +} + +#ifndef DISABLE_FLOAT_API +void mapping_matrix_multiply_channel_in_float( + const MappingMatrix *matrix, + const float *input, + int input_rows, + opus_val16 *output, + int output_row, + int output_rows, + int frame_size) +{ + /* Matrix data is ordered col-wise. */ + opus_int16* matrix_data; + int i, col; + + celt_assert(input_rows <= matrix->cols && output_rows <= matrix->rows); + + matrix_data = mapping_matrix_get_data(matrix); + + for (i = 0; i < frame_size; i++) + { + float tmp = 0; + for (col = 0; col < input_rows; col++) + { + tmp += + matrix_data[MATRIX_INDEX(matrix->rows, output_row, col)] * + input[MATRIX_INDEX(input_rows, col, i)]; + } +#if defined(FIXED_POINT) + output[output_rows * i] = FLOAT2INT16((1/32768.f)*tmp); +#else + output[output_rows * i] = (1/32768.f)*tmp; +#endif + } +} + +void mapping_matrix_multiply_channel_out_float( + const MappingMatrix *matrix, + const opus_val16 *input, + int input_row, + int input_rows, + float *output, + int output_rows, + int frame_size +) +{ + /* Matrix data is ordered col-wise. */ + opus_int16* matrix_data; + int i, row; + float input_sample; + + celt_assert(input_rows <= matrix->cols && output_rows <= matrix->rows); + + matrix_data = mapping_matrix_get_data(matrix); + + for (i = 0; i < frame_size; i++) + { +#if defined(FIXED_POINT) + input_sample = (1/32768.f)*input[input_rows * i]; +#else + input_sample = input[input_rows * i]; +#endif + for (row = 0; row < output_rows; row++) + { + float tmp = + (1/32768.f)*matrix_data[MATRIX_INDEX(matrix->rows, row, input_row)] * + input_sample; + output[MATRIX_INDEX(output_rows, row, i)] += tmp; + } + } +} +#endif /* DISABLE_FLOAT_API */ + +void mapping_matrix_multiply_channel_in_short( + const MappingMatrix *matrix, + const opus_int16 *input, + int input_rows, + opus_val16 *output, + int output_row, + int output_rows, + int frame_size) +{ + /* Matrix data is ordered col-wise. */ + opus_int16* matrix_data; + int i, col; + + celt_assert(input_rows <= matrix->cols && output_rows <= matrix->rows); + + matrix_data = mapping_matrix_get_data(matrix); + + for (i = 0; i < frame_size; i++) + { + opus_val32 tmp = 0; + for (col = 0; col < input_rows; col++) + { +#if defined(FIXED_POINT) + tmp += + ((opus_int32)matrix_data[MATRIX_INDEX(matrix->rows, output_row, col)] * + (opus_int32)input[MATRIX_INDEX(input_rows, col, i)]) >> 8; +#else + tmp += + matrix_data[MATRIX_INDEX(matrix->rows, output_row, col)] * + input[MATRIX_INDEX(input_rows, col, i)]; +#endif + } +#if defined(FIXED_POINT) + output[output_rows * i] = (opus_int16)((tmp + 64) >> 7); +#else + output[output_rows * i] = (1/(32768.f*32768.f))*tmp; +#endif + } +} + +void mapping_matrix_multiply_channel_out_short( + const MappingMatrix *matrix, + const opus_val16 *input, + int input_row, + int input_rows, + opus_int16 *output, + int output_rows, + int frame_size) +{ + /* Matrix data is ordered col-wise. */ + opus_int16* matrix_data; + int i, row; + opus_int32 input_sample; + + celt_assert(input_rows <= matrix->cols && output_rows <= matrix->rows); + + matrix_data = mapping_matrix_get_data(matrix); + + for (i = 0; i < frame_size; i++) + { +#if defined(FIXED_POINT) + input_sample = (opus_int32)input[input_rows * i]; +#else + input_sample = (opus_int32)FLOAT2INT16(input[input_rows * i]); +#endif + for (row = 0; row < output_rows; row++) + { + opus_int32 tmp = + (opus_int32)matrix_data[MATRIX_INDEX(matrix->rows, row, input_row)] * + input_sample; + output[MATRIX_INDEX(output_rows, row, i)] += (tmp + 16384) >> 15; + } + } +} + +const MappingMatrix mapping_matrix_foa_mixing = { 6, 6, 0 }; +const opus_int16 mapping_matrix_foa_mixing_data[36] = { + 16384, 0, -16384, 23170, 0, 0, 16384, 23170, + 16384, 0, 0, 0, 16384, 0, -16384, -23170, + 0, 0, 16384, -23170, 16384, 0, 0, 0, + 0, 0, 0, 0, 32767, 0, 0, 0, + 0, 0, 0, 32767 +}; + +const MappingMatrix mapping_matrix_soa_mixing = { 11, 11, 0 }; +const opus_int16 mapping_matrix_soa_mixing_data[121] = { + 10923, 7723, 13377, -13377, 11585, 9459, 7723, -16384, + -6689, 0, 0, 10923, 7723, 13377, 13377, -11585, + 9459, 7723, 16384, -6689, 0, 0, 10923, -15447, + 13377, 0, 0, -18919, 7723, 0, 13377, 0, + 0, 10923, 7723, -13377, -13377, 11585, -9459, 7723, + 16384, -6689, 0, 0, 10923, -7723, 0, 13377, + -16384, 0, -15447, 0, 9459, 0, 0, 10923, + -7723, 0, -13377, 16384, 0, -15447, 0, 9459, + 0, 0, 10923, 15447, 0, 0, 0, 0, + -15447, 0, -18919, 0, 0, 10923, 7723, -13377, + 13377, -11585, -9459, 7723, -16384, -6689, 0, 0, + 10923, -15447, -13377, 0, 0, 18919, 7723, 0, + 13377, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32767, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 32767 +}; + +const MappingMatrix mapping_matrix_toa_mixing = { 18, 18, 0 }; +const opus_int16 mapping_matrix_toa_mixing_data[324] = { + 8208, 0, -881, 14369, 0, 0, -8192, -4163, + 13218, 0, 0, 0, 11095, -8836, -6218, 14833, + 0, 0, 8208, -10161, 881, 10161, -13218, -2944, + -8192, 2944, 0, -10488, -6218, 6248, -11095, -6248, + 0, -10488, 0, 0, 8208, 10161, 881, -10161, + -13218, 2944, -8192, -2944, 0, 10488, -6218, -6248, + -11095, 6248, 0, 10488, 0, 0, 8176, 5566, + -11552, 5566, 9681, -11205, 8192, -11205, 0, 4920, + -15158, 9756, -3334, 9756, 0, -4920, 0, 0, + 8176, 7871, 11552, 0, 0, 15846, 8192, 0, + -9681, -6958, 0, 13797, 3334, 0, -15158, 0, + 0, 0, 8176, 0, 11552, 7871, 0, 0, + 8192, 15846, 9681, 0, 0, 0, 3334, 13797, + 15158, 6958, 0, 0, 8176, 5566, -11552, -5566, + -9681, -11205, 8192, 11205, 0, 4920, 15158, 9756, + -3334, -9756, 0, 4920, 0, 0, 8208, 14369, + -881, 0, 0, -4163, -8192, 0, -13218, -14833, + 0, -8836, 11095, 0, 6218, 0, 0, 0, + 8208, 10161, 881, 10161, 13218, 2944, -8192, 2944, + 0, 10488, 6218, -6248, -11095, -6248, 0, -10488, + 0, 0, 8208, -14369, -881, 0, 0, 4163, + -8192, 0, -13218, 14833, 0, 8836, 11095, 0, + 6218, 0, 0, 0, 8208, 0, -881, -14369, + 0, 0, -8192, 4163, 13218, 0, 0, 0, + 11095, 8836, -6218, -14833, 0, 0, 8176, -5566, + -11552, 5566, -9681, 11205, 8192, -11205, 0, -4920, + 15158, -9756, -3334, 9756, 0, -4920, 0, 0, + 8176, 0, 11552, -7871, 0, 0, 8192, -15846, + 9681, 0, 0, 0, 3334, -13797, 15158, -6958, + 0, 0, 8176, -7871, 11552, 0, 0, -15846, + 8192, 0, -9681, 6958, 0, -13797, 3334, 0, + -15158, 0, 0, 0, 8176, -5566, -11552, -5566, + 9681, 11205, 8192, 11205, 0, -4920, -15158, -9756, + -3334, -9756, 0, 4920, 0, 0, 8208, -10161, + 881, -10161, 13218, -2944, -8192, -2944, 0, -10488, + 6218, 6248, -11095, 6248, 0, 10488, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 32767, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 32767 +}; + +const MappingMatrix mapping_matrix_foa_demixing = { 6, 6, 0 }; +const opus_int16 mapping_matrix_foa_demixing_data[36] = { + 16384, 16384, 16384, 16384, 0, 0, 0, 23170, + 0, -23170, 0, 0, -16384, 16384, -16384, 16384, + 0, 0, 23170, 0, -23170, 0, 0, 0, + 0, 0, 0, 0, 32767, 0, 0, 0, + 0, 0, 0, 32767 +}; + +const MappingMatrix mapping_matrix_soa_demixing = { 11, 11, 3050 }; +const opus_int16 mapping_matrix_soa_demixing_data[121] = { + 2771, 2771, 2771, 2771, 2771, 2771, 2771, 2771, + 2771, 0, 0, 10033, 10033, -20066, 10033, 14189, + 14189, -28378, 10033, -20066, 0, 0, 3393, 3393, + 3393, -3393, 0, 0, 0, -3393, -3393, 0, + 0, -17378, 17378, 0, -17378, -24576, 24576, 0, + 17378, 0, 0, 0, -14189, 14189, 0, -14189, + -28378, 28378, 0, 14189, 0, 0, 0, 2399, + 2399, -4799, -2399, 0, 0, 0, -2399, 4799, + 0, 0, 1959, 1959, 1959, 1959, -3918, -3918, + -3918, 1959, 1959, 0, 0, -4156, 4156, 0, + 4156, 0, 0, 0, -4156, 0, 0, 0, + 8192, 8192, -16384, 8192, 16384, 16384, -32768, 8192, + -16384, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 8312, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 8312 +}; + +const MappingMatrix mapping_matrix_toa_demixing = { 18, 18, 0 }; +const opus_int16 mapping_matrix_toa_demixing_data[324] = { + 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, + 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, + 0, 0, 0, -9779, 9779, 6263, 8857, 0, + 6263, 13829, 9779, -13829, 0, -6263, 0, -8857, + -6263, -9779, 0, 0, -3413, 3413, 3413, -11359, + 11359, 11359, -11359, -3413, 3413, -3413, -3413, -11359, + 11359, 11359, -11359, 3413, 0, 0, 13829, 9779, + -9779, 6263, 0, 8857, -6263, 0, 9779, 0, + -13829, 6263, -8857, 0, -6263, -9779, 0, 0, + 0, -15617, -15617, 6406, 0, 0, -6406, 0, + 15617, 0, 0, -6406, 0, 0, 6406, 15617, + 0, 0, 0, -5003, 5003, -10664, 15081, 0, + -10664, -7075, 5003, 7075, 0, 10664, 0, -15081, + 10664, -5003, 0, 0, -8176, -8176, -8176, 8208, + 8208, 8208, 8208, -8176, -8176, -8176, -8176, 8208, + 8208, 8208, 8208, -8176, 0, 0, -7075, 5003, + -5003, -10664, 0, 15081, 10664, 0, 5003, 0, + 7075, -10664, -15081, 0, 10664, -5003, 0, 0, + 15617, 0, 0, 0, -6406, 6406, 0, -15617, + 0, -15617, 15617, 0, 6406, -6406, 0, 0, + 0, 0, 0, -11393, 11393, 2993, -4233, 0, + 2993, -16112, 11393, 16112, 0, -2993, 0, 4233, + -2993, -11393, 0, 0, 0, -9974, -9974, -13617, + 0, 0, 13617, 0, 9974, 0, 0, 13617, + 0, 0, -13617, 9974, 0, 0, 0, 5579, + -5579, 10185, 14403, 0, 10185, -7890, -5579, 7890, + 0, -10185, 0, -14403, -10185, 5579, 0, 0, + 11826, -11826, -11826, -901, 901, 901, -901, 11826, + -11826, 11826, 11826, -901, 901, 901, -901, -11826, + 0, 0, -7890, -5579, 5579, 10185, 0, 14403, + -10185, 0, -5579, 0, 7890, 10185, -14403, 0, + -10185, 5579, 0, 0, -9974, 0, 0, 0, + -13617, 13617, 0, 9974, 0, 9974, -9974, 0, + 13617, -13617, 0, 0, 0, 0, 16112, -11393, + 11393, -2993, 0, 4233, 2993, 0, -11393, 0, + -16112, -2993, -4233, 0, 2993, 11393, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 32767, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 32767 +}; + diff --git a/TMessagesProj/jni/opus/src/mapping_matrix.h b/TMessagesProj/jni/opus/src/mapping_matrix.h new file mode 100644 index 000000000..9c20483e7 --- /dev/null +++ b/TMessagesProj/jni/opus/src/mapping_matrix.h @@ -0,0 +1,133 @@ +/* Copyright (c) 2017 Google Inc. + Written by Andrew Allen */ +/* + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + - Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/** + * @file mapping_matrix.h + * @brief Opus reference implementation mapping matrix API + */ + +#ifndef MAPPING_MATRIX_H +#define MAPPING_MATRIX_H + +#include "opus_types.h" +#include "opus_projection.h" + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct MappingMatrix +{ + int rows; /* number of channels outputted from matrix. */ + int cols; /* number of channels inputted to matrix. */ + int gain; /* in dB. S7.8-format. */ + /* Matrix cell data goes here using col-wise ordering. */ +} MappingMatrix; + +opus_int32 mapping_matrix_get_size(int rows, int cols); + +opus_int16 *mapping_matrix_get_data(const MappingMatrix *matrix); + +void mapping_matrix_init( + MappingMatrix * const st, + int rows, + int cols, + int gain, + const opus_int16 *data, + opus_int32 data_size +); + +#ifndef DISABLE_FLOAT_API +void mapping_matrix_multiply_channel_in_float( + const MappingMatrix *matrix, + const float *input, + int input_rows, + opus_val16 *output, + int output_row, + int output_rows, + int frame_size +); + +void mapping_matrix_multiply_channel_out_float( + const MappingMatrix *matrix, + const opus_val16 *input, + int input_row, + int input_rows, + float *output, + int output_rows, + int frame_size +); +#endif /* DISABLE_FLOAT_API */ + +void mapping_matrix_multiply_channel_in_short( + const MappingMatrix *matrix, + const opus_int16 *input, + int input_rows, + opus_val16 *output, + int output_row, + int output_rows, + int frame_size +); + +void mapping_matrix_multiply_channel_out_short( + const MappingMatrix *matrix, + const opus_val16 *input, + int input_row, + int input_rows, + opus_int16 *output, + int output_rows, + int frame_size +); + +/* Pre-computed mixing and demixing matrices for 1st to 3rd-order ambisonics. + * foa: first-order ambisonics + * soa: second-order ambisonics + * toa: third-order ambisonics + */ +extern const MappingMatrix mapping_matrix_foa_mixing; +extern const opus_int16 mapping_matrix_foa_mixing_data[36]; + +extern const MappingMatrix mapping_matrix_soa_mixing; +extern const opus_int16 mapping_matrix_soa_mixing_data[121]; + +extern const MappingMatrix mapping_matrix_toa_mixing; +extern const opus_int16 mapping_matrix_toa_mixing_data[324]; + +extern const MappingMatrix mapping_matrix_foa_demixing; +extern const opus_int16 mapping_matrix_foa_demixing_data[36]; + +extern const MappingMatrix mapping_matrix_soa_demixing; +extern const opus_int16 mapping_matrix_soa_demixing_data[121]; + +extern const MappingMatrix mapping_matrix_toa_demixing; +extern const opus_int16 mapping_matrix_toa_demixing_data[324]; + +#ifdef __cplusplus +} +#endif + +#endif /* MAPPING_MATRIX_H */ diff --git a/TMessagesProj/jni/opus/src/mlp.c b/TMessagesProj/jni/opus/src/mlp.c index ff9e50df4..f43a704ec 100644 --- a/TMessagesProj/jni/opus/src/mlp.c +++ b/TMessagesProj/jni/opus/src/mlp.c @@ -1,5 +1,5 @@ /* Copyright (c) 2008-2011 Octasic Inc. - Written by Jean-Marc Valin */ + 2012-2017 Jean-Marc Valin */ /* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions @@ -29,42 +29,13 @@ #include "config.h" #endif +#include #include "opus_types.h" #include "opus_defines.h" - -#include -#include "mlp.h" #include "arch.h" #include "tansig_table.h" -#define MAX_NEURONS 100 +#include "mlp.h" -#if 0 -static OPUS_INLINE opus_val16 tansig_approx(opus_val32 _x) /* Q19 */ -{ - int i; - opus_val16 xx; /* Q11 */ - /*double x, y;*/ - opus_val16 dy, yy; /* Q14 */ - /*x = 1.9073e-06*_x;*/ - if (_x>=QCONST32(8,19)) - return QCONST32(1.,14); - if (_x<=-QCONST32(8,19)) - return -QCONST32(1.,14); - xx = EXTRACT16(SHR32(_x, 8)); - /*i = lrint(25*x);*/ - i = SHR32(ADD32(1024,MULT16_16(25, xx)),11); - /*x -= .04*i;*/ - xx -= EXTRACT16(SHR32(MULT16_16(20972,i),8)); - /*x = xx*(1./2048);*/ - /*y = tansig_table[250+i];*/ - yy = tansig_table[250+i]; - /*y = yy*(1./16384);*/ - dy = 16384-MULT16_16_Q14(yy,yy); - yy = yy + MULT16_16_Q14(MULT16_16_Q11(xx,dy),(16384 - MULT16_16_Q11(yy,xx))); - return yy; -} -#else -/*extern const float tansig_table[501];*/ static OPUS_INLINE float tansig_approx(float x) { int i; @@ -92,54 +63,79 @@ static OPUS_INLINE float tansig_approx(float x) y = y + x*dy*(1 - y*x); return sign*y; } -#endif -#if 0 -void mlp_process(const MLP *m, const opus_val16 *in, opus_val16 *out) +static OPUS_INLINE float sigmoid_approx(float x) { - int j; - opus_val16 hidden[MAX_NEURONS]; - const opus_val16 *W = m->weights; - /* Copy to tmp_in */ - for (j=0;jtopo[1];j++) - { - int k; - opus_val32 sum = SHL32(EXTEND32(*W++),8); - for (k=0;ktopo[0];k++) - sum = MAC16_16(sum, in[k],*W++); - hidden[j] = tansig_approx(sum); - } - for (j=0;jtopo[2];j++) - { - int k; - opus_val32 sum = SHL32(EXTEND32(*W++),14); - for (k=0;ktopo[1];k++) - sum = MAC16_16(sum, hidden[k], *W++); - out[j] = tansig_approx(EXTRACT16(PSHR32(sum,17))); - } + return .5f + .5f*tansig_approx(.5f*x); } -#else -void mlp_process(const MLP *m, const float *in, float *out) + +void compute_dense(const DenseLayer *layer, float *output, const float *input) { - int j; - float hidden[MAX_NEURONS]; - const float *W = m->weights; - /* Copy to tmp_in */ - for (j=0;jtopo[1];j++) - { - int k; - float sum = *W++; - for (k=0;ktopo[0];k++) - sum = sum + in[k]**W++; - hidden[j] = tansig_approx(sum); - } - for (j=0;jtopo[2];j++) - { - int k; - float sum = *W++; - for (k=0;ktopo[1];k++) - sum = sum + hidden[k]**W++; - out[j] = tansig_approx(sum); - } + int i, j; + int N, M; + int stride; + M = layer->nb_inputs; + N = layer->nb_neurons; + stride = N; + for (i=0;ibias[i]; + for (j=0;jinput_weights[j*stride + i]*input[j]; + output[i] = WEIGHTS_SCALE*sum; + } + if (layer->sigmoid) { + for (i=0;inb_inputs; + N = gru->nb_neurons; + stride = 3*N; + for (i=0;ibias[i]; + for (j=0;jinput_weights[j*stride + i]*input[j]; + for (j=0;jrecurrent_weights[j*stride + i]*state[j]; + z[i] = sigmoid_approx(WEIGHTS_SCALE*sum); + } + for (i=0;ibias[N + i]; + for (j=0;jinput_weights[N + j*stride + i]*input[j]; + for (j=0;jrecurrent_weights[N + j*stride + i]*state[j]; + r[i] = sigmoid_approx(WEIGHTS_SCALE*sum); + } + for (i=0;ibias[2*N + i]; + for (j=0;jinput_weights[2*N + j*stride + i]*input[j]; + for (j=0;jrecurrent_weights[2*N + j*stride + i]*state[j]*r[j]; + h[i] = z[i]*state[i] + (1-z[i])*tansig_approx(WEIGHTS_SCALE*sum); + } + for (i=0;i