// Copyright 2019 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "ui/events/ozone/evdev/touch_filter/palm_model/onedevice_train_palm_detection_filter_inference.h" #include #include #include #include #include #include #include #ifndef USE_EIGEN #define USE_EIGEN 0 #endif namespace ui::internal_onedevice::alpha_model { namespace { // ----------------------------------------------------------------------------- // OP LIBRARY // Copied here to make sure that the inference code always stays in sync with // the lib that it was generated for. // ----------------------------------------------------------------------------- // Default to using std::copy and std::fill over memcpy and memset as they // are usually faster, thanks to the compiler getting stricter alignment // guarantees. #ifndef USE_TYPED_MEMSETMEMCPY #define USE_TYPED_MEMSETMEMCPY 1 #endif #ifndef USE_EIGEN #error Please define USE_EIGEN to either 0 or 1 #endif // Helper to reinterpret memory as Eigen matrices. #if USE_EIGEN template using ConstMatrixMap = typename Eigen::Map< const Eigen::Matrix>; template using ConstRowVectorMap = typename Eigen::Map>; template using RowVectorMap = typename Eigen::Map>; template using MatrixMap = typename Eigen::Map>; template using SparseMatrix = Eigen::SparseMatrix; #endif #if OP_LIB_BENCHMARK class PerOpTimings { public: void Add(const std::string& op, absl::Duration time) { time_per_op_[op] += time; } void Reset() { time_per_op_.clear(); } void WriteTimingsToInfoLog() { std::string message = "Per op totals:\n"; absl::Duration total; for (auto& entry : time_per_op_) { total += entry.second; absl::StrAppend( &message, entry.first, ": ", absl::LegacyPrecision(absl::ToDoubleMilliseconds(entry.second)), " ms\n"); } absl::StrAppend(&message, "Total: ", absl::LegacyPrecision(absl::ToDoubleMilliseconds(total)), " ms\n"); VLOG(1) << message; } private: std::map time_per_op_; }; // Timer for individual operations. For each operation, add a statement like // BENCHMARK_TIMER(name_part1, name_part2, ...); // to the beginning of the code. All name parts will be concatenated together // and a line will be logged after executing the operation showing the name and // the elapsed time. class BenchmarkTimer { public: explicit BenchmarkTimer(std::string name) : name_(std::move(name)), start_(absl::Now()) {} ~BenchmarkTimer() { const absl::Duration elapsed = absl::Now() - start_; Singleton::get()->Add(name_, elapsed); VLOG(1) << "Time for " << name_ << ": " << absl::ToDoubleMilliseconds(elapsed) << " ms"; } private: const std::string name_; const absl::Time start_; }; #define BENCHMARK_TIMER(...) BenchmarkTimer timer(absl::StrCat(__VA_ARGS__)); #else // OP_LIB_BENCHMARK #define BENCHMARK_TIMER(...) #endif // OP_LIB_BENCHMARK // The size of a shape in terms of number of coefficients. inline int32_t ShapeSize(const int32_t rank, const int32_t* shape) { int32_t size = 1; for (int32_t i = 0; i < rank; ++i) size *= shape[i]; return size; } // For convolutional operations, calculates the output size with VALID padding. // Returns (height, width). inline std::tuple GetConvOutputSizeVALID(const int32_t* input_shape, const int32_t* kernel_shape, int32_t stride_y, int32_t stride_x) { return std::make_tuple( (input_shape[1] + stride_y - kernel_shape[0]) / stride_y, (input_shape[2] + stride_x - kernel_shape[1]) / stride_x); } // For convolutional operations, calculates the output size with SAME padding. // Returns (height, width). inline std::tuple GetConvOutputSizeSAME(const int32_t* input_shape, int32_t stride_y, int32_t stride_x) { return std::make_tuple((input_shape[1] + stride_y - 1) / stride_y, (input_shape[2] + stride_x - 1) / stride_x); } // Helper to compute the size of the inner loop for an op that uses indices to // specify which axes are reduced. template int32_t GetReduceInnerSize(int32_t input_tensor_rank, const int32_t* __restrict input_shape, int32_t index_tensor_rank, const int32_t* __restrict index_shape, const Tidx* __restrict index_values) { assert(index_tensor_rank <= 1); const int32_t num_indices = index_tensor_rank > 0 ? index_shape[0] : 1; int32_t inner_size = 1; for (int32_t i = 0; i < num_indices; ++i) { Tidx index_value = index_values[i]; if (index_value < 0) { index_value = input_tensor_rank + index_value; } inner_size *= input_shape[index_value]; } return inner_size; } template void ConcatV2Args2(int32_t arg0_rank, const int32_t* __restrict arg0_shape, const T* __restrict arg0_values, int32_t arg1_rank, const int32_t* __restrict arg1_shape, const T* __restrict arg1_values, const int32_t* __restrict axis_value, T* __restrict output_values) { BENCHMARK_TIMER("ConcatV2Args2"); const int32_t axis = axis_value[0]; const int32_t num_lines = ShapeSize(axis, arg0_shape); const int32_t arg0_line_size = ShapeSize(arg0_rank - axis, arg0_shape + axis); const int32_t arg1_line_size = ShapeSize(arg1_rank - axis, arg1_shape + axis); for (int32_t line = 0; line < num_lines; ++line) { std::copy(arg0_values, arg0_values + arg0_line_size, output_values); arg0_values += arg0_line_size; output_values += arg0_line_size; std::copy(arg1_values, arg1_values + arg1_line_size, output_values); arg1_values += arg1_line_size; output_values += arg1_line_size; } } template void MatMul(const int32_t* __restrict input_shape, const T* __restrict input_values, const int32_t* __restrict weight_shape, const T* __restrict weight_values, T* __restrict output_values) { BENCHMARK_TIMER("MatMul"); #if USE_EIGEN const auto in = ConstMatrixMap(input_values, input_shape[1], input_shape[0]); const auto weight = ConstMatrixMap(weight_values, weight_shape[1], weight_shape[0]); auto result = MatrixMap(output_values, weight_shape[1], input_shape[0]); result.noalias() = weight * in; #else const int32_t batch_size = input_shape[0]; const int32_t num_inputs = weight_shape[0]; const int32_t num_outputs = weight_shape[1]; assert(input_shape[1] == num_inputs); for (int32_t batch = 0; batch < batch_size; ++batch) { for (int32_t out_i = 0; out_i < num_outputs; ++out_i) { T value = 0; for (int32_t in_i = 0; in_i < num_inputs; ++in_i) { value += input_values[batch * num_inputs + in_i] * weight_values[in_i * num_outputs + out_i]; } *output_values++ = value; } } #endif } template void DepthwiseConv2dNative(const int32_t* __restrict input_shape, const T* __restrict input_values, const int32_t* __restrict kernel_shape, const T* __restrict kernel_values, int32_t stride_y, int32_t stride_x, int32_t out_height, int32_t out_width, T* __restrict output_values) { BENCHMARK_TIMER("DepthwiseConv2dNative"); // Give the shape values nicer names. assert(input_shape[3] == kernel_shape[2]); const int32_t batch_size = input_shape[0]; const int32_t kernel_height = kernel_shape[0]; const int32_t kernel_width = kernel_shape[1]; const int32_t in_depth = kernel_shape[2]; const int32_t depth_mul = kernel_shape[3]; const int32_t in_height = input_shape[1]; const int32_t in_width = input_shape[2]; // Compute the amount of padding needed to get the desired output size. const int32_t pad_height = ((out_height - 1) * stride_y + kernel_height - in_height) / 2; const int32_t pad_width = ((out_width - 1) * stride_x + kernel_width - in_width) / 2; // Cache the strides for address computations. const int32_t in_strides[4] = { input_shape[1] * input_shape[2] * input_shape[3], // batch input_shape[2] * input_shape[3], // y input_shape[3], // x 1, // channel }; const int32_t kernel_strides[4] = { kernel_shape[1] * kernel_shape[2] * kernel_shape[3], // y kernel_shape[2] * kernel_shape[3], // x kernel_shape[3], // in channels 1, // channel mult }; T* out_write_ptr = output_values; for (int32_t batch = 0; batch < batch_size; ++batch) { for (int32_t out_y = 0; out_y < out_height; ++out_y) { for (int32_t out_x = 0; out_x < out_width; ++out_x) { // Compute the input read offsets. const int32_t in_y_origin = (out_y * stride_y) - pad_height; const int32_t in_x_origin = (out_x * stride_x) - pad_width; // Compute the range of the kernel to be applied (we may need to clip // when we'd read outside of the valid input region - for SAME). const int32_t kernel_y_start = std::max(static_cast(0), -in_y_origin); const int32_t kernel_y_end = std::min(kernel_height, in_height - in_y_origin); const int32_t kernel_x_start = std::max(static_cast(0), -in_x_origin); const int32_t kernel_x_end = std::min(kernel_width, in_width - in_x_origin); for (int32_t in_c = 0; in_c < in_depth; ++in_c) { for (int32_t mul_c = 0; mul_c < depth_mul; ++mul_c, ++out_write_ptr) { // Convolve. T sum = 0; for (int32_t k_y = kernel_y_start; k_y < kernel_y_end; ++k_y) { const int32_t in_y = in_y_origin + k_y; assert(in_y >= 0 && in_y < in_height); for (int32_t k_x = kernel_x_start; k_x < kernel_x_end; ++k_x) { const int32_t in_x = in_x_origin + k_x; assert(in_x >= 0 && in_x < in_width); const T input_value = input_values[batch * in_strides[0] + // batch in_y * in_strides[1] + // y in_x * in_strides[2] + // x in_c]; // in chan const T kernel_value = kernel_values[k_y * kernel_strides[0] + // y k_x * kernel_strides[1] + // x in_c * kernel_strides[2] + // in chan mul_c]; // chan mult sum += input_value * kernel_value; } } *out_write_ptr = sum; } // mul_c } // in_c } // out_x } // out_y } // batch } template void DepthwiseConv2dNativeVALID(const int32_t* __restrict input_shape, const T* __restrict input_values, const int32_t* __restrict kernel_shape, const T* __restrict kernel_values, int32_t stride_y, int32_t stride_x, T* __restrict output_values) { const auto out_size = GetConvOutputSizeVALID(input_shape, kernel_shape, stride_y, stride_x); DepthwiseConv2dNative( input_shape, input_values, kernel_shape, kernel_values, stride_y, stride_x, std::get<0>(out_size), std::get<1>(out_size), output_values); } template void DepthwiseConv2dNativeSAME(const int32_t* __restrict input_shape, const T* __restrict input_values, const int32_t* __restrict kernel_shape, const T* __restrict kernel_values, int32_t stride_y, int32_t stride_x, T* __restrict output_values) { const auto out_size = GetConvOutputSizeSAME(input_shape, stride_y, stride_x); DepthwiseConv2dNative( input_shape, input_values, kernel_shape, kernel_values, stride_y, stride_x, std::get<0>(out_size), std::get<1>(out_size), output_values); } template void FullyConnected(const int32_t* __restrict input_shape, const T* __restrict input_values, const int32_t* __restrict weight_shape, const T* __restrict weight_values, const int32_t* __restrict bias_shape, const T* __restrict bias_values, T* __restrict output_values) { BENCHMARK_TIMER("FullyConnected"); #if USE_EIGEN const auto in = ConstMatrixMap(input_values, input_shape[1], input_shape[0]); const auto weight = ConstMatrixMap(weight_values, weight_shape[1], weight_shape[0]); const auto bias = ConstRowVectorMap(bias_values, bias_shape[0]); auto result = MatrixMap(output_values, weight_shape[1], input_shape[0]); result.noalias() = (weight * in).colwise() + bias; #else const int32_t batch_size = input_shape[0]; const int32_t num_inputs = weight_shape[0]; const int32_t num_outputs = weight_shape[1]; assert(input_shape[1] == num_inputs); assert(bias_shape[0] == num_outputs); for (int32_t batch = 0; batch < batch_size; ++batch) { for (int32_t out_i = 0; out_i < num_outputs; ++out_i) { T value = bias_values[out_i]; for (int32_t in_i = 0; in_i < num_inputs; ++in_i) { value += input_values[batch * num_inputs + in_i] * weight_values[in_i * num_outputs + out_i]; } output_values[batch * num_outputs + out_i] = value; } } #endif } template void SpaceToBatchNDRank4(const int32_t* __restrict input_shape, const T* __restrict input_values, const TBlocks* __restrict block_shape_values, const TPaddings* __restrict padding_values, T* __restrict output_values) { BENCHMARK_TIMER("SpaceToBatchNDRank4"); const int32_t input_batch_size = input_shape[0]; const int32_t input_height = input_shape[1]; const int32_t input_width = input_shape[2]; const int32_t input_depth = input_shape[3]; const TBlocks block_shape_height = block_shape_values[0]; const TBlocks block_shape_width = block_shape_values[1]; const TPaddings padding_top = padding_values[0]; const TPaddings padding_bottom = padding_values[1]; const TPaddings padding_left = padding_values[2]; const TPaddings padding_right = padding_values[3]; const int32_t block_size = block_shape_height * block_shape_width; const int32_t output_depth = input_depth; const int32_t output_batch_size = input_batch_size * block_size; const int32_t output_height = (padding_top + padding_bottom + input_height) / block_shape_height; const int32_t output_width = (padding_left + padding_right + input_width) / block_shape_width; const T pad_value = 0; for (int32_t out_b = 0; out_b < output_batch_size; ++out_b) { const int32_t input_batch = out_b % input_batch_size; const int32_t shift_w = (out_b / input_batch_size) % block_shape_width; const int32_t shift_h = (out_b / input_batch_size) / block_shape_width; for (int32_t out_h = 0; out_h < output_height; ++out_h) { for (int32_t out_w = 0; out_w < output_width; ++out_w) { T* out = output_values + (((out_b * output_height + out_h) * output_width + out_w) * output_depth + 0); // Check if padding cell are being handled. if (out_h * block_shape_height + shift_h < padding_top || out_h * block_shape_height + shift_h >= padding_top + input_height || out_w * block_shape_width + shift_w < padding_left || out_w * block_shape_width + shift_w >= padding_left + input_width) { // This may not execute correctly when pad_value != 0 and T != uint8. #if USE_TYPED_MEMSETMEMCPY std::fill(out, out + input_depth, pad_value); #else std::memset(out, pad_value, input_depth * sizeof(T)); #endif } else { const int32_t i0 = input_batch; const int32_t i1 = (out_h * block_shape_height + shift_h) - padding_top; const int32_t i2 = (out_w * block_shape_width + shift_w) - padding_left; const T* in = input_values + (((i0 * input_height + i1) * input_width + i2) * input_depth + 0); #if USE_TYPED_MEMSETMEMCPY std::copy(in, in + input_depth, out); #else std::memcpy(out, in, input_depth * sizeof(T)); #endif } } } } } template void BatchToSpaceNDRank4(const int32_t* __restrict input_shape, const T* __restrict input_values, const TBlocks* __restrict block_shape_values, const TCrops* __restrict crops_values, T* __restrict output_values) { BENCHMARK_TIMER("BatchToSpaceNDRank4"); const int32_t input_batch_size = input_shape[0]; const int32_t input_height = input_shape[1]; const int32_t input_width = input_shape[2]; const int32_t input_depth = input_shape[3]; const TBlocks block_shape_height = block_shape_values[0]; const TBlocks block_shape_width = block_shape_values[1]; const TCrops crops_top = crops_values[0]; const TCrops crops_bottom = crops_values[1]; const TCrops crops_left = crops_values[2]; const TCrops crops_right = crops_values[3]; const int32_t output_depth = input_depth; const int32_t output_batch_size = input_batch_size / (block_shape_width * block_shape_height); const int32_t output_height = input_height * block_shape_height - crops_top - crops_bottom; const int32_t output_width = input_width * block_shape_width - crops_left - crops_right; for (int32_t in_batch = 0; in_batch < input_batch_size; ++in_batch) { const int32_t out_batch = in_batch % output_batch_size; const int32_t spatial_offset = in_batch / output_batch_size; for (int32_t in_h = 0; in_h < input_height; ++in_h) { const int32_t out_h = in_h * block_shape_height + spatial_offset / block_shape_width - crops_top; if (out_h < 0 || out_h >= output_height) { continue; } for (int32_t in_w = 0; in_w < input_width; ++in_w) { const int32_t out_w = in_w * block_shape_width + spatial_offset % block_shape_width - crops_left; if (out_w < 0 || out_w >= output_width) { continue; } T* out = output_values + (((out_batch * output_height + out_h) * output_width + out_w) * output_depth + 0); const T* in = input_values + (((in_batch * input_height + in_h) * input_width + in_w) * input_depth + 0); #if USE_TYPED_MEMSETMEMCPY std::copy(in, in + input_depth, out); #else std::memcpy(out, in, input_depth * sizeof(T)); #endif } } } } #if USE_EIGEN template void SparseDenseMatMulCSR(const int32_t* __restrict input_shape, const T* __restrict input_values, const int32_t num_rows, const int32_t* __restrict nnz_shape, const T* __restrict nnz_values, const Tidx* __restrict outer_index, const Tidx* __restrict cols, T* __restrict output_values) { BENCHMARK_TIMER("SparseDenseMatMulCSR"); const int32_t num_cols = input_shape[1]; const auto in = ConstMatrixMap(input_values, input_shape[1], input_shape[0]); const Eigen::Map> weight( num_rows, num_cols, nnz_shape[0], outer_index, cols, nnz_values); auto result = MatrixMap(output_values, num_rows, input_shape[0]); result.noalias() = weight * in; } template void SparseFullyConnectedCSR(const int32_t* __restrict input_shape, const T* __restrict input_values, const int32_t num_rows, const int32_t* __restrict nnz_shape, const T* __restrict nnz_values, const Tidx* __restrict outer_index, const Tidx* __restrict cols, const int32_t* __restrict bias_shape, const T* __restrict bias_values, T* __restrict output_values) { BENCHMARK_TIMER("SparseFullyConnectedCSR"); const int32_t num_cols = input_shape[1]; const auto in = ConstMatrixMap(input_values, input_shape[1], input_shape[0]); const auto bias = ConstRowVectorMap(bias_values, bias_shape[0]); const Eigen::Map> weight( num_rows, num_cols, nnz_shape[0], outer_index, cols, nnz_values); auto result = MatrixMap(output_values, num_rows, input_shape[0]); result.noalias() = (weight * in).colwise() + bias; } #endif template void Gather(int32_t params_rank, const int32_t* __restrict params_shape, const T* __restrict params_values, int32_t indices_rank, const int32_t* __restrict indices_shape, const TIndex* __restrict indices_values, T* __restrict output_values) { BENCHMARK_TIMER("Gather"); const int32_t num_indices = ShapeSize(indices_rank, indices_shape); const int32_t num_params = params_shape[0]; const int32_t slice_size = ShapeSize(params_rank - 1, params_shape + 1); for (int32_t i = 0; i < num_indices; ++i) { const int32_t index = indices_values[i]; if (index < 0 || index >= num_params) { std::fill(output_values, output_values + slice_size, 0); } else { std::copy(params_values + index * slice_size, params_values + index * slice_size + slice_size, output_values); } output_values += slice_size; } } template void Im2Row(const int32_t* __restrict input_shape, const T* __restrict input_values, const int32_t* __restrict kernel_shape, int32_t stride_y, int32_t stride_x, int32_t out_height, int32_t out_width, T* __restrict output_values) { BENCHMARK_TIMER("Im2Row"); // Give the shape values nicer names. assert(input_shape[3] == kernel_shape[2]); const int32_t batch_size = input_shape[0]; const int32_t kernel_height = kernel_shape[0]; const int32_t kernel_width = kernel_shape[1]; const int32_t in_depth = kernel_shape[2]; const int32_t in_height = input_shape[1]; const int32_t in_width = input_shape[2]; // Compute the amount of padding needed to get the desired output size. const int32_t pad_height = ((out_height - 1) * stride_y + kernel_height - in_height) / 2; const int32_t pad_width = ((out_width - 1) * stride_x + kernel_width - in_width) / 2; // Cache the strides for address computations. const int32_t x_stride = input_shape[3]; const int32_t y_stride = input_shape[2] * x_stride; const int32_t batch_stride = input_shape[1] * y_stride; for (int32_t batch = 0; batch < batch_size; ++batch) { for (int32_t out_y = 0; out_y < out_height; ++out_y) { for (int32_t out_x = 0; out_x < out_width; ++out_x) { // Compute the input read offsets. const int32_t in_y_origin = (out_y * stride_y) - pad_height; const int32_t in_x_origin = (out_x * stride_x) - pad_width; // Compute the range of the kernel to be applied (we may need to clip // when we'd read outside of the valid input region - for SAME). const int32_t kernel_y_start = std::max(static_cast(0), -in_y_origin); const int32_t kernel_y_end = std::min(kernel_height, in_height - in_y_origin); const int32_t kernel_x_start = std::max(static_cast(0), -in_x_origin); const int32_t kernel_x_end = std::min(kernel_width, in_width - in_x_origin); // Padding top. if (kernel_y_start != 0) { const int32_t num_lines = kernel_y_start; const int32_t num_coeffs = num_lines * kernel_width * in_depth; #if USE_TYPED_MEMSETMEMCPY std::fill(output_values, output_values + num_coeffs, 0); #else std::memset(output_values, 0, num_coeffs * sizeof(T)); #endif output_values += num_coeffs; } for (int32_t k_y = kernel_y_start; k_y < kernel_y_end; ++k_y) { // Padding left. if (kernel_x_start != 0) { const int32_t num_coeffs = kernel_x_start * in_depth; #if USE_TYPED_MEMSETMEMCPY std::fill(output_values, output_values + num_coeffs, 0); #else std::memset(output_values, 0, num_coeffs * sizeof(T)); #endif output_values += num_coeffs; } // Valid values. { const int32_t in_y = in_y_origin + k_y; const int32_t in_x = in_x_origin + kernel_x_start; const int32_t num_coeffs = (kernel_x_end - kernel_x_start) * in_depth; #if USE_TYPED_MEMSETMEMCPY const int32_t offset = batch * batch_stride + in_y * y_stride + in_x * x_stride; std::copy(input_values + offset, input_values + offset + num_coeffs, output_values); #else std::memcpy(output_values, input_values // Reusing the restricted pointer. + batch * batch_stride // batch + in_y * y_stride // y + in_x * x_stride, // x num_coeffs * sizeof(T)); #endif output_values += num_coeffs; } // Padding right. if (kernel_x_end != kernel_width) { const int32_t num_coeffs = (kernel_width - kernel_x_end) * in_depth; #if USE_TYPED_MEMSETMEMCPY std::fill(output_values, output_values + num_coeffs, 0); #else std::memset(output_values, 0, num_coeffs * sizeof(T)); #endif output_values += num_coeffs; } } // Padding bottom. if (kernel_y_end != kernel_height) { const int32_t num_lines = kernel_height - kernel_y_end; const int32_t num_coeffs = num_lines * kernel_width * in_depth; #if USE_TYPED_MEMSETMEMCPY std::fill(output_values, output_values + num_coeffs, 0); #else std::memset(output_values, 0, num_coeffs * sizeof(T)); #endif output_values += num_coeffs; } } } } } template void Im2RowVALID(const int32_t* __restrict input_shape, const T* __restrict input_values, const int32_t* __restrict kernel_shape, int32_t stride_y, int32_t stride_x, T* __restrict output_values) { const auto out_size = GetConvOutputSizeVALID(input_shape, kernel_shape, stride_y, stride_x); Im2Row(input_shape, input_values, kernel_shape, stride_y, stride_x, std::get<0>(out_size), std::get<1>(out_size), output_values); } template void Im2RowSAME(const int32_t* __restrict input_shape, const T* __restrict input_values, const int32_t* __restrict kernel_shape, int32_t stride_y, int32_t stride_x, T* __restrict output_values) { const auto out_size = GetConvOutputSizeSAME(input_shape, stride_y, stride_x); Im2Row(input_shape, input_values, kernel_shape, stride_y, stride_x, std::get<0>(out_size), std::get<1>(out_size), output_values); } // We use macros instead of template functions with templated functors here // because it's a lot less verbose and easier for the compiler to optimize. #define POOL_OP(OP_NAME, DEFAULT_VALUE, UPDATE_EXPR, RESULT_EXPR) \ template \ void OP_NAME##Pool(const int32_t* __restrict input_shape, \ const T* __restrict input_values, int32_t stride_y, \ int32_t stride_x, int32_t kernel_height, \ int32_t kernel_width, int32_t out_height, \ int32_t out_width, T* __restrict output_values) { \ BENCHMARK_TIMER(#OP_NAME, "Pool"); \ const int32_t batch_size = input_shape[0]; \ const int32_t in_height = input_shape[1]; \ const int32_t in_width = input_shape[2]; \ const int32_t depth = input_shape[3]; \ \ const int32_t pad_height = \ ((out_height - 1) * stride_y + kernel_height - in_height) / 2; \ const int32_t pad_width = \ ((out_width - 1) * stride_x + kernel_width - in_width) / 2; \ \ const int32_t in_strides[4] = { \ input_shape[1] * input_shape[2] * input_shape[3], \ input_shape[2] * input_shape[3], \ input_shape[3], \ 1, \ }; \ \ T* out_write_ptr = output_values; \ for (int32_t batch = 0; batch < batch_size; ++batch) { \ for (int32_t out_y = 0; out_y < out_height; ++out_y) { \ for (int32_t out_x = 0; out_x < out_width; ++out_x) { \ const int32_t in_y_origin = (out_y * stride_y) - pad_height; \ const int32_t in_x_origin = (out_x * stride_x) - pad_width; \ const int32_t kernel_y_start = \ std::max(static_cast(0), -in_y_origin); \ const int32_t kernel_y_end = \ std::min(kernel_height, in_height - in_y_origin); \ const int32_t kernel_x_start = \ std::max(static_cast(0), -in_x_origin); \ const int32_t kernel_x_end = \ std::min(kernel_width, in_width - in_x_origin); \ const int32_t count = (kernel_y_end - kernel_y_start) * \ (kernel_x_end - kernel_x_start); \ (void)sizeof(count); \ \ for (int32_t chan = 0; chan < depth; ++chan, ++out_write_ptr) { \ T value = DEFAULT_VALUE; \ for (int32_t k_y = kernel_y_start; k_y < kernel_y_end; ++k_y) { \ const int32_t in_y = in_y_origin + k_y; \ assert(in_y >= 0 && in_y < in_height); \ for (int32_t k_x = kernel_x_start; k_x < kernel_x_end; ++k_x) { \ const int32_t in_x = in_x_origin + k_x; \ assert(in_x >= 0 && in_x < in_width); \ const T next = input_values[batch * in_strides[0] + \ in_y * in_strides[1] + \ in_x * in_strides[2] + chan]; \ value = UPDATE_EXPR; \ } \ } \ *out_write_ptr = RESULT_EXPR; \ } \ } \ } \ } \ } \ \ template \ void OP_NAME##PoolVALID(const int32_t* __restrict input_shape, \ const T* __restrict input_values, int32_t stride_y, \ int32_t stride_x, int32_t kernel_height, \ int32_t kernel_width, T* __restrict output_values) { \ const int32_t kernel_shape[4] = {kernel_height, kernel_width, 1, 1}; \ const auto out_size = \ GetConvOutputSizeVALID(input_shape, kernel_shape, stride_y, stride_x); \ OP_NAME##Pool(input_shape, input_values, stride_y, stride_x, \ kernel_height, kernel_width, std::get<0>(out_size), \ std::get<1>(out_size), output_values); \ } \ \ template \ void OP_NAME##PoolSAME(const int32_t* __restrict input_shape, \ const T* __restrict input_values, int32_t stride_y, \ int32_t stride_x, int32_t kernel_height, \ int32_t kernel_width, T* __restrict output_values) { \ const auto out_size = \ GetConvOutputSizeSAME(input_shape, stride_y, stride_x); \ OP_NAME##Pool(input_shape, input_values, stride_y, stride_x, \ kernel_height, kernel_width, std::get<0>(out_size), \ std::get<1>(out_size), output_values); \ } POOL_OP(Max, std::numeric_limits::lowest(), std::max(value, next), value) POOL_OP(Avg, 0, value + next, value / count) template void Memcpy(const int32_t rank, const int32_t* __restrict input_shape, const T* __restrict input_values, T* __restrict output_values) { BENCHMARK_TIMER("Memcpy"); const int32_t size = ShapeSize(rank, input_shape); for (int32_t i = 0; i < size; ++i) { output_values[i] = input_values[i]; } } template void Softmax(const int32_t rank, const int32_t* __restrict input_shape, const T* __restrict input_values, const int32_t reduce_dim, T* __restrict output_values, T* __restrict scratch_values) { BENCHMARK_TIMER("Softmax"); const int32_t size = ShapeSize(rank, input_shape); if (rank == 2 && reduce_dim == 1) { T logits_max = std::numeric_limits::lowest(); // Max. for (int32_t i = 0; i < size; ++i) { logits_max = std::max(logits_max, input_values[i]); } // Pre-compute exp. for (int32_t i = 0; i < size; ++i) { scratch_values[i] = std::exp(input_values[i] - logits_max); } // Sum over the last dimension, then divide the exps and write out. for (int32_t offset = 0; offset < size; offset += input_shape[1]) { const int32_t end_offset = offset + input_shape[1]; T sum = 0; for (int32_t i = offset; i < end_offset; ++i) { sum += scratch_values[i]; } const T rcp_denom = static_cast(1) / sum; for (int32_t i = 0; i < input_shape[1]; ++i) { output_values[offset + i] = scratch_values[offset + i] * rcp_denom; } } } else { assert(false && "Generic Softmax not yet supported."); } } // Returns the start position for a slice in a single dimension. template int32_t StridedSliceBegin(int32_t range_mask, const T* __restrict range_values, const T* __restrict strides, const int32_t* __restrict input_shape, int32_t dim) { const bool is_explicit = 0 == (range_mask & (1 << dim)); if (is_explicit) { const T range_value = range_values[dim]; return (range_value < 0 ? range_value + input_shape[dim] : range_value); } else { const bool is_reverse = strides[dim] < 0; return is_reverse ? input_shape[dim] - 1 : 0; } } // Returns the end position for a slice in a single dimension. template int32_t StridedSliceEnd(int32_t range_mask, const T* __restrict range_values, const T* __restrict strides, const int32_t* __restrict input_shape, int32_t dim) { const bool is_explicit = 0 == (range_mask & (1 << dim)); if (is_explicit) { const T range_value = range_values[dim]; return (range_value < 0 ? range_value + input_shape[dim] : range_value); } else { const bool is_reverse = strides[dim] < 0; return is_reverse ? -1 : input_shape[dim]; } } template void StridedSlice(const int32_t input_rank, const int32_t* __restrict input_shape, const T* __restrict input_values, const TIdx* __restrict begin, const TIdx* __restrict end, const TIdx* __restrict strides, int32_t begin_mask, int32_t end_mask, T* __restrict output_values) { BENCHMARK_TIMER("StridedSlice"); const int32_t MAX_RANK = 8; assert(input_rank < MAX_RANK); // Compute the address strides for each dimension. int32_t dim_addr_strides[MAX_RANK] = {0}; dim_addr_strides[input_rank - 1] = 1; for (int32_t dim = input_rank - 2; dim >= 0; --dim) { dim_addr_strides[dim] = dim_addr_strides[dim + 1] * input_shape[dim + 1]; } // Resolve the masks and get explicit ranges for each dimension. int32_t dim_begin[MAX_RANK]; int32_t dim_end[MAX_RANK]; bool dim_is_full_range[MAX_RANK]; for (int32_t dim = 0; dim < input_rank; ++dim) { const int32_t stride = strides[dim]; dim_begin[dim] = StridedSliceBegin(begin_mask, begin, strides, input_shape, dim); dim_end[dim] = StridedSliceEnd(end_mask, end, strides, input_shape, dim); dim_is_full_range[dim] = dim_begin[dim] == 0 && dim_end[dim] == input_shape[dim] && stride == 1; // Make sure that the dim_end is always bigger than dim_begin, this // simplifies the boundary checks below. if (stride > 0 && dim_begin[dim] > dim_end[dim]) { dim_end[dim] += input_shape[dim]; } // Our termination criteria for loops is that we hit the end exactly, so // we need to ensure that we don't step over the end with stride != 1. const int32_t length_mod = (dim_end[dim] - dim_begin[dim]) % stride; if (length_mod != 0) { dim_end[dim] += stride - length_mod; } } // Find out how large the blocks are that we can copy contiguously. (All // dimensions on the right for which we fetch the full range) int32_t last_sliced_dim = input_rank - 1; int32_t block_size = 1; for (int32_t dim = input_rank - 1; dim >= 0 && dim_is_full_range[dim]; --dim) { block_size *= input_shape[dim]; last_sliced_dim--; } // Initialize the read pos for each dimension according to the begin offsets. int32_t read_pos[MAX_RANK] = {0}; for (int32_t dim = 0; dim < input_rank; ++dim) { read_pos[dim] = dim_begin[dim]; } while (read_pos[0] != dim_end[0]) { // Compute the read offset for the current position. int32_t read_offset = 0; for (int32_t dim = 0; dim <= last_sliced_dim; ++dim) { read_offset += (read_pos[dim] % input_shape[dim]) * dim_addr_strides[dim]; } #if USE_TYPED_MEMSETMEMCPY std::copy(input_values + read_offset, input_values + read_offset + block_size, output_values); #else std::memcpy(output_values, input_values + read_offset, block_size * sizeof(T)); #endif output_values += block_size; // Advance the read position. for (int32_t dim = last_sliced_dim; dim >= 0; --dim) { read_pos[dim] += strides[dim]; if (dim == 0 || read_pos[dim] != dim_end[dim]) break; read_pos[dim] = dim_begin[dim]; } } } template void TransposeRank3(const int32_t* __restrict input_shape, const T* __restrict input_values, const int32_t* __restrict perm, T* __restrict output_values) { BENCHMARK_TIMER("TransposeRank3"); const int32_t in_strides[3] = { input_shape[1] * input_shape[2], input_shape[2], 1, }; const int32_t out_strides[3] = {in_strides[perm[0]], in_strides[perm[1]], in_strides[perm[2]]}; const int32_t out_shape[3] = {input_shape[perm[0]], input_shape[perm[1]], input_shape[perm[2]]}; int32_t write_offset = 0; for (int32_t it0 = 0; it0 < out_shape[0]; ++it0) { const int32_t read_offset0 = it0 * out_strides[0]; for (int32_t it1 = 0; it1 < out_shape[1]; ++it1) { const int32_t read_offset01 = read_offset0 + it1 * out_strides[1]; for (int32_t it2 = 0; it2 < out_shape[2]; ++it2, ++write_offset) { const int32_t read_offset = read_offset01 + it2 * out_strides[2]; output_values[write_offset] = input_values[read_offset]; } } } } template void TransposeRank4(const int32_t* __restrict input_shape, const T* __restrict input_values, const int32_t* __restrict perm, T* __restrict output_values) { BENCHMARK_TIMER("TransposeRank4"); const int32_t in_strides[4] = { input_shape[1] * input_shape[2] * input_shape[3], input_shape[2] * input_shape[3], input_shape[3], 1, }; const int32_t out_strides[4] = {in_strides[perm[0]], in_strides[perm[1]], in_strides[perm[2]], in_strides[perm[3]]}; const int32_t out_shape[4] = {input_shape[perm[0]], input_shape[perm[1]], input_shape[perm[2]], input_shape[perm[3]]}; int32_t write_offset = 0; for (int32_t it0 = 0; it0 < out_shape[0]; ++it0) { const int32_t read_offset0 = it0 * out_strides[0]; for (int32_t it1 = 0; it1 < out_shape[1]; ++it1) { const int32_t read_offset01 = read_offset0 + it1 * out_strides[1]; for (int32_t it2 = 0; it2 < out_shape[2]; ++it2) { const int32_t read_offset012 = read_offset01 + it2 * out_strides[2]; for (int32_t it3 = 0; it3 < out_shape[3]; ++it3, ++write_offset) { const int32_t read_offset = read_offset012 + it3 * out_strides[3]; output_values[write_offset] = input_values[read_offset]; } } } } } template void OneHot(const int32_t input_rank, const int32_t* __restrict input_shape, const TIdx* __restrict input_values, const TDepth* __restrict depth, const T* __restrict on_value, const T* __restrict off_value, const int32_t axis, T* __restrict output_values) { BENCHMARK_TIMER("OneHot"); const int32_t num_elements = ShapeSize(input_rank, input_shape); // We can assume axis >= 0 in this implementation. const int32_t prefix_dim_size = ShapeSize(axis, input_shape); const int32_t suffix_dim_size = num_elements / prefix_dim_size; int32_t write_offset = 0; for (int32_t i = 0; i < prefix_dim_size; ++i) { const int32_t read_offset_pre = i * suffix_dim_size; for (TDepth d = 0; d < *depth; ++d) { for (int32_t j = 0; j < suffix_dim_size; ++j, ++write_offset) { const int32_t read_offset = read_offset_pre + j; output_values[write_offset] = (input_values[read_offset] == d) ? *on_value : *off_value; } } } } template void OneHotLastDim(const int32_t input_rank, const int32_t* __restrict input_shape, const TIdx* __restrict input_values, const TDepth* __restrict depth, const T* __restrict on_value, const T* __restrict off_value, T* __restrict output_values) { BENCHMARK_TIMER("OneHotLastDim"); const int32_t num_elements = ShapeSize(input_rank, input_shape); int32_t write_offset = 0; for (int32_t i = 0; i < num_elements; ++i) { for (TDepth d = 0; d < *depth; ++d, ++write_offset) { output_values[write_offset] = (input_values[i] == d) ? *on_value : *off_value; } } } // ----------------------------------------------------------------------------- // Simple unary ops // ----------------------------------------------------------------------------- // We use macros instead of template functions with templated functors here // because it's a lot less verbose and easier for the compiler to optimize. #if USE_EIGEN #define SIMPLE_UNARY_OP(OP_NAME, _, EXPR_EIGEN) \ template \ void OP_NAME(const int32_t rank, const int32_t* __restrict input_shape, \ const T* __restrict input_values, \ T* __restrict output_values) { \ BENCHMARK_TIMER(#OP_NAME); \ const int32_t size = ShapeSize(rank, input_shape); \ auto values = ConstRowVectorMap(input_values, size).array(); \ auto output = RowVectorMap(output_values, size).array(); \ output = EXPR_EIGEN; \ } #else #define SIMPLE_UNARY_OP(OP_NAME, EXPR, _) \ template \ void OP_NAME(const int32_t rank, const int32_t* __restrict input_shape, \ const T* __restrict input_values, \ T* __restrict output_values) { \ BENCHMARK_TIMER(#OP_NAME); \ const int32_t size = ShapeSize(rank, input_shape); \ for (int32_t i = 0; i < size; ++i) { \ const T value = input_values[i]; \ output_values[i] = EXPR; \ } \ } #endif // Second macro param is value expression, third entry is Eigen vector // expression. SIMPLE_UNARY_OP(Abs, std::abs(value), values.abs()) SIMPLE_UNARY_OP(Acos, std::acos(value), values.acos()) SIMPLE_UNARY_OP(Asin, std::asin(value), values.asin()) SIMPLE_UNARY_OP(Atan, std::atan(value), values.atan()) SIMPLE_UNARY_OP(Cos, std::cos(value), values.cos()) SIMPLE_UNARY_OP(Cosh, std::cosh(value), values.cosh()) SIMPLE_UNARY_OP(Exp, std::exp(value), values.exp()) SIMPLE_UNARY_OP(Elu, value < 0 ? std::expm1(value) : value, // Use branchless version of Elu: min(ReLU, e^x - 1) values.max(0).min(values.exp() - 1)) SIMPLE_UNARY_OP(HardSigmoid, std::min(std::max((static_cast(0.2) * value + static_cast(0.5)), static_cast(0)), static_cast(1)), (0.2 * values + 0.5).max(0).min(1)) SIMPLE_UNARY_OP(Log, std::log(value), values.log()) SIMPLE_UNARY_OP(Log1p, std::log1p(value), values.log1p()) SIMPLE_UNARY_OP(Neg, -value, -values) SIMPLE_UNARY_OP(Reciprocal, static_cast(1) / value, values.cwiseInverse()) SIMPLE_UNARY_OP(Relu, std::max(value, static_cast(0)), values.max(0)) SIMPLE_UNARY_OP(Relu6, std::min(std::max(value, static_cast(0)), static_cast(6)), values.max(0).min(6)) SIMPLE_UNARY_OP(Rsqrt, static_cast(1) / std::sqrt(value), values.rsqrt()) SIMPLE_UNARY_OP(Sigmoid, static_cast(1) / (1 + std::exp(-value)), ((-values).exp() + 1).cwiseInverse()) SIMPLE_UNARY_OP(Sin, std::sin(value), values.sin()) SIMPLE_UNARY_OP(Sinh, std::sinh(value), values.sinh()) SIMPLE_UNARY_OP(Sqrt, std::sqrt(value), values.sqrt()) SIMPLE_UNARY_OP(Square, value* value, values.square()) SIMPLE_UNARY_OP(Tan, std::tan(value), values.tan()) SIMPLE_UNARY_OP(Tanh, std::tanh(value), values.tanh()) // ----------------------------------------------------------------------------- // Broadcasting binary ops // ----------------------------------------------------------------------------- template void OpNoBroadcast(const int32_t left_rank, const int32_t* __restrict left_shape, const T* __restrict left_values, const int32_t right_rank, const int32_t* __restrict right_shape, const T* __restrict right_values, T* __restrict output_values, OP op) { BENCHMARK_TIMER(op.name, "NoBroadcast"); const int32_t size = ShapeSize(left_rank, left_shape); #if USE_EIGEN auto lhs = ConstRowVectorMap(left_values, size).array(); auto rhs = ConstRowVectorMap(right_values, size).array(); auto output = RowVectorMap(output_values, size).array(); op.apply(lhs, rhs, output); #else for (int32_t i = 0; i < size; ++i) { output_values[i] = op(left_values[i], right_values[i]); } #endif } template void OpInnerBroadcast(int32_t left_rank, const int32_t* __restrict left_shape, const T* __restrict left_values, int32_t right_rank, const int32_t* __restrict right_shape, const T* __restrict right_values, T* __restrict output_values, OP op) { BENCHMARK_TIMER(op.name, "InnerBroadcast"); const int32_t output_size = ShapeSize(left_rank, left_shape); const int32_t inner_size = ShapeSize(right_rank, right_shape); const int32_t outer_size = output_size / inner_size; #if USE_EIGEN if (inner_size == 1) { // Apply the same value to all elements. auto left = ConstMatrixMap(left_values, inner_size, outer_size); auto output = MatrixMap(output_values, inner_size, outer_size); op.apply(left.array(), right_values[0], output.array()); } else { auto left = ConstMatrixMap(left_values, inner_size, outer_size); auto right = ConstRowVectorMap(right_values, inner_size); auto output = MatrixMap(output_values, inner_size, outer_size); for (int32_t col = 0; col < outer_size; col++) { op.apply(left.col(col).array(), right.array(), output.col(col).array()); } } #else for (int32_t idx_out = 0; idx_out < outer_size; ++idx_out) { for (int32_t idx_in = 0; idx_in < inner_size; ++idx_in) { const int32_t offset = idx_out * inner_size + idx_in; output_values[offset] = op(left_values[offset], right_values[idx_in]); } } #endif } // Increments indices according to a shape. // Returns false if indices can't be incremented because they point to the last // element. // // E.g. if shape is (2, 3) and indices is [1, 2], indices is incremented to [2, // 0]. inline bool IncrementIndices(int32_t rank, const int32_t* shape, int32_t* indices) { int32_t i = rank - 1; while (i >= 0 && indices[i] == shape[i] - 1) { --i; } if (i < 0) { return false; } indices[i] += 1; for (++i; i < rank; ++i) { indices[i] = 0; } return true; } // Returns the offset in a values array given its shape and indices. // E.g. if the shape is (2, 3) and indices are [1, 2] the offset is 1*3 + 2. inline int32_t Offset(int32_t rank, const int32_t* shape, const int32_t* indices) { int32_t offset = 0; int32_t mul = 1; for (int32_t i = rank - 1; i >= 0; --i) { offset += mul * indices[i]; mul *= shape[i]; } return offset; } // Like Offset() but with broadcasting. // E.g. if the input_shape is (2, 1, 3) and indices are [1, 2, 2] the offset is // 1*1*3 + 2*0 + 2. // The indices_rank can be greater than the input_rank and then the first // indices_rank - input_rank indices are ignored. // E.g. if the input_shape is (4) and indices are [2, 3, 1] the offset is 1. inline int32_t BroadcastOffset(int32_t input_rank, const int32_t* input_shape, int32_t indices_rank, const int32_t* indices) { int32_t offset = 0; int32_t mul = 1; for (int32_t i = input_rank - 1; i >= 0; --i) { int32_t index = input_shape[i] == 1 ? 0 : indices[i + indices_rank - input_rank]; offset += mul * index; mul *= input_shape[i]; } return offset; } template void OpGenericBroadcast(int32_t left_rank, const int32_t* __restrict left_shape, const T* __restrict left_values, int32_t right_rank, const int32_t* __restrict right_shape, const T* __restrict right_values, T* __restrict output_values, OP op) { BENCHMARK_TIMER(op.name, "GenericBroadcast"); const int32_t output_rank = std::max(left_rank, right_rank); const int32_t kMaxRank = 8; assert(output_rank <= kMaxRank); int32_t output_shape[kMaxRank]; for (int32_t i = 0; i < output_rank; ++i) { int32_t left_i = i - output_rank + left_rank; int32_t right_i = i - output_rank + right_rank; output_shape[i] = std::max(left_i >= 0 ? left_shape[left_i] : 0, right_i >= 0 ? right_shape[right_i] : 0); } int32_t output_indices[kMaxRank]{}; do { output_values[Offset(output_rank, output_shape, output_indices)] = op(left_values[BroadcastOffset(left_rank, left_shape, output_rank, output_indices)], right_values[BroadcastOffset(right_rank, right_shape, output_rank, output_indices)]); } while (IncrementIndices(output_rank, output_shape, output_indices)); } #define BROADCAST_BINARY_OP(OP_NAME, EXPR, EXPR_EIGEN) \ template \ struct Op##OP_NAME { \ const char* name = #OP_NAME; \ T operator()(const T lhs, const T rhs) { return EXPR; } \ template \ void apply(const X& lhs, const Y& rhs, Z out) { \ out = EXPR_EIGEN; \ } \ }; \ template \ void OP_NAME##NoBroadcast( \ const int32_t left_rank, const int32_t* __restrict left_shape, \ const T* __restrict left_values, const int32_t right_rank, \ const int32_t* __restrict right_shape, const T* __restrict right_values, \ T* __restrict output_values) { \ OpNoBroadcast(left_rank, left_shape, left_values, right_rank, right_shape, \ right_values, output_values, Op##OP_NAME()); \ } \ template \ void OP_NAME##InnerBroadcast( \ const int32_t left_rank, const int32_t* __restrict left_shape, \ const T* __restrict left_values, const int32_t right_rank, \ const int32_t* __restrict right_shape, const T* __restrict right_values, \ T* __restrict output_values) { \ OpInnerBroadcast(left_rank, left_shape, left_values, right_rank, \ right_shape, right_values, output_values, \ Op##OP_NAME()); \ } \ template \ void OP_NAME(const int32_t left_rank, const int32_t* __restrict left_shape, \ const T* __restrict left_values, const int32_t right_rank, \ const int32_t* __restrict right_shape, \ const T* __restrict right_values, \ T* __restrict output_values) { \ OpGenericBroadcast(left_rank, left_shape, left_values, right_rank, \ right_shape, right_values, output_values, \ Op##OP_NAME()); \ } // Second macro param is value expression, third entry is Eigen vector // expression. BROADCAST_BINARY_OP(Add, lhs + rhs, lhs + rhs) BROADCAST_BINARY_OP(Maximum, std::max(lhs, rhs), lhs.max(rhs)) BROADCAST_BINARY_OP(Minimum, std::min(lhs, rhs), lhs.min(rhs)) BROADCAST_BINARY_OP(Mul, lhs* rhs, lhs* rhs) BROADCAST_BINARY_OP(Sub, lhs - rhs, lhs - rhs) BROADCAST_BINARY_OP(SquaredDifference, (lhs - rhs) * (lhs - rhs), (lhs - rhs).square()) // ----------------------------------------------------------------------------- // Reduce ops // ----------------------------------------------------------------------------- // We use macros instead of template functions with templated functors here // because it's a lot less verbose and easier for the compiler to optimize. #define REDUCE_OP(OP_NAME, DEFAULT_VALUE, UPDATE_EXPR, RESULT_EXPR) \ template \ void OP_NAME##InnerReduce( \ int32_t input_rank, const int32_t* __restrict input_shape, \ const T* __restrict input_values, int32_t index_tensor_rank, \ const int32_t* __restrict index_shape, \ const Tidx* __restrict index_values, T* __restrict output_values) { \ BENCHMARK_TIMER(#OP_NAME, "InnerReduce"); \ const int32_t inner_size = \ GetReduceInnerSize(input_rank, input_shape, index_tensor_rank, \ index_shape, index_values); \ const int32_t input_size = ShapeSize(input_rank, input_shape); \ const int32_t outer_size = input_size / inner_size; \ for (int32_t idx_out = 0; idx_out < outer_size; ++idx_out) { \ T value = DEFAULT_VALUE; \ for (int32_t idx_in = 0; idx_in < inner_size; ++idx_in) { \ const T prev = value; \ const T next = input_values[idx_out * inner_size + idx_in]; \ value = UPDATE_EXPR; \ } \ const T count = inner_size; \ /* Used by mean reduce. */ \ (void)sizeof(count); \ output_values[idx_out] = RESULT_EXPR; \ } \ } \ template \ void OP_NAME##GenericReduceRank2( \ int32_t input_rank, const int32_t* __restrict input_shape, \ const T* __restrict input_values, int32_t index_tensor_rank, \ const int32_t* __restrict index_shape, \ const Tidx* __restrict index_values, T* __restrict output_values) { \ assert(input_rank == 2); \ assert(index_tensor_rank <= 1); \ BENCHMARK_TIMER(#OP_NAME, "GenericReduceRank2"); \ const int32_t output_size = input_shape[1]; \ std::fill_n(output_values, output_size, DEFAULT_VALUE); \ for (int32_t dim0 = 0; dim0 < input_shape[0]; ++dim0) { \ for (int32_t dim1 = 0; dim1 < input_shape[1]; ++dim1, ++input_values) { \ T* out_ptr = output_values + dim1; \ const T prev = *out_ptr; \ const T next = *input_values; \ *out_ptr = UPDATE_EXPR; \ } \ } \ const T count = input_shape[0]; \ /* Used by mean reduce. */ \ (void)sizeof(count); \ for (int32_t i = 0; i < output_size; ++i) { \ const T value = output_values[i]; \ output_values[i] = RESULT_EXPR; \ } \ } \ template \ void OP_NAME##GenericReduceRank3( \ int32_t input_rank, const int32_t* __restrict input_shape, \ const T* __restrict input_values, int32_t index_tensor_rank, \ const int32_t* __restrict index_shape, \ const Tidx* __restrict index_values, T* __restrict output_values) { \ assert(input_rank == 3); \ assert(index_tensor_rank <= 1); \ BENCHMARK_TIMER(#OP_NAME, "GenericReduceRank3"); \ int32_t out_shape[3] = {input_shape[0], input_shape[1], input_shape[2]}; \ bool reduce_mask[3] = {false, false, false}; \ const int32_t num_indices = index_tensor_rank > 0 ? index_shape[0] : 1; \ for (int32_t i = 0; i < num_indices; ++i) { \ reduce_mask[index_values[i]] = true; \ out_shape[index_values[i]] = 1; \ } \ const int32_t out_strides[3] = { \ reduce_mask[0] ? 0 : out_shape[1] * out_shape[2], \ reduce_mask[1] ? 0 : out_shape[2], \ reduce_mask[2] ? 0 : 1, \ }; \ const int32_t output_size = ShapeSize(input_rank, out_shape); \ std::fill_n(output_values, output_size, DEFAULT_VALUE); \ for (int32_t dim0 = 0; dim0 < input_shape[0]; ++dim0) { \ for (int32_t dim1 = 0; dim1 < input_shape[1]; ++dim1) { \ for (int32_t dim2 = 0; dim2 < input_shape[2]; \ ++dim2, ++input_values) { \ T* out_ptr = output_values + out_strides[0] * dim0 + \ out_strides[1] * dim1 + out_strides[2] * dim2; \ const T prev = *out_ptr; \ const T next = *input_values; \ *out_ptr = UPDATE_EXPR; \ } \ } \ } \ const T count = (reduce_mask[0] ? input_shape[0] : 1) * \ (reduce_mask[1] ? input_shape[1] : 1) * \ (reduce_mask[2] ? input_shape[2] : 1); \ /* Used by mean reduce. */ \ (void)sizeof(count); \ for (int32_t i = 0; i < output_size; ++i) { \ const T value = output_values[i]; \ output_values[i] = RESULT_EXPR; \ } \ } \ template \ void OP_NAME##GenericReduceRank4( \ int32_t input_rank, const int32_t* __restrict input_shape, \ const T* __restrict input_values, int32_t index_tensor_rank, \ const int32_t* __restrict index_shape, \ const Tidx* __restrict index_values, T* __restrict output_values) { \ assert(input_rank == 4); \ assert(index_tensor_rank <= 1); \ BENCHMARK_TIMER(#OP_NAME, "GenericReduceRank4"); \ int32_t out_shape[4] = {input_shape[0], input_shape[1], input_shape[2], \ input_shape[3]}; \ bool reduce_mask[4] = {false, false, false, false}; \ const int32_t num_indices = index_tensor_rank > 0 ? index_shape[0] : 1; \ for (int32_t i = 0; i < num_indices; ++i) { \ reduce_mask[index_values[i]] = true; \ out_shape[index_values[i]] = 1; \ } \ const int32_t out_strides[4] = { \ reduce_mask[0] ? 0 : out_shape[1] * out_shape[2] * out_shape[3], \ reduce_mask[1] ? 0 : out_shape[2] * out_shape[3], \ reduce_mask[2] ? 0 : out_shape[3], \ reduce_mask[3] ? 0 : 1, \ }; \ const int32_t output_size = ShapeSize(input_rank, out_shape); \ std::fill_n(output_values, output_size, DEFAULT_VALUE); \ for (int32_t dim0 = 0; dim0 < input_shape[0]; ++dim0) { \ for (int32_t dim1 = 0; dim1 < input_shape[1]; ++dim1) { \ for (int32_t dim2 = 0; dim2 < input_shape[2]; ++dim2) { \ for (int32_t dim3 = 0; dim3 < input_shape[3]; \ ++dim3, ++input_values) { \ T* out_ptr = output_values + out_strides[0] * dim0 + \ out_strides[1] * dim1 + out_strides[2] * dim2 + \ out_strides[3] * dim3; \ const T prev = *out_ptr; \ const T next = *input_values; \ *out_ptr = UPDATE_EXPR; \ } \ } \ } \ } \ const T count = (reduce_mask[0] ? input_shape[0] : 1) * \ (reduce_mask[1] ? input_shape[1] : 1) * \ (reduce_mask[2] ? input_shape[2] : 1) * \ (reduce_mask[3] ? input_shape[3] : 1); \ /* Used by mean reduce. */ \ (void)sizeof(count); \ for (int32_t i = 0; i < output_size; ++i) { \ const T value = output_values[i]; \ output_values[i] = RESULT_EXPR; \ } \ } \ template \ void OP_NAME##GenericReduceRank5( \ int32_t input_rank, const int32_t* __restrict input_shape, \ const T* __restrict input_values, int32_t index_tensor_rank, \ const int32_t* __restrict index_shape, \ const Tidx* __restrict index_values, T* __restrict output_values) { \ assert(input_rank == 5); \ assert(index_tensor_rank <= 1); \ BENCHMARK_TIMER(#OP_NAME, "GenericReduceRank5"); \ int32_t out_shape[5] = {input_shape[0], input_shape[1], input_shape[2], \ input_shape[3], input_shape[4]}; \ /* If true, reduce the input across that dimension. */ \ bool reduce_mask[5] = {false, false, false, false, false}; \ const int32_t num_indices = index_tensor_rank > 0 ? index_shape[0] : 1; \ for (int32_t i = 0; i < num_indices; ++i) { \ reduce_mask[index_values[i]] = true; \ out_shape[index_values[i]] = 1; \ } \ const int32_t out_strides[5] = { \ reduce_mask[0] \ ? 0 \ : out_shape[1] * out_shape[2] * out_shape[3] * out_shape[4], \ reduce_mask[1] ? 0 : out_shape[2] * out_shape[3] * out_shape[4], \ reduce_mask[2] ? 0 : out_shape[3] * out_shape[4], \ reduce_mask[3] ? 0 : out_shape[4], \ reduce_mask[4] ? 0 : 1, \ }; \ const int32_t output_size = ShapeSize(input_rank, out_shape); \ std::fill_n(output_values, output_size, DEFAULT_VALUE); \ for (int32_t dim0 = 0; dim0 < input_shape[0]; ++dim0) { \ for (int32_t dim1 = 0; dim1 < input_shape[1]; ++dim1) { \ for (int32_t dim2 = 0; dim2 < input_shape[2]; ++dim2) { \ for (int32_t dim3 = 0; dim3 < input_shape[3]; ++dim3) { \ for (int32_t dim4 = 0; dim4 < input_shape[4]; \ ++dim4, ++input_values) { \ T* out_ptr = output_values + out_strides[0] * dim0 + \ out_strides[1] * dim1 + out_strides[2] * dim2 + \ out_strides[3] * dim3 + out_strides[4] * dim4; \ const T prev = *out_ptr; \ const T next = *input_values; \ *out_ptr = UPDATE_EXPR; \ } \ } \ } \ } \ } \ const T count = (reduce_mask[0] ? input_shape[0] : 1) * \ (reduce_mask[1] ? input_shape[1] : 1) * \ (reduce_mask[2] ? input_shape[2] : 1) * \ (reduce_mask[3] ? input_shape[3] : 1) * \ (reduce_mask[4] ? input_shape[4] : 1); \ /* Used by mean reduce. */ \ (void)sizeof(count); \ for (int32_t i = 0; i < output_size; ++i) { \ const T value = output_values[i]; \ output_values[i] = RESULT_EXPR; \ } \ } REDUCE_OP(Max, std::numeric_limits::lowest(), std::max(prev, next), value) REDUCE_OP(Min, std::numeric_limits::infinity(), std::min(prev, next), value) REDUCE_OP(Sum, 0, prev + next, value) REDUCE_OP(Mean, 0, prev + next, value / count) // ----------------------------------------------------------------------------- // Dequantize ops // ----------------------------------------------------------------------------- template void DequantizeMinCombined(const int32_t rank, const int32_t* __restrict input_shape, const T* __restrict input_values, const float* __restrict min_range, const float* __restrict max_range, float* __restrict output_values) { BENCHMARK_TIMER("DequantizeMinCombined"); const int32_t size = ShapeSize(rank, input_shape); const float offset = std::is_signed::value ? (static_cast(std::numeric_limits::max()) - std::numeric_limits::min() + 1) / 2.0f : 0.0f; const float range_scale = (max_range[0] - min_range[0]) / (static_cast(std::numeric_limits::max()) - std::numeric_limits::min()); for (int32_t i = 0; i < size; ++i) { output_values[i] = ((static_cast(input_values[i]) + offset) * range_scale) + min_range[0]; } } template void DequantizeMinFirst(const int32_t rank, const int32_t* __restrict input_shape, const T* __restrict input_values, const float* __restrict min_range, const float* __restrict max_range, float* __restrict output_values) { BENCHMARK_TIMER("DequantizeMinFirst"); const int32_t size = ShapeSize(rank, input_shape); const float range_scale = (max_range[0] - min_range[0]) / (static_cast(std::numeric_limits::max()) - std::numeric_limits::min()); const float range_min_rounded = (max_range[0] == min_range[0] ? min_range[0] : std::round(min_range[0] / range_scale) * range_scale); for (int32_t i = 0; i < size; ++i) { output_values[i] = ((static_cast(input_values[i]) - std::numeric_limits::min()) * range_scale) + range_min_rounded; } } // ----------------------------------------------------------------------------- // AddN op // ----------------------------------------------------------------------------- template void AddN(const int32_t rank, const int32_t* __restrict shape, std::initializer_list input_values, T* __restrict output_values) { BENCHMARK_TIMER("AddN"); const int32_t size = ShapeSize(rank, shape); #if USE_EIGEN auto output = RowVectorMap(output_values, size).array(); std::fill_n(output_values, size, 0); for (const auto input_value : input_values) { output += ConstRowVectorMap(input_value, size).array(); } #else for (int32_t i = 0; i < size; ++i) { T output_value = 0; for (auto input_value : input_values) { output_value += input_value[i]; } output_values[i] = output_value; } #endif } // ----------------------------------------------------------------------------- // CONSTANTS // Note that for now, endianness of the target machine needs to match that of // the one training was performed on. // ----------------------------------------------------------------------------- const int32_t dnn_hiddenlayer_0_bias__0__cf__0_shape[1] = {20}; const union { uint8_t bytes[80]; float values[20]; } dnn_hiddenlayer_0_bias__0__cf__0 = {{ 0x6d, 0x69, 0x23, 0xbe, 0x8f, 0xde, 0x7f, 0x3f, 0xc2, 0x0a, 0xb8, 0xbf, 0xcf, 0x0c, 0x23, 0x3e, 0x1c, 0xf8, 0x8c, 0xbf, 0x21, 0xb3, 0xf9, 0xbd, 0x6d, 0xae, 0xce, 0xbf, 0x6e, 0x72, 0xac, 0x3f, 0xcd, 0x1b, 0xba, 0x3f, 0x30, 0x1e, 0xdb, 0x3f, 0xdc, 0xb4, 0xbd, 0x3f, 0x99, 0x41, 0x12, 0x3f, 0x8f, 0x44, 0x25, 0xbf, 0x73, 0xf5, 0x0f, 0xbe, 0x56, 0x2a, 0xa6, 0x3f, 0xc1, 0xad, 0x0a, 0xc0, 0x96, 0x6d, 0xa2, 0xbd, 0xde, 0xce, 0xec, 0xbf, 0xd0, 0x44, 0x0e, 0xc0, 0x78, 0xef, 0xa6, 0x3f, }}; const int32_t dnn_hiddenlayer_0_kernel__1__cf__1_shape[2] = {323, 20}; const union { uint8_t bytes[25840]; float values[6460]; } dnn_hiddenlayer_0_kernel__1__cf__1 = {{ 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0xcc, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0xcc, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x20, 0xbd, 0xcc, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0xc0, 0xdc, 0xee, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0xdc, 0xee, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x08, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0xc0, 0xdc, 0xee, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0xc0, 0xdc, 0xee, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x9d, 0xaa, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0xec, 0x7f, 0x3f, 0x50, 0x35, 0xc4, 0xbf, 0x20, 0x7e, 0x88, 0x3e, 0x80, 0xec, 0x7f, 0xbf, 0x40, 0xbd, 0x4c, 0xbe, 0x18, 0x45, 0xd5, 0xbf, 0xc8, 0x15, 0xa2, 0x3f, 0x50, 0x35, 0xc4, 0x3f, 0x30, 0xbd, 0xcc, 0x3f, 0x88, 0x25, 0xb3, 0x3f, 0xe0, 0x8d, 0x19, 0x3f, 0xb0, 0x9d, 0x2a, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0xe8, 0x8d, 0x99, 0x3f, 0x14, 0xc2, 0x0c, 0xc0, 0x40, 0x7e, 0x08, 0xbe, 0xf8, 0xcc, 0xdd, 0xbf, 0x14, 0xc2, 0x0c, 0xc0, 0xe8, 0x8d, 0x99, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0xcc, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0xec, 0x7f, 0x3f, 0x24, 0x01, 0x51, 0x40, 0xe0, 0x8d, 0x19, 0x3f, 0xa0, 0x9d, 0x2a, 0x3f, 0x40, 0xbd, 0x4c, 0x3e, 0x70, 0xad, 0x3b, 0xbf, 0xc0, 0x9d, 0xaa, 0xbe, 0x8d, 0x25, 0xb3, 0xc0, 0x40, 0xbd, 0x4c, 0x3e, 0x88, 0x25, 0xb3, 0x3f, 0xc0, 0xdc, 0xee, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0x14, 0xc2, 0x0c, 0xc0, 0x37, 0xac, 0x4b, 0xc1, 0xc8, 0x15, 0xa2, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x50, 0x35, 0xc4, 0x3f, 0xc8, 0x15, 0xa2, 0x3f, 0xba, 0x59, 0xa6, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0xcc, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0x9d, 0xaa, 0xbe, 0x70, 0xad, 0x3b, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0xb0, 0xdc, 0x6e, 0x3f, 0x90, 0x25, 0xb3, 0xbf, 0x40, 0xbd, 0x4c, 0x3e, 0x28, 0x7e, 0x88, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x18, 0x45, 0xd5, 0xbf, 0xa8, 0x9d, 0xaa, 0x3f, 0x50, 0x35, 0xc4, 0x3f, 0x30, 0xbd, 0xcc, 0x3f, 0x30, 0xbd, 0xcc, 0x3f, 0xa0, 0x9d, 0x2a, 0x3f, 0xb0, 0x9d, 0x2a, 0xbf, 0x20, 0x7e, 0x88, 0xbe, 0xa8, 0x9d, 0xaa, 0x3f, 0x04, 0x06, 0x11, 0xc0, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0xdc, 0xee, 0xbf, 0xf8, 0x49, 0x15, 0xc0, 0xa8, 0x9d, 0xaa, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0x3e, 0x50, 0x35, 0x44, 0x40, 0xf0, 0x8d, 0x19, 0xbf, 0x20, 0xbd, 0xcc, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x06, 0x91, 0x3f, 0xc0, 0xdc, 0xee, 0xbe, 0x24, 0x01, 0x51, 0xc0, 0xe8, 0x8d, 0x99, 0xbf, 0x70, 0xad, 0x3b, 0x3f, 0xb0, 0xdc, 0x6e, 0x3f, 0xc0, 0x9d, 0xaa, 0xbe, 0xf8, 0xcc, 0xdd, 0xbf, 0xa6, 0x42, 0xf5, 0xc0, 0xe0, 0x8d, 0x19, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x80, 0xec, 0x7f, 0x3f, 0x20, 0x7e, 0x08, 0x3f, 0x80, 0xec, 0xff, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x30, 0xbd, 0x4c, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0xec, 0x7f, 0x3f, 0x70, 0xad, 0xbb, 0xbf, 0x20, 0x7e, 0x88, 0x3e, 0x08, 0x06, 0x91, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x38, 0xbd, 0xcc, 0xbf, 0x70, 0xad, 0xbb, 0x3f, 0xa8, 0x9d, 0xaa, 0x3f, 0xd8, 0x54, 0xe6, 0x3f, 0x30, 0xbd, 0xcc, 0x3f, 0x20, 0x7e, 0x08, 0x3f, 0xf0, 0x8d, 0x19, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x88, 0x25, 0xb3, 0x3f, 0x04, 0x06, 0x11, 0xc0, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x54, 0xe6, 0xbf, 0x24, 0x7e, 0x08, 0xc0, 0xc8, 0x15, 0xa2, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0x7e, 0x88, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbd, 0xcc, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x08, 0xbf, 0x30, 0xbd, 0xcc, 0x3f, 0x30, 0xbd, 0x4c, 0xbf, 0x70, 0xad, 0xbb, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x80, 0xec, 0x7f, 0x3f, 0x00, 0x7e, 0x08, 0x3e, 0xf0, 0x8d, 0x19, 0xbf, 0xf0, 0x8d, 0x19, 0xbf, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0xbd, 0xcc, 0x3e, 0x70, 0xad, 0x3b, 0xbf, 0x18, 0x45, 0xd5, 0xbf, 0xf0, 0x8d, 0x19, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0xe8, 0x8d, 0x99, 0x3f, 0xf0, 0xcc, 0x5d, 0x3f, 0xe0, 0x8d, 0x19, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x8d, 0x19, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0xcc, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0xf0, 0xcc, 0x5d, 0x3f, 0x70, 0xad, 0xbb, 0xbf, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0xec, 0x7f, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x38, 0xbd, 0xcc, 0xbf, 0xa8, 0x9d, 0xaa, 0x3f, 0xa8, 0x9d, 0xaa, 0x3f, 0x10, 0x45, 0xd5, 0x3f, 0x88, 0x25, 0xb3, 0x3f, 0xc0, 0xdc, 0xee, 0x3e, 0xf0, 0x8d, 0x19, 0xbf, 0x40, 0xbd, 0x4c, 0xbe, 0xc8, 0x15, 0xa2, 0x3f, 0x24, 0x7e, 0x08, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x80, 0xec, 0xff, 0xbf, 0x14, 0xc2, 0x0c, 0xc0, 0xc8, 0x15, 0xa2, 0x3f, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x08, 0x3f, 0x40, 0xbd, 0x4c, 0xbe, 0xc0, 0xdc, 0xee, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0xf0, 0x8d, 0x19, 0xbf, 0xc0, 0xdc, 0xee, 0xbe, 0x20, 0x7e, 0x08, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0xbe, 0xe0, 0x8d, 0x19, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0xa0, 0x9d, 0x2a, 0x3f, 0xa0, 0x9d, 0xaa, 0x3e, 0x20, 0x7e, 0x08, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0xc0, 0xdc, 0xee, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0xdc, 0xee, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x30, 0xbd, 0x4c, 0xbf, 0xc0, 0xdc, 0xee, 0xbe, 0x40, 0xbd, 0xcc, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0xcc, 0xbe, 0xc0, 0xdc, 0xee, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x70, 0xad, 0x3b, 0x3f, 0xc0, 0xdc, 0xee, 0x3e, 0x20, 0x7e, 0x08, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xe8, 0x8d, 0x99, 0xbf, 0xc0, 0x9d, 0xaa, 0xbe, 0xc0, 0xdc, 0xee, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0xc8, 0x15, 0xa2, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x08, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0x7e, 0x08, 0x40, 0x20, 0xbd, 0xcc, 0x3e, 0xf0, 0x8d, 0x19, 0xbf, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xcc, 0x5d, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0xec, 0x7f, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0xcc, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0xf0, 0xcc, 0x5d, 0x3f, 0x90, 0x25, 0xb3, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x28, 0x7e, 0x88, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x38, 0xbd, 0xcc, 0xbf, 0xc8, 0x15, 0xa2, 0x3f, 0x50, 0x35, 0xc4, 0x3f, 0xf8, 0xcc, 0xdd, 0x3f, 0x70, 0xad, 0xbb, 0x3f, 0x20, 0x7e, 0x08, 0x3f, 0xf0, 0x8d, 0x19, 0xbf, 0x20, 0x7e, 0x88, 0xbe, 0xe8, 0x8d, 0x99, 0x3f, 0x24, 0x7e, 0x08, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x80, 0xec, 0xff, 0xbf, 0xf8, 0x49, 0x15, 0xc0, 0xa8, 0x9d, 0xaa, 0x3f, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0xbd, 0xcc, 0x3e, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x08, 0x3f, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xb0, 0xdc, 0x6e, 0x3f, 0xa0, 0x9d, 0x2a, 0x3f, 0x20, 0x7e, 0x88, 0x3e, 0xf0, 0xcc, 0x5d, 0x3f, 0xb0, 0xdc, 0x6e, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0xcc, 0xbe, 0xf0, 0xcc, 0x5d, 0x3f, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0xbd, 0xcc, 0xbe, 0xc0, 0xdc, 0xee, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x30, 0x3a, 0x04, 0x40, 0x08, 0x06, 0x91, 0xbf, 0x20, 0x7e, 0x08, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0xbd, 0xcc, 0x3e, 0xc8, 0x15, 0xa2, 0xbf, 0x00, 0x7e, 0x08, 0x3e, 0x18, 0x45, 0xd5, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x70, 0xad, 0xbb, 0xbf, 0xc8, 0x15, 0xa2, 0x3f, 0x88, 0x25, 0xb3, 0x3f, 0x10, 0x45, 0xd5, 0x3f, 0xe8, 0x8d, 0x99, 0x3f, 0xc0, 0xdc, 0xee, 0x3e, 0x30, 0xbd, 0x4c, 0xbf, 0x20, 0x7e, 0x88, 0xbe, 0xc8, 0x15, 0xa2, 0x3f, 0x80, 0xec, 0xff, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0xd8, 0x54, 0xe6, 0xbf, 0x34, 0x3a, 0x04, 0xc0, 0x30, 0xbd, 0x4c, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0x7e, 0x08, 0x3f, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x9d, 0x2a, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0xdc, 0xee, 0xbe, 0x20, 0x7e, 0x08, 0xbf, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x70, 0xad, 0x3b, 0x3f, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x30, 0xbd, 0x4c, 0xbf, 0x40, 0xbd, 0xcc, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xdc, 0xee, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0xec, 0x7f, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0xec, 0xff, 0x3f, 0x70, 0xad, 0x3b, 0x3f, 0xa0, 0x9d, 0x2a, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x9d, 0xaa, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0xbd, 0xcc, 0x3e, 0xc8, 0x15, 0xa2, 0xbf, 0x40, 0xbd, 0x4c, 0x3e, 0x08, 0x06, 0x91, 0xbf, 0x40, 0xbd, 0x4c, 0x3e, 0x50, 0x35, 0xc4, 0xbf, 0xa0, 0x9d, 0x2a, 0x3f, 0x20, 0x7e, 0x88, 0x3f, 0x50, 0x35, 0xc4, 0x3f, 0xf0, 0xcc, 0x5d, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0xc0, 0xdc, 0x6e, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x06, 0x91, 0x3f, 0x50, 0x35, 0xc4, 0xbf, 0x40, 0xbd, 0x4c, 0xbe, 0x50, 0x35, 0xc4, 0xbf, 0xa0, 0x64, 0xf7, 0xbf, 0x20, 0x7e, 0x08, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x70, 0xad, 0x3b, 0xbf, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x70, 0xad, 0x3b, 0x3f, 0xe0, 0x8d, 0x19, 0x3f, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0xe8, 0x8d, 0x99, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0xcc, 0xbe, 0x30, 0xbd, 0x4c, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x30, 0xbd, 0x4c, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0xc8, 0x15, 0xa2, 0x3f, 0xe8, 0x8d, 0x99, 0x3f, 0x20, 0xbd, 0xcc, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x30, 0xbd, 0x4c, 0x3f, 0x90, 0x25, 0xb3, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x30, 0xbd, 0x4c, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x90, 0x25, 0xb3, 0xbf, 0x20, 0x7e, 0x08, 0x3f, 0xb0, 0xdc, 0x6e, 0x3f, 0x30, 0xbd, 0xcc, 0x3f, 0xe8, 0x8d, 0x99, 0x3f, 0x40, 0xbd, 0x4c, 0xbe, 0x28, 0x7e, 0x88, 0xbf, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x88, 0x3f, 0xc8, 0x15, 0xa2, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x70, 0xad, 0xbb, 0xbf, 0xf8, 0xcc, 0xdd, 0xbf, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x91, 0x3f, 0x20, 0x7e, 0x88, 0xbe, 0xf0, 0xcc, 0x5d, 0x3f, 0x40, 0xbd, 0xcc, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0xcc, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0xe0, 0x8d, 0x19, 0x3f, 0xc0, 0xdc, 0xee, 0xbe, 0xe0, 0x8d, 0x19, 0x3f, 0x40, 0xbd, 0x4c, 0xbe, 0xe8, 0x8d, 0x99, 0x3f, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0xcc, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x70, 0xad, 0x3b, 0x3f, 0xc8, 0x15, 0xa2, 0xbf, 0x40, 0xbd, 0x4c, 0x3e, 0xb0, 0x9d, 0x2a, 0xbf, 0x40, 0xbd, 0x4c, 0x3e, 0x50, 0x35, 0xc4, 0xbf, 0x20, 0x7e, 0x08, 0x3f, 0x70, 0xad, 0x3b, 0x3f, 0x88, 0x25, 0xb3, 0x3f, 0xe8, 0x8d, 0x99, 0x3f, 0x20, 0x7e, 0x88, 0xbe, 0xe8, 0x8d, 0x99, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x06, 0x91, 0x3f, 0xb0, 0x9d, 0xaa, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x08, 0x06, 0x91, 0xbf, 0x18, 0x45, 0xd5, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0xcc, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0xcc, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0xcc, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0xcc, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0xc0, 0xdc, 0x6e, 0xbf, 0x20, 0x7e, 0x08, 0x3f, 0x40, 0xbd, 0x4c, 0xbe, 0xc0, 0xdc, 0xee, 0x3e, 0xc0, 0xdc, 0xee, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x70, 0xad, 0x3b, 0xbf, 0x20, 0x7e, 0x08, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x20, 0xbd, 0xcc, 0x3e, 0xf0, 0xcc, 0x5d, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0xa0, 0x9d, 0x2a, 0x3f, 0xa0, 0x9d, 0xaa, 0x3e, 0x20, 0x7e, 0x08, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x08, 0x3f, 0x90, 0x25, 0xb3, 0xbf, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0xbd, 0xcc, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x18, 0x45, 0xd5, 0xbf, 0x40, 0xbd, 0x4c, 0x3e, 0xb0, 0xdc, 0x6e, 0x3f, 0x88, 0x25, 0xb3, 0x3f, 0x00, 0x06, 0x91, 0x3f, 0xc0, 0x9d, 0xaa, 0xbe, 0x50, 0x35, 0xc4, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0x3f, 0xe8, 0x8d, 0x99, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0xe8, 0x8d, 0x99, 0xbf, 0x38, 0xbd, 0xcc, 0xbf, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0xcc, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0xbd, 0xcc, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0xcc, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0xcc, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0xbd, 0xcc, 0xbe, 0x40, 0xbd, 0xcc, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xdc, 0xee, 0xbe, 0x00, 0xcd, 0x5d, 0xbf, 0x20, 0xbd, 0xcc, 0x3e, 0x20, 0x7e, 0x08, 0x3f, 0x20, 0x7e, 0x88, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x80, 0xec, 0x7f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0x3e, 0xe8, 0x8d, 0x99, 0xbf, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x80, 0xec, 0x7f, 0xbf, 0x30, 0xbd, 0x4c, 0x3f, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x70, 0xad, 0x3b, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x70, 0xad, 0x3b, 0x3f, 0x70, 0xad, 0xbb, 0xbf, 0x20, 0x7e, 0x88, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0xc0, 0xdc, 0xee, 0xbf, 0xb0, 0xdc, 0x6e, 0x3f, 0xf0, 0xcc, 0x5d, 0x3f, 0x70, 0xad, 0xbb, 0x3f, 0x20, 0x7e, 0x88, 0x3f, 0x20, 0x7e, 0x88, 0xbe, 0x70, 0xad, 0xbb, 0xbf, 0x40, 0xbd, 0x4c, 0x3e, 0xc8, 0x15, 0xa2, 0x3f, 0xe8, 0x8d, 0x99, 0xbf, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x15, 0xa2, 0xbf, 0x18, 0x45, 0xd5, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0x9d, 0xaa, 0xbe, 0x20, 0x7e, 0x88, 0x3f, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0xdc, 0xee, 0x3e, 0x00, 0xcd, 0x5d, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0xe0, 0x8d, 0x19, 0x3f, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0xdc, 0xee, 0x3e, 0xe8, 0x8d, 0x99, 0xbf, 0x20, 0xbd, 0xcc, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x38, 0xbd, 0xcc, 0xbf, 0x20, 0x7e, 0x08, 0x3f, 0x20, 0x7e, 0x08, 0x3f, 0x50, 0x35, 0xc4, 0x3f, 0xe0, 0x8d, 0x19, 0x3f, 0x20, 0x7e, 0x88, 0xbe, 0xc8, 0x15, 0xa2, 0xbf, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x9d, 0xaa, 0x3f, 0xc0, 0xdc, 0x6e, 0xbf, 0x40, 0xbd, 0x4c, 0xbe, 0x28, 0x7e, 0x88, 0xbf, 0xc8, 0x15, 0xa2, 0xbf, 0x40, 0xbd, 0x4c, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0xec, 0x7f, 0x3f, 0x50, 0x35, 0xc4, 0xbf, 0x20, 0x7e, 0x88, 0x3e, 0x28, 0x7e, 0x88, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x50, 0x35, 0xc4, 0xbf, 0xc8, 0x15, 0xa2, 0x3f, 0x88, 0x25, 0xb3, 0x3f, 0x10, 0x45, 0xd5, 0x3f, 0x70, 0xad, 0xbb, 0x3f, 0x20, 0x7e, 0x88, 0x3e, 0x30, 0xbd, 0x4c, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0xa8, 0x9d, 0xaa, 0x3f, 0x24, 0x7e, 0x08, 0xc0, 0x80, 0x7e, 0x88, 0xbd, 0xd8, 0x54, 0xe6, 0xbf, 0x24, 0x7e, 0x08, 0xc0, 0x20, 0x7e, 0x88, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0x3e, 0x80, 0xec, 0x7f, 0xbf, 0x70, 0xad, 0x3b, 0x3f, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0x7e, 0x88, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0xb0, 0xdc, 0x6e, 0x3f, 0x20, 0x7e, 0x08, 0x3f, 0x20, 0xbd, 0xcc, 0x3e, 0xe8, 0x8d, 0x99, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0x7e, 0x08, 0x3f, 0x20, 0x7e, 0x08, 0xbf, 0x30, 0xbd, 0x4c, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0xa8, 0x9d, 0xaa, 0x3f, 0x08, 0x06, 0x91, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0xcc, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x28, 0x7e, 0x88, 0xbf, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0xec, 0x7f, 0x3f, 0x10, 0x45, 0xd5, 0x3f, 0x70, 0xad, 0xbb, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x70, 0xad, 0x3b, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0xb0, 0x9d, 0x2a, 0xbf, 0xc0, 0xdc, 0xee, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0xb0, 0x9d, 0x2a, 0xbf, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0xcc, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x08, 0x3f, 0x30, 0xbd, 0x4c, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0xdc, 0xee, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x08, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x9d, 0xaa, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0xbd, 0xcc, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0xb0, 0x9d, 0x2a, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0xf0, 0x8d, 0x19, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x08, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0xe8, 0x8d, 0x99, 0x3f, 0xd8, 0xd1, 0x1d, 0xc0, 0x9c, 0xe1, 0x2e, 0xc0, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0xf0, 0xcc, 0x5d, 0x3f, 0x20, 0xbd, 0xcc, 0x3e, 0x88, 0x25, 0xb3, 0x3f, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0xcd, 0x5d, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0xdc, 0xee, 0xbf, 0x80, 0xec, 0x7f, 0x3f, 0xa0, 0x64, 0x77, 0xc0, 0xb0, 0x9d, 0x2a, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x38, 0xbd, 0xcc, 0xbf, 0x10, 0x45, 0xd5, 0x3f, 0xe0, 0x8d, 0x19, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0x7e, 0x88, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x15, 0xa2, 0x3f, 0x08, 0x06, 0x91, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0xcc, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0xe8, 0x8d, 0x99, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0xe8, 0x8d, 0x99, 0x3f, 0x30, 0xbd, 0xcc, 0x3f, 0x50, 0x35, 0xc4, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0xf0, 0xcc, 0x5d, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x70, 0xad, 0x3b, 0xbf, 0x40, 0xbd, 0xcc, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x70, 0xad, 0x3b, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0xf0, 0x8d, 0x19, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0xa8, 0x9d, 0xaa, 0x3f, 0xb8, 0xdc, 0xee, 0x3f, 0xc0, 0xdc, 0x6e, 0xbf, 0x20, 0x7e, 0x88, 0x3f, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0xec, 0xff, 0xbf, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x9d, 0x2a, 0x3f, 0x40, 0xbd, 0x4c, 0x3e, 0x80, 0xec, 0x7f, 0xbf, 0xc0, 0xdc, 0xee, 0x3e, 0x9c, 0xe1, 0x2e, 0xc1, 0x22, 0x7e, 0x88, 0x40, 0x00, 0x00, 0x00, 0x00, 0x8c, 0xa8, 0x7b, 0x40, 0xc0, 0xdc, 0xee, 0x3e, 0xf9, 0x38, 0x14, 0xc1, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0xc8, 0x15, 0xa2, 0x3f, 0x28, 0x7e, 0x88, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0xcc, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0xc8, 0x15, 0xa2, 0xbf, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0x7e, 0x88, 0x3f, 0x50, 0x35, 0xc4, 0x3f, 0x50, 0x35, 0xc4, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x70, 0xad, 0x3b, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0xf0, 0x8d, 0x19, 0xbf, 0xc0, 0x9d, 0xaa, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x8d, 0x19, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0xb0, 0x9d, 0x2a, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0x3e, 0x30, 0xbd, 0xcc, 0x3f, 0x80, 0xec, 0xff, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0xcc, 0xbe, 0x14, 0xc2, 0x0c, 0xc0, 0xc0, 0xdc, 0xee, 0xbe, 0x20, 0x7e, 0x88, 0x3f, 0x00, 0x7e, 0x08, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0x16, 0x45, 0xd5, 0xc0, 0xa8, 0x9d, 0xaa, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0xac, 0x20, 0x73, 0x40, 0x30, 0xbd, 0x4c, 0x3f, 0x18, 0x45, 0x55, 0xc0, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x70, 0xad, 0xbb, 0x3f, 0x08, 0x06, 0x91, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x08, 0xbf, 0x20, 0x7e, 0x88, 0xbe, 0xe8, 0x8d, 0x99, 0xbf, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x88, 0x3f, 0x10, 0x45, 0xd5, 0x3f, 0x50, 0x35, 0xc4, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0xb0, 0xdc, 0x6e, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x30, 0xbd, 0x4c, 0xbf, 0xc0, 0xdc, 0xee, 0xbe, 0x20, 0x7e, 0x08, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x30, 0xbd, 0x4c, 0xbf, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x30, 0xbd, 0x4c, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbd, 0xcc, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0xc0, 0xdc, 0xee, 0xbe, 0x40, 0xbd, 0xcc, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0xb0, 0xdc, 0x6e, 0x3f, 0x40, 0xbd, 0xcc, 0xbe, 0xa0, 0x64, 0xf7, 0xbf, 0x30, 0xbd, 0x4c, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x70, 0xad, 0xbb, 0x3f, 0xf4, 0x49, 0x15, 0x40, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0xcc, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0xc8, 0x15, 0xa2, 0x3f, 0xe8, 0x8d, 0x99, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x08, 0xbf, 0x20, 0x7e, 0x88, 0xbe, 0x28, 0x7e, 0x88, 0xbf, 0x20, 0x7e, 0x88, 0xbe, 0x80, 0xec, 0x7f, 0x3f, 0x70, 0xad, 0xbb, 0x3f, 0xa8, 0x9d, 0xaa, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0x30, 0xbd, 0x4c, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0xb0, 0x9d, 0x2a, 0xbf, 0x20, 0x7e, 0x08, 0xbf, 0x20, 0x7e, 0x08, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0xbe, 0xc0, 0xdc, 0xee, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x9d, 0xaa, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x70, 0xad, 0x3b, 0xbf, 0x20, 0x7e, 0x08, 0xbf, 0xc0, 0x9d, 0xaa, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0xcc, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x9d, 0x2a, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x70, 0xad, 0x3b, 0xbf, 0xf0, 0x8d, 0x19, 0xbf, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x08, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0xa0, 0x9d, 0xaa, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x08, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0xb0, 0xdc, 0x6e, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x60, 0xf1, 0x3f, 0x40, 0x20, 0xbd, 0xcc, 0x3e, 0x30, 0xbd, 0x4c, 0xbf, 0xa0, 0x64, 0xf7, 0xbf, 0x00, 0x7e, 0x08, 0x3e, 0xdf, 0xaf, 0x9b, 0xc0, 0x20, 0xbd, 0xcc, 0x3e, 0xb8, 0xdc, 0xee, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0xf0, 0x8d, 0x19, 0xbf, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x88, 0x25, 0xb3, 0x3f, 0xe8, 0x8d, 0x99, 0xbf, 0x40, 0xbd, 0x4c, 0xbe, 0xc0, 0xdc, 0xee, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0xe8, 0x8d, 0x99, 0xbf, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x06, 0x91, 0x3f, 0x50, 0x35, 0xc4, 0x3f, 0xc8, 0x15, 0xa2, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x30, 0xbd, 0x4c, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x08, 0xbf, 0x20, 0x7e, 0x08, 0xbf, 0xe0, 0x8d, 0x19, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0xcc, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0xdc, 0xee, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x70, 0xad, 0x3b, 0xbf, 0xa0, 0x9d, 0x2a, 0x3f, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0xa0, 0x9d, 0x2a, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0xa0, 0x9d, 0xaa, 0x3e, 0x80, 0xec, 0xff, 0x3f, 0xc0, 0xdc, 0xee, 0x3e, 0xb0, 0x9d, 0x2a, 0xbf, 0x20, 0x7e, 0x08, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0xbc, 0xdc, 0x6e, 0xc0, 0x20, 0x7e, 0x08, 0xbf, 0xa0, 0x9d, 0x2a, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x70, 0xad, 0x3b, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x50, 0x35, 0xc4, 0x3f, 0xc8, 0x15, 0xa2, 0xbf, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0xc8, 0x15, 0xa2, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x06, 0x91, 0x3f, 0xf8, 0xcc, 0xdd, 0x3f, 0xf0, 0xcc, 0x5d, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x80, 0xec, 0x7f, 0x3f, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x70, 0xad, 0x3b, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0xbd, 0xcc, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x30, 0xbd, 0x4c, 0xbf, 0x20, 0x7e, 0x88, 0x3f, 0x40, 0xbd, 0xcc, 0xbe, 0xc0, 0xdc, 0xee, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x9d, 0x2a, 0x3f, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x30, 0xbd, 0x4c, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0xe8, 0x8d, 0x99, 0xbf, 0xa0, 0x9d, 0xaa, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0xe8, 0x8d, 0x99, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0xf8, 0x49, 0x15, 0xc0, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x70, 0xad, 0x3b, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x50, 0x35, 0xc4, 0x3f, 0x70, 0xad, 0xbb, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0xe8, 0x8d, 0x99, 0xbf, 0x20, 0x7e, 0x88, 0x3e, 0x88, 0x25, 0xb3, 0x3f, 0xf8, 0xcc, 0xdd, 0x3f, 0x80, 0xec, 0x7f, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x88, 0x25, 0xb3, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x70, 0xad, 0x3b, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0xc0, 0xdc, 0xee, 0xbe, 0xf0, 0x8d, 0x19, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0x3e, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0xbd, 0xcc, 0xbe, 0x20, 0x7e, 0x08, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0x10, 0x45, 0xd5, 0x3f, 0x40, 0xbd, 0xcc, 0xbe, 0x30, 0xbd, 0x4c, 0xbf, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0xdc, 0xee, 0x3e, 0xf0, 0x8d, 0x19, 0xbf, 0xa0, 0x9d, 0xaa, 0x3e, 0xb0, 0x9d, 0x2a, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x24, 0x7e, 0x08, 0xc0, 0xc0, 0xdc, 0xee, 0x3e, 0xc0, 0xdc, 0xee, 0xbe, 0x80, 0xec, 0x7f, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0xbc, 0x59, 0x26, 0xc0, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0xf0, 0x8d, 0x19, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x70, 0xad, 0xbb, 0x3f, 0x90, 0x25, 0xb3, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0xe8, 0x8d, 0x99, 0xbf, 0x40, 0xbd, 0x4c, 0x3e, 0x10, 0x45, 0xd5, 0x3f, 0xf8, 0xcc, 0xdd, 0x3f, 0x20, 0xbd, 0xcc, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0xbd, 0xcc, 0xbe, 0x20, 0x7e, 0x88, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x30, 0xbd, 0x4c, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0xbd, 0xcc, 0xbe, 0x40, 0xbd, 0xcc, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0xc0, 0xdc, 0xee, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0x3e, 0x80, 0xec, 0x7f, 0x3f, 0x20, 0x7e, 0x88, 0x3e, 0xf0, 0xcc, 0x5d, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0xf0, 0xcc, 0x5d, 0x3f, 0x20, 0x7e, 0x08, 0x3f, 0xa0, 0x9d, 0x2a, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x38, 0xbd, 0xcc, 0xbf, 0xf0, 0xcc, 0x5d, 0x3f, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0xbd, 0xcc, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0xa0, 0x64, 0xf7, 0xbf, 0x30, 0xbd, 0x4c, 0xbf, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x70, 0xad, 0x3b, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x50, 0x35, 0xc4, 0x3f, 0x38, 0xbd, 0xcc, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0xc8, 0x15, 0xa2, 0xbf, 0x20, 0xbd, 0xcc, 0x3e, 0x10, 0x45, 0xd5, 0x3f, 0x80, 0xec, 0xff, 0x3f, 0xc0, 0xdc, 0xee, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0xe0, 0x8d, 0x19, 0x3f, 0x20, 0x7e, 0x08, 0xbf, 0x20, 0x7e, 0x88, 0x3f, 0x40, 0xbd, 0xcc, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x08, 0xbf, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0xbd, 0xcc, 0xbe, 0x20, 0x7e, 0x08, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xdc, 0xee, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0x20, 0x7e, 0x08, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x08, 0xbf, 0xe0, 0x8d, 0x19, 0x3f, 0xc0, 0x9d, 0xaa, 0xbe, 0xf0, 0xcc, 0x5d, 0x3f, 0x70, 0xad, 0x3b, 0x3f, 0xe8, 0x8d, 0x99, 0x3f, 0x20, 0x7e, 0x08, 0x3f, 0xf0, 0x8d, 0x19, 0xbf, 0x40, 0xbd, 0x4c, 0x3e, 0xac, 0x9d, 0x2a, 0xc0, 0x00, 0x06, 0x91, 0x3f, 0x20, 0x7e, 0x08, 0x3f, 0xc0, 0xdc, 0xee, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0xac, 0x9d, 0x2a, 0xc0, 0x40, 0x7e, 0x08, 0xbe, 0xe0, 0x8d, 0x19, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xcc, 0xdd, 0x3f, 0xf8, 0xcc, 0xdd, 0xbf, 0x00, 0x7e, 0x08, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x38, 0xbd, 0xcc, 0xbf, 0xe0, 0x8d, 0x19, 0x3f, 0xd8, 0x54, 0xe6, 0x3f, 0x20, 0x7e, 0x08, 0x40, 0x20, 0x7e, 0x08, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0xc0, 0xdc, 0xee, 0x3e, 0xf0, 0x8d, 0x19, 0xbf, 0x80, 0xec, 0x7f, 0x3f, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0xbd, 0xcc, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0xcc, 0xbe, 0xc0, 0xdc, 0xee, 0xbe, 0xb0, 0x9d, 0x2a, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0xcc, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x08, 0xbf, 0x20, 0x7e, 0x08, 0xbf, 0x00, 0xcd, 0x5d, 0xbf, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0xb0, 0x9d, 0x2a, 0xbf, 0xc0, 0xdc, 0xee, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0xdc, 0xee, 0xbe, 0x40, 0xbd, 0xcc, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x08, 0xbf, 0x40, 0xbd, 0xcc, 0xbe, 0xc0, 0xdc, 0x6e, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x28, 0x7e, 0x88, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x08, 0xbf, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0xe8, 0x8d, 0x99, 0x3f, 0xf0, 0xcc, 0x5d, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0xf0, 0xcc, 0x5d, 0x3f, 0xf0, 0x8d, 0x19, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0xb0, 0x9d, 0xaa, 0xbf, 0xa0, 0x9d, 0x2a, 0x3f, 0x20, 0x7e, 0x88, 0x3f, 0x28, 0x7e, 0x88, 0xbf, 0x40, 0xbd, 0x4c, 0xbe, 0xf8, 0x49, 0x15, 0xc0, 0x30, 0xbd, 0x4c, 0x3f, 0xf8, 0xcc, 0xdd, 0x3f, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0xc0, 0xdc, 0xee, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0xdc, 0xee, 0xbe, 0xb0, 0x9d, 0x2a, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x30, 0xbd, 0xcc, 0x3f, 0x34, 0x3a, 0x04, 0xc0, 0x40, 0xbd, 0x4c, 0x3e, 0x20, 0xbd, 0xcc, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x38, 0xbd, 0xcc, 0xbf, 0x20, 0x7e, 0x08, 0x3f, 0x80, 0xec, 0xff, 0x3f, 0xb8, 0xdc, 0xee, 0x3f, 0x70, 0xad, 0x3b, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0xbd, 0xcc, 0x3e, 0xc0, 0xdc, 0xee, 0xbe, 0x88, 0x25, 0xb3, 0x3f, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x08, 0xbf, 0xb0, 0x9d, 0x2a, 0xbf, 0x00, 0xcd, 0x5d, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0x9d, 0xaa, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0xc0, 0xdc, 0xee, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0xcc, 0xbe, 0x70, 0xad, 0x3b, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0xb0, 0x9d, 0x2a, 0xbf, 0xb0, 0x9d, 0x2a, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0x9d, 0xaa, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0x9d, 0xaa, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0xc0, 0xdc, 0xee, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0xf0, 0x8d, 0x19, 0xbf, 0xb0, 0x9d, 0x2a, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0xc0, 0xdc, 0xee, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x08, 0xbf, 0x20, 0x7e, 0x08, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x34, 0x3a, 0x04, 0xc0, 0xc8, 0x15, 0xa2, 0x3f, 0xe0, 0x8d, 0x19, 0x3f, 0x20, 0x7e, 0x08, 0xbf, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0xd8, 0x54, 0xe6, 0xbf, 0x24, 0x7e, 0x08, 0xc0, 0x70, 0xad, 0xbb, 0x3f, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x28, 0x7e, 0x88, 0xbf, 0x30, 0xbd, 0x4c, 0x3f, 0xb8, 0xdc, 0xee, 0x3f, 0x34, 0x3a, 0x04, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcd, 0x5d, 0xbf, 0x80, 0xec, 0x7f, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x10, 0x45, 0xd5, 0x3f, 0x04, 0x06, 0x11, 0xc0, 0x20, 0xbd, 0xcc, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xcc, 0xdd, 0xbf, 0x20, 0xbd, 0xcc, 0x3e, 0x04, 0x06, 0x11, 0x40, 0x20, 0x7e, 0x08, 0x40, 0x80, 0xec, 0x7f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xad, 0x3b, 0xbf, 0xd8, 0x54, 0xe6, 0x3f, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0xf0, 0x8d, 0x19, 0xbf, 0x00, 0xcd, 0x5d, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x88, 0x25, 0xb3, 0x3f, 0xb0, 0x9d, 0xaa, 0xbf, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0xc8, 0x15, 0xa2, 0xbf, 0x40, 0xbd, 0x4c, 0x3e, 0x70, 0xad, 0xbb, 0x3f, 0xd8, 0x54, 0xe6, 0x3f, 0x00, 0x06, 0x91, 0x3f, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0x7e, 0x88, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x08, 0xbf, 0xc0, 0x9d, 0xaa, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0x3e, 0xb0, 0x9d, 0x2a, 0xbf, 0x20, 0x7e, 0x08, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0xe0, 0x8d, 0x19, 0x3f, 0xa0, 0x9d, 0x2a, 0x3f, 0x30, 0xbd, 0x4c, 0x3f, 0x40, 0xbd, 0x4c, 0x3e, 0x20, 0x7e, 0x88, 0x3e, 0x20, 0x7e, 0x08, 0x3f, 0xe0, 0x8d, 0x19, 0x3f, 0x20, 0xbd, 0xcc, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x38, 0xbd, 0xcc, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0xdc, 0xee, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0xbe, 0xd8, 0x54, 0xe6, 0xbf, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0xbd, 0xcc, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0xe8, 0x8d, 0x99, 0xbf, 0x20, 0x7e, 0x88, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbd, 0xcc, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0x7e, 0x08, 0x3f, 0x30, 0xbd, 0x4c, 0xbf, 0x40, 0xbd, 0x4c, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x08, 0x06, 0x91, 0xbf, 0x20, 0x7e, 0x88, 0xbe, 0xc0, 0xdc, 0xee, 0x3e, 0xf8, 0xcc, 0xdd, 0x3f, 0xe0, 0x8d, 0x19, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x30, 0xbd, 0x4c, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x30, 0xbd, 0x4c, 0xbf, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x70, 0xad, 0x3b, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x70, 0xad, 0x3b, 0xbf, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0xdc, 0x6e, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0xcc, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x20, 0x7e, 0x08, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0xa0, 0x9d, 0xaa, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0x9d, 0xaa, 0xbe, 0xa0, 0x9d, 0x2a, 0x3f, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0xbd, 0xcc, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0xc0, 0xdc, 0xee, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x9d, 0xaa, 0xbe, 0xe0, 0x8d, 0x19, 0x3f, 0x20, 0x7e, 0x88, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0xbd, 0xcc, 0x3e, 0x04, 0x06, 0x11, 0xc0, 0xb0, 0x9d, 0xaa, 0xbf, 0xc0, 0x9d, 0xaa, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0xa0, 0x9d, 0x2a, 0x3f, 0x20, 0xbd, 0xcc, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0xe0, 0x8d, 0x19, 0x3f, 0xb0, 0x9d, 0xaa, 0xbf, 0x40, 0xbd, 0xcc, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x24, 0x7e, 0x08, 0xc0, 0xd8, 0x54, 0xe6, 0x3f, 0xc0, 0xdc, 0xee, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x9d, 0xaa, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x08, 0x3f, 0x70, 0xad, 0x3b, 0xbf, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0xbd, 0xcc, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0x80, 0xec, 0x7f, 0xbf, 0x40, 0xbd, 0xcc, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x50, 0x35, 0xc4, 0x3f, 0xe0, 0x8d, 0x19, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x30, 0xbd, 0x4c, 0x3f, 0x40, 0xbd, 0x4c, 0x3e, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x70, 0xad, 0x3b, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0xdc, 0xee, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x9d, 0xaa, 0xbe, 0xc0, 0xdc, 0xee, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0xcc, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0xbd, 0xcc, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0x3e, 0x20, 0x7e, 0x88, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0xcc, 0xbe, 0xe0, 0x8d, 0x19, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0xa0, 0x9d, 0x2a, 0x3f, 0xb8, 0xdc, 0xee, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0xc8, 0x15, 0xa2, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0xbd, 0xcc, 0xbe, 0xa0, 0x64, 0x77, 0xc0, 0xb0, 0xdc, 0x6e, 0x3f, 0xc0, 0xdc, 0xee, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0xb8, 0xdc, 0xee, 0x3f, 0xb0, 0x9d, 0x2a, 0xbf, 0x1b, 0xa0, 0x0a, 0xc1, 0xf4, 0x49, 0x15, 0x40, 0x40, 0x7e, 0x08, 0xbe, 0x50, 0x35, 0xc4, 0x3f, 0x20, 0xbd, 0xcc, 0x3e, 0x1d, 0x23, 0xd3, 0xc0, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x9d, 0xaa, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0xdc, 0xee, 0x3e, 0x70, 0xad, 0x3b, 0xbf, 0x40, 0xbd, 0x4c, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x28, 0x7e, 0x88, 0xbf, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0x50, 0x35, 0xc4, 0x3f, 0x20, 0x7e, 0x08, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x70, 0xad, 0x3b, 0x3f, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x70, 0xad, 0x3b, 0xbf, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbd, 0xcc, 0x3e, 0x40, 0xbd, 0xcc, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0xbd, 0xcc, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0xe0, 0x8d, 0x19, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xdc, 0xee, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0xbd, 0xcc, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0x20, 0x7e, 0x88, 0x3e, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0xa0, 0x9d, 0x2a, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0xb0, 0xdc, 0x6e, 0x3f, 0xd8, 0x54, 0xe6, 0x3f, 0xa0, 0x9d, 0xaa, 0x3e, 0xa0, 0x9d, 0x2a, 0x3f, 0x20, 0x7e, 0x88, 0x3e, 0x20, 0x7e, 0x08, 0x3f, 0x40, 0xbd, 0xcc, 0xbe, 0x8c, 0x25, 0x33, 0xc0, 0xe0, 0x8d, 0x19, 0x3f, 0xa0, 0x9d, 0x2a, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xcc, 0xdd, 0x3f, 0x00, 0xcd, 0x5d, 0xbf, 0x26, 0x6d, 0x07, 0xc1, 0x14, 0xc2, 0x0c, 0x40, 0x00, 0x7e, 0x88, 0x3d, 0xe8, 0x8d, 0x99, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0xf8, 0x49, 0x15, 0xc0, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0xbd, 0xcc, 0x3e, 0xb0, 0x9d, 0x2a, 0xbf, 0x20, 0x7e, 0x88, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0xec, 0x7f, 0xbf, 0xc0, 0x9d, 0xaa, 0xbe, 0xc0, 0xdc, 0xee, 0x3e, 0x70, 0xad, 0xbb, 0x3f, 0x20, 0x7e, 0x08, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x70, 0xad, 0x3b, 0x3f, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0xf0, 0x8d, 0x19, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xdc, 0xee, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0x7e, 0x08, 0x3f, 0x40, 0xbd, 0xcc, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x9d, 0xaa, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0xbd, 0xcc, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0xdc, 0xee, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xdc, 0xee, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0xa0, 0x9d, 0xaa, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0xbd, 0xcc, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0xe8, 0x8d, 0x99, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0xe0, 0x8d, 0x19, 0x3f, 0x00, 0x7e, 0x08, 0x3e, 0xe8, 0x8d, 0x99, 0x3f, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x08, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0xa0, 0x9d, 0x2a, 0x3f, 0x50, 0x35, 0x44, 0xc0, 0x00, 0x06, 0x91, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x80, 0xec, 0x7f, 0x3f, 0xe0, 0x8d, 0x19, 0x3f, 0x70, 0xad, 0xbb, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x30, 0xbd, 0x4c, 0xbf, 0x40, 0xbd, 0x4c, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0xe8, 0x8d, 0x99, 0xbf, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x10, 0x45, 0xd5, 0x3f, 0x70, 0xad, 0x3b, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x70, 0xad, 0x3b, 0x3f, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x30, 0xbd, 0x4c, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0xc0, 0xdc, 0xee, 0xbe, 0xc0, 0xdc, 0xee, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0xe0, 0x8d, 0x19, 0x3f, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0xbd, 0xcc, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0xa0, 0x9d, 0xaa, 0x3e, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x8d, 0x19, 0x3f, 0x20, 0x7e, 0x88, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0xdc, 0xee, 0xbe, 0x20, 0x7e, 0x08, 0x3f, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0xa0, 0x9d, 0x2a, 0x3f, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbd, 0xcc, 0x3e, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x9d, 0x2a, 0x3f, 0x40, 0xbd, 0xcc, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xdc, 0xee, 0x3e, 0xc0, 0xdc, 0xee, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x70, 0xad, 0x3b, 0x3f, 0x40, 0xbd, 0x4c, 0x3e, 0x70, 0xad, 0x3b, 0x3f, 0x40, 0xbd, 0x4c, 0xbe, 0xa8, 0x9d, 0xaa, 0x3f, 0x20, 0x7e, 0x88, 0x3e, 0x70, 0xad, 0x3b, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x60, 0xf1, 0x3f, 0xc0, 0xc0, 0xdc, 0xee, 0x3e, 0x70, 0xad, 0x3b, 0xbf, 0x70, 0xad, 0x3b, 0xbf, 0x00, 0x00, 0x00, 0x00, 0xac, 0x9d, 0x2a, 0xc0, 0x20, 0xbd, 0xcc, 0x3e, 0xb8, 0xdc, 0xee, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0xe0, 0x8d, 0x19, 0x3f, 0x20, 0x7e, 0x08, 0xbf, 0x00, 0x7e, 0x08, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0xec, 0x7f, 0xbf, 0x40, 0xbd, 0xcc, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x70, 0xad, 0xbb, 0x3f, 0xe0, 0x8d, 0x19, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x70, 0xad, 0x3b, 0x3f, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xad, 0x3b, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0x9d, 0xaa, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0x3e, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0xbd, 0xcc, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x9d, 0x2a, 0xbf, 0x04, 0x06, 0x11, 0xc0, 0x40, 0xbd, 0x4c, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x50, 0x35, 0xc4, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0xf0, 0x8d, 0x19, 0xbf, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x15, 0x22, 0xc0, 0x20, 0x7e, 0x08, 0x3f, 0xc0, 0xdc, 0x6e, 0xbf, 0x30, 0xbd, 0x4c, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0xb0, 0x9d, 0xaa, 0xbf, 0xe8, 0x8d, 0x99, 0x3f, 0xb0, 0x9d, 0x2a, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x08, 0x3f, 0xb0, 0x9d, 0x2a, 0xbf, 0xa0, 0x9d, 0xaa, 0x3e, 0xc0, 0xdc, 0xee, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0xb0, 0x9d, 0xaa, 0xbf, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x10, 0x45, 0xd5, 0x3f, 0x20, 0x7e, 0x08, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x70, 0xad, 0x3b, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0xcd, 0x5d, 0xbf, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0xcc, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x08, 0xbf, 0xb0, 0x9d, 0xaa, 0xbf, 0xa0, 0x9d, 0xaa, 0x3e, 0xc0, 0xdc, 0xee, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0xc8, 0x15, 0xa2, 0x3f, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0xa0, 0x9d, 0xaa, 0x3e, 0x30, 0xbd, 0x4c, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x14, 0xc2, 0x8c, 0xc0, 0x88, 0x25, 0xb3, 0x3f, 0xa0, 0x9d, 0xaa, 0x3e, 0x50, 0x35, 0xc4, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0xc8, 0x15, 0xa2, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x30, 0xbd, 0x4c, 0x3f, 0x08, 0x06, 0x91, 0xbf, 0x40, 0xbd, 0x4c, 0x3e, 0xf0, 0x8d, 0x19, 0xbf, 0x40, 0xbd, 0x4c, 0xbe, 0x50, 0x35, 0xc4, 0xbf, 0x40, 0xbd, 0x4c, 0xbe, 0xa0, 0x9d, 0x2a, 0x3f, 0x10, 0x45, 0xd5, 0x3f, 0xc0, 0xdc, 0xee, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0xf0, 0xcc, 0x5d, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0xec, 0x7f, 0xbf, 0x70, 0xad, 0x3b, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0xcc, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0xbd, 0xcc, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0xbe, 0x38, 0xbd, 0xcc, 0xbf, 0x20, 0x7e, 0x88, 0x3e, 0x20, 0x7e, 0x08, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x70, 0xad, 0x3b, 0x3f, 0xc0, 0x9d, 0xaa, 0xbe, 0x30, 0xbd, 0x4c, 0x3f, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0xcc, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x04, 0x06, 0x91, 0xc0, 0x40, 0xbd, 0xcc, 0xbe, 0x10, 0x45, 0xd5, 0x3f, 0xe8, 0x8d, 0x99, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0x3f, 0x50, 0x35, 0xc4, 0x3f, 0x20, 0x7e, 0x88, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0xec, 0x7f, 0x3f, 0x28, 0x7e, 0x88, 0xbf, 0x20, 0x7e, 0x88, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x18, 0x45, 0xd5, 0xbf, 0x40, 0xbd, 0xcc, 0xbe, 0x30, 0xbd, 0x4c, 0x3f, 0xb8, 0xdc, 0xee, 0x3f, 0x30, 0xbd, 0x4c, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0xa0, 0x9d, 0xaa, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0xe8, 0x8d, 0x99, 0xbf, 0x20, 0x7e, 0x08, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0xbd, 0xcc, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0xbd, 0xcc, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0xc0, 0xdc, 0xee, 0x3e, 0x50, 0x35, 0xc4, 0xbf, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0xb0, 0xdc, 0x6e, 0x3f, 0xa0, 0x9d, 0xaa, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0xac, 0x9d, 0x2a, 0xc0, 0x40, 0xbd, 0x4c, 0xbe, 0x70, 0xad, 0x3b, 0x3f, 0xf8, 0xcc, 0xdd, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x91, 0x3f, 0x30, 0xbd, 0xcc, 0x3f, 0x20, 0x7e, 0x88, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0xdc, 0xee, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xb0, 0xdc, 0x6e, 0x3f, 0x38, 0xbd, 0xcc, 0xbf, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0xcc, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0xa0, 0x64, 0xf7, 0xbf, 0x40, 0xbd, 0xcc, 0xbe, 0xe8, 0x8d, 0x99, 0x3f, 0x30, 0x3a, 0x04, 0x40, 0xf0, 0xcc, 0x5d, 0x3f, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0xec, 0x7f, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x70, 0xad, 0x3b, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0xc8, 0x15, 0xa2, 0xbf, 0xc0, 0xdc, 0x6e, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0xc0, 0xdc, 0x6e, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x70, 0xad, 0x3b, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0xa8, 0x9d, 0xaa, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x38, 0xbd, 0xcc, 0xbf, 0x20, 0xbd, 0xcc, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0xa0, 0x9d, 0x2a, 0x3f, 0x20, 0xbd, 0xcc, 0x3e, 0xc0, 0xdc, 0xee, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x70, 0xad, 0x3b, 0xbf, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xdc, 0xee, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x06, 0x91, 0x3f, 0x00, 0x06, 0x91, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0xf0, 0x8d, 0x19, 0xbf, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0xf0, 0xcc, 0x5d, 0x3f, 0x18, 0x45, 0xd5, 0xbf, 0x20, 0x7e, 0x08, 0x3f, 0xc0, 0xdc, 0xee, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0xec, 0xff, 0xbf, 0x20, 0x7e, 0x88, 0xbe, 0x88, 0x25, 0xb3, 0x3f, 0x20, 0x7e, 0x08, 0x40, 0xa0, 0x9d, 0x2a, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x30, 0xbd, 0x4c, 0x3f, 0x00, 0x7e, 0x08, 0x3e, 0xe8, 0x8d, 0x99, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x28, 0x7e, 0x88, 0xbf, 0x30, 0xbd, 0x4c, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0xc0, 0xdc, 0xee, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0x3e, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0xbd, 0xcc, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0xe8, 0x8d, 0x99, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0xf0, 0x8d, 0x19, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0xa0, 0x9d, 0xaa, 0x3e, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0x3e, 0x28, 0x7e, 0x88, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0xc8, 0x15, 0xa2, 0x3f, 0x20, 0x7e, 0x88, 0x3e, 0xa0, 0x64, 0xf7, 0xbf, 0xa0, 0x9d, 0xaa, 0x3e, 0xa0, 0x9d, 0x2a, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x8d, 0x19, 0xbf, 0xc0, 0xdc, 0xee, 0xbe, 0xc0, 0xdc, 0xee, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x88, 0x25, 0xb3, 0x3f, 0xe8, 0x8d, 0x19, 0xc0, 0x40, 0x7e, 0x08, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0xcc, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0xec, 0x7f, 0x3f, 0xf8, 0xcc, 0xdd, 0xbf, 0x20, 0x7e, 0x08, 0x3f, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x14, 0xc2, 0x0c, 0xc0, 0x40, 0xbd, 0x4c, 0xbe, 0x10, 0x45, 0xd5, 0x3f, 0xf4, 0x49, 0x15, 0x40, 0x20, 0xbd, 0xcc, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0xe0, 0x8d, 0x19, 0x3f, 0x20, 0xbd, 0xcc, 0x3e, 0x50, 0x35, 0xc4, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0xe8, 0x8d, 0x99, 0xbf, 0xc0, 0xdc, 0x6e, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0xa0, 0x9d, 0xaa, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0xa0, 0x9d, 0xaa, 0x3e, 0xc8, 0x15, 0xa2, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0xc0, 0xdc, 0xee, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0xa0, 0x9d, 0xaa, 0x3e, 0x70, 0xad, 0xbb, 0xbf, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xdc, 0xee, 0x3e, 0x08, 0x06, 0x91, 0xbf, 0x70, 0xad, 0x3b, 0x3f, 0xc0, 0xdc, 0xee, 0xbf, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0xc8, 0x15, 0xa2, 0xbf, 0x20, 0x7e, 0x88, 0x3e, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x30, 0xbd, 0x4c, 0xbf, 0xa8, 0x9d, 0xaa, 0x3f, 0x00, 0x06, 0x91, 0x3f, 0xe8, 0x8d, 0x19, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0xdc, 0xee, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0x9d, 0xaa, 0xbe, 0x20, 0x7e, 0x08, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0xa0, 0x9d, 0xaa, 0x3e, 0x08, 0x06, 0x91, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x80, 0xec, 0x7f, 0x3f, 0x34, 0x3a, 0x04, 0xc0, 0x30, 0xbd, 0x4c, 0x3f, 0xf0, 0x8d, 0x19, 0xbf, 0x20, 0x7e, 0x88, 0xbe, 0x04, 0x06, 0x11, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x14, 0xc2, 0x0c, 0x40, 0xb8, 0x59, 0x26, 0x40, 0xf0, 0xcc, 0x5d, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0xbd, 0xcc, 0x3e, 0x30, 0xbd, 0x4c, 0x3f, 0x04, 0x06, 0x11, 0x40, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0xe8, 0x8d, 0x99, 0xbf, 0xc8, 0x15, 0xa2, 0xbf, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x9d, 0x2a, 0x3f, 0x08, 0x06, 0x91, 0xbf, 0x20, 0xbd, 0xcc, 0x3e, 0xc0, 0xdc, 0xee, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x18, 0x45, 0xd5, 0xbf, 0xc0, 0x9d, 0xaa, 0xbe, 0x70, 0xad, 0x3b, 0x3f, 0x98, 0x64, 0xf7, 0x3f, 0xa0, 0x9d, 0x2a, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0xec, 0x7f, 0x3f, 0x40, 0xbd, 0x4c, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0xcd, 0x5d, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x18, 0x45, 0xd5, 0xbf, 0xa8, 0x9d, 0xaa, 0x3f, 0xa0, 0x9d, 0xaa, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0xcc, 0xbe, 0xe0, 0x8d, 0x19, 0x3f, 0x20, 0x7e, 0x08, 0x3f, 0x20, 0x7e, 0x08, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x28, 0x7e, 0x88, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0xbe, 0xe0, 0x8d, 0x19, 0x3f, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x28, 0x7e, 0x88, 0xbf, 0x00, 0xcd, 0x5d, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x50, 0x35, 0xc4, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0xec, 0x7f, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0xc0, 0xdc, 0xee, 0x3e, 0x80, 0xec, 0x7f, 0xbf, 0x70, 0xad, 0x3b, 0x3f, 0xc0, 0xdc, 0xee, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x50, 0x35, 0xc4, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0xdc, 0xee, 0x3e, 0xd8, 0x54, 0xe6, 0x3f, 0xe0, 0x8d, 0x19, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0xbd, 0xcc, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x08, 0x3f, 0xc0, 0xdc, 0xee, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x30, 0xbd, 0x4c, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x08, 0xbf, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0x9d, 0xaa, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0xe0, 0x8d, 0x19, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x9d, 0xaa, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0xc0, 0xdc, 0xee, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0x9d, 0xaa, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xdc, 0xee, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0xbd, 0xcc, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0xcc, 0xbe, 0x20, 0x7e, 0x08, 0x3f, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0xc0, 0xdc, 0xee, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0xf0, 0xcc, 0x5d, 0x3f, 0xf8, 0x49, 0x15, 0xc0, 0x24, 0x7e, 0x08, 0xc0, 0x40, 0xbd, 0x4c, 0x3e, 0xc0, 0xdc, 0xee, 0x3e, 0xc0, 0xdc, 0xee, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0xc8, 0x15, 0xa2, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0xb0, 0x9d, 0xaa, 0xbf, 0x00, 0x00, 0x00, 0x00, 0xe8, 0x8d, 0x99, 0x3f, 0x50, 0x35, 0xc4, 0x3f, 0xcc, 0x98, 0x6a, 0xc0, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x18, 0x45, 0xd5, 0xbf, 0xe0, 0x8d, 0x19, 0x3f, 0xd8, 0x54, 0xe6, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x08, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0xbd, 0xcc, 0x3e, 0x80, 0xec, 0x7f, 0xbf, 0x70, 0xad, 0x3b, 0x3f, 0xf0, 0x8d, 0x19, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x18, 0x45, 0xd5, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x08, 0x3f, 0xd8, 0x54, 0xe6, 0x3f, 0xe0, 0x8d, 0x19, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0xbd, 0xcc, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0xc0, 0xdc, 0xee, 0x3e, 0xf0, 0x8d, 0x19, 0xbf, 0xa0, 0x9d, 0xaa, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0xf0, 0x8d, 0x19, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0xa0, 0x9d, 0x2a, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0xdc, 0xee, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0xc0, 0xdc, 0xee, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0xf0, 0x8d, 0x19, 0xbf, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x08, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x08, 0x3f, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0x3f, 0xf0, 0xcc, 0x5d, 0x3f, 0xf8, 0xcc, 0xdd, 0xbf, 0x20, 0x7e, 0x88, 0x3f, 0xa0, 0x9d, 0xaa, 0x3e, 0xc0, 0xdc, 0xee, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x69, 0x37, 0xc0, 0xc0, 0xdc, 0xee, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x06, 0x91, 0x3f, 0xf0, 0xcc, 0x5d, 0x3f, 0x13, 0xc2, 0x0c, 0xc1, 0x30, 0x3a, 0x04, 0x40, 0x00, 0x7e, 0x08, 0x3e, 0x70, 0xad, 0xbb, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xf6, 0x49, 0x95, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0xcc, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0xe0, 0x8d, 0x19, 0x3f, 0x00, 0xcd, 0x5d, 0xbf, 0x20, 0x7e, 0x08, 0x3f, 0xc0, 0xdc, 0xee, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x50, 0x35, 0xc4, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0xdc, 0xee, 0x3e, 0xf8, 0xcc, 0xdd, 0x3f, 0xe0, 0x8d, 0x19, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0xbd, 0xcc, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0xc0, 0xdc, 0xee, 0x3e, 0x20, 0x7e, 0x08, 0xbf, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0xcc, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x8d, 0x19, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0xcc, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xdc, 0xee, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x8d, 0x19, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0xc0, 0xdc, 0xee, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x9d, 0xaa, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x8d, 0x19, 0x3f, 0xf0, 0xcc, 0x5d, 0x3f, 0x20, 0x7e, 0x08, 0xbf, 0x88, 0x25, 0xb3, 0x3f, 0xc0, 0xdc, 0xee, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0xe8, 0x8d, 0x19, 0xc0, 0x00, 0x7e, 0x88, 0x3d, 0xe0, 0x8d, 0x19, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x06, 0x91, 0x3f, 0x20, 0x7e, 0x88, 0x3e, 0x8f, 0xa8, 0xfb, 0xc0, 0xd8, 0x54, 0xe6, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0xf8, 0xcc, 0xdd, 0x3f, 0xb0, 0x9d, 0x2a, 0xbf, 0x14, 0xc2, 0x0c, 0xc0, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0xbd, 0xcc, 0x3e, 0x30, 0xbd, 0x4c, 0xbf, 0x20, 0x7e, 0x08, 0x3f, 0x40, 0xbd, 0xcc, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x38, 0xbd, 0xcc, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0xbd, 0xcc, 0x3e, 0xb8, 0xdc, 0xee, 0x3f, 0xc0, 0xdc, 0xee, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0xc0, 0xdc, 0xee, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x08, 0x3f, 0xf0, 0x8d, 0x19, 0xbf, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x08, 0xbf, 0x40, 0xbd, 0x4c, 0x3e, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0xe0, 0x8d, 0x19, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0xf0, 0x8d, 0x19, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0xdc, 0xee, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0xe0, 0x8d, 0x19, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0xa0, 0x9d, 0x2a, 0x3f, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0xcc, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x88, 0x25, 0xb3, 0x3f, 0x20, 0x7e, 0x08, 0x3f, 0x80, 0x69, 0x37, 0xc0, 0x70, 0xad, 0x3b, 0x3f, 0x00, 0x7e, 0x08, 0x3e, 0xe0, 0x8d, 0x19, 0x3f, 0x90, 0x25, 0xb3, 0xbf, 0x04, 0x06, 0x11, 0x40, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0xdc, 0xee, 0x3e, 0x80, 0xec, 0x7f, 0xbf, 0x20, 0x7e, 0x08, 0x3f, 0x40, 0xbd, 0xcc, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x70, 0xad, 0xbb, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x08, 0x3f, 0x98, 0x64, 0xf7, 0x3f, 0xc0, 0xdc, 0xee, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0xf0, 0x8d, 0x19, 0xbf, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x08, 0xbf, 0x40, 0xbd, 0x4c, 0x3e, 0x20, 0x7e, 0x88, 0x3e, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x30, 0xbd, 0x4c, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0x20, 0x7e, 0x88, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x8d, 0x19, 0xbf, 0x20, 0x7e, 0x88, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x70, 0xad, 0x3b, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xe8, 0x8d, 0x99, 0x3f, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0xcd, 0x5d, 0xbf, 0x08, 0x06, 0x91, 0xbf, 0xa0, 0x9d, 0xaa, 0x3e, 0xe8, 0x8d, 0x99, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xdc, 0x6e, 0xbf, 0xc0, 0xdc, 0xee, 0x3e, 0xe0, 0x8d, 0x19, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x80, 0xec, 0x7f, 0x3f, 0xa0, 0x9d, 0x2a, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcd, 0x5d, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0xdc, 0x54, 0x66, 0xc0, 0xf8, 0xcc, 0xdd, 0xbf, 0x20, 0x7e, 0x08, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x08, 0x3f, 0x30, 0xbd, 0x4c, 0xbf, 0xa0, 0x9d, 0x2a, 0x3f, 0xf0, 0x8d, 0x19, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x90, 0x25, 0xb3, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x08, 0x3f, 0x98, 0x64, 0xf7, 0x3f, 0x20, 0x7e, 0x08, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0xc0, 0xdc, 0xee, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0xbd, 0xcc, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0xa0, 0x9d, 0xaa, 0x3e, 0xc0, 0xdc, 0xee, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x9d, 0x2a, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0xbd, 0xcc, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x9d, 0x2a, 0xbf, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0x7e, 0x88, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0xb0, 0x9d, 0x2a, 0xbf, 0x80, 0xec, 0x7f, 0xbf, 0x20, 0x7e, 0x88, 0x3e, 0x38, 0xbd, 0xcc, 0xbf, 0xa0, 0x9d, 0xaa, 0x3e, 0xf0, 0xcc, 0x5d, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0x7e, 0x08, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0xec, 0x7f, 0x3f, 0xe0, 0x8d, 0x19, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x90, 0x25, 0xb3, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0xf8, 0xcc, 0xdd, 0xbf, 0xc8, 0x15, 0xa2, 0xbf, 0x20, 0x7e, 0x88, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0xa0, 0x9d, 0xaa, 0x3e, 0x08, 0x06, 0x91, 0xbf, 0x20, 0x7e, 0x08, 0x3f, 0x70, 0xad, 0x3b, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x18, 0x45, 0xd5, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0xe0, 0x8d, 0x19, 0x3f, 0x20, 0x7e, 0x08, 0x40, 0x30, 0xbd, 0x4c, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0xc0, 0xdc, 0xee, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0xbd, 0xcc, 0x3e, 0xf0, 0x8d, 0x19, 0xbf, 0xe0, 0x8d, 0x19, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0xcc, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0x9d, 0xaa, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0xb0, 0x9d, 0xaa, 0xbf, 0xf8, 0xcc, 0xdd, 0xbf, 0xe0, 0x8d, 0x19, 0x3f, 0x50, 0x35, 0xc4, 0xbf, 0xa0, 0x9d, 0xaa, 0x3e, 0x70, 0xad, 0x3b, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0xbd, 0xcc, 0x3e, 0xf0, 0xcc, 0x5d, 0x3f, 0xc8, 0x15, 0x22, 0xc0, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0xdc, 0xee, 0xbf, 0xa8, 0x9d, 0xaa, 0x3f, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x30, 0xbd, 0x4c, 0x3f, 0xe8, 0x8d, 0x99, 0xbf, 0x70, 0xad, 0x3b, 0x3f, 0x20, 0x7e, 0x08, 0xbf, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x54, 0xe6, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0xbd, 0xcc, 0x3e, 0x80, 0xec, 0xff, 0x3f, 0xf0, 0xcc, 0x5d, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x08, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0xdc, 0xee, 0x3e, 0x30, 0xbd, 0x4c, 0xbf, 0xc0, 0xdc, 0xee, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x30, 0xbd, 0x4c, 0xbf, 0xc8, 0x15, 0xa2, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0xd8, 0x54, 0xe6, 0xbf, 0x20, 0x7e, 0x88, 0x3e, 0x20, 0xbd, 0xcc, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x06, 0x91, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0xcc, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x20, 0xbd, 0xcc, 0x3e, 0x20, 0x7e, 0x08, 0x3f, 0xac, 0x9d, 0x2a, 0xc0, 0x80, 0x7e, 0x88, 0xbd, 0x08, 0x06, 0x91, 0xbf, 0x00, 0x06, 0x91, 0x3f, 0xf0, 0xcc, 0x5d, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xcc, 0x5d, 0x3f, 0xe8, 0x8d, 0x99, 0xbf, 0xe0, 0x8d, 0x19, 0x3f, 0x40, 0xbd, 0xcc, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0xc0, 0xdc, 0xee, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x70, 0xad, 0x3b, 0x3f, 0x20, 0x7e, 0x08, 0x40, 0x20, 0x7e, 0x88, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0xa0, 0x9d, 0x2a, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbd, 0xcc, 0x3e, 0x70, 0xad, 0x3b, 0xbf, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbd, 0xcc, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0xdc, 0xee, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x08, 0xbf, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x9d, 0xaa, 0x3e, 0xa0, 0x64, 0xf7, 0xbf, 0x20, 0x7e, 0x88, 0x3e, 0xe0, 0x8d, 0x19, 0x3f, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0x7e, 0x88, 0x3f, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x30, 0xbd, 0x4c, 0xbf, 0x40, 0xbd, 0x4c, 0x3e, 0x70, 0xad, 0x3b, 0x3f, 0x24, 0x01, 0x51, 0xc0, 0x40, 0x7e, 0x08, 0xbe, 0xa0, 0x64, 0xf7, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x30, 0xbd, 0xcc, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0x3f, 0xc8, 0x15, 0xa2, 0xbf, 0xe0, 0x8d, 0x19, 0x3f, 0x40, 0xbd, 0xcc, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0xdc, 0xee, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x08, 0x3f, 0x98, 0x64, 0xf7, 0x3f, 0x80, 0xec, 0x7f, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0xf0, 0xcc, 0x5d, 0x3f, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x8d, 0x19, 0xbf, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x20, 0x7e, 0x88, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0xcc, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xdc, 0xee, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0xb0, 0x9d, 0x2a, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0xcc, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x08, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0xb0, 0x9d, 0x2a, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x08, 0xbf, 0xa0, 0x9d, 0x2a, 0x3f, 0xb0, 0xdc, 0x6e, 0x3f, 0xf8, 0xcc, 0xdd, 0xbf, 0xc0, 0xdc, 0xee, 0x3e, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0xbd, 0xcc, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0xa0, 0x9d, 0xaa, 0x3e, 0x20, 0xbd, 0xcc, 0x3e, 0x80, 0xec, 0x7f, 0x3f, 0x70, 0xad, 0x3b, 0xc0, 0x40, 0x7e, 0x08, 0xbe, 0x90, 0x25, 0xb3, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x06, 0x91, 0x3f, 0x70, 0xad, 0xbb, 0xbf, 0xc8, 0x15, 0xa2, 0x3f, 0xc0, 0xdc, 0xee, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0xec, 0xff, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0xa0, 0x9d, 0x2a, 0x3f, 0x30, 0x3a, 0x04, 0x40, 0xc0, 0xdc, 0xee, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0xb0, 0x9d, 0x2a, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0x9d, 0xaa, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0xcc, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0xcc, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x08, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0xbd, 0xcc, 0x3e, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0xcc, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0xdc, 0xee, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x8d, 0x19, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0x9d, 0xaa, 0xbe, 0x70, 0xad, 0x3b, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x50, 0x35, 0xc4, 0xbf, 0x20, 0x7e, 0x88, 0x3e, 0x20, 0x7e, 0x88, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0x3e, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0x30, 0xbd, 0x4c, 0x3f, 0xf0, 0xcc, 0x5d, 0x3f, 0x14, 0xc2, 0x0c, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0xf0, 0xcc, 0x5d, 0x3f, 0x20, 0x7e, 0x88, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0xcc, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xe8, 0x8d, 0x99, 0x3f, 0x50, 0x35, 0xc4, 0xbf, 0xe8, 0x8d, 0x99, 0x3f, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0xec, 0xff, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0xf0, 0xcc, 0x5d, 0x3f, 0x30, 0x3a, 0x04, 0x40, 0x20, 0x7e, 0x08, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x91, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0xf0, 0x8d, 0x19, 0xbf, 0x20, 0x7e, 0x88, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x08, 0x3f, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0xec, 0x7f, 0xbf, 0xc0, 0x9d, 0xaa, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0xcc, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xdc, 0xee, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x30, 0xbd, 0x4c, 0xbf, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0xcc, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xdc, 0xee, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0xcc, 0xbe, 0xa0, 0x64, 0xf7, 0xbf, 0xa0, 0x9d, 0x2a, 0x3f, 0xa0, 0x64, 0xf7, 0xbf, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x70, 0xad, 0x3b, 0x3f, 0xf0, 0xcc, 0x5d, 0x3f, 0x00, 0xcd, 0x5d, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x70, 0xad, 0xbb, 0x3f, 0xc8, 0x15, 0xa2, 0x3f, 0xd8, 0x54, 0xe6, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0xdc, 0xee, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0xb0, 0x9d, 0x2a, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x70, 0xad, 0xbb, 0x3f, 0xc0, 0xdc, 0xee, 0xbf, 0xc8, 0x15, 0xa2, 0x3f, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xdc, 0xee, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x30, 0xbd, 0x4c, 0x3f, 0x80, 0xec, 0xff, 0x3f, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x70, 0xad, 0xbb, 0x3f, 0xc0, 0xdc, 0xee, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0xf0, 0xcc, 0x5d, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x30, 0xbd, 0x4c, 0x3f, 0x28, 0x7e, 0x88, 0xbf, 0xf0, 0xcc, 0x5d, 0x3f, 0xc0, 0xdc, 0xee, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0xf8, 0xcc, 0xdd, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0xdc, 0xee, 0x3e, 0x30, 0x3a, 0x04, 0x40, 0x70, 0xad, 0x3b, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xdc, 0xee, 0x3e, 0xb0, 0x9d, 0x2a, 0xbf, 0xa0, 0x9d, 0xaa, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x70, 0xad, 0xbb, 0xbf, 0xe0, 0x8d, 0x19, 0x3f, 0xc0, 0xdc, 0xee, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x08, 0x3f, 0x70, 0xad, 0x3b, 0x3f, 0xc0, 0xdc, 0xee, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0xec, 0x7f, 0x3f, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0xcd, 0x5d, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x70, 0xad, 0x3b, 0xbf, 0x40, 0xbd, 0x4c, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0xcd, 0x5d, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0xc8, 0x15, 0xa2, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0xdc, 0xee, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0xc0, 0xdc, 0x6e, 0xbf, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x38, 0xbd, 0xcc, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x88, 0x25, 0xb3, 0x3f, 0xa0, 0x9d, 0x2a, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbd, 0xcc, 0x3e, 0x40, 0xbd, 0xcc, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x08, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0x9d, 0xaa, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x20, 0x7e, 0x08, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xdc, 0xee, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xdc, 0xee, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0xc0, 0xdc, 0xee, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x70, 0xad, 0x3b, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0xbd, 0xcc, 0xbe, 0xa0, 0x9d, 0x2a, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0x3e, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x08, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0x7e, 0x08, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0xf0, 0xcc, 0x5d, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x20, 0x7e, 0x08, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0xf0, 0x8d, 0x19, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xdc, 0xee, 0x3e, 0x80, 0xec, 0xff, 0xbf, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0x7e, 0x08, 0x3f, 0xa0, 0x9d, 0xaa, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0xec, 0xff, 0x3f, 0x30, 0xbd, 0x4c, 0x3f, 0x20, 0xbd, 0xcc, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x8d, 0x19, 0xbf, 0x90, 0x25, 0xb3, 0xbf, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0xec, 0xff, 0xbf, 0xc0, 0xdc, 0x6e, 0xbf, 0x80, 0xec, 0xff, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xcc, 0xdd, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x70, 0xad, 0xbb, 0x3f, 0xe0, 0x8d, 0x19, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0xbd, 0xcc, 0x3e, 0xc0, 0xdc, 0xee, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0xcc, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0xbe, 0xa0, 0x9d, 0x2a, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0xbd, 0xcc, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x20, 0x7e, 0x08, 0x3f, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0xbd, 0xcc, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x20, 0x7e, 0x08, 0x3f, 0x20, 0xbd, 0xcc, 0x3e, 0xf0, 0xcc, 0x5d, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0x7e, 0x08, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x08, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0xfe, 0x27, 0x93, 0xc0, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0xf0, 0x8d, 0x19, 0xbf, 0xb0, 0x9d, 0x2a, 0xbf, 0xc0, 0xdc, 0x6e, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0xdc, 0xee, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0xf8, 0xcc, 0xdd, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0xc8, 0x15, 0xa2, 0x3f, 0xc0, 0xdc, 0xee, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0x20, 0x7e, 0x08, 0xbf, 0x20, 0x7e, 0x88, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0x9d, 0xaa, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0xc0, 0xdc, 0xee, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xdc, 0xee, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0xcc, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0xdc, 0xee, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0xdc, 0xee, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0x3e, 0xa0, 0x9d, 0x2a, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0xb0, 0x9d, 0xaa, 0xbf, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0xf6, 0x49, 0x95, 0xc0, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0x3f, 0xc0, 0xdc, 0xee, 0xbe, 0xb0, 0x9d, 0x2a, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0x9d, 0xaa, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0xf8, 0xcc, 0xdd, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0xa8, 0x9d, 0xaa, 0x3f, 0xa0, 0x9d, 0x2a, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0xc0, 0xdc, 0xee, 0xbe, 0xa0, 0x9d, 0x2a, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x08, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0xcc, 0xbe, 0x20, 0x7e, 0x08, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0xdc, 0xee, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0xcc, 0xbe, 0xa0, 0x9d, 0x2a, 0x3f, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0xc0, 0xdc, 0xee, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0x9d, 0xaa, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x08, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0xa0, 0x9d, 0x2a, 0x3f, 0x00, 0x7e, 0x08, 0x3e, 0x30, 0xbd, 0x4c, 0xbf, 0xa0, 0x9d, 0xaa, 0x3e, 0xb0, 0xdc, 0x6e, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0xcc, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0xf0, 0x8d, 0x19, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0xc0, 0xdc, 0xee, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0xdc, 0xee, 0xbf, 0xe0, 0x8d, 0x19, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0xc0, 0xdc, 0x6e, 0xbf, 0xc0, 0xdc, 0xee, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0xcc, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0xcc, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x38, 0xbd, 0xcc, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0xa8, 0x9d, 0xaa, 0x3f, 0xc0, 0xdc, 0xee, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0xcc, 0xbe, 0xa0, 0x9d, 0x2a, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0xa0, 0x9d, 0x2a, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0x9d, 0xaa, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x08, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x08, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0xbe, 0xe0, 0x8d, 0x19, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x08, 0x3f, 0x40, 0xbd, 0x4c, 0xbe, 0x70, 0xad, 0x3b, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0xbd, 0xcc, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x08, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0x9d, 0xaa, 0xbe, 0xe0, 0x8d, 0x19, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x9d, 0xaa, 0x3e, 0xb0, 0x9d, 0x2a, 0xbf, 0x38, 0xbd, 0xcc, 0xbf, 0xa0, 0x9d, 0xaa, 0x3e, 0xe8, 0x8d, 0x99, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0xec, 0x7f, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0xd8, 0xd1, 0x1d, 0xc0, 0xc0, 0xdc, 0x6e, 0xbf, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0x9d, 0xaa, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0xf8, 0xcc, 0xdd, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0xa8, 0x9d, 0xaa, 0x3f, 0x20, 0x7e, 0x08, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0xa0, 0x9d, 0xaa, 0x3e, 0xc0, 0xdc, 0xee, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0x3e, 0xc0, 0xdc, 0xee, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x08, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0x7e, 0x08, 0x3f, 0x40, 0xbd, 0x4c, 0x3e, 0x20, 0xbd, 0xcc, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xdc, 0xee, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0xdc, 0xee, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x08, 0x06, 0x91, 0xbf, 0x20, 0x7e, 0x88, 0xbe, 0xe8, 0x8d, 0x99, 0xbf, 0xa0, 0x9d, 0xaa, 0x3e, 0xb0, 0xdc, 0x6e, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0xb0, 0xdc, 0x6e, 0x3f, 0x30, 0xbd, 0x4c, 0xbf, 0x20, 0xbd, 0xcc, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0xec, 0x7f, 0x3f, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0xac, 0x9d, 0x2a, 0xc0, 0xc0, 0xdc, 0x6e, 0xbf, 0xf4, 0xcc, 0x5d, 0x40, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0xc0, 0xdc, 0xee, 0x3e, 0xc0, 0xdc, 0xee, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0x40, 0xbd, 0xcc, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0xa0, 0x64, 0xf7, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0xa0, 0x9d, 0xaa, 0x3e, 0xa8, 0x9d, 0xaa, 0x3f, 0xa0, 0x9d, 0x2a, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x9d, 0xaa, 0x3e, 0x20, 0x7e, 0x08, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0xbd, 0xcc, 0x3e, 0xf0, 0x8d, 0x19, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x9d, 0xaa, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0x3e, 0x20, 0x7e, 0x88, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0x7e, 0x08, 0xbf, 0xa0, 0x9d, 0xaa, 0x3e, 0x80, 0xec, 0x7f, 0xbf, 0x20, 0xbd, 0xcc, 0x3e, 0x30, 0xbd, 0x4c, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x70, 0xad, 0x3b, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0xe0, 0x8d, 0x19, 0x3f, 0x40, 0xbd, 0x4c, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0xec, 0xff, 0xbf, 0xc8, 0x15, 0xa2, 0xbf, 0xc8, 0x15, 0xa2, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0xdc, 0xee, 0x3e, 0x28, 0x7e, 0x88, 0xbf, 0xa0, 0x9d, 0xaa, 0x3e, 0xf0, 0x8d, 0x19, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0xec, 0xff, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x08, 0x3f, 0x30, 0xbd, 0xcc, 0x3f, 0x70, 0xad, 0x3b, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0xe0, 0x8d, 0x19, 0x3f, 0x00, 0xcd, 0x5d, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0xbd, 0xcc, 0x3e, 0xb0, 0x9d, 0x2a, 0xbf, 0x70, 0xad, 0x3b, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0xc0, 0xdc, 0xee, 0x3e, 0x20, 0x7e, 0x08, 0x3f, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x08, 0x3f, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0x3e, 0x20, 0xbd, 0xcc, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0xcc, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x70, 0xad, 0x3b, 0x3f, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0xcd, 0x5d, 0xbf, 0xa0, 0x9d, 0xaa, 0x3e, 0x20, 0x7e, 0x08, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0xbe, 0xf0, 0xcc, 0x5d, 0x3f, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x30, 0xbd, 0x4c, 0x3f, 0xc0, 0xdc, 0x6e, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x08, 0xbf, 0xc8, 0x15, 0xa2, 0xbf, 0x20, 0x7e, 0x08, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xdc, 0xee, 0x3e, 0x50, 0x35, 0xc4, 0xbf, 0xa0, 0x9d, 0x2a, 0x3f, 0x40, 0xbd, 0xcc, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x49, 0x15, 0xc0, 0x80, 0x7e, 0x88, 0xbd, 0xa0, 0x9d, 0x2a, 0x3f, 0x70, 0xad, 0xbb, 0x3f, 0xf0, 0xcc, 0x5d, 0x3f, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0xb0, 0xdc, 0x6e, 0x3f, 0x70, 0xad, 0x3b, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0x3e, 0xb0, 0x9d, 0x2a, 0xbf, 0x00, 0x06, 0x91, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0x7e, 0x08, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0xcc, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0xbd, 0xcc, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0xe0, 0x8d, 0x19, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x8d, 0x19, 0x3f, 0x20, 0x7e, 0x88, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0xb0, 0x9d, 0x2a, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x08, 0x06, 0x91, 0xbf, 0xa0, 0x9d, 0xaa, 0x3e, 0xf0, 0xcc, 0x5d, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x70, 0xad, 0x3b, 0x3f, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0xe8, 0x8d, 0x19, 0xc0, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0xf8, 0xcc, 0xdd, 0xbf, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x9d, 0x2a, 0xbf, 0x70, 0xad, 0xbb, 0xbf, 0xf0, 0x8d, 0x19, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0x3e, 0x08, 0x06, 0x91, 0xbf, 0x20, 0xbd, 0xcc, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x24, 0x7e, 0x08, 0xc0, 0x40, 0x7e, 0x08, 0xbe, 0x30, 0xbd, 0x4c, 0x3f, 0xc8, 0x15, 0xa2, 0x3f, 0xf0, 0xcc, 0x5d, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0xec, 0x7f, 0x3f, 0xf0, 0x8d, 0x19, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0x3e, 0x20, 0x7e, 0x08, 0xbf, 0xb0, 0xdc, 0x6e, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x08, 0xbf, 0xa0, 0x9d, 0xaa, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0xcc, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0xa0, 0x9d, 0xaa, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0xe0, 0x8d, 0x19, 0x3f, 0x00, 0x7e, 0x08, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0xc0, 0xdc, 0xee, 0xbe, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x70, 0xad, 0x3b, 0x3f, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x08, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0xc8, 0x15, 0xa2, 0xbf, 0x20, 0xbd, 0xcc, 0x3e, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0xa0, 0x9d, 0xaa, 0x3e, 0x80, 0xec, 0x7f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x90, 0x25, 0xb3, 0xbf, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0xbd, 0x4c, 0xbe, 0x28, 0x7e, 0x88, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0xa0, 0x64, 0xf7, 0xbf, 0xb0, 0x9d, 0x2a, 0xbf, 0x20, 0x7e, 0x08, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x8d, 0x19, 0xbf, 0xb0, 0x9d, 0xaa, 0xbf, 0xa0, 0x9d, 0x2a, 0x3f, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x49, 0x15, 0xc0, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x9d, 0x2a, 0x3f, 0x88, 0x25, 0xb3, 0x3f, 0x20, 0x7e, 0x08, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0xcc, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0xec, 0x7f, 0x3f, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x30, 0xbd, 0x4c, 0x3f, 0x40, 0xbd, 0xcc, 0xbe, 0xa0, 0x9d, 0xaa, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0xcc, 0xbe, 0x20, 0x7e, 0x08, 0x3f, 0x20, 0x7e, 0x88, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0xdc, 0xee, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0xa0, 0x9d, 0x2a, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xdc, 0xee, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0x9d, 0xaa, 0xbe, 0x20, 0x7e, 0x08, 0x3f, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0xcc, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0xe0, 0x8d, 0x19, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0xdc, 0xee, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0xdc, 0xee, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0xa0, 0x9d, 0xaa, 0x3e, 0xa0, 0x64, 0xf7, 0xbf, 0xa0, 0x9d, 0xaa, 0x3e, 0xf8, 0xcc, 0xdd, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbd, 0xcc, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x08, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x70, 0xad, 0xbb, 0xbf, 0x00, 0x7e, 0x08, 0x3e, 0x04, 0x06, 0x11, 0x40, 0xc0, 0xdc, 0xee, 0xbf, 0x40, 0xbd, 0x4c, 0xbe, 0xf0, 0x8d, 0x19, 0xbf, 0x20, 0x7e, 0x88, 0xbe, 0x8c, 0x25, 0x33, 0x40, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0xcc, 0xbe, 0xe8, 0x8d, 0x99, 0xbf, 0x70, 0xad, 0x3b, 0x3f, 0x20, 0x7e, 0x08, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x80, 0xec, 0xff, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x30, 0xbd, 0x4c, 0x3f, 0x50, 0x35, 0xc4, 0x3f, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xdc, 0xee, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0xe8, 0x8d, 0x99, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x70, 0xad, 0x3b, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0xdc, 0xee, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x28, 0x7e, 0x88, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x20, 0x7e, 0x88, 0xbe, 0xa0, 0x9d, 0x2a, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0xbe, 0x20, 0x7e, 0x88, 0x3e, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0xf0, 0x8d, 0x19, 0xbf, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcd, 0x5d, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0xe0, 0x8d, 0x19, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xdc, 0xee, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x9d, 0xaa, 0x3e, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x8d, 0x19, 0xbf, 0xb0, 0x9d, 0xaa, 0xbf, 0xe0, 0x8d, 0x19, 0x3f, 0x70, 0xad, 0xbb, 0xbf, 0xa0, 0x9d, 0xaa, 0x3e, 0x20, 0x7e, 0x08, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0xc0, 0x9d, 0xaa, 0xbe, 0xf8, 0xcc, 0xdd, 0x3f, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x69, 0x37, 0xc0, 0x80, 0x7e, 0x88, 0xbd, 0xd8, 0x54, 0xe6, 0x3f, 0x24, 0x7e, 0x08, 0xc0, 0x00, 0x7e, 0x88, 0x3d, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x40, 0xbd, 0xcc, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x8d, 0x19, 0xbf, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x00, 0x7e, 0x08, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x20, 0x7e, 0x88, 0xbe, 0x50, 0x35, 0xc4, 0xbf, 0x70, 0xad, 0x3b, 0x3f, 0xf0, 0x8d, 0x19, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x34, 0x3a, 0x04, 0xc0, 0x00, 0x7e, 0x88, 0x3d, 0x70, 0xad, 0x3b, 0x3f, 0x30, 0xbd, 0xcc, 0x3f, 0x40, 0xbd, 0xcc, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0xcc, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x06, 0x91, 0x3f, 0x40, 0xbd, 0x4c, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0xbe, 0xc0, 0x9d, 0xaa, 0xbe, 0xb0, 0xdc, 0x6e, 0x3f, 0x80, 0x7e, 0x88, 0xbd, 0x80, 0x7e, 0x88, 0xbd, 0xf0, 0x8d, 0x19, 0xbf, 0xa0, 0x9d, 0xaa, 0x3e, 0x40, 0xbd, 0xcc, 0xbe, 0x40, 0xbd, 0x4c, 0xbe, 0x80, 0xec, 0xff, 0xbf, 0x00, 0x00, 0x00, 0x00, 0xa0, 0x9d, 0xaa, 0x3e, 0x70, 0xad, 0xbb, 0x3f, 0xe0, 0x8d, 0x19, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x40, 0xbd, 0x4c, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0x3e, 0x20, 0x7e, 0x88, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0xa0, 0x9d, 0xaa, 0x3e, 0x20, 0x7e, 0x08, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0x7e, 0x08, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x70, 0xad, 0x3b, 0xbf, 0x80, 0x7e, 0x88, 0xbd, 0xb0, 0x9d, 0x2a, 0xbf, 0xa0, 0x9d, 0xaa, 0x3e, 0x20, 0xbd, 0xcc, 0x3e, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0xbd, 0xcc, 0x3e, 0x30, 0xbd, 0x4c, 0x3f, 0x30, 0xbd, 0x4c, 0x3f, 0x00, 0x7e, 0x88, 0x3d, 0x20, 0x7e, 0x88, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0x20, 0x7e, 0x88, 0x3e, 0xc0, 0x9d, 0xaa, 0xbe, 0x40, 0x7e, 0x08, 0xbe, 0x08, 0x06, 0x91, 0xbf, 0x80, 0xec, 0x7f, 0xbf, 0x00, 0x7e, 0x08, 0x3e, 0x00, 0x7e, 0x88, 0x3d, 0x80, 0x7e, 0x88, 0xbd, 0x40, 0xbd, 0x4c, 0xbe, 0xd8, 0x54, 0xe6, 0xbf, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x80, 0x7e, 0x88, 0xbd, 0xc0, 0xdc, 0x6e, 0xbf, 0x20, 0x7e, 0x88, 0xbe, 0xc0, 0xdc, 0xee, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x70, 0xad, 0x3b, 0xbf, 0x40, 0x7e, 0x08, 0xbe, 0xb0, 0x9d, 0x2a, 0xbf, 0x00, 0x7e, 0x08, 0x3e, 0x40, 0x7e, 0x08, 0xbe, 0x40, 0xbd, 0x4c, 0x3e, 0x40, 0xbd, 0x4c, 0x3e, 0x20, 0x7e, 0x88, 0xbe, }}; const int32_t dnn_logits_bias__2__cf__2_shape[1] = {1}; const union { uint8_t bytes[4]; float values[1]; } dnn_logits_bias__2__cf__2 = {{ 0xbf, 0x29, 0xe6, 0xbf, }}; const int32_t dnn_logits_kernel__3__cf__3_shape[2] = {20, 1}; const union { uint8_t bytes[80]; float values[20]; } dnn_logits_kernel__3__cf__3 = {{ 0xa6, 0xad, 0x95, 0x3e, 0x25, 0xcd, 0x04, 0xbd, 0x56, 0x3e, 0x48, 0x3d, 0x60, 0xd7, 0x5b, 0xbd, 0xa6, 0x97, 0x5a, 0x3e, 0x20, 0xa1, 0xc1, 0xbe, 0xeb, 0xad, 0xb4, 0x3d, 0x85, 0x6e, 0x1f, 0xbe, 0x43, 0xf3, 0x35, 0xbd, 0xfa, 0x8f, 0x73, 0xbd, 0x33, 0xa6, 0x7a, 0xbd, 0x09, 0x89, 0x6b, 0x3f, 0x6e, 0x80, 0x2a, 0x3e, 0xcc, 0x63, 0xa4, 0xbe, 0xc4, 0x7a, 0xed, 0xbd, 0xfe, 0xe8, 0x66, 0x3e, 0xfb, 0x67, 0xde, 0x3e, 0xa9, 0x9d, 0xc9, 0x3d, 0x02, 0x33, 0xdc, 0x3d, 0x31, 0xd8, 0x8f, 0xbd, }}; } // anonymous namespace // ----------------------------------------------------------------------------- // INFERENCE // ----------------------------------------------------------------------------- int32_t input_from_feature_columns_input_layer_concat_concat0Shape[2] = {1, 323}; int32_t logits_MatMul_merged_with_dnn_logits_BiasAdd0Shape[2] = {1, 1}; void Inference( const float* __restrict input_from_feature_columns_input_layer_concat_concat0 /* shape: 1,323 */ , float* __restrict logits_MatMul_merged_with_dnn_logits_BiasAdd0 /* shape: 1,1 */ , FixedAllocations* __restrict fixed) { const int32_t input_from_feature_columns_input_layer_concat_concat0_shape[] = {1, 323}; #if OP_LIB_BENCHMARK Singleton::get()->Reset(); #endif // dnn/hiddenlayer_0/MatMul_merged_with_dnn/hiddenlayer_0/BiasAdd FullyConnected( input_from_feature_columns_input_layer_concat_concat0_shape, input_from_feature_columns_input_layer_concat_concat0, dnn_hiddenlayer_0_kernel__1__cf__1_shape, dnn_hiddenlayer_0_kernel__1__cf__1.values, dnn_hiddenlayer_0_bias__0__cf__0_shape, dnn_hiddenlayer_0_bias__0__cf__0.values, fixed->alloc0); fixed->shape0[0] = 1; fixed->shape0[1] = 20; // dnn/hiddenlayer_0/Relu Relu(2, // rank fixed->shape0, fixed->alloc0, fixed->alloc0); // dnn/logits/MatMul_merged_with_dnn/logits/BiasAdd FullyConnected( fixed->shape0, fixed->alloc0, dnn_logits_kernel__3__cf__3_shape, dnn_logits_kernel__3__cf__3.values, dnn_logits_bias__2__cf__2_shape, dnn_logits_bias__2__cf__2.values, logits_MatMul_merged_with_dnn_logits_BiasAdd0); #if OP_LIB_BENCHMARK Singleton::get()->WriteTimingsToInfoLog(); #endif } } // namespace ui::internal_onedevice::alpha_model